]> git.argeo.org Git - gpl/argeo-slc.git/commitdiff
Various enhancements
authorMathieu Baudier <mbaudier@argeo.org>
Mon, 5 May 2008 16:45:42 +0000 (16:45 +0000)
committerMathieu Baudier <mbaudier@argeo.org>
Mon, 5 May 2008 16:45:42 +0000 (16:45 +0000)
git-svn-id: https://svn.argeo.org/slc/trunk@1131 4cfe0d0a-d680-48aa-b62c-e0a02a3f76cc

org.argeo.slc.core/src/main/java/org/argeo/slc/ant/AntRegistryUtil.java
org.argeo.slc.core/src/main/java/org/argeo/slc/core/process/WebServiceSlcExecutionNotifier.java
org.argeo.slc.core/src/main/java/org/argeo/slc/core/test/tree/WebServiceTreeTestResultNotifier.java
org.argeo.slc.core/src/main/java/org/argeo/slc/ws/client/WebServiceUtils.java
org.argeo.slc.core/src/main/resources/org/argeo/slc/castor/spring/applicationContext.xml
org.argeo.slc.core/src/test/java/org/argeo/slc/ws/TreeTestResultWsIntegrationTest.java
org.argeo.slc.core/src/test/resources/org/argeo/slc/ws/result.xml

index f9928708a23e20086301f8a742e6a384813212d3..6e6655d9153759cc0d998a5620e675df619e6340 100644 (file)
@@ -113,6 +113,7 @@ public class AntRegistryUtil {
                        p.executeTarget(target != null ? target : p.getDefaultTarget());\r
                } catch (Throwable e) {\r
                        exception = e;\r
+                       log.error("Exception when running Ant: ",e);\r
                } finally {\r
                        p.fireBuildFinished(exception);\r
                }\r
index 4befbe6a20d52db7c48831c692ec453780ef9927..9692344877fde1bdbecc46ce750bc858464acf53 100644 (file)
@@ -2,6 +2,7 @@ package org.argeo.slc.core.process;
 \r
 import java.util.List;\r
 \r
+import org.springframework.ws.client.WebServiceIOException;\r
 import org.springframework.ws.client.core.WebServiceTemplate;\r
 import org.springframework.ws.soap.client.SoapFaultClientException;\r
 \r
@@ -18,7 +19,12 @@ public class WebServiceSlcExecutionNotifier implements SlcExecutionNotifier {
 \r
        private Log log = LogFactory.getLog(getClass());\r
 \r
+       private Boolean cannotConnect = false;\r
+\r
        public void newExecution(SlcExecution slcExecution) {\r
+               if (cannotConnect)\r
+                       return;\r
+\r
                SlcExecutionRequest req = new SlcExecutionRequest();\r
                req.setSlcExecution(slcExecution);\r
                try {\r
@@ -28,10 +34,15 @@ public class WebServiceSlcExecutionNotifier implements SlcExecutionNotifier {
                                                + slcExecution.getUuid());\r
                } catch (SoapFaultClientException e) {\r
                        WebServiceUtils.manageSoapException(e);\r
+               } catch (WebServiceIOException e) {\r
+                       manageIoException(e);\r
                }\r
        }\r
 \r
        public void updateExecution(SlcExecution slcExecution) {\r
+               if (cannotConnect)\r
+                       return;\r
+\r
                SlcExecutionRequest req = new SlcExecutionRequest();\r
                req.setSlcExecution(slcExecution);\r
                try {\r
@@ -41,11 +52,16 @@ public class WebServiceSlcExecutionNotifier implements SlcExecutionNotifier {
                                                + slcExecution.getUuid());\r
                } catch (SoapFaultClientException e) {\r
                        WebServiceUtils.manageSoapException(e);\r
+               } catch (WebServiceIOException e) {\r
+                       manageIoException(e);\r
                }\r
        }\r
 \r
        public void updateStatus(SlcExecution slcExecution, String oldStatus,\r
                        String newStatus) {\r
+               if (cannotConnect)\r
+                       return;\r
+\r
                SlcExecutionStatusRequest req = new SlcExecutionStatusRequest(\r
                                slcExecution.getUuid(), newStatus);\r
                try {\r
@@ -55,11 +71,16 @@ public class WebServiceSlcExecutionNotifier implements SlcExecutionNotifier {
                                                + slcExecution.getUuid());\r
                } catch (SoapFaultClientException e) {\r
                        WebServiceUtils.manageSoapException(e);\r
+               } catch (WebServiceIOException e) {\r
+                       manageIoException(e);\r
                }\r
        }\r
 \r
        public void addSteps(SlcExecution slcExecution,\r
                        List<SlcExecutionStep> additionalSteps) {\r
+               if (cannotConnect)\r
+                       return;\r
+\r
                SlcExecutionStepsRequest req = new SlcExecutionStepsRequest();\r
                req.setSlcExecutionUuid(slcExecution.getUuid());\r
                req.setSteps(additionalSteps);\r
@@ -76,6 +97,8 @@ public class WebServiceSlcExecutionNotifier implements SlcExecutionNotifier {
                                                + slcExecution.getUuid());\r
                } catch (SoapFaultClientException e) {\r
                        WebServiceUtils.manageSoapException(e);\r
+               } catch (WebServiceIOException e) {\r
+                       manageIoException(e);\r
                }\r
        }\r
 \r
@@ -83,4 +106,12 @@ public class WebServiceSlcExecutionNotifier implements SlcExecutionNotifier {
                this.template = template;\r
        }\r
 \r
+       protected void manageIoException(WebServiceIOException e) {\r
+               if (!cannotConnect) {\r
+                       log.error("Cannot connect to " + template.getDefaultUri()\r
+                                       + ". Won't try again.", e);\r
+                       cannotConnect = true;\r
+               }\r
+       }\r
+\r
 }\r
index 7ca2f7da041de94fdc0b2b0c295b3b986e21355f..6cfd4da61b964d4bb8163903b7c579013aba83df 100644 (file)
@@ -1,5 +1,6 @@
 package org.argeo.slc.core.test.tree;\r
 \r
+import org.springframework.ws.client.WebServiceIOException;\r
 import org.springframework.ws.client.core.WebServiceTemplate;\r
 import org.springframework.ws.soap.client.SoapFaultClientException;\r
 \r
@@ -20,11 +21,16 @@ public class WebServiceTreeTestResultNotifier implements
 \r
        private Log log = LogFactory.getLog(getClass());\r
 \r
+       private Boolean cannotConnect = false;\r
+\r
        public void resultPartAdded(TreeTestResult testResult,\r
                        TestResultPart testResultPart) {\r
                if (onlyOnClose)\r
                        return;\r
 \r
+               if (cannotConnect)\r
+                       return;\r
+\r
                try {\r
                        if (testResult.getResultParts().size() == 1\r
                                        && testResult.getResultParts().values().iterator().next()\r
@@ -48,10 +54,16 @@ public class WebServiceTreeTestResultNotifier implements
                        }\r
                } catch (SoapFaultClientException e) {\r
                        WebServiceUtils.manageSoapException(e);\r
+\r
+               } catch (WebServiceIOException e) {\r
+                       manageIoException(e);\r
                }\r
        }\r
 \r
        public void close(TreeTestResult testResult) {\r
+               if (cannotConnect)\r
+                       return;\r
+\r
                try {\r
                        if (onlyOnClose) {\r
                                CreateTreeTestResultRequest req = new CreateTreeTestResultRequest(\r
@@ -75,8 +87,9 @@ public class WebServiceTreeTestResultNotifier implements
                        }\r
                } catch (SoapFaultClientException e) {\r
                        WebServiceUtils.manageSoapException(e);\r
+               } catch (WebServiceIOException e) {\r
+                       manageIoException(e);\r
                }\r
-\r
        }\r
 \r
        public void setTemplate(WebServiceTemplate template) {\r
@@ -86,4 +99,12 @@ public class WebServiceTreeTestResultNotifier implements
        public void setOnlyOnClose(Boolean onlyOnClose) {\r
                this.onlyOnClose = onlyOnClose;\r
        }\r
+\r
+       protected void manageIoException(WebServiceIOException e) {\r
+               if (!cannotConnect) {\r
+                       log.error("Cannot connect to " + template.getDefaultUri()\r
+                                       + ". Won't try again.", e);\r
+                       cannotConnect = true;\r
+               }\r
+       }\r
 }\r
index 9bcd6e3f653a31b3e04e472e6f7cb16bc2e86f9d..d37a27efea7bdd27347c5e6c68a2c968e8f2f26c 100644 (file)
@@ -18,8 +18,22 @@ import org.apache.commons.logging.LogFactory;
 public abstract class WebServiceUtils {\r
        private final static Log log = LogFactory.getLog(WebServiceUtils.class);\r
 \r
-       public static Object marshalSendAndReceive(WebServiceTemplate template,\r
+       public static Object marshalSendAndReceiveSafe(WebServiceTemplate template,\r
                        Object req) {\r
+               try {\r
+                       Object resp = marshalSendAndReceive(template, req);\r
+                       return resp;\r
+               } catch (Exception e) {\r
+                       log.error("Cannot send web servicerequest: "+e.getMessage());\r
+                       if(log.isDebugEnabled()){\r
+                               log.debug("Webservice exception details: ",e);\r
+                       }\r
+                       return null;\r
+               }\r
+       }\r
+\r
+       public static Object marshalSendAndReceive(\r
+                       WebServiceTemplate template, Object req) {\r
                if (log.isTraceEnabled()) {\r
                        try {\r
                                StringResult result = new StringResult();\r
index 3d0c03bad4e8a047f248c11296b2e2d70af5e5e1..068d773fba867dcde769c2b8dd5b3b4ab2e6f2e4 100644 (file)
                                </value>\r
                        </list>\r
                </property>\r
-               <property name="whitespacePreserve" value="true"/>\r
+               <property name="whitespacePreserve" value="true" />\r
        </bean>\r
 \r
+       <bean id="slcDefault.castor.xsltReportGenerator"\r
+               class="org.argeo.slc.core.test.tree.XsltReportGenerator"\r
+               init-method="init">\r
+               <property name="xsltStyleSheet"\r
+                       value="classpath:/org/argeo/slc/core/test/tree/basicReport.xslt" />\r
+               <property name="marshaller" ref="slcDefault.castor.marshaller" />\r
+               <property name="logXml" value="false" />\r
+               <!-- \r
+                       <property name="outputDir" value="D:\dev\test\SLC\SlcReports" />\r
+               -->\r
+       </bean>\r
+\r
+\r
 </beans>\r
index 55819e65fadd4e098d95ed12d3379d75e7482bf9..6e6ffa1765fc1115626a8d517db77b4cf4d90263 100644 (file)
@@ -21,6 +21,7 @@ public class TreeTestResultWsIntegrationTest extends AbstractSpringTestCase {
                WebServiceTemplate template = getBean(WebServiceTemplate.class);
                CreateTreeTestResultRequest req = new CreateTreeTestResultRequest(
                                createCompleteTreeTestResult());
+               req.getTreeTestResult().close();// in order to avoid unclosed in test db
 
                log.info("Send CreateTreeTestResultRequest for result "
                                + req.getTreeTestResult().getUuid());
@@ -32,6 +33,7 @@ public class TreeTestResultWsIntegrationTest extends AbstractSpringTestCase {
        public void testResultPartRequest() {
                WebServiceTemplate template = getBean(WebServiceTemplate.class);
                TreeTestResult ttr = createCompleteTreeTestResult();
+               ttr.close();// in order to avoid unclosed in test db
                CreateTreeTestResultRequest reqCreate = new CreateTreeTestResultRequest(
                                ttr);
                log.info("Send CreateTreeTestResultRequest for result "
index f2d660caceb4e2dda24ec4ab8eeb3df170aeff9d..ce5442d5e2d4efb97f915d3ac6e7c1f7b6f1a6f5 100644 (file)
                        <list merge="true">\r
                                <ref\r
                                        bean="slcDefault.ws.client.treeTestResultWsNotfier" />\r
-                               <ref bean="xsltReportGenerator" />\r
+                               <ref bean="slcDefault.castor.xsltReportGenerator" />\r
                        </list>\r
                </property>\r
        </bean>\r
 \r
-       <bean id="xsltReportGenerator"\r
-               class="org.argeo.slc.core.test.tree.XsltReportGenerator"\r
-               init-method="init">\r
-               <property name="xsltStyleSheet"\r
-                       value="classpath:/org/argeo/slc/core/test/tree/basicReport.xslt" />\r
-               <property name="marshaller" ref="slcDefault.castor.marshaller" />\r
-               <property name="logXml" value="false" />\r
-               <!-- \r
-               <property name="outputDir" value="D:\dev\test\SLC\SlcReports" />\r
-               -->\r
-       </bean>\r
 </beans>
\ No newline at end of file