From 1ec5ffef6e38d7804de444391447320ba5a6dded Mon Sep 17 00:00:00 2001 From: Mathieu Baudier Date: Tue, 27 Jan 2009 17:30:59 +0000 Subject: [PATCH] Introduce SlcExecutionSpec git-svn-id: https://svn.argeo.org/slc/trunk@2143 4cfe0d0a-d680-48aa-b62c-e0a02a3f76cc --- .../argeo/slc/process/SlcExecutionSpec.java | 27 ++++++++++++ .../slc/process/SlcExecutionSpecField.java | 41 +++++++++++++++++++ .../org/argeo/slc/castor/process.xml | 34 +++++++++++++-- .../slc/castor/AbstractCastorTestCase.java | 22 ++++++++-- .../castor/SlcExecutionSpecCastorTest.java | 27 ++++++++++++ .../process/SlcExecutionSpec.hbm.xml | 27 ++++++++++++ .../runtime/SlcAgentDescriptor.hbm.xml | 12 +++++- .../hibernate/spring/applicationContext.xml | 3 ++ 8 files changed, 185 insertions(+), 8 deletions(-) create mode 100644 runtime/org.argeo.slc.specs/src/main/java/org/argeo/slc/process/SlcExecutionSpec.java create mode 100644 runtime/org.argeo.slc.specs/src/main/java/org/argeo/slc/process/SlcExecutionSpecField.java create mode 100644 runtime/org.argeo.slc.support.castor/src/test/java/org/argeo/slc/castor/SlcExecutionSpecCastorTest.java create mode 100644 runtime/org.argeo.slc.support.hibernate/src/main/resources/org/argeo/slc/hibernate/process/SlcExecutionSpec.hbm.xml diff --git a/runtime/org.argeo.slc.specs/src/main/java/org/argeo/slc/process/SlcExecutionSpec.java b/runtime/org.argeo.slc.specs/src/main/java/org/argeo/slc/process/SlcExecutionSpec.java new file mode 100644 index 000000000..72ab0e48d --- /dev/null +++ b/runtime/org.argeo.slc.specs/src/main/java/org/argeo/slc/process/SlcExecutionSpec.java @@ -0,0 +1,27 @@ +package org.argeo.slc.process; + +import java.util.HashMap; +import java.util.Map; + +public class SlcExecutionSpec { + private Long tid; + private Map executionSpecFields = new HashMap(); + + public Long getTid() { + return tid; + } + + public void setTid(Long tid) { + this.tid = tid; + } + + public Map getExecutionSpecFields() { + return executionSpecFields; + } + + public void setExecutionSpecFields( + Map executionSpecFields) { + this.executionSpecFields = executionSpecFields; + } + +} diff --git a/runtime/org.argeo.slc.specs/src/main/java/org/argeo/slc/process/SlcExecutionSpecField.java b/runtime/org.argeo.slc.specs/src/main/java/org/argeo/slc/process/SlcExecutionSpecField.java new file mode 100644 index 000000000..88bd6501c --- /dev/null +++ b/runtime/org.argeo.slc.specs/src/main/java/org/argeo/slc/process/SlcExecutionSpecField.java @@ -0,0 +1,41 @@ +package org.argeo.slc.process; + +public class SlcExecutionSpecField { + private String label; + private String type; + private String defaultValue; + private String listValues; + + public String getLabel() { + return label; + } + + public void setLabel(String label) { + this.label = label; + } + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + public String getDefaultValue() { + return defaultValue; + } + + public void setDefaultValue(String defaultValue) { + this.defaultValue = defaultValue; + } + + public String getListValues() { + return listValues; + } + + public void setListValues(String listValues) { + this.listValues = listValues; + } + +} diff --git a/runtime/org.argeo.slc.support.castor/src/main/resources/org/argeo/slc/castor/process.xml b/runtime/org.argeo.slc.support.castor/src/main/resources/org/argeo/slc/castor/process.xml index 5cb7ccd58..be807ff0f 100644 --- a/runtime/org.argeo.slc.support.castor/src/main/resources/org/argeo/slc/castor/process.xml +++ b/runtime/org.argeo.slc.support.castor/src/main/resources/org/argeo/slc/castor/process.xml @@ -22,8 +22,8 @@ - + @@ -47,5 +47,33 @@ - + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/runtime/org.argeo.slc.support.castor/src/test/java/org/argeo/slc/castor/AbstractCastorTestCase.java b/runtime/org.argeo.slc.support.castor/src/test/java/org/argeo/slc/castor/AbstractCastorTestCase.java index b9dd33638..346fc859f 100644 --- a/runtime/org.argeo.slc.support.castor/src/test/java/org/argeo/slc/castor/AbstractCastorTestCase.java +++ b/runtime/org.argeo.slc.support.castor/src/test/java/org/argeo/slc/castor/AbstractCastorTestCase.java @@ -22,14 +22,24 @@ public abstract class AbstractCastorTestCase extends AbstractSpringTestCase { unmarshaller = getBean(Unmarshaller.class); } + protected StringResult marshal(Object obj) throws Exception { + return marshal(obj, false); + } + protected StringResult marshalAndValidate(Object obj) throws Exception { + return marshal(obj, true); + } + + protected StringResult marshal(Object obj, boolean validate) + throws Exception { StringResult xml = new StringResult(); marshaller.marshal(obj, xml); log.info("Marshalled ResultPart Request: " + xml); - UnitXmlUtils.assertXmlValidation(getBean(XmlValidator.class), - new StringSource(xml.toString())); + if (validate) + UnitXmlUtils.assertXmlValidation(getBean(XmlValidator.class), + new StringSource(xml.toString())); return xml; } @@ -39,8 +49,12 @@ public abstract class AbstractCastorTestCase extends AbstractSpringTestCase { } @SuppressWarnings("unchecked") + protected T marshUnmarsh(Object obj, boolean validate) throws Exception { + StringResult xml = marshal(obj, validate); + return (T) unmarshal(xml); + } + protected T marshUnmarsh(Object obj) throws Exception { - StringResult xml = marshalAndValidate(obj); - return (T)unmarshal(xml); + return marshUnmarsh(obj, true); } } diff --git a/runtime/org.argeo.slc.support.castor/src/test/java/org/argeo/slc/castor/SlcExecutionSpecCastorTest.java b/runtime/org.argeo.slc.support.castor/src/test/java/org/argeo/slc/castor/SlcExecutionSpecCastorTest.java new file mode 100644 index 000000000..51d4c47ee --- /dev/null +++ b/runtime/org.argeo.slc.support.castor/src/test/java/org/argeo/slc/castor/SlcExecutionSpecCastorTest.java @@ -0,0 +1,27 @@ +package org.argeo.slc.castor; + +import org.argeo.slc.process.SlcExecutionSpec; +import org.argeo.slc.process.SlcExecutionSpecField; + +public class SlcExecutionSpecCastorTest extends AbstractCastorTestCase { + public void testMarshalling() throws Exception { + SlcExecutionSpec spec = new SlcExecutionSpec(); + + SlcExecutionSpecField field1 = new SlcExecutionSpecField(); + field1.setLabel("Field1"); + field1.setType("text"); + field1.setDefaultValue("def"); + spec.getExecutionSpecFields().put("field1", field1); + + SlcExecutionSpecField field2 = new SlcExecutionSpecField(); + field2.setLabel("Field2"); + field2.setType("list"); + field2.setListValues("def,nodef"); + field2.setDefaultValue("def"); + spec.getExecutionSpecFields().put("field2", field2); + + SlcExecutionSpec specUnm = marshUnmarsh(spec,false); + + + } +} diff --git a/runtime/org.argeo.slc.support.hibernate/src/main/resources/org/argeo/slc/hibernate/process/SlcExecutionSpec.hbm.xml b/runtime/org.argeo.slc.support.hibernate/src/main/resources/org/argeo/slc/hibernate/process/SlcExecutionSpec.hbm.xml new file mode 100644 index 000000000..e86cffe31 --- /dev/null +++ b/runtime/org.argeo.slc.support.hibernate/src/main/resources/org/argeo/slc/hibernate/process/SlcExecutionSpec.hbm.xml @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/runtime/org.argeo.slc.support.hibernate/src/main/resources/org/argeo/slc/hibernate/runtime/SlcAgentDescriptor.hbm.xml b/runtime/org.argeo.slc.support.hibernate/src/main/resources/org/argeo/slc/hibernate/runtime/SlcAgentDescriptor.hbm.xml index dbc764900..a72834a27 100644 --- a/runtime/org.argeo.slc.support.hibernate/src/main/resources/org/argeo/slc/hibernate/runtime/SlcAgentDescriptor.hbm.xml +++ b/runtime/org.argeo.slc.support.hibernate/src/main/resources/org/argeo/slc/hibernate/runtime/SlcAgentDescriptor.hbm.xml @@ -7,6 +7,16 @@ - + + \ No newline at end of file diff --git a/runtime/org.argeo.slc.support.hibernate/src/main/resources/org/argeo/slc/hibernate/spring/applicationContext.xml b/runtime/org.argeo.slc.support.hibernate/src/main/resources/org/argeo/slc/hibernate/spring/applicationContext.xml index ed5252933..08064c4af 100644 --- a/runtime/org.argeo.slc.support.hibernate/src/main/resources/org/argeo/slc/hibernate/spring/applicationContext.xml +++ b/runtime/org.argeo.slc.support.hibernate/src/main/resources/org/argeo/slc/hibernate/spring/applicationContext.xml @@ -42,6 +42,9 @@ org/argeo/slc/hibernate/process/SlcExecutionStep.hbm.xml + + org/argeo/slc/hibernate/process/SlcExecutionSpec.hbm.xml + org/argeo/slc/hibernate/runtime/SlcAgentDescriptor.hbm.xml -- 2.39.2