From: Mathieu Baudier Date: Sun, 4 May 2008 19:07:07 +0000 (+0000) Subject: Improve notifications to web services X-Git-Tag: argeo-slc-2.1.7~2926 X-Git-Url: http://git.argeo.org/?a=commitdiff_plain;h=f04591a97eb344c6c48357976d595f0e12789afa;p=gpl%2Fargeo-slc.git Improve notifications to web services git-svn-id: https://svn.argeo.org/slc/trunk@1114 4cfe0d0a-d680-48aa-b62c-e0a02a3f76cc --- diff --git a/org.argeo.slc.core/src/main/java/org/argeo/slc/core/process/WebServiceSlcExecutionNotifier.java b/org.argeo.slc.core/src/main/java/org/argeo/slc/core/process/WebServiceSlcExecutionNotifier.java index 887a014ce..09e37122d 100644 --- a/org.argeo.slc.core/src/main/java/org/argeo/slc/core/process/WebServiceSlcExecutionNotifier.java +++ b/org.argeo.slc.core/src/main/java/org/argeo/slc/core/process/WebServiceSlcExecutionNotifier.java @@ -17,47 +17,47 @@ public class WebServiceSlcExecutionNotifier implements SlcExecutionNotifier { private Log log = LogFactory.getLog(getClass()); - public void addSteps(SlcExecution slcExecution, - List additionalSteps) { - SlcExecutionStepsRequest req = new SlcExecutionStepsRequest(); - req.setSlcExecutionUuid(slcExecution.getUuid()); - req.setSteps(additionalSteps); - if (log.isTraceEnabled()) { - for (SlcExecutionStep step : additionalSteps) { - log.trace("Step " + step.getUuid() + ": " + step.logAsString()); - } - } - + public void newExecution(SlcExecution slcExecution) { + SlcExecutionRequest req = new SlcExecutionRequest(); + req.setSlcExecution(slcExecution); try { WebServiceUtils.marshalSendAndReceive(template, req); - if (log.isDebugEnabled()) - log.debug("Added steps to slc execution " + if (log.isTraceEnabled()) + log.trace("Notified creation of slc execution " + slcExecution.getUuid()); } catch (SoapFaultClientException e) { WebServiceUtils.manageSoapException(e); } } - public void newExecution(SlcExecution slcExecution) { + public void updateExecution(SlcExecution slcExecution) { SlcExecutionRequest req = new SlcExecutionRequest(); req.setSlcExecution(slcExecution); try { WebServiceUtils.marshalSendAndReceive(template, req); - if (log.isDebugEnabled()) - log.debug("Notified creation of slc execution " + if (log.isTraceEnabled()) + log.trace("Notified update of slc execution " + slcExecution.getUuid()); } catch (SoapFaultClientException e) { WebServiceUtils.manageSoapException(e); } } - public void updateExecution(SlcExecution slcExecution) { - SlcExecutionRequest req = new SlcExecutionRequest(); - req.setSlcExecution(slcExecution); + public void addSteps(SlcExecution slcExecution, + List additionalSteps) { + SlcExecutionStepsRequest req = new SlcExecutionStepsRequest(); + req.setSlcExecutionUuid(slcExecution.getUuid()); + req.setSteps(additionalSteps); + if (log.isTraceEnabled()) { + for (SlcExecutionStep step : additionalSteps) { + log.trace("Step " + step.getUuid() + ": " + step.logAsString()); + } + } + try { WebServiceUtils.marshalSendAndReceive(template, req); - if (log.isDebugEnabled()) - log.debug("Notified update of slc execution " + if (log.isTraceEnabled()) + log.trace("Added steps to slc execution " + slcExecution.getUuid()); } catch (SoapFaultClientException e) { WebServiceUtils.manageSoapException(e); diff --git a/org.argeo.slc.core/src/main/java/org/argeo/slc/core/test/tree/WebServiceSlcExecutionNotifier.java b/org.argeo.slc.core/src/main/java/org/argeo/slc/core/test/tree/WebServiceSlcExecutionNotifier.java deleted file mode 100644 index 0d51d2237..000000000 --- a/org.argeo.slc.core/src/main/java/org/argeo/slc/core/test/tree/WebServiceSlcExecutionNotifier.java +++ /dev/null @@ -1,89 +0,0 @@ -package org.argeo.slc.core.test.tree; - -import java.util.List; - -import org.springframework.ws.client.core.WebServiceTemplate; -import org.springframework.ws.soap.client.SoapFaultClientException; - -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; - -import org.argeo.slc.core.test.TestResultListener; -import org.argeo.slc.core.test.TestResultPart; -import org.argeo.slc.dao.test.tree.TreeTestResultDao; -import org.argeo.slc.msg.process.SlcExecutionRequest; -import org.argeo.slc.msg.process.SlcExecutionStepsRequest; -import org.argeo.slc.msg.test.tree.CloseTreeTestResultRequest; -import org.argeo.slc.msg.test.tree.CreateTreeTestResultRequest; -import org.argeo.slc.msg.test.tree.ResultPartRequest; -import org.argeo.slc.ws.client.WebServiceUtils; - -public class WebServiceSlcExecutionNotifier implements - TestResultListener { - private WebServiceTemplate template; - private Boolean onlyOnClose = false; - - private Log log = LogFactory.getLog(getClass()); - - public void resultPartAdded(TreeTestResult testResult, - TestResultPart testResultPart) { - try { - if (testResult.getResultParts().size() == 1) { - CreateTreeTestResultRequest req = new CreateTreeTestResultRequest( - testResult); - - if (log.isDebugEnabled()) - log.debug("Send create result request for result " - + testResult.getUuid()); - - WebServiceUtils.marshalSendAndReceive(template, req); - } else { - ResultPartRequest req = new ResultPartRequest(testResult); - - if (log.isDebugEnabled()) - log.debug("Send result parts for result " - + testResult.getUuid()); - - WebServiceUtils.marshalSendAndReceive(template, req); - } - } catch (SoapFaultClientException e) { - WebServiceUtils.manageSoapException(e); - } - } - - public void close(TreeTestResult testResult) { - try { - if (onlyOnClose) { - CreateTreeTestResultRequest req = new CreateTreeTestResultRequest( - testResult); - - if (log.isDebugEnabled()) - log.debug("Send create result request for result " - + testResult.getUuid()); - - WebServiceUtils.marshalSendAndReceive(template, req); - } else { - CloseTreeTestResultRequest req = new CloseTreeTestResultRequest( - testResult); - - if (log.isDebugEnabled()) - log.debug("Send close result request for result " - + testResult.getUuid()); - - WebServiceUtils.marshalSendAndReceive(template, req); - - } - } catch (SoapFaultClientException e) { - WebServiceUtils.manageSoapException(e); - } - - } - - public void setTemplate(WebServiceTemplate template) { - this.template = template; - } - - public void setOnlyOnClose(Boolean onlyOnClose) { - this.onlyOnClose = onlyOnClose; - } -} diff --git a/org.argeo.slc.core/src/main/java/org/argeo/slc/core/test/tree/WebServiceTreeTestResultNotifier.java b/org.argeo.slc.core/src/main/java/org/argeo/slc/core/test/tree/WebServiceTreeTestResultNotifier.java new file mode 100644 index 000000000..698c24cb7 --- /dev/null +++ b/org.argeo.slc.core/src/main/java/org/argeo/slc/core/test/tree/WebServiceTreeTestResultNotifier.java @@ -0,0 +1,87 @@ +package org.argeo.slc.core.test.tree; + +import org.springframework.ws.client.core.WebServiceTemplate; +import org.springframework.ws.soap.client.SoapFaultClientException; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; + +import org.argeo.slc.core.test.TestResultListener; +import org.argeo.slc.core.test.TestResultPart; +import org.argeo.slc.msg.test.tree.CloseTreeTestResultRequest; +import org.argeo.slc.msg.test.tree.CreateTreeTestResultRequest; +import org.argeo.slc.msg.test.tree.ResultPartRequest; +import org.argeo.slc.ws.client.WebServiceUtils; + +public class WebServiceTreeTestResultNotifier implements + TestResultListener { + private WebServiceTemplate template; + private Boolean onlyOnClose = false; + + private Log log = LogFactory.getLog(getClass()); + + public void resultPartAdded(TreeTestResult testResult, + TestResultPart testResultPart) { + if (onlyOnClose) + return; + + try { + if (testResult.getResultParts().size() == 1) { + CreateTreeTestResultRequest req = new CreateTreeTestResultRequest( + testResult); + + if (log.isDebugEnabled()) + log.debug("Send create result request for result " + + testResult.getUuid()); + + WebServiceUtils.marshalSendAndReceive(template, req); + } else { + ResultPartRequest req = new ResultPartRequest(testResult); + + if (log.isDebugEnabled()) + log.debug("Send result parts for result " + + testResult.getUuid()); + + WebServiceUtils.marshalSendAndReceive(template, req); + } + } catch (SoapFaultClientException e) { + WebServiceUtils.manageSoapException(e); + } + } + + public void close(TreeTestResult testResult) { + try { + if (onlyOnClose) { + CreateTreeTestResultRequest req = new CreateTreeTestResultRequest( + testResult); + + if (log.isDebugEnabled()) + log.debug("Send create result request for result " + + testResult.getUuid()); + + WebServiceUtils.marshalSendAndReceive(template, req); + } else { + CloseTreeTestResultRequest req = new CloseTreeTestResultRequest( + testResult); + + if (log.isDebugEnabled()) + log.debug("Send close result request for result " + + testResult.getUuid()); + + WebServiceUtils.marshalSendAndReceive(template, req); + + } + } catch (SoapFaultClientException e) { + WebServiceUtils.manageSoapException(e); + } + + } + + public void setTemplate(WebServiceTemplate template) { + this.template = template; + } + + public void setOnlyOnClose(Boolean onlyOnClose) { + this.onlyOnClose = onlyOnClose; + } +} diff --git a/org.argeo.slc.core/src/test/resources/org/argeo/slc/ant/build.xml b/org.argeo.slc.core/src/test/resources/org/argeo/slc/ant/build.xml index 950e87024..f2ea5c52c 100644 --- a/org.argeo.slc.core/src/test/resources/org/argeo/slc/ant/build.xml +++ b/org.argeo.slc.core/src/test/resources/org/argeo/slc/ant/build.xml @@ -12,5 +12,7 @@ + + \ No newline at end of file diff --git a/org.argeo.slc.core/src/test/resources/org/argeo/slc/ws/result.xml b/org.argeo.slc.core/src/test/resources/org/argeo/slc/ws/result.xml index 27eb95534..b2cb1ff94 100644 --- a/org.argeo.slc.core/src/test/resources/org/argeo/slc/ws/result.xml +++ b/org.argeo.slc.core/src/test/resources/org/argeo/slc/ws/result.xml @@ -20,9 +20,10 @@ + class="org.argeo.slc.core.test.tree.WebServiceTreeTestResultNotifier"> + \ No newline at end of file