djencks 2004/07/18 18:32:27
Modified: modules/core/src/test/org/openejb/deployment
EJBConfigBuilderTest.java
Log:
Add timer support to session and mdbs. (entities still todo). Adapt to
TransactionContextManager. Adapt to deploying with external plan.
Revision Changes Path
1.18 +35 -54
openejb/modules/core/src/test/org/openejb/deployment/EJBConfigBuilderTest.java
Index: EJBConfigBuilderTest.java
===================================================================
RCS file:
/home/projects/openejb/scm/openejb/modules/core/src/test/org/openejb/deployment/EJBConfigBuilderTest.java,v
retrieving revision 1.17
retrieving revision 1.18
diff -u -r1.17 -r1.18
--- EJBConfigBuilderTest.java 15 Jul 2004 03:34:20 -0000 1.17
+++ EJBConfigBuilderTest.java 18 Jul 2004 22:32:27 -0000 1.18
@@ -63,13 +63,13 @@
import java.util.Set;
import java.util.jar.JarFile;
import java.util.jar.JarOutputStream;
+
import javax.ejb.EJBHome;
import javax.management.ObjectName;
import javax.sql.DataSource;
import junit.framework.TestCase;
import org.apache.geronimo.common.xml.XmlBeansUtil;
-import
org.apache.geronimo.connector.outbound.connectiontracking.ConnectionTrackingCoordinator;
import org.apache.geronimo.gbean.GBeanInfo;
import org.apache.geronimo.gbean.jmx.GBeanMBean;
import org.apache.geronimo.j2ee.deployment.EARConfigBuilder;
@@ -80,18 +80,16 @@
import org.apache.geronimo.j2ee.management.impl.J2EEServerImpl;
import org.apache.geronimo.kernel.Kernel;
import org.apache.geronimo.kernel.config.Configuration;
-import org.apache.geronimo.kernel.jmx.JMXUtil;
import org.apache.geronimo.kernel.management.State;
import org.apache.geronimo.naming.jmx.JMXReferenceFactory;
import org.apache.geronimo.system.configuration.LocalConfigStore;
import org.apache.geronimo.system.serverinfo.ServerInfo;
-import org.apache.geronimo.transaction.GeronimoTransactionManager;
import org.apache.geronimo.xbeans.j2ee.EjbJarDocument;
import org.apache.geronimo.xbeans.j2ee.EjbJarType;
import org.apache.geronimo.xbeans.j2ee.SessionBeanType;
import org.apache.xmlbeans.XmlObject;
import org.openejb.ContainerIndex;
-import org.openejb.mdb.mockra.DeploymentHelper;
+import org.openejb.DeploymentHelper;
import org.openejb.xbeans.ejbjar.OpenejbSessionBeanType;
import org.tranql.sql.jdbc.JDBCUtil;
@@ -102,12 +100,10 @@
private static final String j2eeDomainName = "openejb.server";
private static final String j2eeServerName = "TestOpenEJBServer";
- private static final ObjectName transactionManagerObjectName =
JMXUtil.getObjectName(j2eeDomainName + ":type=TransactionManager");
- private static final ObjectName connectionTrackerObjectName =
JMXUtil.getObjectName(j2eeDomainName + ":type=ConnectionTracker");
private Kernel kernel;
public void testCreateResourceAdapterNameQuery() throws Exception {
- EARContext earContext = new EARContext(null, null, null, null,
"geronimo.server", "geronimo", null, null, null);
+ EARContext earContext = new EARContext(null, null, null, null,
"geronimo.server", "geronimo", null, null, null, null, null);
OpenEJBModuleBuilder builder = new OpenEJBModuleBuilder(null);
ObjectName testName = builder.createResourceAdapterQueryName(earContext,
"TestResourceAdapterName");
assertEquals(ObjectName.getInstance("geronimo.server:j2eeType=ResourceAdapter,name=TestResourceAdapterName,J2EEServer=geronimo,*"),
testName);
@@ -143,8 +139,11 @@
j2eeDomainName,
j2eeServerName,
null,
- transactionManagerObjectName,
- connectionTrackerObjectName);
+ DeploymentHelper.TRANSACTIONCONTEXTMANAGER_NAME,
+ DeploymentHelper.TRACKEDCONNECTIONASSOCIATOR_NAME,
+ DeploymentHelper.TRANSACTIONALTIMER_NAME,
+ DeploymentHelper.NONTRANSACTIONALTIMER_NAME
+ );
try {
Thread.currentThread().setContextClassLoader(cl);
configBuilder.createSessionBean(earContext, new EJBModule("TestModule",
URI.create("/")), "containerId", sessionBean, openejbSessionBean,
transactionPolicyHelper, cl);
@@ -179,8 +178,11 @@
j2eeDomainName,
j2eeServerName,
j2eeApplicationName,
- transactionManagerObjectName,
- connectionTrackerObjectName);
+ DeploymentHelper.TRANSACTIONCONTEXTMANAGER_NAME,
+ DeploymentHelper.TRACKEDCONNECTIONASSOCIATOR_NAME,
+ DeploymentHelper.TRANSACTIONALTIMER_NAME,
+ DeploymentHelper.NONTRANSACTIONALTIMER_NAME
+ );
moduleBuilder.installModule(new JarFile(ejbJarFile), earContext,
module);
earContext.getClassLoader(null);
@@ -212,14 +214,10 @@
File carFile = File.createTempFile("OpenEJBTest", ".car");
try {
- EARConfigBuilder earConfigBuilder = new EARConfigBuilder(null,
- null,
- new ObjectName(j2eeDomainName + ":j2eeType=J2EEServer,name=" +
j2eeServerName),
- moduleBuilder,
- null, // web
- null, //connector
- transactionManagerObjectName,
- connectionTrackerObjectName);
+ EARConfigBuilder earConfigBuilder = new EARConfigBuilder(new
ObjectName(j2eeDomainName + ":j2eeType=J2EEServer,name=" + j2eeServerName),
DeploymentHelper.TRANSACTIONCONTEXTMANAGER_NAME,
DeploymentHelper.TRACKEDCONNECTIONASSOCIATOR_NAME,
DeploymentHelper.TRANSACTIONALTIMER_NAME, DeploymentHelper.NONTRANSACTIONALTIMER_NAME,
null, moduleBuilder, null, null, null
+ // web
+ //connector
+ );
XmlObject plan = earConfigBuilder.getDeploymentPlan(earFile.toURL());
earConfigBuilder.buildConfiguration(carFile, null, earFile, plan);
@@ -248,14 +246,10 @@
File carFile = File.createTempFile("OpenEJBTest", ".car");
try {
- EARConfigBuilder earConfigBuilder = new EARConfigBuilder(null,
- null,
- new ObjectName(j2eeDomainName + ":j2eeType=J2EEServer,name=" +
j2eeServerName),
- moduleBuilder,
- null, // web
- null, //connector
- transactionManagerObjectName,
- connectionTrackerObjectName);
+ EARConfigBuilder earConfigBuilder = new EARConfigBuilder(new
ObjectName(j2eeDomainName + ":j2eeType=J2EEServer,name=" + j2eeServerName),
DeploymentHelper.TRANSACTIONCONTEXTMANAGER_NAME,
DeploymentHelper.TRACKEDCONNECTIONASSOCIATOR_NAME,
DeploymentHelper.TRANSACTIONALTIMER_NAME, DeploymentHelper.NONTRANSACTIONALTIMER_NAME,
null, moduleBuilder, null, null, null
+ // web
+ //connector
+ );
XmlObject plan = earConfigBuilder.getDeploymentPlan(earFile.toURL());
earConfigBuilder.buildConfiguration(carFile, null, earFile, plan);
@@ -329,17 +323,21 @@
assertRunning(kernel, statelessBeanName);
// use reflection to invoke a method on the stateless bean, becuase we
don't have access to the classes here
- Object statelessHome = kernel.getAttribute(statelessBeanName,
"EJBHome");
+ Object statelessHome = kernel.getAttribute(statelessBeanName,
"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 = kernel.getAttribute(statelessBeanName,
"ejbLocalHome");
+ Object statelessLocal =
statelessLocalHome.getClass().getMethod("create", null).invoke(statelessLocalHome,
null);
+ statelessLocal.getClass().getMethod("startTimer",
null).invoke(statelessLocal, null);
+ Thread.currentThread().sleep(200L);
+ assertEquals(new Integer(1),
statelessLocal.getClass().getMethod("getTimeoutCount", null).invoke(statelessLocal,
null));
// STATEFUL
ObjectName statefulBeanName = ObjectName.getInstance(j2eeDomainName +
":j2eeType=StatefulSessionBean,J2EEServer=" + j2eeServerName + ",J2EEApplication=" +
j2eeApplicationName + ",J2EEModule=" + j2eeModuleName + ",name=SimpleStatefulSession");
assertRunning(kernel, statefulBeanName);
- Object statefulHome = kernel.getAttribute(statefulBeanName, "EJBHome");
+ Object statefulHome = kernel.getAttribute(statefulBeanName, "ejbHome");
assertTrue("Home is not an instance of EJBHome", statefulHome
instanceof EJBHome);
Object stateful = statefulHome.getClass().getMethod("create",
null).invoke(statefulHome, null);
stateful.getClass().getMethod("setValue", new
Class[]{String.class}).invoke(stateful, new Object[]{"SomeValue"});
@@ -349,7 +347,7 @@
ObjectName bmpBeanName = ObjectName.getInstance(j2eeDomainName +
":j2eeType=EntityBean,J2EEServer=" + j2eeServerName + ",J2EEApplication=" +
j2eeApplicationName + ",J2EEModule=" + j2eeModuleName + ",name=SimpleBMPEntity");
assertRunning(kernel, bmpBeanName);
- Object bmpHome = kernel.getAttribute(bmpBeanName, "EJBHome");
+ Object bmpHome = kernel.getAttribute(bmpBeanName, "ejbHome");
assertTrue("Home is not an instance of EJBHome", bmpHome instanceof
EJBHome);
Object bmp = bmpHome.getClass().getMethod("create",
null).invoke(bmpHome, null);
bmp.getClass().getMethod("setName", new
Class[]{String.class}).invoke(bmp, new Object[]{"MyNameValue"});
@@ -359,7 +357,7 @@
ObjectName cmpBeanName = ObjectName.getInstance(j2eeDomainName +
":j2eeType=EntityBean,J2EEServer=" + j2eeServerName + ",J2EEApplication=" +
j2eeApplicationName + ",J2EEModule=" + j2eeModuleName + ",name=SimpleCMPEntity");
assertRunning(kernel, cmpBeanName);
- Object cmpHome = kernel.getAttribute(cmpBeanName, "EJBHome");
+ Object cmpHome = kernel.getAttribute(cmpBeanName, "ejbHome");
assertTrue("Home is not an instance of EJBHome", cmpHome instanceof
EJBHome);
Object cmp = cmpHome.getClass().getMethod("create", new
Class[]{Integer.class}).invoke(cmpHome, new Object[]{new Integer(42)});
@@ -371,7 +369,6 @@
assertRunning(kernel, mdbBeanName);
-
kernel.stopGBean(objectName);
kernel.stopGBean(connectionProxyFactoryObjectName);
} finally {
@@ -394,7 +391,7 @@
private void assertRunning(Kernel kernel, ObjectName objectName) throws
Exception {
int state = ((Integer) kernel.getAttribute(objectName, "state")).intValue();
- assertEquals(State.RUNNING_INDEX, state);
+ assertEquals("should be running: " + objectName, State.RUNNING_INDEX,
state);
}
private GBeanMBean loadConfig(File unpackedCar) throws Exception {
@@ -419,8 +416,9 @@
str = str + ":org.apache.geronimo.naming";
}
System.setProperty(javax.naming.Context.URL_PKG_PREFIXES, str);
- kernel = new Kernel("blah");
- kernel.boot();
+
+ kernel =
DeploymentHelper.setUpKernelWithTransactionManager("EJBConfigBuilderTest");
+ DeploymentHelper.setUpTimer(kernel);
GBeanMBean serverInfoGBean = new GBeanMBean(ServerInfo.GBEAN_INFO);
serverInfoGBean.setAttribute("baseDirectory", ".");
@@ -436,21 +434,6 @@
kernel.startGBean(j2eeServerObjectName);
assertRunning(kernel, j2eeServerObjectName);
- GBeanMBean tmGBean = new GBeanMBean(GeronimoTransactionManager.GBEAN_INFO);
- Set patterns = new HashSet();
-
patterns.add(ObjectName.getInstance("geronimo.server:j2eeType=JCAManagedConnectionFactory,*"));
-
patterns.add(ObjectName.getInstance("geronimo.server:j2eeType=ActivationSpec,*"));
- tmGBean.setReferencePatterns("ResourceManagers", patterns);
- kernel.loadGBean(transactionManagerObjectName, tmGBean);
- kernel.startGBean(transactionManagerObjectName);
- assertRunning(kernel, transactionManagerObjectName);
-
- GBeanMBean connectionTrackerGBean = new
GBeanMBean(ConnectionTrackingCoordinator.GBEAN_INFO);
- ObjectName connectionTrackerObjectName =
ObjectName.getInstance(j2eeDomainName + ":type=ConnectionTracker");
- kernel.loadGBean(connectionTrackerObjectName, connectionTrackerGBean);
- kernel.startGBean(connectionTrackerObjectName);
- assertRunning(kernel, connectionTrackerObjectName);
-
//load mock resource adapter for mdb
DeploymentHelper.setUpResourceAdapter(kernel);
@@ -458,8 +441,6 @@
protected void tearDown() throws Exception {
DeploymentHelper.tearDownAdapter(kernel);
- kernel.stopGBean(connectionTrackerObjectName);
- kernel.stopGBean(transactionManagerObjectName);
kernel.shutdown();
}
}