dain 2005/02/10 02:09:10
Modified: modules/openejb-builder/src/test/org/openejb/deployment
AbstractDeploymentTest.java
DeploymentTestSuite.java
Log:
Fixed in class loader invoke test.
Revision Changes Path
1.2 +22 -17
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.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- AbstractDeploymentTest.java 10 Feb 2005 06:38:32 -0000 1.1
+++ AbstractDeploymentTest.java 10 Feb 2005 07:09:10 -0000 1.2
@@ -53,12 +53,16 @@
import junit.framework.TestCase;
import org.apache.geronimo.kernel.Kernel;
+import org.apache.geronimo.kernel.jmx.JMXUtil;
import org.apache.geronimo.kernel.management.State;
+import org.openejb.proxy.EJBProxyReference;
/**
* @version $Revision$ $Date$
*/
public abstract class AbstractDeploymentTest extends TestCase implements
DeploymentTestContants {
+ private final ObjectName STATELESS_BEAN_NAME =
JMXUtil.getObjectName(DOMAIN_NAME +
":j2eeType=StatelessSessionBean,J2EEServer=" + SERVER_NAME +
",J2EEApplication=" + getJ2eeApplicationName() + ",EJBModule=" +
getJ2eeModuleName() + ",name=SimpleStatelessSession");
+
public abstract Kernel getKernel();
public abstract ClassLoader getApplicationClassLoader();
public abstract String getJ2eeApplicationName();
@@ -80,32 +84,33 @@
}
public void testStatelessContainer() throws Exception {
- ObjectName statelessBeanName = ObjectName.getInstance(DOMAIN_NAME +
":j2eeType=StatelessSessionBean,J2EEServer=" + SERVER_NAME +
",J2EEApplication=" + getJ2eeApplicationName() + ",EJBModule=" +
getJ2eeModuleName() + ",name=SimpleStatelessSession");
- assertRunning(getKernel(), statelessBeanName);
+ assertRunning(getKernel(), STATELESS_BEAN_NAME);
// use reflection to invoke a method on the stateless bean, because
we don't have access to the classes here
- Object statelessHome = getKernel().getAttribute(statelessBeanName,
"ejbHome");
+ Object statelessHome = getKernel().getAttribute(STATELESS_BEAN_NAME,
"ejbHome");
assertTrue("Home is not an instance of EJBHome", statelessHome
instanceof EJBHome);
Object stateless = statelessHome.getClass().getMethod("create",
null).invoke(statelessHome, null);
assertEquals("TestResult", stateless.getClass().getMethod("echo",
new Class[]{String.class}).invoke(stateless, new Object[]{"TestResult"}));
- Object statelessLocalHome =
getKernel().getAttribute(statelessBeanName, "ejbLocalHome");
+ Object statelessLocalHome =
getKernel().getAttribute(STATELESS_BEAN_NAME, "ejbLocalHome");
Object statelessLocal =
statelessLocalHome.getClass().getMethod("create",
null).invoke(statelessLocalHome, null);
statelessLocal.getClass().getMethod("startTimer",
null).invoke(statelessLocal, null);
Thread.sleep(200L);
assertEquals(new Integer(1),
statelessLocal.getClass().getMethod("getTimeoutCount",
null).invoke(statelessLocal, null));
+ }
- // TODO causes ClassCastException
-// EJBProxyReference proxyReference =
EJBProxyReference.createRemote(statelessBeanName.getCanonicalName(),
-// true,
-//
"org.openejb.test.simple.slsb.SimpleStatelessSession",
-//
"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 testInClassLoaderInvoke() 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(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 testStatefulContainer() throws Exception {
1.2 +8 -7
openejb/modules/openejb-builder/src/test/org/openejb/deployment/DeploymentTestSuite.java
Index: DeploymentTestSuite.java
===================================================================
RCS file:
/home/projects/openejb/scm/openejb/modules/openejb-builder/src/test/org/openejb/deployment/DeploymentTestSuite.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- DeploymentTestSuite.java 10 Feb 2005 06:38:32 -0000 1.1
+++ DeploymentTestSuite.java 10 Feb 2005 07:09:10 -0000 1.2
@@ -148,12 +148,12 @@
DeploymentHelper.setUpResourceAdapter(kernel);
ClassLoader oldCl = Thread.currentThread().getContextClassLoader();
- applicationClassLoader = new URLClassLoader(new
URL[]{moduleFile.toURL()}, oldCl);
+ ClassLoader cl = new URLClassLoader(new URL[]{moduleFile.toURL()},
oldCl);
- Thread.currentThread().setContextClassLoader(applicationClassLoader);
+ Thread.currentThread().setContextClassLoader(cl);
try {
- OpenORBSkeletonGenerator skeletonGenerator = new
OpenORBSkeletonGenerator(applicationClassLoader);
+ OpenORBSkeletonGenerator skeletonGenerator = new
OpenORBSkeletonGenerator(cl);
skeletonGenerator.doStart();
OpenEJBModuleBuilder moduleBuilder = new
OpenEJBModuleBuilder(KernelHelper.DEFAULT_PARENTID, skeletonGenerator, null);
@@ -205,12 +205,12 @@
ejbContainerNames.add(ObjectName.getInstance(DOMAIN_NAME +
":j2eeType=StatefulSessionBean,*"));
ejbContainerNames.add(ObjectName.getInstance(DOMAIN_NAME +
":j2eeType=EntityBean,*"));
containerIndexGBean.setReferencePatterns("EJBContainers",
ejbContainerNames);
- kernel.loadGBean(containerIndexGBean, applicationClassLoader);
+ kernel.loadGBean(containerIndexGBean, cl);
kernel.startGBean(containerIndexObjectName);
assertRunning(kernel, containerIndexObjectName);
GBeanData connectionProxyFactoryGBean = new
GBeanData(CONNECTION_OBJECT_NAME, MockConnectionProxyFactory.GBEAN_INFO);
- kernel.loadGBean(connectionProxyFactoryGBean,
applicationClassLoader);
+ kernel.loadGBean(connectionProxyFactoryGBean, cl);
kernel.startGBean(CONNECTION_OBJECT_NAME);
assertRunning(kernel, CONNECTION_OBJECT_NAME);
@@ -227,12 +227,13 @@
}
// load the configuration
- kernel.loadGBean(config, applicationClassLoader);
+ kernel.loadGBean(config, cl);
// start the configuration
kernel.startRecursiveGBean(CONFIGURATION_OBJECT_NAME);
assertRunning(kernel, CONFIGURATION_OBJECT_NAME);
+ applicationClassLoader = (ClassLoader)
kernel.getAttribute(CONFIGURATION_OBJECT_NAME, "configurationClassLoader");
} catch (Error e) {
DeploymentUtil.recursiveDelete(tempDir);
throw e;