]> git.argeo.org Git - gpl/argeo-slc.git/commitdiff
Sandbox argeo.slc.ws
authorMathieu Baudier <mbaudier@argeo.org>
Thu, 17 Apr 2008 19:08:39 +0000 (19:08 +0000)
committerMathieu Baudier <mbaudier@argeo.org>
Thu, 17 Apr 2008 19:08:39 +0000 (19:08 +0000)
git-svn-id: https://svn.argeo.org/slc/trunk@1000 4cfe0d0a-d680-48aa-b62c-e0a02a3f76cc

17 files changed:
sandbox/argeo.slc.ws/.classpath [new file with mode: 0644]
sandbox/argeo.slc.ws/.project [new file with mode: 0644]
sandbox/argeo.slc.ws/.settings/org.eclipse.jdt.core.prefs [new file with mode: 0644]
sandbox/argeo.slc.ws/.settings/org.eclipse.jst.common.project.facet.core.prefs [new file with mode: 0644]
sandbox/argeo.slc.ws/.settings/org.eclipse.wst.common.component [new file with mode: 0644]
sandbox/argeo.slc.ws/.settings/org.eclipse.wst.common.project.facet.core.xml [new file with mode: 0644]
sandbox/argeo.slc.ws/pom.xml [new file with mode: 0644]
sandbox/argeo.slc.ws/src/main/java/org/argeo/slc/core/process/Message.java [new file with mode: 0644]
sandbox/argeo.slc.ws/src/main/java/org/argeo/slc/core/process/SlcExecution.java [new file with mode: 0644]
sandbox/argeo.slc.ws/src/main/java/org/argeo/slc/core/process/SlcExecutionStep.java [new file with mode: 0644]
sandbox/argeo.slc.ws/src/main/java/org/argeo/slc/core/xml/XmlUtils.java [new file with mode: 0644]
sandbox/argeo.slc.ws/src/main/resources/org/argeo/slc/castor/process/castorMapping.xml [new file with mode: 0644]
sandbox/argeo.slc.ws/src/main/webapp/WEB-INF/spring-ws-servlet.xml [new file with mode: 0644]
sandbox/argeo.slc.ws/src/main/webapp/WEB-INF/web.xml [new file with mode: 0644]
sandbox/argeo.slc.ws/src/test/java/org/argeo/slc/core/process/SlcExecutionCastorTest.java [new file with mode: 0644]
sandbox/argeo.slc.ws/src/test/resources/log4j.properties [new file with mode: 0644]
sandbox/argeo.slc.ws/src/test/resources/org/argeo/slc/core/process/applicationContext.xml [new file with mode: 0644]

diff --git a/sandbox/argeo.slc.ws/.classpath b/sandbox/argeo.slc.ws/.classpath
new file mode 100644 (file)
index 0000000..ec7de9c
--- /dev/null
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>\r
+<classpath>\r
+       <classpathentry kind="src" path="src/main/java"/>\r
+       <classpathentry kind="src" path="src/main/resources"/>\r
+       <classpathentry kind="src" path="src/test/java"/>\r
+       <classpathentry kind="src" path="src/test/resources"/>\r
+       <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/jre1.5.0_07"/>\r
+       <classpathentry kind="con" path="org.eclipse.jst.server.core.container/org.eclipse.jst.server.tomcat.runtimeTarget/Apache Tomcat v5.5"/>\r
+       <classpathentry kind="con" path="org.eclipse.jst.j2ee.internal.web.container"/>\r
+       <classpathentry kind="con" path="org.eclipse.jst.j2ee.internal.module.container"/>\r
+       <classpathentry kind="con" path="org.maven.ide.eclipse.MAVEN2_CLASSPATH_CONTAINER"/>\r
+       <classpathentry kind="output" path="build/classes"/>\r
+</classpath>\r
diff --git a/sandbox/argeo.slc.ws/.project b/sandbox/argeo.slc.ws/.project
new file mode 100644 (file)
index 0000000..6ba91b3
--- /dev/null
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="UTF-8"?>\r
+<projectDescription>\r
+       <name>argeo.slc.ws</name>\r
+       <comment></comment>\r
+       <projects>\r
+       </projects>\r
+       <buildSpec>\r
+               <buildCommand>\r
+                       <name>org.maven.ide.eclipse.maven2Builder</name>\r
+                       <arguments>\r
+                       </arguments>\r
+               </buildCommand>\r
+               <buildCommand>\r
+                       <name>org.eclipse.jdt.core.javabuilder</name>\r
+                       <arguments>\r
+                       </arguments>\r
+               </buildCommand>\r
+               <buildCommand>\r
+                       <name>org.eclipse.wst.common.project.facet.core.builder</name>\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.wst.common.project.facet.core.nature</nature>\r
+               <nature>org.eclipse.jdt.core.javanature</nature>\r
+               <nature>org.eclipse.wst.common.modulecore.ModuleCoreNature</nature>\r
+               <nature>org.eclipse.jem.workbench.JavaEMFNature</nature>\r
+               <nature>org.maven.ide.eclipse.maven2Nature</nature>\r
+       </natures>\r
+</projectDescription>\r
diff --git a/sandbox/argeo.slc.ws/.settings/org.eclipse.jdt.core.prefs b/sandbox/argeo.slc.ws/.settings/org.eclipse.jdt.core.prefs
new file mode 100644 (file)
index 0000000..e65c7d2
--- /dev/null
@@ -0,0 +1,7 @@
+#Mon Apr 14 09:41:37 CEST 2008\r
+eclipse.preferences.version=1\r
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5\r
+org.eclipse.jdt.core.compiler.compliance=1.5\r
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error\r
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error\r
+org.eclipse.jdt.core.compiler.source=1.5\r
diff --git a/sandbox/argeo.slc.ws/.settings/org.eclipse.jst.common.project.facet.core.prefs b/sandbox/argeo.slc.ws/.settings/org.eclipse.jst.common.project.facet.core.prefs
new file mode 100644 (file)
index 0000000..116d61b
--- /dev/null
@@ -0,0 +1,4 @@
+#Mon Apr 14 09:41:45 CEST 2008\r
+classpath.helper/org.eclipse.jdt.launching.JRE_CONTAINER\:\:org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType\:\:jre1.5.0_07/owners=jst.java\:5.0\r
+classpath.helper/org.eclipse.jst.server.core.container\:\:org.eclipse.jst.server.tomcat.runtimeTarget\:\:Apache\ Tomcat\ v5.5/owners=jst.web\:2.4\r
+eclipse.preferences.version=1\r
diff --git a/sandbox/argeo.slc.ws/.settings/org.eclipse.wst.common.component b/sandbox/argeo.slc.ws/.settings/org.eclipse.wst.common.component
new file mode 100644 (file)
index 0000000..ab11080
--- /dev/null
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>\r
+<project-modules id="moduleCoreId" project-version="1.5.0">\r
+<wb-module deploy-name="argeo.slc.ws">\r
+<wb-resource deploy-path="/" source-path="/src/main/webapp"/>\r
+<wb-resource deploy-path="/WEB-INF/classes" source-path="/src/main/java"/>\r
+<wb-resource deploy-path="/WEB-INF/classes" source-path="/src/main/resources"/>\r
+<wb-resource deploy-path="/WEB-INF/classes" source-path="/src/test/java"/>\r
+<wb-resource deploy-path="/WEB-INF/classes" source-path="/resources"/>\r
+<wb-resource deploy-path="/WEB-INF/classes" source-path="/src/test/resources"/>\r
+<property name="context-root" value="argeo.slc.ws"/>\r
+<property name="java-output-path" value="build/classes"/>\r
+</wb-module>\r
+</project-modules>\r
diff --git a/sandbox/argeo.slc.ws/.settings/org.eclipse.wst.common.project.facet.core.xml b/sandbox/argeo.slc.ws/.settings/org.eclipse.wst.common.project.facet.core.xml
new file mode 100644 (file)
index 0000000..8e832a1
--- /dev/null
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>\r
+<faceted-project>\r
+  <runtime name="Apache Tomcat v5.5"/>\r
+  <fixed facet="jst.web"/>\r
+  <fixed facet="jst.java"/>\r
+  <installed facet="jst.java" version="5.0"/>\r
+  <installed facet="jst.web" version="2.4"/>\r
+</faceted-project>\r
diff --git a/sandbox/argeo.slc.ws/pom.xml b/sandbox/argeo.slc.ws/pom.xml
new file mode 100644 (file)
index 0000000..1b00a41
--- /dev/null
@@ -0,0 +1,127 @@
+<?xml version="1.0" encoding="UTF-8"?>\r
+<project xmlns="http://maven.apache.org/POM/4.0.0"\r
+       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"\r
+       xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">\r
+       <modelVersion>4.0.0</modelVersion>\r
+       <groupId>org.argeo.slc</groupId>\r
+       <artifactId>argeo.slc.ws</artifactId>\r
+       <packaging>war</packaging>\r
+       <version>0.1-SNAPSHOT</version>\r
+       <description>SLC Web Services</description>\r
+       <build>\r
+               <plugins>\r
+                       <plugin>\r
+                               <groupId>org.apache.maven.plugins</groupId>\r
+                               <artifactId>maven-eclipse-plugin</artifactId>\r
+                               <version>2.5-SNAPSHOT</version>\r
+                               <configuration>\r
+                                       <wtpversion>2.0</wtpversion>\r
+                                       <downloadSources>true</downloadSources>\r
+                                       <!-- \r
+                                               <workspace>C:\mbaudier\workspace</workspace>\r
+                                       -->\r
+                               </configuration>\r
+                       </plugin>\r
+                       <plugin>\r
+                               <groupId>org.apache.maven.plugins</groupId>\r
+                               <artifactId>maven-compiler-plugin</artifactId>\r
+                               <configuration>\r
+                                       <source>1.5</source>\r
+                                       <target>1.5</target>\r
+                               </configuration>\r
+                       </plugin>\r
+                       <!-- \r
+                               <plugin>\r
+                               <groupId>org.apache.maven.plugins</groupId>\r
+                               <artifactId>maven-dependency-plugin</artifactId>\r
+                               <executions>\r
+                               <execution>\r
+                               <id>copy-dependencies</id>\r
+                               <phase>package</phase>\r
+                               <goals>\r
+                               <goal>copy-dependencies</goal>\r
+                               </goals>\r
+                               <configuration>\r
+                               <outputDirectory>\r
+                               src/main/webapp/WEB-INF/lib\r
+                               </outputDirectory>\r
+                               </configuration>\r
+                               </execution>\r
+                               </executions>\r
+                               \r
+                               </plugin>\r
+                       -->\r
+               </plugins>\r
+       </build>\r
+       <dependencies>\r
+               <dependency>\r
+                       <groupId>log4j</groupId>\r
+                       <artifactId>log4j</artifactId>\r
+                       <version>1.2.14</version>\r
+               </dependency>\r
+               <dependency>\r
+                       <groupId>commons-logging</groupId>\r
+                       <artifactId>commons-logging</artifactId>\r
+                       <version>1.1.1</version>\r
+               </dependency>\r
+               <dependency>\r
+                       <groupId>org.apache.commons</groupId>\r
+                       <artifactId>commons-io</artifactId>\r
+                       <version>1.3.2</version>\r
+               </dependency>\r
+               <dependency>\r
+                       <groupId>org.springframework.ws</groupId>\r
+                       <artifactId>spring-ws-core</artifactId>\r
+                       <version>1.5.0</version>\r
+               </dependency>\r
+               <dependency>\r
+                       <groupId>org.springframework.ws</groupId>\r
+                       <artifactId>spring-oxm</artifactId>\r
+                       <version>1.5.0</version>\r
+               </dependency>\r
+               <dependency>\r
+                       <groupId>javax.servlet</groupId>\r
+                       <artifactId>servlet-api</artifactId>\r
+                       <version>2.5</version>\r
+                       <scope>provided</scope>\r
+               </dependency>\r
+               <dependency>\r
+                       <groupId>junit</groupId>\r
+                       <artifactId>junit</artifactId>\r
+                       <version>3.8.2</version>\r
+               </dependency>\r
+\r
+               <dependency>\r
+                       <groupId>org.codehaus.castor</groupId>\r
+                       <artifactId>castor</artifactId>\r
+                       <version>1.1.2.1</version>\r
+                       <exclusions>\r
+                               <exclusion>\r
+                                       <groupId>xerces</groupId>\r
+                                       <artifactId>xerces</artifactId>\r
+                               </exclusion>\r
+                       </exclusions>\r
+               </dependency>\r
+               <dependency>\r
+                       <groupId>xerces</groupId>\r
+                       <artifactId>xercesImpl</artifactId>\r
+                       <version>2.8.1</version>\r
+               </dependency>\r
+               <dependency>\r
+                       <groupId>org.argeo.slc</groupId>\r
+                       <artifactId>argeo-slc-core</artifactId>\r
+                       <version>0.9-SNAPSHOT</version>\r
+               </dependency>\r
+       </dependencies>\r
+       <repositories>\r
+               <repository>\r
+                       <id>central</id>\r
+                       <url>http://www.argeo.org/maven/proxy</url>\r
+                       <releases>\r
+                               <enabled>true</enabled>\r
+                               <updatePolicy>daily</updatePolicy>\r
+                               <checksumPolicy>warn</checksumPolicy>\r
+                       </releases>\r
+               </repository>\r
+       </repositories>\r
+</project>
\ No newline at end of file
diff --git a/sandbox/argeo.slc.ws/src/main/java/org/argeo/slc/core/process/Message.java b/sandbox/argeo.slc.ws/src/main/java/org/argeo/slc/core/process/Message.java
new file mode 100644 (file)
index 0000000..f416855
--- /dev/null
@@ -0,0 +1,22 @@
+package org.argeo.slc.core.process;\r
+\r
+import java.util.List;\r
+import java.util.Vector;\r
+\r
+public class Message {\r
+       private List<Object> parts = new Vector<Object>();\r
+       \r
+       public void addPart(Object obj){\r
+               parts.add(obj);\r
+       }\r
+\r
+       public List<Object> getParts() {\r
+               return parts;\r
+       }\r
+\r
+       public void setParts(List<Object> parts) {\r
+               this.parts = parts;\r
+       }\r
+       \r
+       \r
+}\r
diff --git a/sandbox/argeo.slc.ws/src/main/java/org/argeo/slc/core/process/SlcExecution.java b/sandbox/argeo.slc.ws/src/main/java/org/argeo/slc/core/process/SlcExecution.java
new file mode 100644 (file)
index 0000000..3d3b1da
--- /dev/null
@@ -0,0 +1,50 @@
+package org.argeo.slc.core.process;\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
+       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/sandbox/argeo.slc.ws/src/main/java/org/argeo/slc/core/process/SlcExecutionStep.java b/sandbox/argeo.slc.ws/src/main/java/org/argeo/slc/core/process/SlcExecutionStep.java
new file mode 100644 (file)
index 0000000..c9c41ff
--- /dev/null
@@ -0,0 +1,43 @@
+package org.argeo.slc.core.process;\r
+\r
+import java.util.Date;\r
+\r
+public class SlcExecutionStep {\r
+       private SlcExecution slcExecution;\r
+       private String type;\r
+       private Date begin;\r
+       private String log;\r
+\r
+       public SlcExecution getSlcExecution() {\r
+               return slcExecution;\r
+       }\r
+\r
+       public void setSlcExecution(SlcExecution slcExecution) {\r
+               this.slcExecution = slcExecution;\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 Date getBegin() {\r
+               return begin;\r
+       }\r
+\r
+       public void setBegin(Date begin) {\r
+               this.begin = begin;\r
+       }\r
+\r
+       public String getLog() {\r
+               return log;\r
+       }\r
+\r
+       public void setLog(String log) {\r
+               this.log = log;\r
+       }\r
+\r
+}\r
diff --git a/sandbox/argeo.slc.ws/src/main/java/org/argeo/slc/core/xml/XmlUtils.java b/sandbox/argeo.slc.ws/src/main/java/org/argeo/slc/core/xml/XmlUtils.java
new file mode 100644 (file)
index 0000000..aacec82
--- /dev/null
@@ -0,0 +1,40 @@
+package org.argeo.slc.core.xml;\r
+\r
+import java.io.IOException;\r
+import java.io.StringWriter;\r
+\r
+import javax.xml.transform.OutputKeys;\r
+import javax.xml.transform.Transformer;\r
+import javax.xml.transform.TransformerConfigurationException;\r
+import javax.xml.transform.TransformerException;\r
+import javax.xml.transform.TransformerFactory;\r
+import javax.xml.transform.dom.DOMSource;\r
+import javax.xml.transform.stream.StreamResult;\r
+\r
+import org.w3c.dom.Document;\r
+\r
+import org.apache.commons.io.IOUtils;\r
+\r
+public class XmlUtils {\r
+       private static TransformerFactory transformerFactory = TransformerFactory\r
+                       .newInstance();\r
+\r
+       public static String getDomAsString(Document doc, boolean indent)\r
+                       throws IOException, TransformerConfigurationException,\r
+                       TransformerException {\r
+               StringWriter out = new StringWriter();\r
+               try {\r
+                       // Create identity transformer\r
+                       Transformer transformer = transformerFactory.newTransformer();\r
+                       if (indent) {\r
+                               transformer.setOutputProperty(OutputKeys.INDENT, "yes");\r
+                       }\r
+                       DOMSource source = new DOMSource(doc);\r
+                       StreamResult result = new StreamResult(out);\r
+                       transformer.transform(source, result);\r
+                       return out.toString();\r
+               } finally {\r
+                       IOUtils.closeQuietly(out);\r
+               }\r
+       }\r
+}\r
diff --git a/sandbox/argeo.slc.ws/src/main/resources/org/argeo/slc/castor/process/castorMapping.xml b/sandbox/argeo.slc.ws/src/main/resources/org/argeo/slc/castor/process/castorMapping.xml
new file mode 100644 (file)
index 0000000..df8e978
--- /dev/null
@@ -0,0 +1,31 @@
+<?xml version="1.0"?>\r
+\r
+<!DOCTYPE mapping PUBLIC "-//EXOLAB/Castor Mapping DTD Version 1.0//EN" "http://castor.org/mapping.dtd">\r
+\r
+<mapping>\r
+       <description>Process objects XML mapping</description>\r
+\r
+       <class name="org.argeo.slc.core.process.Message"\r
+               auto-complete="true">\r
+               <field name="parts" collection="vector">\r
+                       <bind-xml auto-naming="deriveByClass"/>\r
+               </field>\r
+       </class>\r
+\r
+       <class name="org.argeo.slc.core.process.SlcExecution"\r
+               auto-complete="true">\r
+               <field name="uuid" identity="true">\r
+                       <bind-xml node="attribute" />\r
+               </field>\r
+       </class>\r
+\r
+       <class name="org.argeo.slc.core.process.SlcExecutionStep"\r
+               auto-complete="true">\r
+               <field name="slcExecution">\r
+                       <bind-xml reference="true" node="attribute" />\r
+               </field>\r
+               <field name="log">\r
+                       <bind-xml node="element" />\r
+               </field>\r
+       </class>\r
+</mapping>
\ No newline at end of file
diff --git a/sandbox/argeo.slc.ws/src/main/webapp/WEB-INF/spring-ws-servlet.xml b/sandbox/argeo.slc.ws/src/main/webapp/WEB-INF/spring-ws-servlet.xml
new file mode 100644 (file)
index 0000000..acafa3a
--- /dev/null
@@ -0,0 +1,6 @@
+<?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">
+
+
+</beans>
\ No newline at end of file
diff --git a/sandbox/argeo.slc.ws/src/main/webapp/WEB-INF/web.xml b/sandbox/argeo.slc.ws/src/main/webapp/WEB-INF/web.xml
new file mode 100644 (file)
index 0000000..1948bd4
--- /dev/null
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+         xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
+         version="2.4">
+
+    <display-name>Archetype Created Web Application</display-name>
+
+    <servlet>
+        <servlet-name>spring-ws</servlet-name>
+        <servlet-class>org.springframework.ws.transport.http.MessageDispatcherServlet</servlet-class>
+    </servlet>
+
+    <servlet-mapping>
+        <servlet-name>spring-ws</servlet-name>
+        <url-pattern>/*</url-pattern>
+    </servlet-mapping>
+
+</web-app>
diff --git a/sandbox/argeo.slc.ws/src/test/java/org/argeo/slc/core/process/SlcExecutionCastorTest.java b/sandbox/argeo.slc.ws/src/test/java/org/argeo/slc/core/process/SlcExecutionCastorTest.java
new file mode 100644 (file)
index 0000000..dfb74e7
--- /dev/null
@@ -0,0 +1,105 @@
+package org.argeo.slc.core.process;\r
+\r
+import java.io.StringReader;\r
+import java.text.SimpleDateFormat;\r
+import java.util.UUID;\r
+\r
+import javax.xml.parsers.DocumentBuilder;\r
+import javax.xml.parsers.DocumentBuilderFactory;\r
+import javax.xml.transform.dom.DOMResult;\r
+import javax.xml.transform.dom.DOMSource;\r
+\r
+import org.springframework.oxm.Marshaller;\r
+import org.springframework.oxm.Unmarshaller;\r
+import org.w3c.dom.Document;\r
+import org.xml.sax.InputSource;\r
+\r
+import org.apache.commons.logging.Log;\r
+import org.apache.commons.logging.LogFactory;\r
+\r
+import org.argeo.slc.core.xml.XmlUtils;\r
+import org.argeo.slc.unit.AbstractSpringTestCase;\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("castorMarshaller");\r
+\r
+               SlcExecution exec1 = new SlcExecution();\r
+               exec1.setUuid(UUID.randomUUID().toString());\r
+               exec1.setHost("localhost");\r
+               exec1.setPath("/test");\r
+               exec1.setType("slcAnt");\r
+               exec1.setStatus("STARTED");\r
+\r
+               SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm");\r
+               SlcExecutionStep step1 = new SlcExecutionStep();\r
+               step1.setBegin(sdf.parse("2008-04-17 18:21"));\r
+               step1.setType("LOG");\r
+               step1.setLog("A log message\nand another line");\r
+               step1.setSlcExecution(exec1);\r
+\r
+               Message msg1 = new Message();\r
+               msg1.addPart(exec1);\r
+               msg1.addPart(step1);\r
+\r
+               DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();\r
+               DocumentBuilder parser = factory.newDocumentBuilder();\r
+               Document doc = parser.newDocument();\r
+               // Element rootElem = doc.createElement("msg");\r
+               // doc.appendChild(rootElem);\r
+               DOMResult domResult = new DOMResult(doc);\r
+\r
+               marshaller.marshal(msg1, domResult);\r
+               // marshaller.marshal(step1, domResult);\r
+               // marshaller.marshal(exec1, domResult);\r
+\r
+               String xml = XmlUtils.getDomAsString(doc, true);\r
+               log.info(xml);\r
+\r
+               Unmarshaller unmarshaller = getBean("castorMarshaller");\r
+\r
+               StringReader reader = new StringReader(xml);\r
+               Document parsedDoc = parser.parse(new InputSource(reader));\r
+\r
+               Message message = (Message) unmarshaller.unmarshal(new DOMSource(\r
+                               parsedDoc));\r
+\r
+               assertNotNull(message);\r
+\r
+               for (Object obj : message.getParts()) {\r
+                       if (obj instanceof SlcExecutionStep) {\r
+                               assertSlcExecution(exec1, ((SlcExecutionStep) obj)\r
+                                               .getSlcExecution());\r
+                               log.debug("Execution step ok");\r
+                       }\r
+               }\r
+\r
+               log.info(message.getParts());\r
+\r
+               // NodeList lstSteps = parsedDoc\r
+               // .getElementsByTagName("slc-execution-step");\r
+               // SlcExecutionStep slcExecutionStep = (SlcExecutionStep) unmarshaller\r
+               // .unmarshal(new DOMSource(lstSteps.item(0)));\r
+\r
+               // assertNotNull(slcExecutionStep);\r
+               //\r
+               // SlcExecution slcExecution = slcExecutionStep.getSlcExecution();\r
+               //\r
+               // assertNotNull(slcExecution);\r
+               // assertEquals(exec1.getHost(), slcExecution.getHost());\r
+               // assertEquals(exec1.getPath(), slcExecution.getPath());\r
+               // assertEquals(exec1.getType(), slcExecution.getType());\r
+               // assertEquals(exec1.getStatus(), slcExecution.getStatus());\r
+\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
diff --git a/sandbox/argeo.slc.ws/src/test/resources/log4j.properties b/sandbox/argeo.slc.ws/src/test/resources/log4j.properties
new file mode 100644 (file)
index 0000000..698c1fc
--- /dev/null
@@ -0,0 +1,24 @@
+# Set root logger level to DEBUG and its only appender to A1.\r
+log4j.rootLogger=INFO, console\r
+\r
+## Levels\r
+# Slc\r
+log4j.logger.org.argeo.slc=DEBUG\r
+log4j.logger.argeo.slc=DEBUG\r
+# Spring\r
+log4j.logger.org.springframework=INFO\r
+# Hibernate\r
+log4j.logger.org.hibernate=WARN\r
+#log4j.logger.org.hibernate.SQL=TRACE\r
+#log4j.logger.org.hibernate.tool.hbm2ddl=TRACE\r
+#log4j.logger.org.hibernate.type=TRACE\r
+\r
+\r
+## Appenders\r
+# A1 is set to be a ConsoleAppender.\r
+log4j.appender.console=org.apache.log4j.ConsoleAppender\r
+\r
+# A1 uses PatternLayout.\r
+log4j.appender.console.layout=org.apache.log4j.PatternLayout\r
+log4j.appender.console.layout.ConversionPattern= %-5p %d{ISO8601} %m - %c%n\r
+\r
diff --git a/sandbox/argeo.slc.ws/src/test/resources/org/argeo/slc/core/process/applicationContext.xml b/sandbox/argeo.slc.ws/src/test/resources/org/argeo/slc/core/process/applicationContext.xml
new file mode 100644 (file)
index 0000000..ae7abc6
--- /dev/null
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>\r
+<beans xmlns="http://www.springframework.org/schema/beans"\r
+       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"\r
+       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">\r
+\r
+       <bean id="castorMarshaller"\r
+               class="org.springframework.oxm.castor.CastorMarshaller">\r
+               <property name="mappingLocation"\r
+                       value="classpath:org/argeo/slc/castor/process/castorMapping.xml" />\r
+       </bean>\r
+\r
+</beans>
\ No newline at end of file