package org.argeo.slc.unit;\r
\r
+import java.util.Map;\r
+\r
import junit.framework.TestCase;\r
\r
import org.springframework.context.ApplicationContext;\r
import org.springframework.context.support.ClassPathXmlApplicationContext;\r
\r
+import org.argeo.slc.core.SlcException;\r
+import org.argeo.slc.core.process.SlcExecution;\r
+\r
/** Helper for tests using a Spring application co,text. */\r
public abstract class AbstractSpringTestCase extends TestCase {\r
private ApplicationContext context;\r
}\r
return context;\r
}\r
- \r
+\r
/** Returns a bean from the underlying context */\r
- protected <T> T getBean(String beanId){\r
- return (T)getContext().getBean(beanId);\r
+ protected <T> T getBean(String beanId) {\r
+ return (T) getContext().getBean(beanId);\r
+ }\r
+\r
+ protected <T> T getBean(Class<? extends T> clss) {\r
+ Map<String, T> map = getContext().getBeansOfType(clss);\r
+ if (map.size() == 1) {\r
+ return map.values().iterator().next();\r
+ } else {\r
+ throw new SlcException("Cannot retrieve a unique bean of type "\r
+ + clss);\r
+ }\r
}\r
\r
/**\r
public static void assertXsdSchemaValidation(XsdSchema schema, Source source)\r
throws IOException {\r
XmlValidator validator = schema.createValidator();\r
+ assertXmlValidation(validator, source);\r
+ }\r
+\r
+ public static void assertXmlValidation(XmlValidator validator, Source source)\r
+ throws IOException {\r
SAXParseException[] exceptions = validator.validate(source);\r
if (exceptions.length != 0) {\r
for (SAXParseException ex : exceptions) {\r
log.error(ex.getMessage());\r
}\r
- TestCase.fail("Could not validate with schema " + schema);\r
+ TestCase.fail("Could not validate");\r
}\r
}\r
\r
--- /dev/null
+package org.argeo.slc.ws.client;\r
+\r
+import java.io.IOException;\r
+\r
+import javax.xml.transform.Source;\r
+\r
+import junit.framework.TestCase;\r
+\r
+import org.springframework.ws.client.WebServiceClientException;\r
+import org.springframework.ws.client.WebServiceIOException;\r
+import org.springframework.ws.client.support.interceptor.ClientInterceptor;\r
+import org.springframework.ws.context.MessageContext;\r
+import org.springframework.xml.validation.XmlValidator;\r
+import org.xml.sax.SAXParseException;\r
+\r
+import org.apache.commons.logging.Log;\r
+import org.apache.commons.logging.LogFactory;\r
+\r
+public class ValidatingClientInterceptor implements ClientInterceptor {\r
+ private final static Log log = LogFactory\r
+ .getLog(ValidatingClientInterceptor.class);\r
+\r
+ private Boolean validateRequest = true;\r
+ private Boolean validateResponse = false;\r
+ private XmlValidator validator = null;\r
+\r
+ public boolean handleFault(MessageContext messageContext)\r
+ throws WebServiceClientException {\r
+ return true;\r
+ }\r
+\r
+ public boolean handleRequest(MessageContext messageContext)\r
+ throws WebServiceClientException {\r
+ if (validateRequest) {\r
+ if (messageContext.getRequest() == null)\r
+ return true;\r
+\r
+ Source source = messageContext.getRequest().getPayloadSource();\r
+ try {\r
+ return validate(source);\r
+ } catch (IOException e) {\r
+ throw new WebServiceIOException("Cannot validate request", e);\r
+ }\r
+ } else {\r
+ return true;\r
+ }\r
+ }\r
+\r
+ public boolean handleResponse(MessageContext messageContext)\r
+ throws WebServiceClientException {\r
+ if (validateResponse) {\r
+ if (messageContext.getResponse() == null)\r
+ return true;\r
+ \r
+ Source source = messageContext.getResponse().getPayloadSource();\r
+ try {\r
+ return validate(source);\r
+ } catch (IOException e) {\r
+ throw new WebServiceIOException("Cannot validate response", e);\r
+ }\r
+ } else {\r
+ return true;\r
+ }\r
+ }\r
+\r
+ protected boolean validate(Source source) throws IOException {\r
+ SAXParseException[] exceptions = validator.validate(source);\r
+ if (exceptions.length != 0) {\r
+ for (SAXParseException ex : exceptions) {\r
+ log.error(ex.getMessage());\r
+ }\r
+ return false;\r
+ } else {\r
+ return true;\r
+ }\r
+ }\r
+\r
+ public void setValidateRequest(Boolean validateRequest) {\r
+ this.validateRequest = validateRequest;\r
+ }\r
+\r
+ public void setValidateResponse(Boolean validateResponse) {\r
+ this.validateResponse = validateResponse;\r
+ }\r
+\r
+ public void setValidator(XmlValidator validator) {\r
+ this.validator = validator;\r
+ }\r
+\r
+}\r
--- /dev/null
+<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.5.xsd"\r
+ default-lazy-init="true">\r
+\r
+ <bean id="slcDefault.castor.marshaller"\r
+ class="org.springframework.oxm.castor.CastorMarshaller">\r
+ <property name="mappingLocations">\r
+ <list>\r
+ <value>\r
+ classpath:org/argeo/slc/castor/process/mapping.xml\r
+ </value>\r
+ <value>\r
+ classpath:org/argeo/slc/castor/test/tree/mapping.xml\r
+ </value>\r
+ </list>\r
+ </property>\r
+ </bean>\r
+\r
+</beans>\r
--- /dev/null
+<?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
+ default-lazy-init="true">\r
+\r
+ <bean id="slcDefault.dataSource.inMemoryTestHSQL"\r
+ class="org.springframework.jdbc.datasource.SingleConnectionDataSource"\r
+ destroy-method="destroy">\r
+ <property name="driverClassName" value="org.hsqldb.jdbcDriver" />\r
+ <property name="url" value="jdbc:hsqldb:mem:test" />\r
+ <property name="username" value="sa" />\r
+ <property name="password" value="" />\r
+ <property name="suppressClose" value="true" />\r
+ </bean>\r
+\r
+ <bean id="slcTemplates.sessionFactory.hibernateBasic"\r
+ abstract="true"\r
+ class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">\r
+ <property name="mappingResources">\r
+ <list>\r
+ <value>\r
+ org/argeo/slc/hibernate/structure/SimpleSElement.hbm.xml\r
+ </value>\r
+ <value>\r
+ org/argeo/slc/hibernate/structure/tree/TreeSPath.hbm.xml\r
+ </value>\r
+ <value>\r
+ org/argeo/slc/hibernate/structure/tree/TreeSRegistry.hbm.xml\r
+ </value>\r
+ <value>\r
+ org/argeo/slc/hibernate/test/NumericTRId.hbm.xml\r
+ </value>\r
+ <value>\r
+ org/argeo/slc/hibernate/test/SimpleResultPart.hbm.xml\r
+ </value>\r
+ <value>\r
+ org/argeo/slc/hibernate/test/tree/TreeTestResult.hbm.xml\r
+ </value>\r
+ <value>\r
+ org/argeo/slc/hibernate/test/tree/PartSubList.hbm.xml\r
+ </value>\r
+ <value>\r
+ org/argeo/slc/hibernate/process/SlcExecution.hbm.xml\r
+ </value>\r
+ <value>\r
+ org/argeo/slc/hibernate/process/SlcExecutionStep.hbm.xml\r
+ </value>\r
+ </list>\r
+ </property>\r
+ </bean>\r
+\r
+ <bean id="slcDefault.sessionFactory.hibernateTestHSQL"\r
+ parent="slcTemplates.sessionFactory.hibernateBasic">\r
+ <property name="dataSource"\r
+ ref="slcDefault.dataSource.inMemoryTestHSQL" />\r
+ <property name="hibernateProperties">\r
+ <value><![CDATA[\r
+ hibernate.dialect=org.hibernate.dialect.HSQLDialect\r
+ hibernate.hbm2ddl.auto=create\r
+ ]]></value>\r
+ </property>\r
+ </bean>\r
+\r
+ <bean id="slcTemplates.dao.treeSPathDao"\r
+ class="org.argeo.slc.hibernate.structure.tree.TreeSPathDaoHibernate"\r
+ abstract="true">\r
+ </bean>\r
+\r
+ <bean id="slcTemplates.dao.treeSRegistryDao"\r
+ class="org.argeo.slc.hibernate.structure.tree.TreeSRegistryDaoHibernate"\r
+ abstract="true">\r
+ </bean>\r
+\r
+ <bean id="slcTemplates.dao.testResultDao"\r
+ class="org.argeo.slc.hibernate.test.tree.TestResultDaoHibernate"\r
+ abstract="true">\r
+ </bean>\r
+\r
+ <bean id="slcTemplates.dao.slcExecutionDao"\r
+ class="org.argeo.slc.hibernate.process.SlcExecutionDaoHibernate"\r
+ abstract="true">\r
+ </bean>\r
+</beans>
\ No newline at end of file
+++ /dev/null
-<?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
- default-lazy-init="true">\r
-\r
- <bean id="slcTemplates.dataSource.inMemoryTestHSQL"\r
- class="org.springframework.jdbc.datasource.SingleConnectionDataSource"\r
- destroy-method="destroy">\r
- <property name="driverClassName" value="org.hsqldb.jdbcDriver" />\r
- <property name="url" value="jdbc:hsqldb:mem:test" />\r
- <property name="username" value="sa" />\r
- <property name="password" value="" />\r
- <property name="suppressClose" value="true" />\r
- </bean>\r
-\r
- <bean id="slcTemplates.sessionFactory.hibernateBasic"\r
- abstract="true"\r
- class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">\r
- <property name="mappingResources">\r
- <list>\r
- <value>\r
- org/argeo/slc/hibernate/structure/SimpleSElement.hbm.xml\r
- </value>\r
- <value>\r
- org/argeo/slc/hibernate/structure/tree/TreeSPath.hbm.xml\r
- </value>\r
- <value>\r
- org/argeo/slc/hibernate/structure/tree/TreeSRegistry.hbm.xml\r
- </value>\r
- <value>\r
- org/argeo/slc/hibernate/test/NumericTRId.hbm.xml\r
- </value>\r
- <value>\r
- org/argeo/slc/hibernate/test/SimpleResultPart.hbm.xml\r
- </value>\r
- <value>\r
- org/argeo/slc/hibernate/test/tree/TreeTestResult.hbm.xml\r
- </value>\r
- <value>\r
- org/argeo/slc/hibernate/test/tree/PartSubList.hbm.xml\r
- </value>\r
- <value>\r
- org/argeo/slc/hibernate/process/SlcExecution.hbm.xml\r
- </value>\r
- <value>\r
- org/argeo/slc/hibernate/process/SlcExecutionStep.hbm.xml\r
- </value>\r
- </list>\r
- </property>\r
- </bean>\r
-\r
- <bean id="slcTemplates.sessionFactory.hibernateTestHSQL"\r
- parent="slcTemplates.sessionFactory.hibernateBasic">\r
- <property name="dataSource"\r
- ref="slcTemplates.dataSource.inMemoryTestHSQL" />\r
- <property name="hibernateProperties">\r
- <value><![CDATA[\r
- hibernate.dialect=org.hibernate.dialect.HSQLDialect\r
- hibernate.hbm2ddl.auto=create\r
- ]]></value>\r
- </property>\r
- </bean>\r
-\r
- <bean id="slcTemplates.dao.treeSPathDao"\r
- class="org.argeo.slc.hibernate.structure.tree.TreeSPathDaoHibernate">\r
- </bean>\r
-\r
- <bean id="slcTemplates.dao.treeSRegistryDao"\r
- class="org.argeo.slc.hibernate.structure.tree.TreeSRegistryDaoHibernate">\r
- </bean>\r
-\r
- <bean id="slcTemplates.dao.testResultDao"\r
- class="org.argeo.slc.hibernate.test.tree.TestResultDaoHibernate">\r
- </bean>\r
-\r
- <bean id="slcTemplates.dao.slcExecutionDao"\r
- class="org.argeo.slc.hibernate.process.SlcExecutionDaoHibernate">\r
- </bean>\r
-</beans>
\ No newline at end of file
--- /dev/null
+<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.5.xsd"\r
+ default-lazy-init="true">\r
+\r
+ <import\r
+ resource="classpath:/org/argeo/slc/castor/spring/applicationContext.xml" />\r
+ <import\r
+ resource="classpath:/org/argeo/slc/xml/spring/applicationContext.xml" />\r
+\r
+ <bean id="slcDefault.ws.client.webServiceTemplate"\r
+ class="org.springframework.ws.client.core.WebServiceTemplate">\r
+ <constructor-arg ref="slcDefault.ws.client.messageFactory" />\r
+ <property name="marshaller" ref="slcDefault.castor.marshaller" />\r
+ <property name="unmarshaller"\r
+ ref="slcDefault.castor.marshaller" />\r
+ <property name="defaultUri"\r
+ value="http://localhost:8080/org.argeo.slc.webapp/slcService/" />\r
+ <property name="interceptors">\r
+ <list>\r
+ <bean\r
+ class="org.argeo.slc.ws.client.ValidatingClientInterceptor">\r
+ <property name="validator"\r
+ ref="slcDefault.xml.xsdValidator" />\r
+ </bean>\r
+ </list>\r
+ </property>\r
+ </bean>\r
+\r
+ <bean id="slcDefault.ws.client.messageFactory"\r
+ class="org.springframework.ws.soap.saaj.SaajSoapMessageFactory" />\r
+\r
+</beans>\r
--- /dev/null
+<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.5.xsd"\r
+ default-lazy-init="true">\r
+\r
+ <bean id="slcDefault.xml.xsdValidator"\r
+ factory-bean="slcDefault.xml.xsdSchema" factory-method="createValidator" />\r
+\r
+ <bean id="slcDefault.xml.xsdSchema"\r
+ class="org.springframework.xml.xsd.SimpleXsdSchema">\r
+ <property name="xsd"\r
+ value="classpath:/org/argeo/slc/xml/slc.xsd" />\r
+ </bean>\r
+</beans>\r
import org.springframework.oxm.Unmarshaller;\r
import org.springframework.xml.transform.StringResult;\r
import org.springframework.xml.transform.StringSource;\r
+import org.springframework.xml.validation.XmlValidator;\r
import org.springframework.xml.xsd.XsdSchema;\r
\r
public class SlcExecutionCastorTest extends AbstractSpringTestCase {\r
\r
@Override\r
public void setUp() {\r
- marshaller = getBean("marshaller");\r
- unmarshaller = getBean("marshaller");\r
+ marshaller = getBean(Marshaller.class);\r
+ unmarshaller = getBean(Unmarshaller.class);\r
}\r
\r
public void testMarshalling() throws Exception {\r
marshaller.marshal(obj, xml);\r
log.info("Marshalled object: " + xml);\r
\r
- XsdSchema schema = getBean("schema");\r
- UnitXmlUtils.assertXsdSchemaValidation(schema, new StringSource(xml\r
- .toString()));\r
+ UnitXmlUtils.assertXmlValidation(getBean(XmlValidator.class),\r
+ new StringSource(xml.toString()));\r
\r
return xml.toString();\r
}\r
private Log log = LogFactory.getLog(getClass());
public void testSendSlcExecutionrequest() {
- WebServiceTemplate template = getBean("webServiceTemplate");
- SlcExecution slcExec = SlcExecutionTestUtils
- .createSimpleSlcExecution();
+ WebServiceTemplate template = getBean(WebServiceTemplate.class);
+ SlcExecution slcExec = SlcExecutionTestUtils.createSimpleSlcExecution();
SlcExecutionRequest req = new SlcExecutionRequest();
req.setSlcExecution(slcExec);
import org.springframework.oxm.Unmarshaller;\r
import org.springframework.xml.transform.StringResult;\r
import org.springframework.xml.transform.StringSource;\r
+import org.springframework.xml.validation.XmlValidator;\r
import org.springframework.xml.xsd.XsdSchema;\r
\r
import org.apache.commons.logging.Log;\r
\r
public class TreeTestResultCastorTest extends AbstractSpringTestCase {\r
private Log log = LogFactory.getLog(getClass());\r
- \r
+\r
private Marshaller marshaller;\r
private Unmarshaller unmarshaller;\r
\r
@Override\r
public void setUp() {\r
- marshaller = getBean("marshaller");\r
- unmarshaller = getBean("marshaller");\r
+ marshaller = getBean(Marshaller.class);\r
+ unmarshaller = getBean(Unmarshaller.class);\r
}\r
\r
-\r
-\r
public void testMarshUnmarsh() throws Exception {\r
TreeTestResult ttr = createCompleteTreeTestResult();\r
\r
\r
log.info("Marshalled TreeTestResult: " + xml);\r
\r
- XsdSchema schema = getBean("schema");\r
- UnitXmlUtils.assertXsdSchemaValidation(schema, new StringSource(xml\r
- .toString()));\r
+ UnitXmlUtils.assertXmlValidation(getBean(XmlValidator.class),\r
+ new StringSource(xml.toString()));\r
\r
TreeTestResult ttrUnm = (TreeTestResult) unmarshaller\r
.unmarshal(new StringSource(xml.toString()));\r
\r
UnitTestTreeUtil.assertTreeTestResult(ttr, ttrUnm);\r
}\r
- \r
- public void testTreeTestResultRequest() throws Exception{\r
+\r
+ public void testTreeTestResultRequest() throws Exception {\r
TreeTestResultRequest req = new TreeTestResultRequest();\r
req.setTreeTestResult(createCompleteTreeTestResult());\r
- \r
+\r
StringResult xml = new StringResult();\r
marshaller.marshal(req, xml);\r
\r
log.info("Marshalled TreeTestResult Request: " + xml);\r
\r
- XsdSchema schema = getBean("schema");\r
- UnitXmlUtils.assertXsdSchemaValidation(schema, new StringSource(xml\r
- .toString()));\r
+ UnitXmlUtils.assertXmlValidation(getBean(XmlValidator.class),\r
+ new StringSource(xml.toString()));\r
\r
TreeTestResultRequest reqUnm = (TreeTestResultRequest) unmarshaller\r
.unmarshal(new StringSource(xml.toString()));\r
\r
- UnitTestTreeUtil.assertTreeTestResult(req.getTreeTestResult(), reqUnm.getTreeTestResult());\r
+ UnitTestTreeUtil.assertTreeTestResult(req.getTreeTestResult(), reqUnm\r
+ .getTreeTestResult());\r
}\r
}\r
private Log log = LogFactory.getLog(getClass());
public void testSendSlcExecutionrequest() {
- WebServiceTemplate template = getBean("webServiceTemplate");
+ WebServiceTemplate template = getBean(WebServiceTemplate.class);
TreeTestResultRequest req = new TreeTestResultRequest();
req.setTreeTestResult(createCompleteTreeTestResult());
public class SlcExecutionHibernateTest extends AbstractSpringTestCase {\r
\r
public void testSave() {\r
- SlcExecutionDao dao = getBean("slcExecutionDao");\r
+ SlcExecutionDao dao = getBean(SlcExecutionDao.class);\r
\r
SlcExecution slcExec = SlcExecutionTestUtils.createSimpleSlcExecution();\r
slcExec.getSteps().add(new SlcExecutionStep("LOG", "A log line"));\r
}\r
\r
public void testModify() {\r
- SlcExecutionDao dao = getBean("slcExecutionDao");\r
+ SlcExecutionDao dao = getBean(SlcExecutionDao.class);\r
\r
- // slcExecution Creation \r
+ // slcExecution Creation\r
SlcExecution slcExec = SlcExecutionTestUtils.createSimpleSlcExecution();\r
slcExec.getSteps().add(new SlcExecutionStep("LOG", "A log line"));\r
slcExec.getSteps().add(new SlcExecutionStep("LOG", "Two log\nlines"));\r
\r
dao.create(slcExec);\r
- \r
- // slcExecution retrieval and update \r
+\r
+ // slcExecution retrieval and update\r
SlcExecution slcExecRetrieved = dao.getSlcExecution(slcExec.getUuid());\r
- \r
- List<String> logLineListStep0 = slcExecRetrieved.getSteps().get(0).getLogLines();\r
- for (String logLine : logLineListStep0) \r
+\r
+ List<String> logLineListStep0 = slcExecRetrieved.getSteps().get(0)\r
+ .getLogLines();\r
+ for (String logLine : logLineListStep0)\r
logLine = logLine + "appended Log text";\r
- \r
+\r
slcExecRetrieved.getSteps().get(0).setLogLines(logLineListStep0);\r
- slcExecRetrieved.getSteps().add(new SlcExecutionStep("LOG", "Three \n log \n lines"));\r
- \r
+ slcExecRetrieved.getSteps().add(\r
+ new SlcExecutionStep("LOG", "Three \n log \n lines"));\r
+\r
dao.update(slcExecRetrieved);\r
- \r
- // updated slcExecution retrieval and comparison \r
- SlcExecution slcExecUpdated = dao.getSlcExecution(slcExec.getUuid()); \r
- \r
- SlcExecutionTestUtils.assertSlcExecution(slcExecRetrieved, slcExecUpdated);\r
+\r
+ // updated slcExecution retrieval and comparison\r
+ SlcExecution slcExecUpdated = dao.getSlcExecution(slcExec.getUuid());\r
+\r
+ SlcExecutionTestUtils.assertSlcExecution(slcExecRetrieved,\r
+ slcExecUpdated);\r
assertEquals(3, slcExecUpdated.getSteps().size());\r
- SlcExecutionTestUtils.assertSlcExecutionStep(slcExecUpdated.getSteps().get(0),\r
- slcExecRetrieved.getSteps().get(0));\r
- SlcExecutionTestUtils.assertSlcExecutionStep(slcExecUpdated.getSteps().get(1),\r
- slcExecRetrieved.getSteps().get(1));\r
- SlcExecutionTestUtils.assertSlcExecutionStep(slcExecUpdated.getSteps().get(2),\r
- slcExecRetrieved.getSteps().get(2));\r
+ SlcExecutionTestUtils.assertSlcExecutionStep(slcExecUpdated.getSteps()\r
+ .get(0), slcExecRetrieved.getSteps().get(0));\r
+ SlcExecutionTestUtils.assertSlcExecutionStep(slcExecUpdated.getSteps()\r
+ .get(1), slcExecRetrieved.getSteps().get(1));\r
+ SlcExecutionTestUtils.assertSlcExecutionStep(slcExecUpdated.getSteps()\r
+ .get(2), slcExecRetrieved.getSteps().get(2));\r
}\r
\r
@Override\r
public class TreeSPathDaoHibernateTest extends AbstractSpringTestCase {\r
\r
public void testCreate() {\r
- TreeSPathDao treeSPathDao = (TreeSPathDao) getContext().getBean(\r
- "treeSPathDao");\r
+ TreeSPathDao treeSPathDao = getBean(TreeSPathDao.class);\r
\r
String pathParentStr = "/root/testParent";\r
String pathStr = pathParentStr + "/test";\r
public class TreeSRegistryDaoHibernateTest extends AbstractSpringTestCase {\r
\r
public void testCreate() {\r
- TreeSRegistryDao treeSRegistryDao = (TreeSRegistryDao) getContext()\r
- .getBean("treeSRegistryDao");\r
+ TreeSRegistryDao treeSRegistryDao = getBean(TreeSRegistryDao.class);\r
\r
TreeSPathDao treeSPathDao = (TreeSPathDao) getContext().getBean(\r
"treeSPathDao");\r
--- /dev/null
+package org.argeo.slc.hibernate.test.tree;\r
+\r
+import org.springframework.oxm.Marshaller;\r
+import org.springframework.oxm.Unmarshaller;\r
+import org.springframework.xml.transform.StringResult;\r
+import org.springframework.xml.transform.StringSource;\r
+\r
+import org.argeo.slc.core.test.tree.TreeTestResult;\r
+import org.argeo.slc.core.test.tree.TreeTestResultTestUtils;\r
+import org.argeo.slc.dao.test.tree.TreeTestResultDao;\r
+import org.argeo.slc.unit.AbstractSpringTestCase;\r
+import org.argeo.slc.unit.test.tree.UnitTestTreeUtil;\r
+\r
+public class CastorTestResultDaoHibernateTest extends AbstractSpringTestCase {\r
+\r
+ public void testUnmarshallAndCreate() throws Exception {\r
+ TreeTestResult ttr = TreeTestResultTestUtils\r
+ .createCompleteTreeTestResult();\r
+\r
+ StringResult result = new StringResult();\r
+ getBean(Marshaller.class).marshal(ttr, result);\r
+\r
+ StringSource source = new StringSource(result.toString());\r
+ TreeTestResult ttrUnm = (TreeTestResult) getBean(Unmarshaller.class)\r
+ .unmarshal(source);\r
+\r
+ TreeTestResultDao ttrDao = getBean(TreeTestResultDao.class);\r
+ ttrDao.create(ttrUnm);\r
+ TreeTestResult ttrPersist = ttrDao.getTestResult(ttr.getUuid());\r
+\r
+ UnitTestTreeUtil.assertTreeTestResult(ttr, ttrPersist);\r
+ }\r
+\r
+ @Override\r
+ protected String getApplicationContextLocation() {\r
+ return "org/argeo/slc/hibernate/withCastor.xml";\r
+ }\r
+\r
+}\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.5.xsd">\r
\r
- <bean id="marshaller"\r
- class="org.springframework.oxm.castor.CastorMarshaller">\r
- <property name="mappingLocations">\r
- <list>\r
- <value>\r
- classpath:org/argeo/slc/castor/process/mapping.xml\r
- </value>\r
- <value>\r
- classpath:org/argeo/slc/castor/test/tree/mapping.xml\r
- </value>\r
- </list>\r
- </property>\r
- </bean>\r
+ <import\r
+ resource="classpath:/org/argeo/slc/castor/spring/applicationContext.xml" />\r
+ <import\r
+ resource="classpath:/org/argeo/slc/ws/client/spring/applicationContext.xml" />\r
\r
- <bean id="webServiceTemplate"\r
- class="org.springframework.ws.client.core.WebServiceTemplate">\r
- <constructor-arg ref="messageFactory" />\r
- <property name="marshaller" ref="marshaller" />\r
- <property name="unmarshaller" ref="marshaller" />\r
- <property name="defaultUri"\r
- value="http://localhost:8080/org.argeo.slc.webapp/slcService/" />\r
- </bean>\r
-\r
- <bean id="messageFactory"\r
- class="org.springframework.ws.soap.saaj.SaajSoapMessageFactory" />\r
-\r
- <bean id="schema"\r
- class="org.springframework.xml.xsd.SimpleXsdSchema">\r
- <property name="xsd"\r
- value="classpath:/org/argeo/slc/xml/slc.xsd" />\r
- </bean>\r
</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.5.xsd">\r
\r
- <import resource="classpath:/org/argeo/slc/castor/applicationContext.xml" />\r
+ <import\r
+ resource="classpath:/org/argeo/slc/ws/client/spring/applicationContext.xml" />\r
\r
<bean name="executionBuildListener"\r
class="org.argeo.slc.ant.SlcExecutionBuildListener">\r
<bean name="fileNotifier"\r
class="org.argeo.slc.core.process.FileSlcExecutionNotifier">\r
<property name="basePath" value="${slc.workDir}/process" />\r
- <property name="marshaller" ref="marshaller" />\r
+ <property name="marshaller" ref="slcDefault.castor.marshaller" />\r
</bean>\r
\r
<bean name="webServiceNotifier"\r
class="org.argeo.slc.core.process.WebServiceSlcExecutionNotifier">\r
- <property name="template" ref="webServiceTemplate" />\r
+ <property name="template"\r
+ ref="slcDefault.ws.client.webServiceTemplate" />\r
</bean>\r
\r
</beans>
\ No newline at end of file
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.5.xsd">\r
\r
- <import resource="classpath:/org/argeo/slc/spring/templates.xml" />\r
+ <import\r
+ resource="classpath:/org/argeo/slc/hibernate/spring/applicationContext.xml" />\r
\r
<bean id="sessionFactory"\r
- parent="slcTemplates.sessionFactory.hibernateTestHSQL">\r
+ parent="slcDefault.sessionFactory.hibernateTestHSQL">\r
</bean>\r
\r
- <bean id="treeSPathDao"\r
- class="org.argeo.slc.hibernate.structure.tree.TreeSPathDaoHibernate">\r
+ <bean id="testResultDao"\r
+ parent="slcTemplates.dao.testResultDao">\r
<property name="sessionFactory" ref="sessionFactory" />\r
</bean>\r
\r
- <bean id="treeSRegistryDao"\r
- class="org.argeo.slc.hibernate.structure.tree.TreeSRegistryDaoHibernate">\r
+ <bean id="slcExecutionDao"\r
+ parent="slcTemplates.dao.slcExecutionDao">\r
<property name="sessionFactory" ref="sessionFactory" />\r
</bean>\r
-\r
- <bean id="testResultDao"\r
- class="org.argeo.slc.hibernate.test.tree.TestResultDaoHibernate">\r
+ \r
+ <bean id="treeSPathDao"\r
+ parent="slcTemplates.dao.treeSPathDao">\r
<property name="sessionFactory" ref="sessionFactory" />\r
</bean>\r
\r
- <bean id="slcExecutionDao"\r
- class="org.argeo.slc.hibernate.process.SlcExecutionDaoHibernate">\r
+ <bean id="treeSRegistryDao"\r
+ parent="slcTemplates.dao.treeSRegistryDao">\r
<property name="sessionFactory" ref="sessionFactory" />\r
</bean>\r
</beans>
\ No newline at end of file
--- /dev/null
+<?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.5.xsd">\r
+\r
+ <import resource="applicationContext.xml" />\r
+ <import\r
+ resource="classpath:/org/argeo/slc/castor/spring/applicationContext.xml" />\r
+</beans>
\ No newline at end of file