]> git.argeo.org Git - gpl/argeo-slc.git/commitdiff
Merge web service sandbox
authorMathieu Baudier <mbaudier@argeo.org>
Mon, 21 Apr 2008 16:58:54 +0000 (16:58 +0000)
committerMathieu Baudier <mbaudier@argeo.org>
Mon, 21 Apr 2008 16:58:54 +0000 (16:58 +0000)
git-svn-id: https://svn.argeo.org/slc/trunk@1012 4cfe0d0a-d680-48aa-b62c-e0a02a3f76cc

14 files changed:
org.argeo.slc.core/.classpath
org.argeo.slc.core/.project
org.argeo.slc.core/.settings/org.eclipse.wst.common.component [new file with mode: 0644]
org.argeo.slc.core/.settings/org.eclipse.wst.common.project.facet.core.xml [new file with mode: 0644]
org.argeo.slc.core/.settings/org.eclipse.wst.validation.prefs [new file with mode: 0644]
org.argeo.slc.core/pom.xml
org.argeo.slc.core/src/main/java/org/argeo/slc/core/process/SlcExecution.java [new file with mode: 0644]
org.argeo.slc.core/src/main/java/org/argeo/slc/core/process/SlcExecutionStep.java [new file with mode: 0644]
org.argeo.slc.core/src/main/java/org/argeo/slc/msg/process/SlcExecutionRequest.java [new file with mode: 0644]
org.argeo.slc.core/src/main/java/org/argeo/slc/msg/process/SlcExecutionStepsRequest.java [new file with mode: 0644]
org.argeo.slc.core/src/main/resources/org/argeo/slc/castor/process/mapping.xml [new file with mode: 0644]
org.argeo.slc.core/src/test/java/org/argeo/slc/core/process/SlcExecutionCastorTest.java [new file with mode: 0644]
org.argeo.slc.core/src/test/java/org/argeo/slc/core/process/SlcExecutionWsIntegrationTest.java [new file with mode: 0644]
org.argeo.slc.core/src/test/resources/org/argeo/slc/core/process/applicationContext.xml [new file with mode: 0644]

index cd4156453a1205854888b8835e2cf846eba176d0..fe44ac962f384111dd66bb9d3d1c72500d07dab7 100644 (file)
@@ -7,5 +7,6 @@
        <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>\r
        <classpathentry kind="con" path="org.maven.ide.eclipse.MAVEN2_CLASSPATH_CONTAINER"/>\r
        <classpathentry kind="con" path="org.eclipse.jst.j2ee.internal.module.container"/>\r
        <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>\r
        <classpathentry kind="con" path="org.maven.ide.eclipse.MAVEN2_CLASSPATH_CONTAINER"/>\r
        <classpathentry kind="con" path="org.eclipse.jst.j2ee.internal.module.container"/>\r
+       <classpathentry kind="con" path="org.eclipse.jst.j2ee.internal.module.container"/>\r
        <classpathentry kind="output" path="target/classes"/>\r
 </classpath>\r
        <classpathentry kind="output" path="target/classes"/>\r
 </classpath>\r
index 15b8bfab0d487edb85130b8c4f5fa3bf7e9d2b7b..469224f877b8573f6fa40fd1592ec968059775ba 100644 (file)
@@ -5,6 +5,11 @@
        <projects>\r
        </projects>\r
        <buildSpec>\r
        <projects>\r
        </projects>\r
        <buildSpec>\r
+               <buildCommand>\r
+                       <name>org.eclipse.wst.common.project.facet.core.builder</name>\r
+                       <arguments>\r
+                       </arguments>\r
+               </buildCommand>\r
                <buildCommand>\r
                        <name>org.maven.ide.eclipse.maven2Builder</name>\r
                        <arguments>\r
                <buildCommand>\r
                        <name>org.maven.ide.eclipse.maven2Builder</name>\r
                        <arguments>\r
                        <arguments>\r
                        </arguments>\r
                </buildCommand>\r
                        <arguments>\r
                        </arguments>\r
                </buildCommand>\r
+               <buildCommand>\r
+                       <name>org.eclipse.wst.validation.validationbuilder</name>\r
+                       <arguments>\r
+                       </arguments>\r
+               </buildCommand>\r
        </buildSpec>\r
        <natures>\r
                <nature>org.eclipse.jdt.core.javanature</nature>\r
                <nature>org.maven.ide.eclipse.maven2Nature</nature>\r
        </buildSpec>\r
        <natures>\r
                <nature>org.eclipse.jdt.core.javanature</nature>\r
                <nature>org.maven.ide.eclipse.maven2Nature</nature>\r
+               <nature>org.eclipse.wst.common.project.facet.core.nature</nature>\r
+               <nature>org.eclipse.wst.common.modulecore.ModuleCoreNature</nature>\r
+               <nature>org.eclipse.jem.workbench.JavaEMFNature</nature>\r
        </natures>\r
 </projectDescription>\r
        </natures>\r
 </projectDescription>\r
diff --git a/org.argeo.slc.core/.settings/org.eclipse.wst.common.component b/org.argeo.slc.core/.settings/org.eclipse.wst.common.component
new file mode 100644 (file)
index 0000000..ecc11d8
--- /dev/null
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>\r
+<project-modules id="moduleCoreId" project-version="1.5.0">\r
+<wb-module deploy-name="org.argeo.slc.core">\r
+<wb-resource deploy-path="/" source-path="/src/main/java"/>\r
+<wb-resource deploy-path="/" source-path="/src/main/resources"/>\r
+<wb-resource deploy-path="/" source-path="/src/test/java"/>\r
+<wb-resource deploy-path="/" source-path="/src/test/resources"/>\r
+</wb-module>\r
+</project-modules>\r
diff --git a/org.argeo.slc.core/.settings/org.eclipse.wst.common.project.facet.core.xml b/org.argeo.slc.core/.settings/org.eclipse.wst.common.project.facet.core.xml
new file mode 100644 (file)
index 0000000..55c9972
--- /dev/null
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>\r
+<faceted-project>\r
+  <fixed facet="jst.utility"/>\r
+  <fixed facet="jst.java"/>\r
+  <installed facet="jst.java" version="5.0"/>\r
+  <installed facet="jst.utility" version="1.0"/>\r
+</faceted-project>\r
diff --git a/org.argeo.slc.core/.settings/org.eclipse.wst.validation.prefs b/org.argeo.slc.core/.settings/org.eclipse.wst.validation.prefs
new file mode 100644 (file)
index 0000000..ab69294
--- /dev/null
@@ -0,0 +1,6 @@
+#Mon Apr 21 18:01:59 CEST 2008\r
+DELEGATES_PREFERENCE=delegateValidatorListorg.eclipse.wst.xsd.core.internal.validation.eclipse.XSDDelegatingValidator\=org.eclipse.wst.xsd.core.internal.validation.eclipse.Validator;org.eclipse.wst.wsdl.validation.internal.eclipse.WSDLDelegatingValidator\=org.eclipse.wst.wsdl.validation.internal.eclipse.Validator;\r
+USER_BUILD_PREFERENCE=enabledBuildValidatorListorg.eclipse.wst.xsd.core.internal.validation.eclipse.XSDDelegatingValidator;org.eclipse.wst.wsdl.validation.internal.eclipse.WSDLDelegatingValidator;org.eclipse.jst.jsp.core.internal.validation.JSPContentValidator;org.eclipse.wst.xml.core.internal.validation.eclipse.Validator;org.eclipse.jst.jsf.validation.internal.appconfig.AppConfigValidator;org.eclipse.wst.dtd.core.internal.validation.eclipse.Validator;org.eclipse.wst.wsi.ui.internal.WSIMessageValidator;org.eclipse.jst.jsp.core.internal.validation.JSPBatchValidator;org.eclipse.jst.jsf.validation.internal.JSPSemanticsValidator;\r
+USER_MANUAL_PREFERENCE=enabledManualValidatorListorg.eclipse.wst.xsd.core.internal.validation.eclipse.XSDDelegatingValidator;org.eclipse.wst.wsdl.validation.internal.eclipse.WSDLDelegatingValidator;org.eclipse.jst.jsp.core.internal.validation.JSPContentValidator;org.eclipse.wst.xml.core.internal.validation.eclipse.Validator;org.eclipse.jst.jsf.validation.internal.appconfig.AppConfigValidator;org.eclipse.wst.dtd.core.internal.validation.eclipse.Validator;org.eclipse.wst.wsi.ui.internal.WSIMessageValidator;org.eclipse.jst.jsp.core.internal.validation.JSPBatchValidator;org.eclipse.jst.jsf.validation.internal.JSPSemanticsValidator;\r
+USER_PREFERENCE=overrideGlobalPreferencestruedisableAllValidationfalseversion1.1.102.v200709122200\r
+eclipse.preferences.version=1\r
index 5535e4cef151e10ab782ffc96b9f5af5cc92af58..ec7e4afae924f1504734c5f1e3fd9827b007ff55 100644 (file)
@@ -67,7 +67,8 @@
                <dependency>
                        <groupId>org.hibernate</groupId>
                        <artifactId>hibernate</artifactId>
                <dependency>
                        <groupId>org.hibernate</groupId>
                        <artifactId>hibernate</artifactId>
-               </dependency>
+               </dependency>\r
+               
                <dependency>
                        <groupId>org.springframework</groupId>
                        <artifactId>spring-context</artifactId>
                <dependency>
                        <groupId>org.springframework</groupId>
                        <artifactId>spring-context</artifactId>
                <dependency>
                        <groupId>org.springframework</groupId>
                        <artifactId>spring-jdbc</artifactId>
                <dependency>
                        <groupId>org.springframework</groupId>
                        <artifactId>spring-jdbc</artifactId>
-               </dependency>
+               </dependency>\r
+                               <dependency>\r
+                       <groupId>org.springframework.ws</groupId>\r
+                       <artifactId>spring-ws-core</artifactId>\r
+               </dependency>\r
+               <dependency>\r
+                       <groupId>org.springframework.ws</groupId>\r
+                       <artifactId>spring-oxm</artifactId>\r
+               </dependency>\r
+\r
+               <dependency>\r
+                       <groupId>org.codehaus.castor</groupId>\r
+                       <artifactId>castor</artifactId>\r
+               </dependency>\r
+               <dependency>\r
+                       <groupId>xerces</groupId>\r
+                       <artifactId>xercesImpl</artifactId>\r
+               </dependency>\r
+\r
+               <dependency>\r
+                       <groupId>javax.xml.soap</groupId>\r
+                       <artifactId>saaj-api</artifactId>\r
+               </dependency>\r
+               <dependency>\r
+                       <groupId>com.sun.xml.messaging.saaj</groupId>\r
+                       <artifactId>saaj-impl</artifactId>\r
+               </dependency>\r
+               
                <dependency>
                        <groupId>org.apache.ant</groupId>
                        <artifactId>ant</artifactId>
                <dependency>
                        <groupId>org.apache.ant</groupId>
                        <artifactId>ant</artifactId>
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
new file mode 100644 (file)
index 0000000..1450cda
--- /dev/null
@@ -0,0 +1,65 @@
+package org.argeo.slc.core.process;\r
+\r
+import java.util.List;\r
+import java.util.Vector;\r
+\r
+public class SlcExecution {\r
+       private String uuid;\r
+       private String host;\r
+       private String path;\r
+       private String type;\r
+       private String status;\r
+       \r
+       private List<SlcExecutionStep> steps = new Vector<SlcExecutionStep>();\r
+       \r
+       \r
+\r
+       public List<SlcExecutionStep> getSteps() {\r
+               return steps;\r
+       }\r
+\r
+       public void setSteps(List<SlcExecutionStep> steps) {\r
+               this.steps = steps;\r
+       }\r
+\r
+       public String getUuid() {\r
+               return uuid;\r
+       }\r
+\r
+       public void setUuid(String uuid) {\r
+               this.uuid = uuid;\r
+       }\r
+\r
+       public String getHost() {\r
+               return host;\r
+       }\r
+\r
+       public void setHost(String host) {\r
+               this.host = host;\r
+       }\r
+\r
+       public String getPath() {\r
+               return path;\r
+       }\r
+\r
+       public void setPath(String path) {\r
+               this.path = path;\r
+       }\r
+\r
+       public String getType() {\r
+               return type;\r
+       }\r
+\r
+       public void setType(String type) {\r
+               this.type = type;\r
+       }\r
+\r
+       public String getStatus() {\r
+               return status;\r
+       }\r
+\r
+       public void setStatus(String status) {\r
+               this.status = status;\r
+       }\r
+\r
+}\r
diff --git a/org.argeo.slc.core/src/main/java/org/argeo/slc/core/process/SlcExecutionStep.java b/org.argeo.slc.core/src/main/java/org/argeo/slc/core/process/SlcExecutionStep.java
new file mode 100644 (file)
index 0000000..0237e47
--- /dev/null
@@ -0,0 +1,57 @@
+package org.argeo.slc.core.process;\r
+\r
+import java.io.IOException;\r
+import java.io.StringReader;\r
+import java.io.StringWriter;\r
+import java.util.Date;\r
+import java.util.List;\r
+import java.util.Vector;\r
+\r
+import org.apache.commons.io.IOUtils;\r
+\r
+public class SlcExecutionStep {\r
+       private String type;\r
+       private Date begin;\r
+       private List<String> logLines = new Vector<String>();\r
+\r
+       public String getType() {\r
+               return type;\r
+       }\r
+\r
+       public void setType(String type) {\r
+               this.type = type;\r
+       }\r
+\r
+       public Date getBegin() {\r
+               return begin;\r
+       }\r
+\r
+       public void setBegin(Date begin) {\r
+               this.begin = begin;\r
+       }\r
+\r
+       public List<String> getLogLines() {\r
+               return logLines;\r
+       }\r
+\r
+       public void setLogLines(List<String> logLines) {\r
+               this.logLines = logLines;\r
+       }\r
+\r
+       public String logAsString() {\r
+               StringWriter writer = new StringWriter();\r
+               String log = writer.toString();\r
+               IOUtils.closeQuietly(writer);\r
+               return log;\r
+       }\r
+\r
+       public void addLog(String log) {\r
+               try {\r
+                       List<String> lines = IOUtils.readLines(new StringReader(log));\r
+                       logLines.addAll(lines);\r
+               } catch (IOException e) {\r
+                       throw new RuntimeException("Cannot add log", e);\r
+               }\r
+       }\r
+\r
+}\r
diff --git a/org.argeo.slc.core/src/main/java/org/argeo/slc/msg/process/SlcExecutionRequest.java b/org.argeo.slc.core/src/main/java/org/argeo/slc/msg/process/SlcExecutionRequest.java
new file mode 100644 (file)
index 0000000..84d5826
--- /dev/null
@@ -0,0 +1,16 @@
+package org.argeo.slc.msg.process;
+
+import org.argeo.slc.core.process.SlcExecution;
+
+public class SlcExecutionRequest {
+       private SlcExecution slcExecution;
+
+       public SlcExecution getSlcExecution() {
+               return slcExecution;
+       }
+
+       public void setSlcExecution(SlcExecution slcExecution) {
+               this.slcExecution = slcExecution;
+       }
+
+}
diff --git a/org.argeo.slc.core/src/main/java/org/argeo/slc/msg/process/SlcExecutionStepsRequest.java b/org.argeo.slc.core/src/main/java/org/argeo/slc/msg/process/SlcExecutionStepsRequest.java
new file mode 100644 (file)
index 0000000..237f05f
--- /dev/null
@@ -0,0 +1,31 @@
+package org.argeo.slc.msg.process;\r
+\r
+import java.util.List;\r
+import java.util.Vector;\r
+\r
+import org.argeo.slc.core.process.SlcExecutionStep;\r
+\r
+public class SlcExecutionStepsRequest {\r
+       private String slcExecutionUuid;\r
+       private List<SlcExecutionStep> steps = new Vector<SlcExecutionStep>();\r
+\r
+       public String getSlcExecutionUuid() {\r
+               return slcExecutionUuid;\r
+       }\r
+\r
+       public void setSlcExecutionUuid(String slcExecutionUuid) {\r
+               this.slcExecutionUuid = slcExecutionUuid;\r
+       }\r
+\r
+       public List<SlcExecutionStep> getSteps() {\r
+               return steps;\r
+       }\r
+\r
+       public void setSteps(List<SlcExecutionStep> step) {\r
+               this.steps = step;\r
+       }\r
+\r
+       public void addStep(SlcExecutionStep step) {\r
+               steps.add(step);\r
+       }\r
+}\r
diff --git a/org.argeo.slc.core/src/main/resources/org/argeo/slc/castor/process/mapping.xml b/org.argeo.slc.core/src/main/resources/org/argeo/slc/castor/process/mapping.xml
new file mode 100644 (file)
index 0000000..0bfae59
--- /dev/null
@@ -0,0 +1,38 @@
+<?xml version="1.0"?>
+
+<!DOCTYPE mapping PUBLIC "-//EXOLAB/Castor Mapping DTD Version 1.0//EN" "http://castor.org/mapping.dtd">
+
+<mapping>
+       <description>Process objects XML mapping</description>
+
+       <class name="org.argeo.slc.msg.process.SlcExecutionStepsRequest"
+               auto-complete="true">
+               <map-to ns-uri="http://argeo.org/projects/slc/schemas" />
+               <field name="steps" collection="vector"
+                       type="org.argeo.slc.core.process.SlcExecutionStep">
+                       <bind-xml auto-naming="deriveByClass" location="steps" />
+               </field>
+       </class>
+
+       <class name="org.argeo.slc.msg.process.SlcExecutionRequest"
+               auto-complete="true">
+               <map-to ns-uri="http://argeo.org/projects/slc/schemas" />
+       </class>
+
+       <class name="org.argeo.slc.core.process.SlcExecution"
+               auto-complete="true">
+               <field name="uuid" identity="true">
+                       <bind-xml node="attribute" />
+               </field>
+               <field name="steps" collection="vector">
+                       <bind-xml auto-naming="deriveByClass" location="steps" />
+               </field>
+       </class>
+
+       <class name="org.argeo.slc.core.process.SlcExecutionStep"
+               auto-complete="true">
+               <field name="logLines" collection="vector" type="string">
+                       <bind-xml name="log-line" location="log-lines" />
+               </field>
+       </class>
+</mapping>
\ No newline at end of file
diff --git a/org.argeo.slc.core/src/test/java/org/argeo/slc/core/process/SlcExecutionCastorTest.java b/org.argeo.slc.core/src/test/java/org/argeo/slc/core/process/SlcExecutionCastorTest.java
new file mode 100644 (file)
index 0000000..6405ca7
--- /dev/null
@@ -0,0 +1,116 @@
+package org.argeo.slc.core.process;\r
+\r
+import java.io.IOException;\r
+import java.io.StringReader;\r
+import java.io.StringWriter;\r
+import java.text.SimpleDateFormat;\r
+import java.util.UUID;\r
+\r
+import javax.xml.transform.stream.StreamResult;\r
+import javax.xml.transform.stream.StreamSource;\r
+\r
+import org.apache.commons.io.IOUtils;\r
+import org.apache.commons.logging.Log;\r
+import org.apache.commons.logging.LogFactory;\r
+import org.argeo.slc.msg.process.SlcExecutionRequest;\r
+import org.argeo.slc.msg.process.SlcExecutionStepsRequest;\r
+import org.argeo.slc.unit.AbstractSpringTestCase;\r
+import org.springframework.oxm.Marshaller;\r
+import org.springframework.oxm.Unmarshaller;\r
+\r
+public class SlcExecutionCastorTest extends AbstractSpringTestCase {\r
+       private Log log = LogFactory.getLog(getClass());\r
+\r
+       public void testMarshalling() throws Exception {\r
+               Marshaller marshaller = getBean("marshaller");\r
+               Unmarshaller unmarshaller = getBean("marshaller");\r
+\r
+               SlcExecution slcExec = createSimpleSlcExecution();\r
+\r
+               SlcExecutionRequest msgSave = new SlcExecutionRequest();\r
+               msgSave.setSlcExecution(slcExec);\r
+\r
+               String msgSaveXml = marshallAndLog(marshaller, msgSave);\r
+\r
+               SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm");\r
+               SlcExecutionStep step0 = new SlcExecutionStep();\r
+               step0.setBegin(sdf.parse("2008-04-17 18:21"));\r
+               step0.setType("LOG");\r
+               step0.addLog("A log message\nand another line");\r
+\r
+               SlcExecutionStep step1 = new SlcExecutionStep();\r
+               step1.setBegin(sdf.parse("2008-04-17 18:25"));\r
+               step1.setType("LOG");\r
+               step1.addLog("A nother log message");\r
+\r
+               SlcExecutionStepsRequest msgNotif = new SlcExecutionStepsRequest();\r
+               msgNotif.addStep(step0);\r
+               msgNotif.addStep(step1);\r
+               msgNotif.setSlcExecutionUuid(slcExec.getUuid());\r
+\r
+               String msgNotifXml = marshallAndLog(marshaller, msgNotif);\r
+\r
+               SlcExecutionRequest msgSaveUnm = unmarshall(unmarshaller, msgSaveXml);\r
+               assertNotNull(msgSaveUnm);\r
+               assertSlcExecution(slcExec, msgSaveUnm.getSlcExecution());\r
+\r
+               SlcExecutionStepsRequest msgNotifUnm = unmarshall(unmarshaller,\r
+                               msgNotifXml);\r
+               assertNotNull(msgNotifUnm);\r
+               assertEquals(slcExec.getUuid(), msgNotifUnm.getSlcExecutionUuid());\r
+               assertEquals(2, msgNotifUnm.getSteps().size());\r
+               assertSlcExecutionStep(step0, msgNotifUnm.getSteps().get(0));\r
+               assertSlcExecutionStep(step1, msgNotifUnm.getSteps().get(1));\r
+\r
+               SlcExecution slcExecUnm = msgSaveUnm.getSlcExecution();\r
+               slcExecUnm.getSteps().addAll(msgNotifUnm.getSteps());\r
+\r
+               SlcExecutionRequest msgUpdate = new SlcExecutionRequest();\r
+               msgUpdate.setSlcExecution(slcExecUnm);\r
+               String msgUpdateXml = marshallAndLog(marshaller, msgUpdate);\r
+       }\r
+\r
+       private String marshallAndLog(Marshaller marshaller, Object obj)\r
+                       throws IOException {\r
+               StringWriter writer = new StringWriter();\r
+               marshaller.marshal(obj, new StreamResult(writer));\r
+               String xml = writer.toString();\r
+               log.info(xml);\r
+               IOUtils.closeQuietly(writer);\r
+               return xml;\r
+       }\r
+\r
+       private <T> T unmarshall(Unmarshaller unmarshaller, String xml)\r
+                       throws IOException {\r
+               StringReader reader = new StringReader(xml);\r
+               Object obj = unmarshaller.unmarshal(new StreamSource(reader));\r
+               IOUtils.closeQuietly(reader);\r
+               return (T) obj;\r
+       }\r
+\r
+       private void assertSlcExecution(SlcExecution expected, SlcExecution reached) {\r
+               assertNotNull(reached);\r
+               assertEquals(expected.getHost(), reached.getHost());\r
+               assertEquals(expected.getPath(), reached.getPath());\r
+               assertEquals(expected.getType(), reached.getType());\r
+               assertEquals(expected.getStatus(), reached.getStatus());\r
+       }\r
+\r
+       private void assertSlcExecutionStep(SlcExecutionStep expected,\r
+                       SlcExecutionStep reached) {\r
+               assertNotNull(reached);\r
+               assertEquals(expected.getType(), reached.getType());\r
+               assertEquals(expected.logAsString(), reached.logAsString());\r
+               assertEquals(expected.getBegin(), reached.getBegin());\r
+       }\r
+\r
+       public static SlcExecution createSimpleSlcExecution() {\r
+               SlcExecution slcExec = new SlcExecution();\r
+               slcExec.setUuid(UUID.randomUUID().toString());\r
+               slcExec.setHost("localhost");\r
+               slcExec.setPath("/test");\r
+               slcExec.setType("slcAnt");\r
+               slcExec.setStatus("STARTED");\r
+               return slcExec;\r
+       }\r
+}\r
diff --git a/org.argeo.slc.core/src/test/java/org/argeo/slc/core/process/SlcExecutionWsIntegrationTest.java b/org.argeo.slc.core/src/test/java/org/argeo/slc/core/process/SlcExecutionWsIntegrationTest.java
new file mode 100644 (file)
index 0000000..275c7aa
--- /dev/null
@@ -0,0 +1,26 @@
+package org.argeo.slc.core.process;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.argeo.slc.msg.process.SlcExecutionRequest;
+import org.argeo.slc.unit.AbstractSpringTestCase;
+import org.springframework.ws.client.core.WebServiceTemplate;
+
+public class SlcExecutionWsIntegrationTest extends AbstractSpringTestCase {
+       private Log log = LogFactory.getLog(getClass());
+
+       public void testSendSlcExecutionrequest() {
+               WebServiceTemplate template = getBean("webServiceTemplate");
+               SlcExecution slcExec = SlcExecutionCastorTest
+                               .createSimpleSlcExecution();
+
+               SlcExecutionRequest req = new SlcExecutionRequest();
+               req.setSlcExecution(slcExec);
+
+               log.info("Send SlcExecutionRequest for SlcExecution "
+                               + slcExec.getUuid());
+
+               Object resp = template.marshalSendAndReceive(req);
+               log.info("Resp: " + resp);
+       }
+}
diff --git a/org.argeo.slc.core/src/test/resources/org/argeo/slc/core/process/applicationContext.xml b/org.argeo.slc.core/src/test/resources/org/argeo/slc/core/process/applicationContext.xml
new file mode 100644 (file)
index 0000000..c295d45
--- /dev/null
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<beans xmlns="http://www.springframework.org/schema/beans"
+       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">
+
+       <bean id="marshaller"
+               class="org.springframework.oxm.castor.CastorMarshaller">
+               <property name="mappingLocation"
+                       value="classpath:org/argeo/slc/castor/process/mapping.xml" />
+       </bean>
+
+       <bean id="messageFactory"
+               class="org.springframework.ws.soap.saaj.SaajSoapMessageFactory" />
+
+       <bean id="webServiceTemplate"
+               class="org.springframework.ws.client.core.WebServiceTemplate">
+               <constructor-arg ref="messageFactory" />
+               <property name="marshaller" ref="marshaller"/>
+               <property name="unmarshaller" ref="marshaller"/>
+               <property name="defaultUri"
+                       value="http://localhost:8080/org.argeo.slc.webapp/slcService/" />
+       </bean>
+
+</beans>
\ No newline at end of file