From: Mathieu Baudier
StructureElement
.
diff --git a/org.argeo.slc.core/src/main/java/org/argeo/slc/core/structure/StructureRegistry.java b/org.argeo.slc.core/src/main/java/org/argeo/slc/core/structure/StructureRegistry.java
index 71f80cb77..eac04b2bb 100644
--- a/org.argeo.slc.core/src/main/java/org/argeo/slc/core/structure/StructureRegistry.java
+++ b/org.argeo.slc.core/src/main/java/org/argeo/slc/core/structure/StructureRegistry.java
@@ -2,8 +2,6 @@ package org.argeo.slc.core.structure;
import java.util.List;
-import org.argeo.slc.core.deploy.DeployedSystem;
-
/** Registry where the whole structure is stored. */
public interface StructureRegistry {
/** Read mode: the structure is only read. */
diff --git a/org.argeo.slc.core/src/main/java/org/argeo/slc/core/test/NumericTRId.java b/org.argeo.slc.core/src/main/java/org/argeo/slc/core/test/NumericTRId.java
deleted file mode 100644
index 0b1674ae9..000000000
--- a/org.argeo.slc.core/src/main/java/org/argeo/slc/core/test/NumericTRId.java
+++ /dev/null
@@ -1,71 +0,0 @@
-package org.argeo.slc.core.test;
-
-import org.argeo.slc.core.deploy.DeployedSystemId;
-
-/**
- * Basic implementation of test run id based on a long value and a reference to
- * a deployed system id.
- *
- * @deprecated
- */
-public class NumericTRId implements TestResultId {
- /** For ORM */
- private Long tid;
-
- private Long value;
- private DeployedSystemId deployedSystemId;
-
- /** For ORM */
- public NumericTRId() {
-
- }
-
- public NumericTRId(Long value) {
- this.value = value;
- }
-
- /**
- * Initializes the long value with the current time (based on
- * java.lang.System.currentTimeMillis()
).
- */
- public void init() {
- if (getValue() == null) {
- setValue(System.currentTimeMillis());
- }
- }
-
- public Long getValue() {
- return value;
- }
-
- public void setValue(Long value) {
- this.value = value;
- }
-
- public DeployedSystemId getDeployedSystemId() {
- return deployedSystemId;
- }
-
- public void setDeployedSystemId(DeployedSystemId deployedSystemId) {
- this.deployedSystemId = deployedSystemId;
- }
-
- @Override
- public boolean equals(Object obj) {
- return value.toString().equals(obj.toString());
- }
-
- @Override
- public String toString() {
- return value.toString();
- }
-
- Long getTid() {
- return tid;
- }
-
- void setTid(Long tid) {
- this.tid = tid;
- }
-
-}
diff --git a/org.argeo.slc.core/src/main/java/org/argeo/slc/core/test/TestResultId.java b/org.argeo.slc.core/src/main/java/org/argeo/slc/core/test/TestResultId.java
deleted file mode 100644
index 46af52799..000000000
--- a/org.argeo.slc.core/src/main/java/org/argeo/slc/core/test/TestResultId.java
+++ /dev/null
@@ -1,14 +0,0 @@
-package org.argeo.slc.core.test;
-
-import org.argeo.slc.core.deploy.DeployedSystemId;
-
-/**
- * The unique id referencing a test result.
- *
- * @deprecated
- */
-public interface TestResultId {
- /** Gets the id of the related deployed system. */
- public DeployedSystemId getDeployedSystemId();
-
-}
diff --git a/org.argeo.slc.core/src/main/java/org/argeo/slc/core/test/TestRunDescriptor.java b/org.argeo.slc.core/src/main/java/org/argeo/slc/core/test/TestRunDescriptor.java
index d48ea2db9..d136e802c 100644
--- a/org.argeo.slc.core/src/main/java/org/argeo/slc/core/test/TestRunDescriptor.java
+++ b/org.argeo.slc.core/src/main/java/org/argeo/slc/core/test/TestRunDescriptor.java
@@ -1,7 +1,6 @@
package org.argeo.slc.core.test;
import org.argeo.slc.core.deploy.DeployedSystem;
-import org.argeo.slc.core.process.SlcExecution;
public class TestRunDescriptor {
private String testRunUuid;
diff --git a/org.argeo.slc.core/src/main/java/org/argeo/slc/core/test/tree/CompositeTreeTestDefinition.java b/org.argeo.slc.core/src/main/java/org/argeo/slc/core/test/tree/CompositeTreeTestDefinition.java
index f26c08580..91534e36d 100644
--- a/org.argeo.slc.core/src/main/java/org/argeo/slc/core/test/tree/CompositeTreeTestDefinition.java
+++ b/org.argeo.slc.core/src/main/java/org/argeo/slc/core/test/tree/CompositeTreeTestDefinition.java
@@ -5,12 +5,10 @@ import java.util.Vector;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-
import org.argeo.slc.core.structure.SimpleSElement;
import org.argeo.slc.core.structure.StructureAware;
import org.argeo.slc.core.structure.StructureElement;
import org.argeo.slc.core.structure.StructureElementProvider;
-import org.argeo.slc.core.structure.StructurePath;
import org.argeo.slc.core.structure.StructureRegistry;
import org.argeo.slc.core.structure.tree.TreeSPath;
import org.argeo.slc.core.test.TestDefinition;
diff --git a/org.argeo.slc.core/src/main/java/org/argeo/slc/core/test/tree/htmlreport/ResultPage.java b/org.argeo.slc.core/src/main/java/org/argeo/slc/core/test/tree/htmlreport/ResultPage.java
index 69bba492e..4cbb82070 100644
--- a/org.argeo.slc.core/src/main/java/org/argeo/slc/core/test/tree/htmlreport/ResultPage.java
+++ b/org.argeo.slc.core/src/main/java/org/argeo/slc/core/test/tree/htmlreport/ResultPage.java
@@ -1,17 +1,13 @@
package org.argeo.slc.core.test.tree.htmlreport;
import java.io.IOException;
-import java.io.PrintWriter;
-import java.io.StringWriter;
import java.util.Date;
import java.util.SortedMap;
import java.util.TreeMap;
import org.apache.commons.io.FileUtils;
-import org.apache.commons.io.IOUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-
import org.argeo.slc.core.structure.StructureElement;
import org.argeo.slc.core.structure.StructureRegistry;
import org.argeo.slc.core.structure.tree.TreeSPath;
diff --git a/org.argeo.slc.core/src/main/java/org/argeo/slc/msg/test/tree/ResultPartRequest.java b/org.argeo.slc.core/src/main/java/org/argeo/slc/msg/test/tree/ResultPartRequest.java
index ac0908711..a02375920 100644
--- a/org.argeo.slc.core/src/main/java/org/argeo/slc/msg/test/tree/ResultPartRequest.java
+++ b/org.argeo.slc.core/src/main/java/org/argeo/slc/msg/test/tree/ResultPartRequest.java
@@ -3,7 +3,6 @@ package org.argeo.slc.msg.test.tree;
import java.util.Map;
import org.argeo.slc.core.SlcException;
-import org.argeo.slc.core.process.SlcExecution;
import org.argeo.slc.core.structure.StructureElement;
import org.argeo.slc.core.structure.tree.TreeSPath;
import org.argeo.slc.core.test.SimpleResultPart;
diff --git a/org.argeo.slc.core/src/main/java/org/argeo/slc/support/deploy/ApacheHttpdServer.java b/org.argeo.slc.core/src/main/java/org/argeo/slc/support/deploy/ApacheHttpdServer.java
index 6d77cdd51..71227bf83 100644
--- a/org.argeo.slc.core/src/main/java/org/argeo/slc/support/deploy/ApacheHttpdServer.java
+++ b/org.argeo.slc.core/src/main/java/org/argeo/slc/support/deploy/ApacheHttpdServer.java
@@ -6,6 +6,8 @@ import java.net.URL;
import org.argeo.slc.core.SlcException;
import org.argeo.slc.core.build.Distribution;
+import org.argeo.slc.core.deploy.DeploymentData;
+import org.argeo.slc.core.deploy.TargetData;
import org.springframework.core.io.Resource;
public class ApacheHttpdServer implements WebServer {
@@ -44,4 +46,14 @@ public class ApacheHttpdServer implements WebServer {
return null;
}
+ public DeploymentData getDeploymentData() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ public TargetData getTargetData() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
}
diff --git a/org.argeo.slc.core/src/main/java/org/argeo/slc/support/deploy/HttpdApplicationDeployment.java b/org.argeo.slc.core/src/main/java/org/argeo/slc/support/deploy/HttpdApplicationDeployment.java
index 79eb0bd4f..6c6cffdce 100644
--- a/org.argeo.slc.core/src/main/java/org/argeo/slc/support/deploy/HttpdApplicationDeployment.java
+++ b/org.argeo.slc.core/src/main/java/org/argeo/slc/support/deploy/HttpdApplicationDeployment.java
@@ -8,11 +8,11 @@ import org.argeo.slc.core.SlcException;
import org.argeo.slc.core.build.Distribution;
import org.argeo.slc.core.deploy.DeployEnvironment;
import org.argeo.slc.core.deploy.DeployedSystem;
+import org.argeo.slc.core.deploy.Deployment;
import org.argeo.slc.core.deploy.DeploymentData;
-import org.argeo.slc.core.deploy.ExecutableDeployment;
import org.argeo.slc.core.deploy.TargetData;
-public class HttpdApplicationDeployment implements ExecutableDeployment {
+public class HttpdApplicationDeployment implements Deployment {
private static final Log log = LogFactory
.getLog(HttpdApplicationDeployment.class);
@@ -25,20 +25,21 @@ public class HttpdApplicationDeployment implements ExecutableDeployment {
public void execute() {
try {
- deployEnvironment.unpackTo(getDistribution(), targetData
+ deployEnvironment.unpackTo(distribution, targetData
.getTargetRootLocation(), null);
-
+
// FIXME: make it generic
String deployDataPath = targetData.getTargetRootLocation()
.getCanonicalPath();
-
- deployEnvironment.unpackTo(getDeploymentData(), new File(
- deployDataPath), null);
+
+ deployEnvironment.unpackTo(deploymentData,
+ new File(deployDataPath), null);
deployedSystem = new SimpleHttpdApplication();
deployedSystem.setTargetData(targetData);
+ log.info("Deployed " + distribution + " to " + targetData);
} catch (Exception e) {
- throw new SlcException("Cannot deploy " + deploymentData + " to "
+ throw new SlcException("Cannot deploy " + distribution + " to "
+ targetData, e);
}
@@ -56,18 +57,6 @@ public class HttpdApplicationDeployment implements ExecutableDeployment {
return deployedSystem;
}
- public DeploymentData getDeploymentData() {
- return deploymentData;
- }
-
- public TargetData getTargetData() {
- return targetData;
- }
-
- public Distribution getDistribution() {
- return distribution;
- }
-
public void setDistribution(Distribution distribution) {
this.distribution = distribution;
}
diff --git a/org.argeo.slc.core/src/main/java/org/argeo/slc/support/deploy/SimpleHttpdApplication.java b/org.argeo.slc.core/src/main/java/org/argeo/slc/support/deploy/SimpleHttpdApplication.java
index bb98c383f..bbcf60dfb 100644
--- a/org.argeo.slc.core/src/main/java/org/argeo/slc/support/deploy/SimpleHttpdApplication.java
+++ b/org.argeo.slc.core/src/main/java/org/argeo/slc/support/deploy/SimpleHttpdApplication.java
@@ -4,6 +4,7 @@ import java.io.File;
import java.net.URL;
import org.argeo.slc.core.build.Distribution;
+import org.argeo.slc.core.deploy.DeploymentData;
public class SimpleHttpdApplication implements WebApplication {
private HttpdApplicationTargetData targetData;
@@ -38,4 +39,9 @@ public class SimpleHttpdApplication implements WebApplication {
return distribution;
}
+ public DeploymentData getDeploymentData() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
}
diff --git a/org.argeo.slc.core/src/main/java/org/argeo/slc/support/deploy/db/DbModel.java b/org.argeo.slc.core/src/main/java/org/argeo/slc/support/deploy/db/DbModel.java
new file mode 100644
index 000000000..6140d7bc0
--- /dev/null
+++ b/org.argeo.slc.core/src/main/java/org/argeo/slc/support/deploy/db/DbModel.java
@@ -0,0 +1,7 @@
+package org.argeo.slc.support.deploy.db;
+
+import java.sql.Connection;
+
+public interface DbModel {
+ public void createSchema(Connection connection);
+}
diff --git a/org.argeo.slc.core/src/main/java/org/argeo/slc/support/deploy/db/DbUnitDeployment.java b/org.argeo.slc.core/src/main/java/org/argeo/slc/support/deploy/db/DbUnitDeployment.java
new file mode 100644
index 000000000..9df6a1d74
--- /dev/null
+++ b/org.argeo.slc.core/src/main/java/org/argeo/slc/support/deploy/db/DbUnitDeployment.java
@@ -0,0 +1,80 @@
+package org.argeo.slc.support.deploy.db;
+
+import java.sql.SQLException;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.argeo.slc.core.SlcException;
+import org.argeo.slc.core.UnsupportedException;
+import org.argeo.slc.core.build.Distribution;
+import org.argeo.slc.core.deploy.DeployedSystem;
+import org.argeo.slc.core.deploy.Deployment;
+import org.argeo.slc.core.deploy.DeploymentData;
+import org.argeo.slc.core.deploy.TargetData;
+import org.dbunit.DataSourceDatabaseTester;
+import org.dbunit.DatabaseUnitException;
+import org.dbunit.IDatabaseTester;
+import org.dbunit.database.IDatabaseConnection;
+import org.dbunit.dataset.IDataSet;
+import org.dbunit.operation.DatabaseOperation;
+
+public class DbUnitDeployment implements Deployment {
+ private static Log log = LogFactory.getLog(DbUnitDeployment.class);
+
+ private JdbcAware mxDatabase;
+ private DbUnitDeploymentData deploymentData;
+ private DbModel dbModel;
+
+ public void execute() {
+ try {
+ IDatabaseTester databaseTester = new DataSourceDatabaseTester(
+ mxDatabase.getDataSource());
+ databaseTester.setSetUpOperation(new DatabaseOperation() {
+
+ @Override
+ public void execute(IDatabaseConnection connection,
+ IDataSet dataSet) throws DatabaseUnitException,
+ SQLException {
+ if (dbModel != null) {
+ dbModel.createSchema(connection.getConnection());
+ DatabaseOperation.INSERT.execute(connection, dataSet);
+ } else {
+ DatabaseOperation.UPDATE.execute(connection, dataSet);
+ }
+ }
+
+ });
+ databaseTester.setDataSet(deploymentData.createDataSet());
+ databaseTester.onSetup();
+ databaseTester.onTearDown();
+
+ log.info("Database deployed.");
+ } catch (Exception e) {
+ throw new SlcException("Could not initialize the database", e);
+ }
+ }
+
+ public DeployedSystem getDeployedSystem() {
+ // TODO: think of a more generic approach. MxDtaabse deployed system?
+ // (with deployment id etc.)
+ throw new UnsupportedException("Method not supported");
+ }
+
+ public void setDbModel(DbModel dbModel) {
+ this.dbModel = dbModel;
+ }
+
+ public void setDeploymentData(DeploymentData deploymentData) {
+ this.deploymentData = (DbUnitDeploymentData) deploymentData;
+ }
+
+ public void setTargetData(TargetData targetData) {
+ this.mxDatabase = (JdbcAware) targetData;
+
+ }
+
+ public void setDistribution(Distribution distribution) {
+ throw new UnsupportedException("Method not supported");
+ }
+
+}
diff --git a/org.argeo.slc.core/src/main/java/org/argeo/slc/support/deploy/db/DbUnitDeploymentData.java b/org.argeo.slc.core/src/main/java/org/argeo/slc/support/deploy/db/DbUnitDeploymentData.java
new file mode 100644
index 000000000..0e3612394
--- /dev/null
+++ b/org.argeo.slc.core/src/main/java/org/argeo/slc/support/deploy/db/DbUnitDeploymentData.java
@@ -0,0 +1,31 @@
+package org.argeo.slc.support.deploy.db;
+
+import java.io.InputStream;
+
+import org.argeo.slc.core.SlcException;
+import org.argeo.slc.core.deploy.DeploymentData;
+import org.dbunit.dataset.IDataSet;
+import org.dbunit.dataset.xml.FlatXmlDataSet;
+import org.springframework.core.io.Resource;
+
+public class DbUnitDeploymentData implements DeploymentData{
+ private Resource dataSetLocation;
+
+ public IDataSet createDataSet(){
+ try {
+ InputStream in = dataSetLocation.getInputStream();
+ IDataSet dataSet = new FlatXmlDataSet(in);
+ in.close();
+ return dataSet;
+ } catch (Exception e) {
+ throw new SlcException("Cannot create data set", e);
+ }
+
+ }
+
+ public void setDataSetLocation(Resource dataSetLocation) {
+ this.dataSetLocation = dataSetLocation;
+ }
+
+
+}
diff --git a/org.argeo.slc.core/src/main/java/org/argeo/slc/support/deploy/db/JdbcAware.java b/org.argeo.slc.core/src/main/java/org/argeo/slc/support/deploy/db/JdbcAware.java
new file mode 100644
index 000000000..0d4de5eae
--- /dev/null
+++ b/org.argeo.slc.core/src/main/java/org/argeo/slc/support/deploy/db/JdbcAware.java
@@ -0,0 +1,7 @@
+package org.argeo.slc.support.deploy.db;
+
+import javax.sql.DataSource;
+
+public interface JdbcAware {
+ public DataSource getDataSource();
+}
diff --git a/org.argeo.slc.core/src/main/java/org/argeo/slc/support/deploy/db/SimpleJdbcDatabase.java b/org.argeo.slc.core/src/main/java/org/argeo/slc/support/deploy/db/SimpleJdbcDatabase.java
new file mode 100644
index 000000000..29799038f
--- /dev/null
+++ b/org.argeo.slc.core/src/main/java/org/argeo/slc/support/deploy/db/SimpleJdbcDatabase.java
@@ -0,0 +1,27 @@
+package org.argeo.slc.support.deploy.db;
+
+import javax.sql.DataSource;
+
+import org.argeo.slc.core.UnsupportedException;
+import org.argeo.slc.core.build.Distribution;
+import org.argeo.slc.core.deploy.AbstractDeployedSystem;
+import org.argeo.slc.core.deploy.DeployedSystem;
+import org.argeo.slc.core.deploy.DeploymentData;
+import org.argeo.slc.core.deploy.TargetData;
+
+public class SimpleJdbcDatabase extends AbstractDeployedSystem implements
+ JdbcAware {
+ private DataSource dataSource;
+
+ public String getDeployedSystemId() {
+ return dataSource.toString();
+ }
+
+ public DataSource getDataSource() {
+ return dataSource;
+ }
+
+ public void setDataSource(DataSource dataSource) {
+ this.dataSource = dataSource;
+ }
+}
diff --git a/org.argeo.slc.core/src/main/java/org/argeo/slc/unit/test/tree/TreeTestResultTestUtils.java b/org.argeo.slc.core/src/main/java/org/argeo/slc/unit/test/tree/TreeTestResultTestUtils.java
index 944fe2e64..c602c0b94 100644
--- a/org.argeo.slc.core/src/main/java/org/argeo/slc/unit/test/tree/TreeTestResultTestUtils.java
+++ b/org.argeo.slc.core/src/main/java/org/argeo/slc/unit/test/tree/TreeTestResultTestUtils.java
@@ -4,6 +4,8 @@ import java.util.UUID;
import org.argeo.slc.core.build.Distribution;
import org.argeo.slc.core.deploy.DeployedSystem;
+import org.argeo.slc.core.deploy.DeploymentData;
+import org.argeo.slc.core.deploy.TargetData;
import org.argeo.slc.core.process.SlcExecution;
import org.argeo.slc.core.process.SlcExecutionStep;
import org.argeo.slc.core.structure.SimpleSElement;
@@ -56,6 +58,17 @@ public abstract class TreeTestResultTestUtils {
public Distribution getDistribution() {
return null;
}
+
+ public DeploymentData getDeploymentData() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
+ public TargetData getTargetData() {
+ // TODO Auto-generated method stub
+ return null;
+ }
+
});
testRun.notifySlcExecution(slcExecution);
@@ -90,7 +103,8 @@ public abstract class TreeTestResultTestUtils {
return partFailed;
}
- public static ResultPartRequest createSimpleResultPartRequest(TreeTestResult ttr) {
+ public static ResultPartRequest createSimpleResultPartRequest(
+ TreeTestResult ttr) {
TreeSPath path = ttr.getCurrentPath();
PartSubList lst = ttr.getResultParts().get(path);
SimpleResultPart part = (SimpleResultPart) lst.getParts().get(2);
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
index 8ede3a234..efb4cf513 100644
--- 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
@@ -1,13 +1,10 @@
package org.argeo.slc.core.process;
import java.io.IOException;
-import java.io.InputStream;
import java.io.StringReader;
-import java.io.StringWriter;
import java.text.SimpleDateFormat;
import java.util.UUID;
-import javax.xml.transform.stream.StreamResult;
import javax.xml.transform.stream.StreamSource;
import org.apache.commons.io.IOUtils;
@@ -18,13 +15,11 @@ import org.argeo.slc.msg.process.SlcExecutionStepsRequest;
import org.argeo.slc.unit.AbstractSpringTestCase;
import org.argeo.slc.unit.UnitXmlUtils;
import org.argeo.slc.unit.process.SlcExecutionTestUtils;
-
import org.springframework.oxm.Marshaller;
import org.springframework.oxm.Unmarshaller;
import org.springframework.xml.transform.StringResult;
import org.springframework.xml.transform.StringSource;
import org.springframework.xml.validation.XmlValidator;
-import org.springframework.xml.xsd.XsdSchema;
public class SlcExecutionCastorTest extends AbstractSpringTestCase {
private Log log = LogFactory.getLog(getClass());
diff --git a/org.argeo.slc.core/src/test/java/org/argeo/slc/core/test/tree/TreeTestResultCastorTest.java b/org.argeo.slc.core/src/test/java/org/argeo/slc/core/test/tree/TreeTestResultCastorTest.java
index aec7a68b4..baf8e3b7e 100644
--- a/org.argeo.slc.core/src/test/java/org/argeo/slc/core/test/tree/TreeTestResultCastorTest.java
+++ b/org.argeo.slc.core/src/test/java/org/argeo/slc/core/test/tree/TreeTestResultCastorTest.java
@@ -1,26 +1,22 @@
package org.argeo.slc.core.test.tree;
-import org.springframework.oxm.Marshaller;
-import org.springframework.oxm.Unmarshaller;
-import org.springframework.xml.transform.StringResult;
-import org.springframework.xml.transform.StringSource;
-import org.springframework.xml.validation.XmlValidator;
-
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-
import static org.argeo.slc.unit.UnitUtils.assertDateSec;
import static org.argeo.slc.unit.test.tree.TreeTestResultTestUtils.createCompleteTreeTestResult;
import static org.argeo.slc.unit.test.tree.TreeTestResultTestUtils.createSimpleResultPartRequest;
-import org.argeo.slc.core.structure.tree.TreeSPath;
-import org.argeo.slc.core.test.SimpleResultPart;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
import org.argeo.slc.msg.test.tree.CloseTreeTestResultRequest;
import org.argeo.slc.msg.test.tree.CreateTreeTestResultRequest;
import org.argeo.slc.msg.test.tree.ResultPartRequest;
import org.argeo.slc.unit.AbstractSpringTestCase;
import org.argeo.slc.unit.UnitXmlUtils;
import org.argeo.slc.unit.test.tree.UnitTestTreeUtil;
+import org.springframework.oxm.Marshaller;
+import org.springframework.oxm.Unmarshaller;
+import org.springframework.xml.transform.StringResult;
+import org.springframework.xml.transform.StringSource;
+import org.springframework.xml.validation.XmlValidator;
public class TreeTestResultCastorTest extends AbstractSpringTestCase {
private Log log = LogFactory.getLog(getClass());