From: Mathieu Baudier Date: Thu, 24 Apr 2008 22:53:51 +0000 (+0000) Subject: Improve SlcExecution notifications X-Git-Tag: argeo-slc-2.1.7~2971 X-Git-Url: http://git.argeo.org/?a=commitdiff_plain;h=c40be4f393a3609e7892095db01e783a36a6c46b;p=gpl%2Fargeo-slc.git Improve SlcExecution notifications git-svn-id: https://svn.argeo.org/slc/trunk@1069 4cfe0d0a-d680-48aa-b62c-e0a02a3f76cc --- diff --git a/org.argeo.slc.core/pom.xml b/org.argeo.slc.core/pom.xml index b46e8a7a0..6959e7708 100644 --- a/org.argeo.slc.core/pom.xml +++ b/org.argeo.slc.core/pom.xml @@ -1,53 +1,53 @@ - - - 4.0.0 - - org.argeo.slc - argeo-slc - 0.9-SNAPSHOT - ../org.argeo.slc - - argeo-slc-core - Argeo SLC Core - SLC Core - - - scm:svn:https://www.argeo.org/svn/slc/trunk/org.argeo.slc.core - - - https://www.argeo.org/svn/slc/trunk/org.argeo.slc.core - - - - - - - org.apache.maven.plugins - maven-compiler-plugin + + + 4.0.0 + + org.argeo.slc + argeo-slc + 0.9-SNAPSHOT + ../org.argeo.slc + + argeo-slc-core + Argeo SLC Core + SLC Core + + + scm:svn:https://www.argeo.org/svn/slc/trunk/org.argeo.slc.core + + + https://www.argeo.org/svn/slc/trunk/org.argeo.slc.core + + + + + + + org.apache.maven.plugins + maven-compiler-plugin + + + org.apache.maven.plugins + maven-source-plugin - - org.apache.maven.plugins - maven-source-plugin - - - org.apache.maven.plugins - maven-assembly-plugin - - - src/assembly/base.xml - - - - - assembly-base - package - - single - - - + + org.apache.maven.plugins + maven-assembly-plugin + + + src/assembly/base.xml + + + + + assembly-base + package + + single + + + org.apache.maven.plugins @@ -58,35 +58,35 @@ - - - - - javax.transaction - jta - - - log4j - log4j - - - org.hibernate - hibernate - - - - org.springframework - spring-context - - - org.springframework - spring-orm - - - org.springframework - spring-jdbc - - + + + + + javax.transaction + jta + + + log4j + log4j + + + org.hibernate + hibernate + + + + org.springframework + spring-context + + + org.springframework + spring-orm + + + org.springframework + spring-jdbc + + org.springframework.ws spring-ws-core @@ -112,26 +112,30 @@ com.sun.xml.messaging.saaj saaj-impl - - - org.apache.ant - ant - - - org.apache.commons - commons-io - - - org.dbunit - dbunit - - - junit - junit - - - hsqldb - hsqldb - - + + javax.activation + activation + + + + org.apache.ant + ant + + + org.apache.commons + commons-io + + + org.dbunit + dbunit + + + junit + junit + + + hsqldb + hsqldb + + \ No newline at end of file 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..f2bedce40 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 @@ -31,7 +31,8 @@ public class SlcExecutionBuildListener extends AppenderSkeleton implements // private Map currentStep = new // HashMap(); - private SlcExecutionStep currentStep = null; + // private SlcExecutionStep currentStep = null; + private boolean currentStepNotified = true; public void init(Project project) { if (this.project != null) { @@ -72,12 +73,13 @@ public class SlcExecutionBuildListener extends AppenderSkeleton implements public void messageLogged(BuildEvent event) { 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? @@ -94,23 +96,24 @@ public class SlcExecutionBuildListener extends AppenderSkeleton implements public void taskStarted(BuildEvent event) { 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"); + slcExecution.getSteps().add( + new SlcExecutionStep("LOG", "Task " + + event.getTask().getTaskName() + " started")); + currentStepNotified = false; } public void taskFinished(BuildEvent event) { 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) { + slcExecution.currentStep().addLog( + "Task " + event.getTask().getTaskName() + " finished"); + notifyStep(slcExecution, slcExecution.currentStep()); + currentStepNotified = true; } } @@ -129,49 +132,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 +176,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? } diff --git a/org.argeo.slc.core/src/main/java/org/argeo/slc/core/process/SlcExecution.java b/org.argeo.slc.core/src/main/java/org/argeo/slc/core/process/SlcExecution.java index 0f2d1b66c..5b9b995cd 100644 --- a/org.argeo.slc.core/src/main/java/org/argeo/slc/core/process/SlcExecution.java +++ b/org.argeo.slc.core/src/main/java/org/argeo/slc/core/process/SlcExecution.java @@ -68,6 +68,13 @@ public class SlcExecution { this.status = status; } + public SlcExecutionStep currentStep() { + if (steps.size() > 0) + return steps.get(steps.size() - 1); + else + return null; + } + @Override public boolean equals(Object obj) { if (obj instanceof SlcExecution) {