From: Mathieu Baudier Date: Thu, 17 Apr 2008 19:08:39 +0000 (+0000) Subject: Sandbox argeo.slc.ws X-Git-Tag: argeo-slc-2.1.7~3040 X-Git-Url: http://git.argeo.org/?a=commitdiff_plain;h=e4491fdddacb1c26da3de65369244c74754d6db8;p=gpl%2Fargeo-slc.git Sandbox argeo.slc.ws git-svn-id: https://svn.argeo.org/slc/trunk@1000 4cfe0d0a-d680-48aa-b62c-e0a02a3f76cc --- diff --git a/sandbox/argeo.slc.ws/.classpath b/sandbox/argeo.slc.ws/.classpath new file mode 100644 index 000000000..ec7de9c08 --- /dev/null +++ b/sandbox/argeo.slc.ws/.classpath @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/sandbox/argeo.slc.ws/.project b/sandbox/argeo.slc.ws/.project new file mode 100644 index 000000000..6ba91b311 --- /dev/null +++ b/sandbox/argeo.slc.ws/.project @@ -0,0 +1,36 @@ + + + argeo.slc.ws + + + + + + org.maven.ide.eclipse.maven2Builder + + + + + org.eclipse.jdt.core.javabuilder + + + + + org.eclipse.wst.common.project.facet.core.builder + + + + + org.eclipse.wst.validation.validationbuilder + + + + + + org.eclipse.wst.common.project.facet.core.nature + org.eclipse.jdt.core.javanature + org.eclipse.wst.common.modulecore.ModuleCoreNature + org.eclipse.jem.workbench.JavaEMFNature + org.maven.ide.eclipse.maven2Nature + + 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 index 000000000..e65c7d288 --- /dev/null +++ b/sandbox/argeo.slc.ws/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,7 @@ +#Mon Apr 14 09:41:37 CEST 2008 +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5 +org.eclipse.jdt.core.compiler.compliance=1.5 +org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.source=1.5 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 index 000000000..116d61ba4 --- /dev/null +++ b/sandbox/argeo.slc.ws/.settings/org.eclipse.jst.common.project.facet.core.prefs @@ -0,0 +1,4 @@ +#Mon Apr 14 09:41:45 CEST 2008 +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 +classpath.helper/org.eclipse.jst.server.core.container\:\:org.eclipse.jst.server.tomcat.runtimeTarget\:\:Apache\ Tomcat\ v5.5/owners=jst.web\:2.4 +eclipse.preferences.version=1 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 index 000000000..ab110807a --- /dev/null +++ b/sandbox/argeo.slc.ws/.settings/org.eclipse.wst.common.component @@ -0,0 +1,13 @@ + + + + + + + + + + + + + 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 index 000000000..8e832a1bf --- /dev/null +++ b/sandbox/argeo.slc.ws/.settings/org.eclipse.wst.common.project.facet.core.xml @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/sandbox/argeo.slc.ws/pom.xml b/sandbox/argeo.slc.ws/pom.xml new file mode 100644 index 000000000..1b00a410a --- /dev/null +++ b/sandbox/argeo.slc.ws/pom.xml @@ -0,0 +1,127 @@ + + + 4.0.0 + org.argeo.slc + argeo.slc.ws + war + 0.1-SNAPSHOT + SLC Web Services + + + + org.apache.maven.plugins + maven-eclipse-plugin + 2.5-SNAPSHOT + + 2.0 + true + + + + + org.apache.maven.plugins + maven-compiler-plugin + + 1.5 + 1.5 + + + + + + + + log4j + log4j + 1.2.14 + + + commons-logging + commons-logging + 1.1.1 + + + org.apache.commons + commons-io + 1.3.2 + + + org.springframework.ws + spring-ws-core + 1.5.0 + + + org.springframework.ws + spring-oxm + 1.5.0 + + + javax.servlet + servlet-api + 2.5 + provided + + + junit + junit + 3.8.2 + + + + org.codehaus.castor + castor + 1.1.2.1 + + + xerces + xerces + + + + + xerces + xercesImpl + 2.8.1 + + + org.argeo.slc + argeo-slc-core + 0.9-SNAPSHOT + + + + + central + http://www.argeo.org/maven/proxy + + true + daily + warn + + + + \ 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 index 000000000..f4168557f --- /dev/null +++ b/sandbox/argeo.slc.ws/src/main/java/org/argeo/slc/core/process/Message.java @@ -0,0 +1,22 @@ +package org.argeo.slc.core.process; + +import java.util.List; +import java.util.Vector; + +public class Message { + private List parts = new Vector(); + + public void addPart(Object obj){ + parts.add(obj); + } + + public List getParts() { + return parts; + } + + public void setParts(List parts) { + this.parts = parts; + } + + +} 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 index 000000000..3d3b1dacf --- /dev/null +++ b/sandbox/argeo.slc.ws/src/main/java/org/argeo/slc/core/process/SlcExecution.java @@ -0,0 +1,50 @@ +package org.argeo.slc.core.process; + +public class SlcExecution { + private String uuid; + private String host; + private String path; + private String type; + private String status; + + public String getUuid() { + return uuid; + } + + public void setUuid(String uuid) { + this.uuid = uuid; + } + + public String getHost() { + return host; + } + + public void setHost(String host) { + this.host = host; + } + + public String getPath() { + return path; + } + + public void setPath(String path) { + this.path = path; + } + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + public String getStatus() { + return status; + } + + public void setStatus(String status) { + this.status = status; + } + +} 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 index 000000000..c9c41ffd8 --- /dev/null +++ b/sandbox/argeo.slc.ws/src/main/java/org/argeo/slc/core/process/SlcExecutionStep.java @@ -0,0 +1,43 @@ +package org.argeo.slc.core.process; + +import java.util.Date; + +public class SlcExecutionStep { + private SlcExecution slcExecution; + private String type; + private Date begin; + private String log; + + public SlcExecution getSlcExecution() { + return slcExecution; + } + + public void setSlcExecution(SlcExecution slcExecution) { + this.slcExecution = slcExecution; + } + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + public Date getBegin() { + return begin; + } + + public void setBegin(Date begin) { + this.begin = begin; + } + + public String getLog() { + return log; + } + + public void setLog(String log) { + this.log = log; + } + +} 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 index 000000000..aacec821c --- /dev/null +++ b/sandbox/argeo.slc.ws/src/main/java/org/argeo/slc/core/xml/XmlUtils.java @@ -0,0 +1,40 @@ +package org.argeo.slc.core.xml; + +import java.io.IOException; +import java.io.StringWriter; + +import javax.xml.transform.OutputKeys; +import javax.xml.transform.Transformer; +import javax.xml.transform.TransformerConfigurationException; +import javax.xml.transform.TransformerException; +import javax.xml.transform.TransformerFactory; +import javax.xml.transform.dom.DOMSource; +import javax.xml.transform.stream.StreamResult; + +import org.w3c.dom.Document; + +import org.apache.commons.io.IOUtils; + +public class XmlUtils { + private static TransformerFactory transformerFactory = TransformerFactory + .newInstance(); + + public static String getDomAsString(Document doc, boolean indent) + throws IOException, TransformerConfigurationException, + TransformerException { + StringWriter out = new StringWriter(); + try { + // Create identity transformer + Transformer transformer = transformerFactory.newTransformer(); + if (indent) { + transformer.setOutputProperty(OutputKeys.INDENT, "yes"); + } + DOMSource source = new DOMSource(doc); + StreamResult result = new StreamResult(out); + transformer.transform(source, result); + return out.toString(); + } finally { + IOUtils.closeQuietly(out); + } + } +} 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 index 000000000..df8e97818 --- /dev/null +++ b/sandbox/argeo.slc.ws/src/main/resources/org/argeo/slc/castor/process/castorMapping.xml @@ -0,0 +1,31 @@ + + + + + + Process objects XML 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 index 000000000..acafa3ae0 --- /dev/null +++ b/sandbox/argeo.slc.ws/src/main/webapp/WEB-INF/spring-ws-servlet.xml @@ -0,0 +1,6 @@ + + + + + \ 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 index 000000000..1948bd494 --- /dev/null +++ b/sandbox/argeo.slc.ws/src/main/webapp/WEB-INF/web.xml @@ -0,0 +1,18 @@ + + + + Archetype Created Web Application + + + spring-ws + org.springframework.ws.transport.http.MessageDispatcherServlet + + + + spring-ws + /* + + + 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 index 000000000..dfb74e7f6 --- /dev/null +++ b/sandbox/argeo.slc.ws/src/test/java/org/argeo/slc/core/process/SlcExecutionCastorTest.java @@ -0,0 +1,105 @@ +package org.argeo.slc.core.process; + +import java.io.StringReader; +import java.text.SimpleDateFormat; +import java.util.UUID; + +import javax.xml.parsers.DocumentBuilder; +import javax.xml.parsers.DocumentBuilderFactory; +import javax.xml.transform.dom.DOMResult; +import javax.xml.transform.dom.DOMSource; + +import org.springframework.oxm.Marshaller; +import org.springframework.oxm.Unmarshaller; +import org.w3c.dom.Document; +import org.xml.sax.InputSource; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; + +import org.argeo.slc.core.xml.XmlUtils; +import org.argeo.slc.unit.AbstractSpringTestCase; + +public class SlcExecutionCastorTest extends AbstractSpringTestCase { + private Log log = LogFactory.getLog(getClass()); + + public void testMarshalling() throws Exception { + Marshaller marshaller = getBean("castorMarshaller"); + + SlcExecution exec1 = new SlcExecution(); + exec1.setUuid(UUID.randomUUID().toString()); + exec1.setHost("localhost"); + exec1.setPath("/test"); + exec1.setType("slcAnt"); + exec1.setStatus("STARTED"); + + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm"); + SlcExecutionStep step1 = new SlcExecutionStep(); + step1.setBegin(sdf.parse("2008-04-17 18:21")); + step1.setType("LOG"); + step1.setLog("A log message\nand another line"); + step1.setSlcExecution(exec1); + + Message msg1 = new Message(); + msg1.addPart(exec1); + msg1.addPart(step1); + + DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); + DocumentBuilder parser = factory.newDocumentBuilder(); + Document doc = parser.newDocument(); + // Element rootElem = doc.createElement("msg"); + // doc.appendChild(rootElem); + DOMResult domResult = new DOMResult(doc); + + marshaller.marshal(msg1, domResult); + // marshaller.marshal(step1, domResult); + // marshaller.marshal(exec1, domResult); + + String xml = XmlUtils.getDomAsString(doc, true); + log.info(xml); + + Unmarshaller unmarshaller = getBean("castorMarshaller"); + + StringReader reader = new StringReader(xml); + Document parsedDoc = parser.parse(new InputSource(reader)); + + Message message = (Message) unmarshaller.unmarshal(new DOMSource( + parsedDoc)); + + assertNotNull(message); + + for (Object obj : message.getParts()) { + if (obj instanceof SlcExecutionStep) { + assertSlcExecution(exec1, ((SlcExecutionStep) obj) + .getSlcExecution()); + log.debug("Execution step ok"); + } + } + + log.info(message.getParts()); + + // NodeList lstSteps = parsedDoc + // .getElementsByTagName("slc-execution-step"); + // SlcExecutionStep slcExecutionStep = (SlcExecutionStep) unmarshaller + // .unmarshal(new DOMSource(lstSteps.item(0))); + + // assertNotNull(slcExecutionStep); + // + // SlcExecution slcExecution = slcExecutionStep.getSlcExecution(); + // + // assertNotNull(slcExecution); + // assertEquals(exec1.getHost(), slcExecution.getHost()); + // assertEquals(exec1.getPath(), slcExecution.getPath()); + // assertEquals(exec1.getType(), slcExecution.getType()); + // assertEquals(exec1.getStatus(), slcExecution.getStatus()); + + } + + private void assertSlcExecution(SlcExecution expected, SlcExecution reached) { + assertNotNull(reached); + assertEquals(expected.getHost(), reached.getHost()); + assertEquals(expected.getPath(), reached.getPath()); + assertEquals(expected.getType(), reached.getType()); + assertEquals(expected.getStatus(), reached.getStatus()); + } +} 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 index 000000000..698c1fc53 --- /dev/null +++ b/sandbox/argeo.slc.ws/src/test/resources/log4j.properties @@ -0,0 +1,24 @@ +# Set root logger level to DEBUG and its only appender to A1. +log4j.rootLogger=INFO, console + +## Levels +# Slc +log4j.logger.org.argeo.slc=DEBUG +log4j.logger.argeo.slc=DEBUG +# Spring +log4j.logger.org.springframework=INFO +# Hibernate +log4j.logger.org.hibernate=WARN +#log4j.logger.org.hibernate.SQL=TRACE +#log4j.logger.org.hibernate.tool.hbm2ddl=TRACE +#log4j.logger.org.hibernate.type=TRACE + + +## Appenders +# A1 is set to be a ConsoleAppender. +log4j.appender.console=org.apache.log4j.ConsoleAppender + +# A1 uses PatternLayout. +log4j.appender.console.layout=org.apache.log4j.PatternLayout +log4j.appender.console.layout.ConversionPattern= %-5p %d{ISO8601} %m - %c%n + 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 index 000000000..ae7abc64c --- /dev/null +++ b/sandbox/argeo.slc.ws/src/test/resources/org/argeo/slc/core/process/applicationContext.xml @@ -0,0 +1,12 @@ + + + + + + + + \ No newline at end of file