dain        2006/02/01 06:50:15

  Modified:    modules/openejb-builder/src/test/org/openejb/deployment/slsb
                        BasicStatelessContainerTest.java
                        StatelessClientContainerTest.java
  Log:

  Major refactor
  Split container into an object to represent a deployed ejb and a set of 
shared containers which process invocations
  Introduced interface between CMP container and CMP engine
  
  Revision  Changes    Path
  1.11      +23 -33    
openejb/modules/openejb-builder/src/test/org/openejb/deployment/slsb/BasicStatelessContainerTest.java
  
  Index: BasicStatelessContainerTest.java
  ===================================================================
  RCS file: 
/home/projects/openejb/scm/openejb/modules/openejb-builder/src/test/org/openejb/deployment/slsb/BasicStatelessContainerTest.java,v
  retrieving revision 1.10
  retrieving revision 1.11
  diff -u -r1.10 -r1.11
  --- BasicStatelessContainerTest.java  21 Dec 2005 14:21:56 -0000      1.10
  +++ BasicStatelessContainerTest.java  1 Feb 2006 11:50:15 -0000       1.11
  @@ -47,7 +47,6 @@
    */
   package org.openejb.deployment.slsb;
   
  -import java.util.HashMap;
   import java.util.HashSet;
   import javax.management.ObjectName;
   
  @@ -55,19 +54,16 @@
   import org.apache.geronimo.gbean.GBeanData;
   import org.apache.geronimo.kernel.Kernel;
   import org.apache.geronimo.kernel.jmx.JMXUtil;
  -import org.openejb.ContainerIndex;
  -import org.openejb.deployment.DefaultSLContainerStrategy;
  +import org.openejb.DeploymentIndex;
   import org.openejb.deployment.DeploymentHelper;
  -import org.openejb.deployment.StatelessContainerBuilder;
  -import org.openejb.dispatch.InterfaceMethodSignature;
  +import org.openejb.deployment.StatelessBuilder;
   import org.openejb.proxy.EJBProxyReference;
  -import org.openejb.transaction.TransactionPolicySource;
  -import org.openejb.transaction.TransactionPolicyType;
   
   /**
    * @version $Revision$ $Date$
    */
   public class BasicStatelessContainerTest extends TestCase {
  +    ClassLoader classLoader = 
BasicStatelessContainerTest.class.getClassLoader();
       private static final ObjectName CONTAINER_NAME = 
JMXUtil.getObjectName("geronimo.test:ejb=Mock");
       private Kernel kernel;
       private GBeanData container;
  @@ -75,9 +71,10 @@
       public void testCrossClInvocation() throws Throwable {
           EJBProxyReference proxyReference = 
EJBProxyReference.createRemote(CONTAINER_NAME.getCanonicalName(),
                           true,
  -                MockHome.class.getName(), MockRemote.class.getName());
  +                        MockHome.class.getName(),
  +                        MockRemote.class.getName());
           proxyReference.setKernel(kernel);
  -        proxyReference.setClassLoader(this.getClass().getClassLoader());
  +        proxyReference.setClassLoader(classLoader);
           MockHome home = (MockHome) proxyReference.getContent();
           MockRemote remote = home.create();
           assertEquals(2, remote.intMethod(1));
  @@ -90,11 +87,11 @@
       }
   
       public void testLocalInvocation() throws Throwable {
  -        MockLocalHome home = (MockLocalHome) 
kernel.getAttribute(CONTAINER_NAME, "ejbLocalHome");
  -        MockLocal remote = home.create();
  -        assertEquals(2, remote.intMethod(1));
  -        assertEquals(2, remote.intMethod(1));
  -        remote.remove();
  +        MockLocalHome homeHome = (MockLocalHome) 
kernel.getAttribute(CONTAINER_NAME, "ejbLocalHome");
  +        MockLocal local = homeHome.create();
  +        assertEquals(2, local.intMethod(1));
  +        assertEquals(2, local.intMethod(1));
  +        local.remove();
       }
   
       public void testTimeout() throws Exception {
  @@ -159,37 +156,30 @@
           super.setUp();
   
           kernel = DeploymentHelper.setUpKernelWithTransactionManager();
  -        DeploymentHelper.setUpTimer(kernel);
   
  -        StatelessContainerBuilder builder = new StatelessContainerBuilder();
  -        builder.setContainerStrategy(new 
DefaultSLContainerStrategy(builder));
  -        builder.setClassLoader(this.getClass().getClassLoader());
  -        builder.setContainerId(CONTAINER_NAME.getCanonicalName());
  -        builder.setEJBName("MockEJB");
  +        StatelessBuilder builder = new StatelessBuilder();
  +        builder.setContainerId(new ObjectName(":name=MockEJB"));
  +        builder.setEjbName("MockEJB");
           builder.setBeanClassName(MockEJB.class.getName());
           builder.setHomeInterfaceName(MockHome.class.getName());
           builder.setLocalHomeInterfaceName(MockLocalHome.class.getName());
           builder.setRemoteInterfaceName(MockRemote.class.getName());
           builder.setLocalInterfaceName(MockLocal.class.getName());
  +
  +        
builder.setEjbContainerName(DeploymentHelper.STATELESS_EJB_CONTAINER_NAME);
           builder.setJndiNames(new String[0]);
           builder.setLocalJndiNames(new String[0]);
           builder.setUnshareableResources(new HashSet());
  -        builder.setTransactionPolicySource(new TransactionPolicySource() {
  -            public TransactionPolicyType getTransactionPolicy(String 
methodIntf, InterfaceMethodSignature signature) {
  -                return TransactionPolicyType.Required;
  -            }
  -        });
  -        builder.setComponentContext(new HashMap());
  -        container = builder.createConfiguration(CONTAINER_NAME, 
DeploymentHelper.TRANSACTIONCONTEXTMANAGER_NAME, 
DeploymentHelper.TRACKEDCONNECTIONASSOCIATOR_NAME, null);
  +
  +        container = builder.createConfiguration();
   
           //start the ejb container
  -        container.setReferencePattern("Timer", 
DeploymentHelper.TRANSACTIONALTIMER_NAME);
           start(CONTAINER_NAME, container);
   
           ObjectName containerIndexname = 
JMXUtil.getObjectName("geronimo.test:type=ConatainerIndex");
  -        GBeanData containerIndex = new GBeanData(containerIndexname, 
ContainerIndex.GBEAN_INFO);
  -        containerIndex.setReferencePattern("EJBContainers", CONTAINER_NAME);
  -        kernel.loadGBean(containerIndex, this.getClass().getClassLoader());
  +        GBeanData containerIndex = new GBeanData(containerIndexname, 
DeploymentIndex.GBEAN_INFO);
  +        containerIndex.setReferencePattern("EjbDeployments", CONTAINER_NAME);
  +        kernel.loadGBean(containerIndex, classLoader);
           kernel.startGBean(containerIndexname);
       }
   
  @@ -200,7 +190,7 @@
   
       private void start(ObjectName name, GBeanData instance) throws Exception 
{
           instance.setName(name);
  -        kernel.loadGBean(instance, this.getClass().getClassLoader());
  +        kernel.loadGBean(instance, classLoader);
           kernel.startGBean(name);
       }
   
  
  
  
  1.8       +33 -39    
openejb/modules/openejb-builder/src/test/org/openejb/deployment/slsb/StatelessClientContainerTest.java
  
  Index: StatelessClientContainerTest.java
  ===================================================================
  RCS file: 
/home/projects/openejb/scm/openejb/modules/openejb-builder/src/test/org/openejb/deployment/slsb/StatelessClientContainerTest.java,v
  retrieving revision 1.7
  retrieving revision 1.8
  diff -u -r1.7 -r1.8
  --- StatelessClientContainerTest.java 21 Dec 2005 14:21:56 -0000      1.7
  +++ StatelessClientContainerTest.java 1 Feb 2006 11:50:15 -0000       1.8
  @@ -48,8 +48,6 @@
   package org.openejb.deployment.slsb;
   
   import java.rmi.RemoteException;
  -import java.util.HashMap;
  -import java.util.HashSet;
   import javax.ejb.EJBException;
   import javax.ejb.EJBHome;
   import javax.ejb.EJBMetaData;
  @@ -62,13 +60,11 @@
   import junit.framework.TestCase;
   import 
org.apache.geronimo.connector.outbound.connectiontracking.ConnectionTrackingCoordinator;
   import org.apache.geronimo.transaction.context.TransactionContextManager;
  -import org.openejb.EJBContainer;
  -import org.openejb.deployment.DefaultSLContainerStrategy;
  +import org.openejb.RpcEjbDeployment;
  +import org.openejb.slsb.DefaultStatelessEjbContainer;
  +import org.openejb.StatelessEjbDeploymentFactory;
  +import org.openejb.StatelessEjbContainer;
   import org.openejb.deployment.MockTransactionManager;
  -import org.openejb.deployment.StatelessContainerBuilder;
  -import org.openejb.dispatch.InterfaceMethodSignature;
  -import org.openejb.transaction.TransactionPolicySource;
  -import org.openejb.transaction.TransactionPolicyType;
   
   /**
    *
  @@ -77,10 +73,10 @@
    * @version $Revision$ $Date$
    */
   public class StatelessClientContainerTest extends TestCase {
  -    private EJBContainer container;
  +    private RpcEjbDeployment deployment;
   
       public void testMetadata() throws Exception {
  -        EJBMetaData metaData = container.getEjbHome().getEJBMetaData();
  +        EJBMetaData metaData = deployment.getEjbHome().getEJBMetaData();
           assertTrue(metaData.isSession());
           assertTrue(metaData.isStatelessSession());
           assertEquals(MockHome.class, metaData.getHomeInterfaceClass());
  @@ -105,7 +101,7 @@
       }
   
       public void testHomeInterface() throws Exception {
  -        MockHome home = (MockHome) container.getEjbHome();
  +        MockHome home = (MockHome) deployment.getEjbHome();
           assertTrue(home.create() instanceof MockRemote);
           try {
               home.remove(new Integer(1));
  @@ -137,7 +133,7 @@
       public MockEJB mockEJB2;
   
       public void testRemove() throws Throwable {
  -        MockLocalHome home = (MockLocalHome) container.getEjbLocalHome();
  +        MockLocalHome home = (MockLocalHome) deployment.getEjbLocalHome();
           final MockLocal mock1 = home.create();
           Thread waiter = new Thread("Waiter") {
               public void run() {
  @@ -158,7 +154,7 @@
       }
   
       public void testLocalHomeInterface() {
  -        MockLocalHome localHome = (MockLocalHome) 
container.getEjbLocalHome();
  +        MockLocalHome localHome = (MockLocalHome) 
deployment.getEjbLocalHome();
           try {
               localHome.remove(new Integer(1));
               fail("Expected RemoveException, but no exception was thrown");
  @@ -172,7 +168,7 @@
       }
   
       public void testObjectInterface() throws Exception {
  -        MockHome home = (MockHome) container.getEjbHome();
  +        MockHome home = (MockHome) deployment.getEjbHome();
           MockRemote remote = home.create();
           assertTrue(remote.isIdentical(remote));
           assertTrue(remote.isIdentical(home.create()));
  @@ -190,7 +186,7 @@
       }
   
       public void testLocalInterface() throws Exception {
  -        MockLocalHome localHome = (MockLocalHome) 
container.getEjbLocalHome();
  +        MockLocalHome localHome = (MockLocalHome) 
deployment.getEjbLocalHome();
           MockLocal local = localHome.create();
           assertTrue(local.isIdentical(local));
           assertTrue(local.isIdentical(localHome.create()));
  @@ -208,7 +204,7 @@
       }
   
       public void testInvocation() throws Exception {
  -        MockHome home = (MockHome) container.getEjbHome();
  +        MockHome home = (MockHome) deployment.getEjbHome();
           MockRemote remote = home.create();
           assertEquals(2, remote.intMethod(1));
           try {
  @@ -227,27 +223,25 @@
   
       protected void setUp() throws Exception {
           super.setUp();
  -        StatelessContainerBuilder builder = new StatelessContainerBuilder();
  -        builder.setContainerStrategy(new 
DefaultSLContainerStrategy(builder));
  -        builder.setClassLoader(this.getClass().getClassLoader());
  -        builder.setContainerId("MockEJB");
  -        builder.setEJBName("MockEJB");
  -        builder.setBeanClassName(MockEJB.class.getName());
  -        builder.setHomeInterfaceName(MockHome.class.getName());
  -        builder.setLocalHomeInterfaceName(MockLocalHome.class.getName());
  -        builder.setRemoteInterfaceName(MockRemote.class.getName());
  -        builder.setLocalInterfaceName(MockLocal.class.getName());
  -        builder.setJndiNames(new String[0]);
  -        builder.setLocalJndiNames(new String[0]);
  -        builder.setUnshareableResources(new HashSet());
  -        builder.setTransactionPolicySource(new TransactionPolicySource() {
  -            public TransactionPolicyType getTransactionPolicy(String 
methodIntf, InterfaceMethodSignature signature) {
  -                return TransactionPolicyType.Required;
  -            }
  -        });
  -        builder.setComponentContext(new HashMap());
  -        builder.setTransactionContextManager(new 
TransactionContextManager(new MockTransactionManager(), null));
  -        builder.setTrackedConnectionAssociator(new 
ConnectionTrackingCoordinator());
  -        container = builder.createContainer();
  +
  +        StatelessEjbContainer container = new 
DefaultStatelessEjbContainer(new TransactionContextManager(new 
MockTransactionManager(), null),
  +                new ConnectionTrackingCoordinator(),
  +                null,
  +                null,
  +                false,
  +                false,
  +                false);
  +
  +        StatelessEjbDeploymentFactory deploymentFactory = new 
StatelessEjbDeploymentFactory();
  +        deploymentFactory.setContainerId("MockEjb");
  +        deploymentFactory.setEjbName("MockEjb");
  +        deploymentFactory.setHomeInterfaceName(MockHome.class.getName());
  +        deploymentFactory.setRemoteInterfaceName(MockRemote.class.getName());
  +        
deploymentFactory.setLocalHomeInterfaceName(MockLocalHome.class.getName());
  +        deploymentFactory.setLocalInterfaceName(MockLocal.class.getName());
  +        deploymentFactory.setBeanClassName(MockEJB.class.getName());
  +        deploymentFactory.setClassLoader(getClass().getClassLoader());
  +        deploymentFactory.setEjbContainer(container);
  +        deployment = (RpcEjbDeployment) deploymentFactory.create();
       }
   }
  
  
  

Reply via email to