From: Mathieu Baudier Date: Wed, 4 Jun 2008 14:55:58 +0000 (+0000) Subject: Restructure deployment X-Git-Tag: argeo-slc-2.1.7~2856 X-Git-Url: http://git.argeo.org/?a=commitdiff_plain;h=df5ca3e7e3e4949e53b7c02b45805cc1375559c3;p=gpl%2Fargeo-slc.git Restructure deployment git-svn-id: https://svn.argeo.org/slc/trunk@1185 4cfe0d0a-d680-48aa-b62c-e0a02a3f76cc --- diff --git a/org.argeo.slc.core/src/main/java/org/argeo/slc/core/build/DistributionId.java b/org.argeo.slc.core/src/main/java/org/argeo/slc/core/build/DistributionId.java deleted file mode 100644 index c253a679b..000000000 --- a/org.argeo.slc.core/src/main/java/org/argeo/slc/core/build/DistributionId.java +++ /dev/null @@ -1,7 +0,0 @@ -package org.argeo.slc.core.build; - -/** The id uniquely identifying the distribution of a software system. - * @deprecated*/ -public interface DistributionId { - -} diff --git a/org.argeo.slc.core/src/main/java/org/argeo/slc/core/build/VersionDistributionId.java b/org.argeo.slc.core/src/main/java/org/argeo/slc/core/build/VersionDistributionId.java index 27ac020b3..44a02cd60 100644 --- a/org.argeo.slc.core/src/main/java/org/argeo/slc/core/build/VersionDistributionId.java +++ b/org.argeo.slc.core/src/main/java/org/argeo/slc/core/build/VersionDistributionId.java @@ -15,7 +15,7 @@ import java.util.StringTokenizer; * 2.4.12.RC1 *

*/ -public class VersionDistributionId implements DistributionId { +public class VersionDistributionId { private Integer major; private Integer minor; diff --git a/org.argeo.slc.core/src/main/java/org/argeo/slc/core/deploy/AbstractDeployedSystem.java b/org.argeo.slc.core/src/main/java/org/argeo/slc/core/deploy/AbstractDeployedSystem.java new file mode 100644 index 000000000..602e02d9f --- /dev/null +++ b/org.argeo.slc.core/src/main/java/org/argeo/slc/core/deploy/AbstractDeployedSystem.java @@ -0,0 +1,25 @@ +package org.argeo.slc.core.deploy; + +import org.argeo.slc.core.UnsupportedException; +import org.argeo.slc.core.build.Distribution; + +public abstract class AbstractDeployedSystem implements DeployedSystem { + public String getDeployedSystemId() { + // TODO Auto-generated method stub + return null; + } + + public DeploymentData getDeploymentData() { + throw new UnsupportedException("Method not supported"); + } + + public Distribution getDistribution() { + throw new UnsupportedException("Method not supported"); + } + + public TargetData getTargetData() { + throw new UnsupportedException("Method not supported"); + } + + +} diff --git a/org.argeo.slc.core/src/main/java/org/argeo/slc/core/deploy/DeployedSystem.java b/org.argeo.slc.core/src/main/java/org/argeo/slc/core/deploy/DeployedSystem.java index 2fabf5606..3b29c5ae4 100644 --- a/org.argeo.slc.core/src/main/java/org/argeo/slc/core/deploy/DeployedSystem.java +++ b/org.argeo.slc.core/src/main/java/org/argeo/slc/core/deploy/DeployedSystem.java @@ -3,7 +3,13 @@ package org.argeo.slc.core.deploy; import org.argeo.slc.core.build.Distribution; /** An instance of a software system. */ -public interface DeployedSystem { +public interface DeployedSystem + extends TargetData { public String getDeployedSystemId(); - public Distribution getDistribution(); + + public DISTRIBUTION getDistribution(); + + public DeploymentData getDeploymentData(); + + public TARGET_DATA getTargetData(); } diff --git a/org.argeo.slc.core/src/main/java/org/argeo/slc/core/deploy/DeployedSystemId.java b/org.argeo.slc.core/src/main/java/org/argeo/slc/core/deploy/DeployedSystemId.java deleted file mode 100644 index ea4d19250..000000000 --- a/org.argeo.slc.core/src/main/java/org/argeo/slc/core/deploy/DeployedSystemId.java +++ /dev/null @@ -1,9 +0,0 @@ -package org.argeo.slc.core.deploy; - -import org.argeo.slc.core.build.DistributionId; - -/** The id uniquely identifying a deployed system. - * @deprecated*/ -public interface DeployedSystemId { - public DistributionId getDistributionId(); -} diff --git a/org.argeo.slc.core/src/main/java/org/argeo/slc/core/deploy/DeployedSystemManager.java b/org.argeo.slc.core/src/main/java/org/argeo/slc/core/deploy/DeployedSystemManager.java new file mode 100644 index 000000000..281f81c73 --- /dev/null +++ b/org.argeo.slc.core/src/main/java/org/argeo/slc/core/deploy/DeployedSystemManager.java @@ -0,0 +1,5 @@ +package org.argeo.slc.core.deploy; + +public interface DeployedSystemManager { + public void setDeployedSystem(T deployedSystem); +} diff --git a/org.argeo.slc.core/src/main/java/org/argeo/slc/core/deploy/Deployment.java b/org.argeo.slc.core/src/main/java/org/argeo/slc/core/deploy/Deployment.java index 4a7403071..d59e4c146 100644 --- a/org.argeo.slc.core/src/main/java/org/argeo/slc/core/deploy/Deployment.java +++ b/org.argeo.slc.core/src/main/java/org/argeo/slc/core/deploy/Deployment.java @@ -1,9 +1,16 @@ package org.argeo.slc.core.deploy; +import org.argeo.slc.core.build.Distribution; + public interface Deployment { public DeployedSystem getDeployedSystem(); - public TargetData getTargetData(); + public void setTargetData(TargetData targetData); + + public void setDeploymentData(DeploymentData deploymentData); + + public void setDistribution(Distribution distribution); + + public void execute(); - public DeploymentData getDeploymentData(); } diff --git a/org.argeo.slc.core/src/main/java/org/argeo/slc/core/deploy/ExecutableDeployment.java b/org.argeo.slc.core/src/main/java/org/argeo/slc/core/deploy/ExecutableDeployment.java deleted file mode 100644 index 284e6c511..000000000 --- a/org.argeo.slc.core/src/main/java/org/argeo/slc/core/deploy/ExecutableDeployment.java +++ /dev/null @@ -1,5 +0,0 @@ -package org.argeo.slc.core.deploy; - -public interface ExecutableDeployment extends Deployment { - public void execute(); -} diff --git a/org.argeo.slc.core/src/main/java/org/argeo/slc/core/deploy/ManageableDeployedSystem.java b/org.argeo.slc.core/src/main/java/org/argeo/slc/core/deploy/ManageableDeployedSystem.java new file mode 100644 index 000000000..6afee96b6 --- /dev/null +++ b/org.argeo.slc.core/src/main/java/org/argeo/slc/core/deploy/ManageableDeployedSystem.java @@ -0,0 +1,6 @@ +package org.argeo.slc.core.deploy; + +public interface ManageableDeployedSystem extends DeployedSystem { + public void start(); + public void stop(); +} diff --git a/org.argeo.slc.core/src/main/java/org/argeo/slc/core/deploy/NumericDSId.java b/org.argeo.slc.core/src/main/java/org/argeo/slc/core/deploy/NumericDSId.java deleted file mode 100644 index 494fc8a77..000000000 --- a/org.argeo.slc.core/src/main/java/org/argeo/slc/core/deploy/NumericDSId.java +++ /dev/null @@ -1,40 +0,0 @@ -package org.argeo.slc.core.deploy; - -import org.argeo.slc.core.build.DistributionId; - -/** - * A basic implementation of a deployed system id, based on a long value and a - * reference to a distribution id. - */ -public class NumericDSId implements DeployedSystemId { - - private Long value; - private DistributionId distributionId; - - public Long getValue() { - return value; - } - - public void setValue(Long value) { - this.value = value; - } - - public DistributionId getDistributionId() { - return distributionId; - } - - public void setDistributionId(DistributionId distributionId) { - this.distributionId = distributionId; - } - - @Override - public boolean equals(Object obj) { - return value.toString().equals(obj.toString()); - } - - @Override - public String toString() { - return value.toString(); - } - -} diff --git a/org.argeo.slc.core/src/main/java/org/argeo/slc/core/deploy/SimpleDeployedSytemManager.java b/org.argeo.slc.core/src/main/java/org/argeo/slc/core/deploy/SimpleDeployedSytemManager.java new file mode 100644 index 000000000..71483dbd8 --- /dev/null +++ b/org.argeo.slc.core/src/main/java/org/argeo/slc/core/deploy/SimpleDeployedSytemManager.java @@ -0,0 +1,12 @@ +package org.argeo.slc.core.deploy; + +public class SimpleDeployedSytemManager implements + DeployedSystemManager { + + private ManageableDeployedSystem deployedSystem; + + public void setDeployedSystem(ManageableDeployedSystem deployedSystem) { + this.deployedSystem = deployedSystem; + } + +} diff --git a/org.argeo.slc.core/src/main/java/org/argeo/slc/core/deploy/WritableDeployment.java b/org.argeo.slc.core/src/main/java/org/argeo/slc/core/deploy/WritableDeployment.java deleted file mode 100644 index 15c3ccb6c..000000000 --- a/org.argeo.slc.core/src/main/java/org/argeo/slc/core/deploy/WritableDeployment.java +++ /dev/null @@ -1,9 +0,0 @@ -package org.argeo.slc.core.deploy; - -public interface WritableDeployment extends ExecutableDeployment { - public void setDeployedSystem(DeployedSystem deployedSystem); - - public void setTargetData(TargetData targetData); - - public void setDeploymentData(DeploymentData deploymentData); -} diff --git a/org.argeo.slc.core/src/main/java/org/argeo/slc/core/structure/SimpleSElement.java b/org.argeo.slc.core/src/main/java/org/argeo/slc/core/structure/SimpleSElement.java index 9faea935f..6fcef33c8 100644 --- a/org.argeo.slc.core/src/main/java/org/argeo/slc/core/structure/SimpleSElement.java +++ b/org.argeo.slc.core/src/main/java/org/argeo/slc/core/structure/SimpleSElement.java @@ -3,7 +3,7 @@ package org.argeo.slc.core.structure; import java.util.Map; import java.util.TreeMap; -import javax.swing.tree.TreeSelectionModel; +import org.argeo.slc.core.structure.tree.TreeSPath; /** * Basic implementation of 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());