\r
private List<SlcExecutionNotifier> notifiers = new Vector<SlcExecutionNotifier>();\r
\r
- // private Map<SlcExecution, SlcExecutionStep> currentStep = new\r
- // HashMap<SlcExecution, SlcExecutionStep>();\r
+ private boolean currentStepNotified = true;\r
\r
- private SlcExecutionStep currentStep = null;\r
+ // CUSTOMIZATIONS\r
+ private boolean logBeforeFirstTarget = false;\r
+ private boolean firstTargetStarted = false;\r
+\r
+ private boolean logTaskStartFinish = true;\r
\r
public void init(Project project) {\r
if (this.project != null) {\r
}\r
\r
public void buildStarted(BuildEvent event) {\r
- // SlcExecution slcExecution = getSlcExecution(event);\r
-\r
}\r
\r
public void buildFinished(BuildEvent event) {\r
SlcExecution slcExecution = getSlcExecution(event);\r
+ String oldStatus = slcExecution.getStatus();\r
slcExecution.setStatus(SlcExecution.STATUS_FINISHED);\r
\r
for (SlcExecutionNotifier notifier : notifiers) {\r
- notifier.updateExecution(slcExecution);\r
+ notifier.updateStatus(slcExecution, oldStatus, slcExecution\r
+ .getStatus());\r
}\r
}\r
\r
public void messageLogged(BuildEvent event) {\r
+ if (!shouldLog())\r
+ return;\r
+\r
SlcExecution slcExecution = getSlcExecution(event);\r
if (slcExecution != null) {\r
- if (currentStep == null) {\r
- currentStep = new SlcExecutionStep("LOG", event.getMessage());\r
- notifyStep(slcExecution, currentStep);\r
- currentStep = null;\r
+ if (currentStepNotified) {\r
+ slcExecution.getSteps().add(\r
+ new SlcExecutionStep("LOG", event.getMessage()));\r
+ notifyStep(slcExecution, slcExecution.currentStep());\r
+ currentStepNotified = true;\r
} else {\r
- currentStep.addLog(event.getMessage());\r
+ slcExecution.currentStep().addLog(event.getMessage());\r
}\r
} else {\r
// TODO: log before initialization?\r
}\r
\r
public void targetStarted(BuildEvent event) {\r
+ if (!firstTargetStarted)\r
+ firstTargetStarted = true;\r
+\r
addLogStep(event, "Target " + event.getTarget().getName() + " started");\r
}\r
\r
}\r
\r
public void taskStarted(BuildEvent event) {\r
+ if (!shouldLog())\r
+ return;\r
+\r
SlcExecution slcExecution = getSlcExecution(event);\r
- if (currentStep != null) {\r
- notifyStep(slcExecution, currentStep);\r
- currentStep = null;\r
+ if (!currentStepNotified) {\r
+ notifyStep(slcExecution, slcExecution.currentStep());\r
+ currentStepNotified = true;\r
}\r
\r
- currentStep = new SlcExecutionStep("LOG", "Task "\r
- + event.getTask().getTaskName() + " started");\r
+ String msg = null;\r
+ if (logTaskStartFinish)\r
+ msg = "Task " + event.getTask().getTaskName() + " started";\r
+\r
+ slcExecution.getSteps().add(new SlcExecutionStep("LOG", msg));\r
+\r
+ currentStepNotified = false;\r
}\r
\r
public void taskFinished(BuildEvent event) {\r
+ if (!shouldLog())\r
+ return;\r
+\r
SlcExecution slcExecution = getSlcExecution(event);\r
- if (currentStep != null) {\r
- currentStep.addLog("Task " + event.getTask().getTaskName()\r
- + " finished");\r
- slcExecution.getSteps().add(currentStep);\r
- notifyStep(slcExecution, currentStep);\r
- currentStep = null;\r
+ if (!currentStepNotified) {\r
+\r
+ if (logTaskStartFinish)\r
+ slcExecution.currentStep().addLog(\r
+ "Task " + event.getTask().getTaskName() + " finished");\r
+\r
+ notifyStep(slcExecution, slcExecution.currentStep());\r
+ currentStepNotified = true;\r
}\r
}\r
\r
\r
if (slcExecution == null)\r
throw new SlcAntException("No SLC Execution registered.");\r
-\r
- // if (slcExecution == null) {\r
- // // for log4j\r
- // this.project = project;\r
- // if (!LogManager.getRootLogger().isAttached(this)) {\r
- // LogManager.getRootLogger().addAppender(this);\r
- // }\r
- // \r
- // slcExecution = new SlcExecution();\r
- // slcExecution.setUuid(UUID.randomUUID().toString());\r
- // try {\r
- // slcExecution.setHost(InetAddress.getLocalHost().getHostName());\r
- // } catch (UnknownHostException e) {\r
- // slcExecution.setHost(SlcExecution.UNKOWN_HOST);\r
- // }\r
- //\r
- // if (project.getReference(SlcProjectHelper.REF_ROOT_CONTEXT) != null)\r
- // {\r
- // slcExecution.setType(SLC_ANT_TYPE);\r
- // } else {\r
- // slcExecution.setType(ANT_TYPE);\r
- // }\r
- //\r
- // slcExecution.setPath(project.getProperty("ant.file"));\r
- // slcExecution.setStatus(SlcExecution.STATUS_RUNNING);\r
- //\r
- // project.addReference(REF_SLC_EXECUTION, slcExecution);\r
- //\r
- // for (SlcExecutionNotifier notifier : notifiers) {\r
- // notifier.newExecution(slcExecution);\r
- // }\r
- //\r
- // }\r
-\r
return slcExecution;\r
}\r
\r
protected void addLogStep(BuildEvent event, String msg) {\r
- SlcExecutionStep step = new SlcExecutionStep("LOG", msg);\r
SlcExecution slcExecution = getSlcExecution(event);\r
- slcExecution.getSteps().add(step);\r
+ slcExecution.getSteps().add(new SlcExecutionStep("LOG", msg));\r
\r
- notifyStep(slcExecution, step);\r
+ notifyStep(slcExecution, slcExecution.currentStep());\r
+ currentStepNotified = true;\r
}\r
\r
protected void notifyStep(SlcExecution slcExecution, SlcExecutionStep step) {\r
SlcExecution slcExecution = (SlcExecution) project\r
.getReference(REF_SLC_EXECUTION);\r
if (slcExecution != null) {\r
- if (currentStep == null) {\r
- currentStep = new SlcExecutionStep("LOG", event\r
- .getMessage().toString());\r
+ if (currentStepNotified) {\r
+ slcExecution.getSteps().add(\r
+ new SlcExecutionStep("LOG", event.getMessage()\r
+ .toString()));\r
+ currentStepNotified = false;\r
}\r
- currentStep.addLog(event.getMessage().toString());\r
+ slcExecution.currentStep()\r
+ .addLog(event.getMessage().toString());\r
} else {\r
// TODO: log before initialization?\r
}\r
\r
}\r
\r
+ protected boolean shouldLog() {\r
+ return logBeforeFirstTarget || firstTargetStarted;\r
+ }\r
+\r
@Override\r
public void close() {\r
- // TODO Auto-generated method stub\r
-\r
}\r
\r
@Override\r
public boolean requiresLayout() {\r
- // TODO Auto-generated method stub\r
return false;\r
}\r
\r