[jboss-cvs] JBossAS SVN: r85946 - 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
Mon Mar 16 16:51:15 EDT 2009


Author: ALRubinger
Date: 2009-03-16 16:51:15 -0400 (Mon, 16 Mar 2009)
New Revision: 85946

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
Log:
[EJBTHREE-1775] test-remote MockServer should do nothing more than bind to remoting, fire up MC

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-16 19:45:12 UTC (rev 85945)
+++ projects/ejb3/trunk/proxy-impl/src/test/java/org/jboss/ejb3/test/proxy/impl/remoteaccess/unit/ProxyMockServer.java	2009-03-16 20:51:15 UTC (rev 85946)
@@ -21,11 +21,16 @@
  */
 package org.jboss.ejb3.test.proxy.impl.remoteaccess.unit;
 
+import java.net.URL;
+
+import org.jboss.aop.AspectManager;
+import org.jboss.aop.AspectXmlLoader;
 import org.jboss.ejb3.test.proxy.impl.common.Utils;
 import org.jboss.ejb3.test.proxy.impl.common.container.StatefulContainer;
 import org.jboss.ejb3.test.proxy.impl.common.container.StatelessContainer;
 import org.jboss.ejb3.test.proxy.impl.common.ejb.sfsb.MyStatefulBean;
 import org.jboss.ejb3.test.proxy.impl.common.ejb.slsb.MyStatelessBean;
+import org.jboss.ejb3.testremote.server.JndiPropertiesToJnpserverPropertiesHackCl;
 import org.jboss.ejb3.testremote.server.MockServer;
 import org.jboss.logging.Logger;
 
@@ -46,13 +51,15 @@
 
    private static final Logger log = Logger.getLogger(ProxyMockServer.class);
 
+   private static final String FILENAME_EJB3_INTERCEPTORS_AOP = "ejb3-interceptors-aop.xml";
+
    // --------------------------------------------------------------------------------||
    // Constructor --------------------------------------------------------------------||
    // --------------------------------------------------------------------------------||
 
-   public ProxyMockServer(final Class<?> testClass, final String serverHost, final int port)
+   public ProxyMockServer()
    {
-      super(testClass, serverHost, port);
+      super();
    }
 
    /**
@@ -64,6 +71,31 @@
       // Call super implementation
       super.initialize();
 
+      // Switch up to the hacky CL so that "jndi.properties" is not loaded
+      ClassLoader olderLoader = Thread.currentThread().getContextClassLoader();
+      try
+      {
+         Thread.currentThread().setContextClassLoader(new JndiPropertiesToJnpserverPropertiesHackCl());
+
+         // Deploy *-beans.xml
+         this.getBootstrap().deploy(this.getTestClass());
+
+         // Load ejb3-interceptors-aop.xml into AspectManager
+         ClassLoader cl = Thread.currentThread().getContextClassLoader();
+         URL url = cl.getResource(FILENAME_EJB3_INTERCEPTORS_AOP);
+         if (url == null)
+         {
+            throw new RuntimeException("Could not load " + AspectManager.class.getSimpleName()
+                  + " with definitions from XML as file " + FILENAME_EJB3_INTERCEPTORS_AOP + " could not be found");
+         }
+         AspectXmlLoader.deployXML(url);
+      }
+      finally
+      {
+         // Restore old CL
+         Thread.currentThread().setContextClassLoader(olderLoader);
+      }
+
       // Create a SLSB Container
       final StatelessContainer slsbContainer = Utils.createSlsb(MyStatelessBean.class);
       log.info("Created SLSB Container: " + slsbContainer.getName());

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-16 19:45:12 UTC (rev 85945)
+++ projects/ejb3/trunk/test-remote/src/main/java/org/jboss/ejb3/testremote/server/MockServer.java	2009-03-16 20:51:15 UTC (rev 85946)
@@ -22,16 +22,12 @@
 package org.jboss.ejb3.testremote.server;
 
 import java.lang.reflect.Constructor;
-import java.net.URL;
 
-import org.jboss.aop.AspectManager;
-import org.jboss.aop.AspectXmlLoader;
 import org.jboss.ejb3.common.registrar.plugin.mc.Ejb3McRegistrar;
 import org.jboss.ejb3.common.registrar.spi.Ejb3RegistrarLocator;
 import org.jboss.ejb3.test.mc.bootstrap.EmbeddedTestMcBootstrap;
 import org.jboss.logging.Logger;
 import org.jboss.remoting.InvokerLocator;
-import org.jboss.remoting.ServerInvocationHandler;
 import org.jboss.remoting.transport.Connector;
 
 /**
@@ -53,14 +49,6 @@
    private static final Logger log = Logger.getLogger(MockServer.class);
 
    /**
-    * Invocation request to the MockServer will be handler by this
-    * invocation handler
-    */
-   private ServerInvocationHandler mockServerInvocationHandler;
-
-   private static final String FILENAME_EJB3_INTERCEPTORS_AOP = "ejb3-interceptors-aop.xml";
-
-   /**
     * Various possible server status
     */
    public enum MockServerStatus {
@@ -101,32 +89,11 @@
    // --------------------------------------------------------------------------------||
 
    /**
-    * Constructor
-    * Configures and creates a socket based {@link Connector} which will
-    * accept (start/stop) requests from client 
+    * Required no-arg Constructor 
     */
-   public MockServer(Class<?> testClass, String serverHost, int port)
+   public MockServer()
    {
-      this.setTestClass(testClass);
-      String uri = "socket://" + serverHost + ":" + port;
-      try
-      {
-         InvokerLocator invokerLocator = new InvokerLocator(uri);
 
-         this.remoteConnector = new Connector(invokerLocator);
-         this.remoteConnector.create();
-         this.mockServerInvocationHandler = new MockServerInvocationHandler(this);
-         this.remoteConnector.addInvocationHandler("EJB3Test", this.mockServerInvocationHandler);
-         log.debug("Connector created for accepting MockServer requests");
-
-      }
-      catch (Exception e)
-      {
-         log.error("Could not create Mockserver for testclass = " + testClass + " serverHost= " + serverHost
-               + " port= " + port, e);
-         throw new RuntimeException("Could not start server at " + uri, e);
-      }
-
    }
 
    // --------------------------------------------------------------------------------||
@@ -168,6 +135,10 @@
          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]);
+
       // Get Mock Server implementation 
       String mockServerClassName = args[1];
 
@@ -193,21 +164,28 @@
       Constructor<?> serverCtor = null;
       try
       {
-         serverCtor = mockServerClass.getConstructor(new Class<?>[]
-         {Class.class, String.class, int.class});
+         serverCtor = mockServerClass.getConstructor();
       }
       catch (NoSuchMethodException e1)
       {
          throw new RuntimeException("MockServer implementation " + mockServerClassName
-               + " must have a public ctor(Class,String,int)", e1);
+               + " must have a public no-arg ctor", e1);
       }
 
-      MockServer launcher = (MockServer) serverCtor.newInstance(new Object[]
-      {testClass, args[args.length - 2], Integer.parseInt(args[args.length - 1])});
+      // Create launcher
+      MockServer launcher = (MockServer) serverCtor.newInstance();
 
+      // Set Test Class
+      launcher.setTestClass(testClass);
+
       try
       {
          // Ready to receive (start/stop) requests
+         String bindUri = "socket://" + bindHost + ":" + bindPort;
+         InvokerLocator invokerLocator = new InvokerLocator(bindUri);
+         launcher.remoteConnector = new Connector(invokerLocator);
+         launcher.remoteConnector.create();
+         launcher.remoteConnector.addInvocationHandler("EJB3Test", new MockServerInvocationHandler(launcher));
          launcher.acceptRequests();
       }
       catch (Throwable e)
@@ -236,31 +214,6 @@
 
       // Bind the Ejb3Registrar
       Ejb3RegistrarLocator.bindRegistrar(new Ejb3McRegistrar(bootstrap.getKernel()));
-
-      // Switch up to the hacky CL so that "jndi.properties" is not loaded
-      ClassLoader olderLoader = Thread.currentThread().getContextClassLoader();
-      try
-      {
-         Thread.currentThread().setContextClassLoader(new JndiPropertiesToJnpserverPropertiesHackCl());
-
-         // Deploy *-beans.xml
-         this.getBootstrap().deploy(this.getTestClass());
-
-         // Load ejb3-interceptors-aop.xml into AspectManager
-         ClassLoader cl = Thread.currentThread().getContextClassLoader();
-         URL url = cl.getResource(FILENAME_EJB3_INTERCEPTORS_AOP);
-         if (url == null)
-         {
-            throw new RuntimeException("Could not load " + AspectManager.class.getSimpleName()
-                  + " with definitions from XML as file " + FILENAME_EJB3_INTERCEPTORS_AOP + " could not be found");
-         }
-         AspectXmlLoader.deployXML(url);
-      }
-      finally
-      {
-         // Restore old CL
-         Thread.currentThread().setContextClassLoader(olderLoader);
-      }
    }
 
    /**
@@ -326,17 +279,6 @@
       this.remoteConnector.start();
    }
 
-   /**
-    * 
-    * @param serverInvocationHandler The {@link ServerInvocationHandler} to
-    *   handle requests
-    */
-   protected void setInvocationHandler(ServerInvocationHandler serverInvocationHandler)
-   {
-      this.mockServerInvocationHandler = serverInvocationHandler;
-
-   }
-
    // --------------------------------------------------------------------------------||
    // Accessors / Mutators -----------------------------------------------------------||
    // --------------------------------------------------------------------------------||




More information about the jboss-cvs-commits mailing list