I subclassed from DefaultLoggerfrom org.apache.tools.ant.DefaultLogger:
public class ExtendedLogger extends DefaultLogger {
}
I got the information here .
So I overloaded some methods from DefaultLogger:
@Override
public void targetStarted(BuildEvent event){
System.out.println("Logger : "+"[TARGET STARTED]\n");
}
@Override
public void targetFinished(BuildEvent event){
System.out.println("Logger : "+"[TARGET FINISHED]\n");
}
Works fine (I can see the result).
Also these methods work:
public void taskStarted(BuildEvent event);
public void taskFinished(BuildEvent event);
But I have problems :
@Override
public void buildFinished(BuildEvent event) {
System.out.println("Logger : "+"[BUILD FINISHED]\n");
}
@Override
public void buildStarted(BuildEvent event) {
System.out.println("Logger : "+"[BUILD STARTED]\n");
}
Unable to enter these methods!
Where am I mistaken?
Thanks.
EDIT 01/12/2016:
I just tried a simple testBuild.xml file, for example @Vaspar said:
<?xml version="1.0" encoding="UTF-8"?>
<project name="MyProject" default="Init" basedir=".">
<target name="Init">
<tstamp/>
<echo message="INIT-ING"/>
</target>
<target name="Clean" description="Clean output directory.">
<echo>Clean</echo>
</target>
<target name="CleanAutogenerated" description="Clean auto-generated folder.">
<echo>CleanAutogenerated</echo>
</target>
<target name="AutoGenerateTopics" description="Manual specific targets.">
<echo>AutoGenerateTopics</echo>
</target>
<target name="BuildDocument" description="Build full documentation">
<echo>BuildDocument</echo>
</target>
</project>
And the result:
Logger : [TARGET STARTED] org.apache.tools.ant.BuildEvent[source=Clean]
Logger : [TASK STARTED] org.apache.tools.ant.BuildEvent[source=org.apache.tools.ant.UnknownElement@12f33e1]
[echo] Clean
Logger : [TASK FINISHED] org.apache.tools.ant.BuildEvent[source=org.apache.tools.ant.UnknownElement@12f33e1]
Logger : [TARGET FINISHED] org.apache.tools.ant.BuildEvent[source=Clean]
CleanDocumentTask DONE
Logger : [TARGET STARTED] org.apache.tools.ant.BuildEvent[source=CleanAutogenerated]
Logger : [TASK STARTED] org.apache.tools.ant.BuildEvent[source=org.apache.tools.ant.UnknownElement@1e2862f]
[echo] CleanAutogenerated
Logger : [TASK FINISHED] org.apache.tools.ant.BuildEvent[source=org.apache.tools.ant.UnknownElement@1e2862f]
Logger : [TARGET FINISHED] org.apache.tools.ant.BuildEvent[source=CleanAutogenerated]
CleanAutoGenerateTask DONE
Logger : [TARGET STARTED] org.apache.tools.ant.BuildEvent[source=AutoGenerateTopics]
Logger : [TASK STARTED] org.apache.tools.ant.BuildEvent[source=org.apache.tools.ant.UnknownElement@19bf1ed]
[echo] AutoGenerateTopics
Logger : [TASK FINISHED] org.apache.tools.ant.BuildEvent[source=org.apache.tools.ant.UnknownElement@19bf1ed]
Logger : [TARGET FINISHED] org.apache.tools.ant.BuildEvent[source=AutoGenerateTopics]
AutoGenerateTask DONE
Logger : [TARGET STARTED] org.apache.tools.ant.BuildEvent[source=BuildDocument]
Logger : [TASK STARTED] org.apache.tools.ant.BuildEvent[source=org.apache.tools.ant.UnknownElement@10b85cb]
[echo] BuildDocument
Logger : [TASK FINISHED] org.apache.tools.ant.BuildEvent[source=org.apache.tools.ant.UnknownElement@10b85cb]
Logger : [TARGET FINISHED] org.apache.tools.ant.BuildEvent[source=BuildDocument]
DocumentTask DONE
Please note that CleanDocumentTask DONE, DocumentTask DONEetc ... are pure Java outputs from my project (not ant).
As you can see, there are still no exits from targetStartedor targetFinished: /
EDIT 12/01/2016 (2):
ExtendedLogger.java:
import javax.swing.SwingUtilities;
import org.apache.tools.ant.BuildEvent;
import org.apache.tools.ant.DefaultLogger;
public class ExtendedLogger extends DefaultLogger {
ColorPane colorPane = null;
public ExtendedLogger(ColorPane c){
super();
if (c != null){
colorPane = c;
} else {
System.out.println("ColorPane given to constructor is null. Exiting program.");
System.exit(0);
}
}
@Override
public void buildFinished(BuildEvent event) {
ColorPane.appendInEDT("[BUILD FINISHED]\n", ColorPane.B_Yellow, colorPane);
System.out.println("Logger : "+"[BUILD FINISHED]\n");
}
@Override
public void buildStarted(BuildEvent event) {
ColorPane.appendInEDT("[BUILD STARTED]\n", ColorPane.B_Yellow, colorPane);
System.out.println("Logger : "+"[BUILD STARTED]\n");
}
@Override
public void log(String message){
appendInEDT(message);
}
private void appendInEDT(String s){
final String newLine = s;
Thread t = new Thread(new Runnable(){
public void run(){
colorPane.append(ColorPane.B_White, newLine+"\n");
}
});
if (SwingUtilities.isEventDispatchThread()) {
t.start();
} else {
SwingUtilities.invokeLater(t);
}
}
}