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);