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