dain        2005/02/10 06:00:00

  Modified:    modules/openejb-builder/src/test/org/openejb/deployment
                        AbstractDeploymentTest.java
  Log:

  Added support for cross classloader invocations.  The code is a bit slow but 
works.
  
  Revision  Changes    Path
  1.3       +19 -1     
openejb/modules/openejb-builder/src/test/org/openejb/deployment/AbstractDeploymentTest.java
  
  Index: AbstractDeploymentTest.java
  ===================================================================
  RCS file: 
/home/projects/openejb/scm/openejb/modules/openejb-builder/src/test/org/openejb/deployment/AbstractDeploymentTest.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- AbstractDeploymentTest.java       10 Feb 2005 07:09:10 -0000      1.2
  +++ AbstractDeploymentTest.java       10 Feb 2005 11:00:00 -0000      1.3
  @@ -48,6 +48,9 @@
   package org.openejb.deployment;
   
   import java.util.Set;
  +import java.net.URLClassLoader;
  +import java.net.URL;
  +import java.io.File;
   import javax.ejb.EJBHome;
   import javax.management.ObjectName;
   
  @@ -107,6 +110,21 @@
                           
"org.openejb.test.simple.slsb.SimpleStatelessSessionHome");
           proxyReference.setKernel(getKernel());
           proxyReference.setClassLoader(getApplicationClassLoader());
  +        statelessHome = proxyReference.getContent();
  +        assertTrue("Home is not an instance of EJBHome", statelessHome 
instanceof EJBHome);
  +        stateless = statelessHome.getClass().getMethod("create", 
null).invoke(statelessHome, null);
  +        assertEquals("TestResult", stateless.getClass().getMethod("echo", 
new Class[]{String.class}).invoke(stateless, new Object[]{"TestResult"}));
  +    }
  +
  +    public void testCrossClassLoaderInvoke() throws Exception {
  +        Object statelessHome;
  +        Object stateless;
  +        EJBProxyReference proxyReference = 
EJBProxyReference.createRemote(STATELESS_BEAN_NAME.getCanonicalName(),
  +                        true,
  +                        
"org.openejb.test.simple.slsb.SimpleStatelessSession",
  +                        
"org.openejb.test.simple.slsb.SimpleStatelessSessionHome");
  +        proxyReference.setKernel(getKernel());
  +        proxyReference.setClassLoader(new URLClassLoader(new URL[] {new 
File("target/test-ejb-jar.jar").toURL()}, getClass().getClassLoader()));
           statelessHome = proxyReference.getContent();
           assertTrue("Home is not an instance of EJBHome", statelessHome 
instanceof EJBHome);
           stateless = statelessHome.getClass().getMethod("create", 
null).invoke(statelessHome, null);
  
  
  

Reply via email to