[cargo] r1953 - in core/trunk/api/container/src: main/java/org/codehaus/cargo/container/property main/java/org/codehaus/cargo/container/spi main/java/org/codehaus/cargo/container/spi/configuration test/java/org/codehaus/cargo/container/spi

View: New views
1 Messages — Rating Filter:   Alert me  

[cargo] r1953 - in core/trunk/api/container/src: main/java/org/codehaus/cargo/container/property main/java/org/codehaus/cargo/container/spi main/java/org/codehaus/cargo/container/spi/configuration test/java/org/codehaus/cargo/container/spi

by mwringe :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

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