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;
  
  
  

Reply via email to