Author: mwringe
Date: 2009-05-19 12:25:12 -0500 (Tue, 19 May 2009)
New Revision: 1953
Modified:
core/trunk/api/container/src/main/java/org/codehaus/cargo/container/property/GeneralPropertySet.java
core/trunk/api/container/src/main/java/org/codehaus/cargo/container/spi/AbstractInstalledLocalContainer.java
core/trunk/api/container/src/main/java/org/codehaus/cargo/container/spi/configuration/AbstractStandaloneLocalConfigurationCapability.java
core/trunk/api/container/src/test/java/org/codehaus/cargo/container/spi/InstalledLocalContainerTest.java
Log:
Add patch for CARGO-553 to allow passing runtime parameters
Modified: core/trunk/api/container/src/main/java/org/codehaus/cargo/container/property/GeneralPropertySet.java
===================================================================
--- core/trunk/api/container/src/main/java/org/codehaus/cargo/container/property/GeneralPropertySet.java 2009-05-12 20:39:40 UTC (rev 1952)
+++ core/trunk/api/container/src/main/java/org/codehaus/cargo/container/property/GeneralPropertySet.java 2009-05-19 17:25:12 UTC (rev 1953)
@@ -47,6 +47,11 @@
String JVMARGS = "cargo.jvmargs";
/**
+ * Runtime args to be used when starting/stopping containers (ex: "-userThreads").
+ */
+ String RUNTIME_ARGS = "cargo.runtime.args";
+
+ /**
* The port to use when communicating with this server, for example to start and stop it.
*/
String RMI_PORT = "cargo.rmi.port";
Modified: core/trunk/api/container/src/main/java/org/codehaus/cargo/container/spi/AbstractInstalledLocalContainer.java
===================================================================
--- core/trunk/api/container/src/main/java/org/codehaus/cargo/container/spi/AbstractInstalledLocalContainer.java 2009-05-12 20:39:40 UTC (rev 1952)
+++ core/trunk/api/container/src/main/java/org/codehaus/cargo/container/spi/AbstractInstalledLocalContainer.java 2009-05-19 17:25:12 UTC (rev 1953)
@@ -319,6 +319,9 @@
// Add system properties for the container JVM
addSystemProperties(java);
+
+ // Add runtime arguments if present
+ addRuntimeArgs(java);
// Add JVM args if defined
String jvmargs = getConfiguration().getPropertyValue(GeneralPropertySet.JVMARGS);
@@ -425,6 +428,23 @@
}
/**
+ * Add command line arguments to the java command.
+ * @param javacommand The java command
+ */
+ private void addRuntimeArgs(Java javacommand)
+ {
+ String runtimeArgs = getConfiguration().getPropertyValue(GeneralPropertySet.RUNTIME_ARGS);
+ if (runtimeArgs != null)
+ {
+ String[] arguments = runtimeArgs.split(" ");
+ for (int i = 0; i < arguments.length; i++)
+ {
+ javacommand.createArg().setValue(arguments[i]);
+ }
+ }
+ }
+
+ /**
* {@inheritDoc}
*
* @see org.codehaus.cargo.container.spi.AbstractLocalContainer#verify()
Modified: core/trunk/api/container/src/main/java/org/codehaus/cargo/container/spi/configuration/AbstractStandaloneLocalConfigurationCapability.java
===================================================================
--- core/trunk/api/container/src/main/java/org/codehaus/cargo/container/spi/configuration/AbstractStandaloneLocalConfigurationCapability.java 2009-05-12 20:39:40 UTC (rev 1952)
+++ core/trunk/api/container/src/main/java/org/codehaus/cargo/container/spi/configuration/AbstractStandaloneLocalConfigurationCapability.java 2009-05-19 17:25:12 UTC (rev 1953)
@@ -43,6 +43,7 @@
this.defaultSupportsMap.put(GeneralPropertySet.PROTOCOL, Boolean.TRUE);
this.defaultSupportsMap.put(GeneralPropertySet.HOSTNAME, Boolean.TRUE);
this.defaultSupportsMap.put(GeneralPropertySet.JVMARGS, Boolean.TRUE);
+ this.defaultSupportsMap.put(GeneralPropertySet.RUNTIME_ARGS, Boolean.TRUE);
this.defaultSupportsMap.put(GeneralPropertySet.JAVA_HOME, Boolean.TRUE);
this.defaultSupportsMap.put(ServletPropertySet.PORT, Boolean.TRUE);
Modified: core/trunk/api/container/src/test/java/org/codehaus/cargo/container/spi/InstalledLocalContainerTest.java
===================================================================
--- core/trunk/api/container/src/test/java/org/codehaus/cargo/container/spi/InstalledLocalContainerTest.java 2009-05-12 20:39:40 UTC (rev 1952)
+++ core/trunk/api/container/src/test/java/org/codehaus/cargo/container/spi/InstalledLocalContainerTest.java 2009-05-19 17:25:12 UTC (rev 1953)
@@ -84,6 +84,8 @@
public class AbstractInstalledLocalContainerStub extends AbstractInstalledLocalContainer
{
+ Java java;
+
public AbstractInstalledLocalContainerStub(LocalConfiguration configuration)
{
super(configuration);
@@ -91,6 +93,7 @@
protected void doStart(Java java) throws Exception
{
+ this.java = java;
}
protected void doStop(Java java) throws Exception
@@ -112,6 +115,12 @@
return null;
}
+ // method for testing to retrieve the java command created
+ public Java getJava()
+ {
+ return this.java;
+ }
+
}
public void testDoesntSetToolsJarWhenOsX() throws Exception
@@ -255,6 +264,23 @@
container.getSystemProperties().put("1", "2");
assertEquals(1, container.getSystemProperties().size());
assertEquals("2", container.getSystemProperties().get("1"));
-
}
+
+ public void testRuntimArgs()
+ {
+ AbstractInstalledLocalContainerStub container =
+ new AbstractInstalledLocalContainerStub(configuration);
+ try
+ {
+ container.getConfiguration().setProperty("cargo.runtime.args", "hello -world");
+ container.startInternal();
+ Java java = container.getJava();
+ assertTrue("Expected runtime arguments not contained in the java commandline.", java.getCommandLine().toString().contains("hello -world"));
+ }
+ catch (Exception e)
+ {
+ assertNull("An exception occured while getting the java object", true);
+ }
+ }
+
}
---------------------------------------------------------------------
To unsubscribe from this list, please visit:
http://xircles.codehaus.org/manage_email