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) { |