djencks 2005/06/01 22:57:00
Modified: modules/core/src/java/org/openejb/corba CSSBean.java
TSSBean.java
Log:
GERONIMO-659 Make the ejb container point to the TSS gbean, not the TSS to
the ejb container. Also GERONIMO-658, use nice short config to find the TSS
bean
Revision Changes Path
1.10 +3 -3
openejb/modules/core/src/java/org/openejb/corba/CSSBean.java
Index: CSSBean.java
===================================================================
RCS file:
/home/projects/openejb/scm/openejb/modules/core/src/java/org/openejb/corba/CSSBean.java,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -r1.9 -r1.10
--- CSSBean.java 12 Apr 2005 21:29:54 -0000 1.9
+++ CSSBean.java 2 Jun 2005 02:57:00 -0000 1.10
@@ -262,7 +262,7 @@
public static final GBeanInfo GBEAN_INFO;
static {
- GBeanInfoBuilder infoFactory = new GBeanInfoBuilder(CSSBean.class,
"CORBACSS");
+ GBeanInfoBuilder infoFactory = new GBeanInfoBuilder(CSSBean.class,
NameFactory.CORBA_CSS);
infoFactory.addAttribute("configAdapter", String.class, true);
infoFactory.addAttribute("description", String.class, true);
1.11 +43 -95
openejb/modules/core/src/java/org/openejb/corba/TSSBean.java
Index: TSSBean.java
===================================================================
RCS file:
/home/projects/openejb/scm/openejb/modules/core/src/java/org/openejb/corba/TSSBean.java,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -r1.10 -r1.11
--- TSSBean.java 23 Apr 2005 18:44:29 -0000 1.10
+++ TSSBean.java 2 Jun 2005 02:57:00 -0000 1.11
@@ -44,14 +44,15 @@
*/
package org.openejb.corba;
-import java.util.Collection;
-import java.util.Collections;
import java.util.HashMap;
-import java.util.Iterator;
import java.util.Map;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
+import org.apache.geronimo.gbean.GBeanInfo;
+import org.apache.geronimo.gbean.GBeanInfoBuilder;
+import org.apache.geronimo.gbean.GBeanLifecycle;
+import org.apache.geronimo.j2ee.j2eeobjectnames.NameFactory;
import org.omg.CORBA.Any;
import org.omg.CORBA.ORB;
import org.omg.CORBA.Policy;
@@ -61,21 +62,12 @@
import org.omg.PortableServer.ImplicitActivationPolicyValue;
import org.omg.PortableServer.LifespanPolicyValue;
import org.omg.PortableServer.POA;
+import org.omg.PortableServer.POAManagerPackage.AdapterInactive;
import org.omg.PortableServer.RequestProcessingPolicyValue;
import org.omg.PortableServer.ServantRetentionPolicyValue;
-import org.omg.PortableServer.POAManagerPackage.AdapterInactive;
-
-import org.apache.geronimo.gbean.GBeanInfo;
-import org.apache.geronimo.gbean.GBeanInfoBuilder;
-import org.apache.geronimo.gbean.GBeanLifecycle;
-import org.apache.geronimo.gbean.ReferenceCollection;
-import org.apache.geronimo.gbean.ReferenceCollectionEvent;
-import org.apache.geronimo.gbean.ReferenceCollectionListener;
-import org.apache.geronimo.j2ee.j2eeobjectnames.NameFactory;
-
import org.openejb.EJBContainer;
-import org.openejb.corba.security.ServerPolicyFactory;
import org.openejb.corba.security.ServerPolicy;
+import org.openejb.corba.security.ServerPolicyFactory;
import org.openejb.corba.security.config.tss.TSSConfig;
import org.openejb.corba.security.config.tss.TSSNULLTransportConfig;
import org.openejb.corba.util.TieLoader;
@@ -84,7 +76,7 @@
/**
* @version $Revision$ $Date$
*/
-public class TSSBean implements GBeanLifecycle, ReferenceCollectionListener {
+public class TSSBean implements GBeanLifecycle {
private final Log log = LogFactory.getLog(TSSBean.class);
@@ -95,11 +87,18 @@
private POA localPOA;
private NamingContextExt initialContext;
private TSSConfig tssConfig;
- private Collection containers = Collections.EMPTY_SET;
- private Map adapters = new HashMap();
- private static final Map containerMap = new HashMap();
+ private final Map adapters = new HashMap();
private Policy securityPolicy;
+ /**
+ * gbean endpoint constructor
+ */
+ public TSSBean() {
+ classLoader = null;
+ POAName = null;
+ server = null;
+ tieLoader = null;
+ }
public TSSBean(ClassLoader classLoader, String POAName, CORBABean
server, TieLoader tieLoader) {
this.classLoader = classLoader;
@@ -125,30 +124,10 @@
this.tssConfig = tssConfig;
}
- public Collection getContainers() {
- return containers;
- }
-
- public void setContainers(Collection containers) {
- ReferenceCollection ref = (ReferenceCollection) containers;
- ref.addReferenceCollectionListener(this);
-
- this.containers = containers;
- for (Iterator iterator = ref.iterator(); iterator.hasNext();) {
- Object o = iterator.next();
- ReferenceCollectionEvent event = new
ReferenceCollectionEvent(null, o);
- memberAdded(event);
- }
- }
-
public TieLoader getTieLoader() {
return tieLoader;
}
- public static EJBContainer getContainer(String containerId) {
- return (EJBContainer) containerMap.get(containerId);
- }
-
/**
* TODO: Security policy really shouldn't be inserted if there is not CSI
* config to put into it.
@@ -180,16 +159,6 @@
org.omg.CORBA.Object obj =
server.getORB().resolve_initial_references("NameService");
initialContext = NamingContextExtHelper.narrow(obj);
-
- for (Iterator iter = adapters.keySet().iterator();
iter.hasNext();) {
- AdapterWrapper adapterWrapper = (AdapterWrapper)
adapters.get(iter.next());
- try {
- adapterWrapper.start(server.getORB(), localPOA,
initialContext, tieLoader, securityPolicy);
- log.info(POAName + " - Linked container " +
adapterWrapper.getContainer().getContainerID());
- } catch (CORBAException e) {
- log.error(POAName + " - Unable to link container " +
adapterWrapper.getContainer().getContainerID(), e);
- }
- }
} finally {
Thread.currentThread().setContextClassLoader(savedLoader);
}
@@ -199,16 +168,6 @@
public void doStop() throws Exception {
if (localPOA != null) {
- for (Iterator iter = adapters.keySet().iterator();
iter.hasNext();) {
- AdapterWrapper adapterWrapper = (AdapterWrapper)
adapters.get(iter.next());
- try {
- adapterWrapper.stop();
- log.info("Unlinked container " +
adapterWrapper.getContainer().getContainerID());
- } catch (CORBAException e) {
- log.error("Error unlinking container " +
adapterWrapper.getContainer().getContainerID(), e);
- }
- }
- adapters.clear();
try {
localPOA.the_POAManager().deactivate(true, false);
} catch (AdapterInactive adapterInactive) {
@@ -242,17 +201,39 @@
return config;
}
+ public void registerContainer(EJBContainer container) throws
CORBAException {
+ AdapterWrapper adapterWrapper = new AdapterWrapper(container);
+
+ adapterWrapper.start(server.getORB(), localPOA, initialContext,
tieLoader, securityPolicy);
+ adapters.put(container.getContainerID(), adapterWrapper);
+
+ log.info(POAName + " - Linked container " +
container.getContainerID());
+ }
+
+ public void unregisterContainer(EJBContainer container) {
+ AdapterWrapper adapterWrapper = (AdapterWrapper)
adapters.remove(container.getContainerID());
+ if (adapterWrapper != null) {
+ try {
+ adapterWrapper.stop();
+ log.info(POAName + " - Unlinked container " +
container.getContainerID());
+ } catch (CORBAException e) {
+ log.error(POAName + " - Error unlinking container " +
container.getContainerID(), e);
+ }
+ }
+ }
+
public static final GBeanInfo GBEAN_INFO;
static {
- GBeanInfoBuilder infoFactory = new GBeanInfoBuilder(TSSBean.class,
"CORBATSS");
+ GBeanInfoBuilder infoFactory = new GBeanInfoBuilder(TSSBean.class,
NameFactory.CORBA_TSS);
infoFactory.addAttribute("classLoader", ClassLoader.class, false);
infoFactory.addAttribute("POAName", String.class, true);
infoFactory.addReference("Server", CORBABean.class,
NameFactory.CORBA_SERVICE);
infoFactory.addAttribute("tssConfig", TSSConfig.class, true);
- infoFactory.addReference("Containers", EJBContainer.class);//many
types
infoFactory.addReference("TieLoader", TieLoader.class,
NameFactory.CORBA_SERVICE);
+ infoFactory.addOperation("registerContainer", new Class[]
{EJBContainer.class});
+ infoFactory.addOperation("unregisterContainer", new Class[]
{EJBContainer.class});
infoFactory.setConstructor(new String[]{"classLoader", "POAName",
"Server", "TieLoader"});
GBEAN_INFO = infoFactory.getBeanInfo();
@@ -262,37 +243,4 @@
return GBEAN_INFO;
}
- public void memberAdded(ReferenceCollectionEvent event) {
- EJBContainer container = (EJBContainer) event.getMember();
- containerMap.put(container.getContainerID(), container);
-
- if (localPOA != null) {
- try {
- AdapterWrapper adapterWrapper = new
AdapterWrapper(container);
-
- adapterWrapper.start(server.getORB(), localPOA,
initialContext, tieLoader, securityPolicy);
- adapters.put(container.getContainerID(), adapterWrapper);
-
- log.info(POAName + " - Linked container " +
container.getContainerID());
- } catch (CORBAException e) {
- log.error(POAName + " - Unable to link container " +
container.getContainerID(), e);
- }
- }
- }
-
- public void memberRemoved(ReferenceCollectionEvent event) {
- EJBContainer container = (EJBContainer) event.getMember();
-
- containerMap.remove(container.getContainerID());
-
- AdapterWrapper adapterWrapper = (AdapterWrapper)
adapters.remove(container.getContainerID());
- if (adapterWrapper != null) {
- try {
- adapterWrapper.stop();
- log.info(POAName + " - Unlinked container " +
container.getContainerID());
- } catch (CORBAException e) {
- log.error(POAName + " - Error unlinking container " +
container.getContainerID(), e);
- }
- }
- }
}