[jboss-cvs] JBossAS SVN: r86052 - projects/ejb3/trunk/test-remote/src/main/java/org/jboss/ejb3/testremote/server.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Wed Mar 18 10:52:47 EDT 2009


Author: ALRubinger
Date: 2009-03-18 10:52:47 -0400 (Wed, 18 Mar 2009)
New Revision: 86052

Modified:
   projects/ejb3/trunk/test-remote/src/main/java/org/jboss/ejb3/testremote/server/MockServerController.java
Log:
[EJBTHREE-1775] Allow clients to MockServerController to specify the JDK under which MockServer should run

Modified: projects/ejb3/trunk/test-remote/src/main/java/org/jboss/ejb3/testremote/server/MockServerController.java
===================================================================
--- projects/ejb3/trunk/test-remote/src/main/java/org/jboss/ejb3/testremote/server/MockServerController.java	2009-03-18 14:36:53 UTC (rev 86051)
+++ projects/ejb3/trunk/test-remote/src/main/java/org/jboss/ejb3/testremote/server/MockServerController.java	2009-03-18 14:52:47 UTC (rev 86052)
@@ -151,6 +151,23 @@
     */
    public void startServer(Class<? extends MockServer> serverClass, String[] arguments) throws Throwable
    {
+      this.startServer(null, serverClass, arguments);
+   }
+
+   /**
+    * Creates a remote process (JVM) to launch the {@link MockServer}
+    * and then sends a {@link MockServerRequest#START} request to start the
+    * server
+    *   
+    * @param serverClass The class of the server to be used
+    * @param arguments The arguments that will be passed to the {@link MockServer} 
+    *       as JVM program arguments
+    *       
+    * @throws Throwable
+    */
+   public void startServer(String envVarJavaHome, Class<? extends MockServer> serverClass, String[] arguments)
+         throws Throwable
+   {
       // Along with the arguments that the client passes to the server,
       // append the the serverHost and port number on which the mockserver is
       // expected to listen
@@ -162,8 +179,16 @@
       processArgs[1] = this.serverHost;
       processArgs[2] = String.valueOf(this.port);
 
-      createRemoteProcess(serverClass, processArgs);
+      // Define JAVA_HOME, overridding w/ the specified environment variable if specified
+      String javaHome = System.getenv(MockServerController.ENV_VAR_JAVAHOME);
+      if (envVarJavaHome != null && envVarJavaHome.length() > 0)
+      {
+         String override = System.getenv(envVarJavaHome);
+         javaHome = override != null ? override : javaHome;
+      }
 
+      createRemoteProcess(javaHome, serverClass, processArgs);
+
       /* 
        * Wait a max of 5 seconds for the remote process (remember, not the server)
        * to start
@@ -339,10 +364,10 @@
     * 
     * @throws Throwable
     */
-   private void createRemoteProcess(Class<? extends MockServer> serverClass, String arguments[]) throws Throwable
+   private void createRemoteProcess(String javaHome, Class<? extends MockServer> serverClass, String arguments[])
+         throws Throwable
    {
       // Get the current System Properties and Environment Variables
-      String javaHome = System.getenv(MockServerController.ENV_VAR_JAVAHOME);
       String conf = MockServerController.LOCATION_CONF;
       String testClasses = MockServerController.LOCATION_TEST_CLASSES;
       String classes = MockServerController.LOCATION_CLASSES;




More information about the jboss-cvs-commits mailing list