[jboss-cvs] JBossAS SVN: r86045 - in projects/ejb3/trunk: test-remote/src/main/java/org/jboss/ejb3/testremote/server and 1 other directory.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Wed Mar 18 10:05:03 EDT 2009


Author: ALRubinger
Date: 2009-03-18 10:05:03 -0400 (Wed, 18 Mar 2009)
New Revision: 86045

Modified:
   projects/ejb3/trunk/proxy-impl/src/test/java/org/jboss/ejb3/test/proxy/impl/remoteaccess/unit/ProxyMockServer.java
   projects/ejb3/trunk/test-remote/src/main/java/org/jboss/ejb3/testremote/server/MockServer.java
   projects/ejb3/trunk/test-remote/src/main/java/org/jboss/ejb3/testremote/server/MockServerController.java
Log:
[EJBTHREE-1775] Do not impose a testClass upon MockServer implementations, instead expose all CLI arguments

Modified: projects/ejb3/trunk/proxy-impl/src/test/java/org/jboss/ejb3/test/proxy/impl/remoteaccess/unit/ProxyMockServer.java
===================================================================
--- projects/ejb3/trunk/proxy-impl/src/test/java/org/jboss/ejb3/test/proxy/impl/remoteaccess/unit/ProxyMockServer.java	2009-03-18 13:41:04 UTC (rev 86044)
+++ projects/ejb3/trunk/proxy-impl/src/test/java/org/jboss/ejb3/test/proxy/impl/remoteaccess/unit/ProxyMockServer.java	2009-03-18 14:05:03 UTC (rev 86045)
@@ -78,7 +78,19 @@
          Thread.currentThread().setContextClassLoader(new JndiPropertiesToJnpserverPropertiesHackCl());
 
          // Deploy *-beans.xml
-         this.getBootstrap().deploy(this.getTestClass());
+         String testClassName = null;
+         try
+         {
+            testClassName = this.getCommandLineArgs()[3];
+         }
+         catch (ArrayIndexOutOfBoundsException aioobe)
+         {
+            throw new RuntimeException("3rd argument to " + this.getClass().getName()
+                  + " command launcher must be the FQN of the Test Class");
+         }
+         assert testClassName != null : "Test Class Name was not specified";
+         Class<?> testClass = Class.forName(testClassName, false, Thread.currentThread().getContextClassLoader());
+         this.getBootstrap().deploy(testClass);
 
          // Load ejb3-interceptors-aop.xml into AspectManager
          ClassLoader cl = Thread.currentThread().getContextClassLoader();

Modified: projects/ejb3/trunk/test-remote/src/main/java/org/jboss/ejb3/testremote/server/MockServer.java
===================================================================
--- projects/ejb3/trunk/test-remote/src/main/java/org/jboss/ejb3/testremote/server/MockServer.java	2009-03-18 13:41:04 UTC (rev 86044)
+++ projects/ejb3/trunk/test-remote/src/main/java/org/jboss/ejb3/testremote/server/MockServer.java	2009-03-18 14:05:03 UTC (rev 86045)
@@ -80,9 +80,9 @@
    private MockServerStatus currentStatus = MockServerStatus.STOPPED;
 
    /**
-    * The Test Class using this launcher
+    * CLI arguments to the process
     */
-   private Class<?> testClass;
+   private String[] commandLineArgs;
 
    // --------------------------------------------------------------------------------||
    // Constructor --------------------------------------------------------------------||
@@ -121,32 +121,19 @@
       }
 
       // Assert test class passed in
-      assert args.length == 4 : "Parameters requried (in this order): <Fully qualified test case name> <serverFQClassName> <serverBindAddress> <serverPort>";
+      assert args.length >= 3 : "Parameters requried (in this order): <serverFQClassName> <serverBindAddress> <serverPort> <additionalOptionalArguments>";
 
-      // Get Test Class
-      String testClassname = args[0];
-      Class<?> testClass = null;
-      try
-      {
-         testClass = Class.forName(testClassname);
-      }
-      catch (ClassNotFoundException cnfe)
-      {
-         throw new RuntimeException("Specified Test Class, \"" + testClassname + "\" could not be found", cnfe);
-      }
-
       // Get bind information
-      String bindHost = args[args.length - 2];
-      int bindPort = Integer.parseInt(args[args.length - 1]);
+      String bindHost = args[1];
+      int bindPort = Integer.parseInt(args[2]);
 
       // Get Mock Server implementation 
-      String mockServerClassName = args[1];
+      String mockServerClassName = args[0];
 
       // Create a new Launcher
       // the serverBindAddress and the port are always the last two arguments
-      log.debug("Creating a MockServer for testclass = " + testClass + " and serverBindAddr = " + args[args.length - 2]
-            + " and port = " + args[args.length - 1] + " using " + MockServer.class.getSimpleName()
-            + " implementation: " + mockServerClassName);
+      log.debug("Creating a MockServer for serverBindAddr = " + bindHost + " and port = " + bindPort + " using "
+            + MockServer.class.getSimpleName() + " implementation: " + mockServerClassName);
 
       // Get the mock server class 
       Class<?> mockServerClass = null;
@@ -175,8 +162,8 @@
       // Create launcher
       MockServer launcher = (MockServer) serverCtor.newInstance();
 
-      // Set Test Class
-      launcher.setTestClass(testClass);
+      // Set CLI args
+      launcher.setCommandLineArgs(args);
 
       try
       {
@@ -293,14 +280,14 @@
       this.bootstrap = bootstrap;
    }
 
-   public Class<?> getTestClass()
+   protected String[] getCommandLineArgs()
    {
-      return testClass;
+      return commandLineArgs;
    }
 
-   public void setTestClass(Class<?> testClass)
+   protected void setCommandLineArgs(String[] commandLineArgs)
    {
-      this.testClass = testClass;
+      this.commandLineArgs = commandLineArgs;
    }
 
 }

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 13:41:04 UTC (rev 86044)
+++ projects/ejb3/trunk/test-remote/src/main/java/org/jboss/ejb3/testremote/server/MockServerController.java	2009-03-18 14:05:03 UTC (rev 86045)
@@ -156,11 +156,11 @@
       // expected to listen
       int numberOfArgs = arguments.length;
       String[] processArgs = new String[numberOfArgs + 3];
-      System.arraycopy(arguments, 0, processArgs, 0, numberOfArgs);
-      // now append the server host and port
-      processArgs[processArgs.length - 3] = serverClass.getName();
-      processArgs[processArgs.length - 2] = this.serverHost;
-      processArgs[processArgs.length - 1] = String.valueOf(this.port);
+      System.arraycopy(arguments, 0, processArgs, 3, numberOfArgs);
+      // now prepend the server host and port
+      processArgs[0] = serverClass.getName();
+      processArgs[1] = this.serverHost;
+      processArgs[2] = String.valueOf(this.port);
 
       createRemoteProcess(serverClass, processArgs);
 




More information about the jboss-cvs-commits mailing list