Modified: branches/v2_1/openejb2/modules/core/src/java/org/openejb/EJBModuleImpl.java (2554 => 2555)
--- branches/v2_1/openejb2/modules/core/src/java/org/openejb/EJBModuleImpl.java 2006-03-14 20:49:33 UTC (rev 2554)
+++ branches/v2_1/openejb2/modules/core/src/java/org/openejb/EJBModuleImpl.java 2006-03-14 21:00:57 UTC (rev 2555)
@@ -47,37 +47,31 @@
*/
package org.openejb;
-import java.util.Hashtable;
-import javax.management.MalformedObjectNameException;
-import javax.management.ObjectName;
-
import org.apache.geronimo.gbean.GBeanInfo;
import org.apache.geronimo.gbean.GBeanInfoBuilder;
import org.apache.geronimo.gbean.GBeanLifecycle;
-import org.apache.geronimo.management.J2EEApplication;
-import org.apache.geronimo.management.J2EEServer;
-import org.apache.geronimo.management.EJBModule;
-import org.apache.geronimo.j2ee.management.impl.InvalidObjectNameException;
-import org.apache.geronimo.j2ee.management.impl.Util;
import org.apache.geronimo.j2ee.j2eeobjectnames.NameFactory;
-import org.apache.geronimo.j2ee.j2eeobjectnames.J2eeContext;
-import org.apache.geronimo.j2ee.j2eeobjectnames.J2eeContextImpl;
+import org.apache.geronimo.j2ee.management.impl.InvalidObjectNameException;
import org.apache.geronimo.kernel.Kernel;
import org.apache.geronimo.kernel.jmx.JMXUtil;
+import org.apache.geronimo.management.EJB;
+import org.apache.geronimo.management.EJBModule;
+import org.apache.geronimo.management.J2EEApplication;
+import org.apache.geronimo.management.J2EEServer;
import org.apache.geronimo.transaction.context.TransactionContextManager;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
import org.openejb.entity.cmp.ConnectionProxyFactory;
import org.tranql.ejb.TransactionManagerDelegate;
import org.tranql.query.ConnectionFactoryDelegate;
+import javax.management.ObjectName;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Hashtable;
+
/**
* @version $Revision$ $Date$
*/
public class EJBModuleImpl implements GBeanLifecycle, EJBModule {
- private final static Log log = LogFactory.getLog(EJBModuleImpl.class);
- private final Kernel kernel;
- private final J2eeContext moduleContext;
private final J2EEServer server;
private final J2EEApplication application;
private final String deploymentDescriptor;
@@ -85,16 +79,15 @@
private final ConnectionProxyFactory connectionFactory;
private final TransactionManagerDelegate tmDelegate;
private final TransactionContextManager transactionContextManager;
- private final String[] J2EE_TYPES = {NameFactory.ENTITY_BEAN, NameFactory.STATELESS_SESSION_BEAN, NameFactory.STATEFUL_SESSION_BEAN, NameFactory.MESSAGE_DRIVEN_BEAN};
private final String objectName;
- public EJBModuleImpl(Kernel kernel, String objectName, J2EEServer server, J2EEApplication application, String deploymentDescriptor, ConnectionFactoryDelegate delegate, ConnectionProxyFactory connectionFactory, TransactionManagerDelegate tmDelegate, TransactionContextManager transactionContextManager) {
+ private final Collection ejbs;
+
+ public EJBModuleImpl(String objectName, J2EEServer server, J2EEApplication application, String deploymentDescriptor, ConnectionFactoryDelegate delegate, ConnectionProxyFactory connectionFactory, TransactionManagerDelegate tmDelegate, TransactionContextManager transactionContextManager, Collection ejbs) {
this.objectName = objectName;
ObjectName myObjectName = JMXUtil.getObjectName(objectName);
verifyObjectName(myObjectName);
- moduleContext = J2eeContextImpl.newContext(myObjectName, NameFactory.EJB_MODULE);
- this.kernel = kernel;
this.server = server;
this.application = application;
this.deploymentDescriptor = deploymentDescriptor;
@@ -102,6 +95,7 @@
this.connectionFactory = connectionFactory;
this.tmDelegate = tmDelegate;
this.transactionContextManager = transactionContextManager;
+ this.ejbs = ejbs;
}
public String getObjectName() {
@@ -140,14 +134,15 @@
}
public String[] getEJBs() {
- try {
- return Util.getObjectNames(kernel,
- moduleContext,
- J2EE_TYPES);
- } catch (MalformedObjectNameException e) {
- log.error(e);
- return null;
+ ArrayList copy;
+ synchronized (ejbs) {
+ copy = new ArrayList(ejbs);
}
+ String[] result = new String[copy.size()];
+ for (int i = 0; i < result.length; i++) {
+ result[i] = ((EJB) copy.get(i)).getObjectName();
+ }
+ return result;
}
/**
@@ -181,7 +176,7 @@
if (delegate != null) {
delegate.setConnectionFactory(connectionFactory.$getResource());
}
- if ( null != tmDelegate ) {
+ if (null != tmDelegate) {
tmDelegate.setTransactionManager(transactionContextManager.getTransactionManager());
}
}
@@ -190,7 +185,7 @@
if (delegate != null) {
delegate.setConnectionFactory(null);
}
- if ( null != tmDelegate ) {
+ if (null != tmDelegate) {
tmDelegate.setTransactionManager(null);
}
}
@@ -199,7 +194,7 @@
if (delegate != null) {
delegate.setConnectionFactory(null);
}
- if ( null != tmDelegate ) {
+ if (null != tmDelegate) {
tmDelegate.setTransactionManager(null);
}
}
@@ -224,18 +219,21 @@
infoBuilder.addAttribute("javaVMs", String[].class, false);
infoBuilder.addAttribute("ejbs", String[].class, false);
+ infoBuilder.addReference("EJBCollection", EJB.class);
+
infoBuilder.addInterface(EJBModule.class);
infoBuilder.setConstructor(new String[]{
- "kernel",
- "objectName",
- "J2EEServer",
- "J2EEApplication",
- "deploymentDescriptor",
- "Delegate",
- "ConnectionFactory",
- "TMDelegate",
- "TransactionContextManager"});
+ "objectName",
+ "J2EEServer",
+ "J2EEApplication",
+ "deploymentDescriptor",
+ "Delegate",
+ "ConnectionFactory",
+ "TMDelegate",
+ "TransactionContextManager",
+ "EJBCollection"
+ });
GBEAN_INFO = infoBuilder.getBeanInfo();
}
Modified: branches/v2_1/openejb2/modules/core/src/java/org/openejb/GenericEJBContainer.java (2554 => 2555)
--- branches/v2_1/openejb2/modules/core/src/java/org/openejb/GenericEJBContainer.java 2006-03-14 20:49:33 UTC (rev 2554)
+++ branches/v2_1/openejb2/modules/core/src/java/org/openejb/GenericEJBContainer.java 2006-03-14 21:00:57 UTC (rev 2555)
@@ -47,21 +47,6 @@
*/
package org.openejb;
-import java.io.Serializable;
-import java.lang.reflect.Method;
-import java.rmi.RemoteException;
-import java.util.Iterator;
-import java.util.Map;
-import javax.ejb.EJBHome;
-import javax.ejb.EJBLocalHome;
-import javax.ejb.EJBLocalObject;
-import javax.ejb.EJBObject;
-import javax.ejb.Handle;
-import javax.ejb.Timer;
-import javax.management.ObjectName;
-import javax.naming.Context;
-import javax.security.auth.Subject;
-
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.geronimo.core.service.Interceptor;
@@ -72,9 +57,11 @@
import org.apache.geronimo.gbean.GBeanLifecycle;
import org.apache.geronimo.j2ee.j2eeobjectnames.NameFactory;
import org.apache.geronimo.kernel.Kernel;
+import org.apache.geronimo.management.EJB;
+import org.apache.geronimo.management.J2EEManagedObject;
+import org.apache.geronimo.naming.enc.EnterpriseNamingContext;
import org.apache.geronimo.naming.reference.ClassLoaderAwareReference;
import org.apache.geronimo.naming.reference.KernelAwareReference;
-import org.apache.geronimo.naming.enc.EnterpriseNamingContext;
import org.apache.geronimo.security.ContextManager;
import org.apache.geronimo.security.deploy.DefaultPrincipal;
import org.apache.geronimo.security.util.ConfigurationUtil;
@@ -82,23 +69,36 @@
import org.apache.geronimo.transaction.TrackedConnectionAssociator;
import org.apache.geronimo.transaction.context.TransactionContextManager;
import org.apache.geronimo.transaction.context.UserTransactionImpl;
-import org.apache.geronimo.management.J2EEManagedObject;
-
import org.openejb.cache.InstancePool;
import org.openejb.client.EJBObjectHandler;
import org.openejb.client.EJBObjectProxy;
+import org.openejb.corba.TSSBean;
import org.openejb.dispatch.InterfaceMethodSignature;
import org.openejb.dispatch.SystemMethodIndices;
import org.openejb.proxy.EJBProxyFactory;
import org.openejb.proxy.ProxyInfo;
import org.openejb.timer.BasicTimerServiceImpl;
-import org.openejb.corba.TSSBean;
+import javax.ejb.EJBHome;
+import javax.ejb.EJBLocalHome;
+import javax.ejb.EJBLocalObject;
+import javax.ejb.EJBObject;
+import javax.ejb.Handle;
+import javax.ejb.Timer;
+import javax.management.ObjectName;
+import javax.naming.Context;
+import javax.security.auth.Subject;
+import java.io.Serializable;
+import java.lang.reflect.Method;
+import java.rmi.RemoteException;
+import java.util.Iterator;
+import java.util.Map;
+
/**
* @version $Revision$ $Date$
*/
-public class GenericEJBContainer implements EJBContainer, GBeanLifecycle, J2EEManagedObject {
+public class GenericEJBContainer implements EJBContainer, GBeanLifecycle, EJB {
private static Log log = LogFactory.getLog(GenericEJBContainer.class);
@@ -493,6 +493,8 @@
infoFactory.addOperation("getTimerById", new Class[]{Long.class});
+ infoFactory.addInterface(EJB.class);
+
infoFactory.setConstructor(new String[]{
"containerID",
"ejbName",
Modified: branches/v2_1/openejb2/modules/core/src/java/org/openejb/mdb/MDBContainer.java (2554 => 2555)
--- branches/v2_1/openejb2/modules/core/src/java/org/openejb/mdb/MDBContainer.java 2006-03-14 20:49:33 UTC (rev 2554)
+++ branches/v2_1/openejb2/modules/core/src/java/org/openejb/mdb/MDBContainer.java 2006-03-14 21:00:57 UTC (rev 2555)
@@ -79,6 +79,7 @@
import org.apache.geronimo.transaction.context.UserTransactionImpl;
import org.apache.geronimo.transaction.manager.NamedXAResource;
import org.apache.geronimo.transaction.manager.WrapperNamedXAResource;
+import org.apache.geronimo.management.MessageDrivenBean;
import org.openejb.TwoChains;
import org.openejb.cache.InstancePool;
import org.openejb.dispatch.InterfaceMethodSignature;
@@ -88,7 +89,7 @@
/**
* @version $Revision$ $Date$
*/
-public class MDBContainer implements MessageEndpointFactory, GBeanLifecycle {
+public class MDBContainer implements MessageEndpointFactory, GBeanLifecycle, MessageDrivenBean {
private final ActivationSpecWrapper activationSpecWrapper;
private final ClassLoader classLoader;
private final EndpointFactory endpointFactory;
@@ -101,6 +102,7 @@
private final TransactionContextManager transactionContextManager;
private final Map methodIndexMap;
private final BasicTimerServiceImpl timerService;
+ private final String objectName;
public MDBContainer(String containerId,
String ejbName,
@@ -131,6 +133,7 @@
this.classLoader = classLoader;
+ this.objectName = objectName;
this.containerId = containerId;
this.ejbName = ejbName;
this.signatures = signatures;
@@ -270,7 +273,22 @@
return methodIndexMap;
}
+ public String getObjectName() {
+ return objectName;
+ }
+ public boolean isStateManageable() {
+ return false;
+ }
+
+ public boolean isStatisticsProvider() {
+ return false;
+ }
+
+ public boolean isEventProvider() {
+ return false;
+ }
+
public static final GBeanInfo GBEAN_INFO;
static {
@@ -297,6 +315,8 @@
infoFactory.addAttribute("kernel", Kernel.class, false);
infoFactory.addOperation("getTimerById", new Class[]{Long.class});
+
+ infoFactory.addInterface(MessageDrivenBean.class);
infoFactory.setConstructor(new String[]{
"containerId",