X-Git-Url: http://git.argeo.org/?a=blobdiff_plain;f=org.argeo.slc.core%2Fsrc%2Fmain%2Fjava%2Forg%2Fargeo%2Fslc%2Fant%2FSlcExecutionBuildListener.java;h=a8dd15c7d76f89ea5c8de3f8f672fee08458ef78;hb=4226558ccaf4d40b55d5d8492d0ef3476dfdf0c9;hp=7f0b30b2e2b4fa71112938b91ca2c5169d036d28;hpb=393360a1039a285ff22a33febd61ce1f5ca7f96e;p=gpl%2Fargeo-slc.git diff --git a/org.argeo.slc.core/src/main/java/org/argeo/slc/ant/SlcExecutionBuildListener.java b/org.argeo.slc.core/src/main/java/org/argeo/slc/ant/SlcExecutionBuildListener.java index 7f0b30b2e..a8dd15c7d 100644 --- a/org.argeo.slc.core/src/main/java/org/argeo/slc/ant/SlcExecutionBuildListener.java +++ b/org.argeo.slc.core/src/main/java/org/argeo/slc/ant/SlcExecutionBuildListener.java @@ -28,10 +28,13 @@ public class SlcExecutionBuildListener extends AppenderSkeleton implements private List notifiers = new Vector(); - // private Map currentStep = new - // HashMap(); + private boolean currentStepNotified = true; - private SlcExecutionStep currentStep = null; + // CUSTOMIZATIONS + private boolean logBeforeFirstTarget = false; + private boolean firstTargetStarted = false; + + private boolean logTaskStartFinish = true; public void init(Project project) { if (this.project != null) { @@ -56,28 +59,32 @@ public class SlcExecutionBuildListener extends AppenderSkeleton implements } public void buildStarted(BuildEvent event) { - // SlcExecution slcExecution = getSlcExecution(event); - } public void buildFinished(BuildEvent event) { SlcExecution slcExecution = getSlcExecution(event); + String oldStatus = slcExecution.getStatus(); slcExecution.setStatus(SlcExecution.STATUS_FINISHED); for (SlcExecutionNotifier notifier : notifiers) { - notifier.updateExecution(slcExecution); + notifier.updateStatus(slcExecution, oldStatus, slcExecution + .getStatus()); } } public void messageLogged(BuildEvent event) { + if (!shouldLog()) + return; + SlcExecution slcExecution = getSlcExecution(event); if (slcExecution != null) { - if (currentStep == null) { - currentStep = new SlcExecutionStep("LOG", event.getMessage()); - notifyStep(slcExecution, currentStep); - currentStep = null; + if (currentStepNotified) { + slcExecution.getSteps().add( + new SlcExecutionStep("LOG", event.getMessage())); + notifyStep(slcExecution, slcExecution.currentStep()); + currentStepNotified = true; } else { - currentStep.addLog(event.getMessage()); + slcExecution.currentStep().addLog(event.getMessage()); } } else { // TODO: log before initialization? @@ -85,6 +92,9 @@ public class SlcExecutionBuildListener extends AppenderSkeleton implements } public void targetStarted(BuildEvent event) { + if (!firstTargetStarted) + firstTargetStarted = true; + addLogStep(event, "Target " + event.getTarget().getName() + " started"); } @@ -93,24 +103,37 @@ public class SlcExecutionBuildListener extends AppenderSkeleton implements } public void taskStarted(BuildEvent event) { + if (!shouldLog()) + return; + SlcExecution slcExecution = getSlcExecution(event); - if (currentStep != null) { - notifyStep(slcExecution, currentStep); - currentStep = null; + if (!currentStepNotified) { + notifyStep(slcExecution, slcExecution.currentStep()); + currentStepNotified = true; } - currentStep = new SlcExecutionStep("LOG", "Task " - + event.getTask().getTaskName() + " started"); + String msg = null; + if (logTaskStartFinish) + msg = "Task " + event.getTask().getTaskName() + " started"; + + slcExecution.getSteps().add(new SlcExecutionStep("LOG", msg)); + + currentStepNotified = false; } public void taskFinished(BuildEvent event) { + if (!shouldLog()) + return; + SlcExecution slcExecution = getSlcExecution(event); - if (currentStep != null) { - currentStep.addLog("Task " + event.getTask().getTaskName() - + " finished"); - slcExecution.getSteps().add(currentStep); - notifyStep(slcExecution, currentStep); - currentStep = null; + if (!currentStepNotified) { + + if (logTaskStartFinish) + slcExecution.currentStep().addLog( + "Task " + event.getTask().getTaskName() + " finished"); + + notifyStep(slcExecution, slcExecution.currentStep()); + currentStepNotified = true; } } @@ -129,49 +152,15 @@ public class SlcExecutionBuildListener extends AppenderSkeleton implements if (slcExecution == null) throw new SlcAntException("No SLC Execution registered."); - - // if (slcExecution == null) { - // // for log4j - // this.project = project; - // if (!LogManager.getRootLogger().isAttached(this)) { - // LogManager.getRootLogger().addAppender(this); - // } - // - // slcExecution = new SlcExecution(); - // slcExecution.setUuid(UUID.randomUUID().toString()); - // try { - // slcExecution.setHost(InetAddress.getLocalHost().getHostName()); - // } catch (UnknownHostException e) { - // slcExecution.setHost(SlcExecution.UNKOWN_HOST); - // } - // - // if (project.getReference(SlcProjectHelper.REF_ROOT_CONTEXT) != null) - // { - // slcExecution.setType(SLC_ANT_TYPE); - // } else { - // slcExecution.setType(ANT_TYPE); - // } - // - // slcExecution.setPath(project.getProperty("ant.file")); - // slcExecution.setStatus(SlcExecution.STATUS_RUNNING); - // - // project.addReference(REF_SLC_EXECUTION, slcExecution); - // - // for (SlcExecutionNotifier notifier : notifiers) { - // notifier.newExecution(slcExecution); - // } - // - // } - return slcExecution; } protected void addLogStep(BuildEvent event, String msg) { - SlcExecutionStep step = new SlcExecutionStep("LOG", msg); SlcExecution slcExecution = getSlcExecution(event); - slcExecution.getSteps().add(step); + slcExecution.getSteps().add(new SlcExecutionStep("LOG", msg)); - notifyStep(slcExecution, step); + notifyStep(slcExecution, slcExecution.currentStep()); + currentStepNotified = true; } protected void notifyStep(SlcExecution slcExecution, SlcExecutionStep step) { @@ -207,11 +196,14 @@ public class SlcExecutionBuildListener extends AppenderSkeleton implements SlcExecution slcExecution = (SlcExecution) project .getReference(REF_SLC_EXECUTION); if (slcExecution != null) { - if (currentStep == null) { - currentStep = new SlcExecutionStep("LOG", event - .getMessage().toString()); + if (currentStepNotified) { + slcExecution.getSteps().add( + new SlcExecutionStep("LOG", event.getMessage() + .toString())); + currentStepNotified = false; } - currentStep.addLog(event.getMessage().toString()); + slcExecution.currentStep() + .addLog(event.getMessage().toString()); } else { // TODO: log before initialization? } @@ -221,15 +213,16 @@ public class SlcExecutionBuildListener extends AppenderSkeleton implements } + protected boolean shouldLog() { + return logBeforeFirstTarget || firstTargetStarted; + } + @Override public void close() { - // TODO Auto-generated method stub - } @Override public boolean requiresLayout() { - // TODO Auto-generated method stub return false; }