langtools/make/intellij/src/idea/LangtoolsIdeaAntLogger.java
changeset 27548 d3f506b108e5
parent 25697 b71804e27eb1
child 27996 4ae3503fd196
equal deleted inserted replaced
27547:d07b3dcbc707 27548:d3f506b108e5
    24  */
    24  */
    25 
    25 
    26 package idea;
    26 package idea;
    27 
    27 
    28 import org.apache.tools.ant.BuildEvent;
    28 import org.apache.tools.ant.BuildEvent;
       
    29 import org.apache.tools.ant.BuildListener;
    29 import org.apache.tools.ant.DefaultLogger;
    30 import org.apache.tools.ant.DefaultLogger;
       
    31 import org.apache.tools.ant.Project;
    30 
    32 
    31 import java.util.EnumSet;
    33 import java.util.EnumSet;
    32 import java.util.Stack;
    34 import java.util.Stack;
    33 
    35 
    34 import static org.apache.tools.ant.Project.*;
    36 import static org.apache.tools.ant.Project.*;
   164             String getDisplayMessage(BuildEvent e) {
   166             String getDisplayMessage(BuildEvent e) {
   165                 return "Running jtreg tests: " + e.getProject().getProperty("jtreg.tests");
   167                 return "Running jtreg tests: " + e.getProject().getProperty("jtreg.tests");
   166             }
   168             }
   167         },
   169         },
   168         /** build bootstrap tool target - executed when bootstrapping javac */
   170         /** build bootstrap tool target - executed when bootstrapping javac */
   169         BUILD_BOOTSTRAP_TOOL("build-bootstrap-.*") {
   171         BUILD_BOOTSTRAP_JAVAC("build-bootstrap-javac-classes") {
   170             @Override
   172             @Override
   171             String getDisplayMessage(BuildEvent e) {
   173             String getDisplayMessage(BuildEvent e) {
   172                 String targetName = e.getTarget().getName();
   174                 return "Building bootstrap javac...";
   173                 String tool = targetName.split("-")[2];
       
   174                 return "Building bootstrap " + tool + "...";
       
   175             }
   175             }
   176         },
   176         },
   177         /** build classes target - executed when building classes of given tool */
   177         /** build classes target - executed when building classes of given tool */
   178         BUILD_TOOL("build-classes-.*") {
   178         BUILD_ALL_CLASSES("build-all-classes") {
   179             @Override
   179             @Override
   180             String getDisplayMessage(BuildEvent e) {
   180             String getDisplayMessage(BuildEvent e) {
   181                 String targetName = e.getTarget().getName();
   181                 return "Building all classes...";
   182                 String tool = targetName.split("-")[2];
       
   183                 return "Building " + tool + "...";
       
   184             }
   182             }
   185         },
   183         },
   186         /** synthetic target catching any other target not in this list */
   184         /** synthetic target catching any other target not in this list */
   187         ANY("") {
   185         ANY("") {
   188             @Override
   186             @Override
   193             boolean matches(String msg) {
   191             boolean matches(String msg) {
   194                 return true;
   192                 return true;
   195             }
   193             }
   196         };
   194         };
   197 
   195 
   198         String targetRegex;
   196         String targetName;
   199 
   197 
   200         Target(String targetRegex) {
   198         Target(String targetName) {
   201             this.targetRegex = targetRegex;
   199             this.targetName = targetName;
   202         }
   200         }
   203 
   201 
   204         boolean matches(String msg) {
   202         boolean matches(String msg) {
   205             return msg.matches(targetRegex);
   203             return msg.equals(targetName);
   206         }
   204         }
   207 
   205 
   208         abstract String getDisplayMessage(BuildEvent e);
   206         abstract String getDisplayMessage(BuildEvent e);
   209     }
   207     }
   210 
   208 
   251     Stack<StatusEvent> statusEvents = new Stack<>();
   249     Stack<StatusEvent> statusEvents = new Stack<>();
   252 
   250 
   253     /** stack of pending tasks */
   251     /** stack of pending tasks */
   254     Stack<Task> tasks = new Stack<>();
   252     Stack<Task> tasks = new Stack<>();
   255 
   253 
   256     public LangtoolsIdeaAntLogger(DefaultLogger logger) {
   254     public LangtoolsIdeaAntLogger(Project project) {
   257         this.logger = logger;
   255         for (Object o : project.getBuildListeners()) {
       
   256             if (o instanceof DefaultLogger) {
       
   257                 this.logger = (DefaultLogger)o;
       
   258                 project.removeBuildListener((BuildListener)o);
       
   259                 project.addBuildListener(this);
       
   260             }
       
   261         }
   258         tasks.push(Task.ROOT);
   262         tasks.push(Task.ROOT);
   259     }
   263     }
   260 
   264 
   261     @Override
   265     @Override
   262     public void buildStarted(BuildEvent event) {
   266     public void buildStarted(BuildEvent event) {