You are viewing a plain text version of this content. The canonical link for it is here.
Posted to scm@geronimo.apache.org by db...@apache.org on 2007/01/23 09:13:30 UTC

svn commit: r498948 - in /geronimo/server/trunk: configs/openejb/src/plan/plan.xml modules/geronimo-openejb/src/main/java/org/apache/geronimo/openejb/EjbContainer.java

Author: dblevins
Date: Tue Jan 23 00:13:28 2007
New Revision: 498948

URL: http://svn.apache.org/viewvc?view=rev&rev=498948
Log:
Fix to ensure proper container types are created.

Modified:
    geronimo/server/trunk/configs/openejb/src/plan/plan.xml
    geronimo/server/trunk/modules/geronimo-openejb/src/main/java/org/apache/geronimo/openejb/EjbContainer.java

Modified: geronimo/server/trunk/configs/openejb/src/plan/plan.xml
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/configs/openejb/src/plan/plan.xml?view=diff&rev=498948&r1=498947&r2=498948
==============================================================================
--- geronimo/server/trunk/configs/openejb/src/plan/plan.xml (original)
+++ geronimo/server/trunk/configs/openejb/src/plan/plan.xml Tue Jan 23 00:13:28 2007
@@ -28,24 +28,28 @@
 
     <gbean name="DefaultStatelessContainer" class="org.apache.geronimo.openejb.EjbContainer">
         <attribute name="id">Default Stateless Container</attribute>
+        <attribute name="type">STATELESS</attribute>
         <reference name="OpenEjbSystem">
             <name>OpenEjbSystem</name>
         </reference>
     </gbean>
     <gbean name="DefaultStatefulContainer" class="org.apache.geronimo.openejb.EjbContainer">
         <attribute name="id">Default Stateful Container</attribute>
+        <attribute name="type">STATEFUL</attribute>
         <reference name="OpenEjbSystem">
             <name>OpenEjbSystem</name>
         </reference>
     </gbean>
     <gbean name="DefaultBMPContainer" class="org.apache.geronimo.openejb.EjbContainer">
         <attribute name="id">Default BMP Container</attribute>
+        <attribute name="type">BMP_ENTITY</attribute>
         <reference name="OpenEjbSystem">
             <name>OpenEjbSystem</name>
         </reference>
     </gbean>
     <gbean name="DefaultCMPContainer" class="org.apache.geronimo.openejb.EjbContainer">
         <attribute name="id">Default CMP Container</attribute>
+        <attribute name="type">CMP_ENTITY</attribute>
         <reference name="OpenEjbSystem">
             <name>OpenEjbSystem</name>
         </reference>
@@ -53,6 +57,7 @@
     
     <gbean name="DefaultMDBContainer" class="org.apache.geronimo.openejb.EjbContainer">
         <attribute name="id">Default MDB Container</attribute>
+        <attribute name="type">MESSAGE</attribute>
         <reference name="OpenEjbSystem">
             <name>OpenEjbSystem</name>
         </reference>

Modified: geronimo/server/trunk/modules/geronimo-openejb/src/main/java/org/apache/geronimo/openejb/EjbContainer.java
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/modules/geronimo-openejb/src/main/java/org/apache/geronimo/openejb/EjbContainer.java?view=diff&rev=498948&r1=498947&r2=498948
==============================================================================
--- geronimo/server/trunk/modules/geronimo-openejb/src/main/java/org/apache/geronimo/openejb/EjbContainer.java (original)
+++ geronimo/server/trunk/modules/geronimo-openejb/src/main/java/org/apache/geronimo/openejb/EjbContainer.java Tue Jan 23 00:13:28 2007
@@ -17,11 +17,19 @@
 package org.apache.geronimo.openejb;
 
 import java.util.Properties;
+import java.util.Map;
+import java.util.HashMap;
 
 import org.apache.geronimo.gbean.GBeanInfo;
 import org.apache.geronimo.gbean.GBeanInfoBuilder;
 import org.apache.geronimo.gbean.GBeanLifecycle;
 import org.apache.openejb.assembler.classic.ContainerInfo;
+import org.apache.openejb.assembler.classic.StatelessSessionContainerInfo;
+import org.apache.openejb.assembler.classic.StatefulSessionContainerInfo;
+import org.apache.openejb.assembler.classic.BmpEntityContainerInfo;
+import org.apache.openejb.assembler.classic.CmpEntityContainerInfo;
+import org.apache.openejb.assembler.classic.MdbContainerInfo;
+import org.apache.openejb.alt.config.Bean;
 
 /**
  * @version $Rev$ $Date$
@@ -31,7 +39,8 @@
     private String id;
     private Properties properties;
     private String provider;
-    private Class<ContainerInfo> type = ContainerInfo.class;
+    private String type;
+    private Class<? extends ContainerInfo> infoType;
 
     public OpenEjbSystem getOpenEjbSystem() {
         return openEjbSystem;
@@ -65,16 +74,35 @@
         this.provider = provider;
     }
 
-    public Class<ContainerInfo> getType() {
+    public String getType() {
         return type;
     }
 
-    public void setType(Class<ContainerInfo> type) {
+    public void setType(String type) {
         this.type = type;
+        this.infoType = getInfoType(type);
+    }
+
+    private Class<? extends ContainerInfo> getInfoType(String type) {
+        if ("STATELESS".equalsIgnoreCase(type)) return StatelessSessionContainerInfo.class;
+        if ("STATEFUL".equalsIgnoreCase(type)) return StatefulSessionContainerInfo.class;
+        if ("BMP_ENTITY".equalsIgnoreCase(type)) return BmpEntityContainerInfo.class;
+        if ("CMP_ENTITY".equalsIgnoreCase(type)) return CmpEntityContainerInfo.class;
+        if ("CMP2_ENTITY".equalsIgnoreCase(type)) return CmpEntityContainerInfo.class;
+        if ("MESSAGE".equalsIgnoreCase(type)) return MdbContainerInfo.class;
+        else return ContainerInfo.class;
+    }
+
+    public Class<? extends ContainerInfo> getInfoType() {
+        return infoType;
+    }
+
+    public void setInfoType(Class<? extends ContainerInfo> infoType) {
+        this.infoType = infoType;
     }
 
     public void doStart() throws Exception {
-        openEjbSystem.createContainer(type, id, properties, provider);
+        openEjbSystem.createContainer(infoType, id, properties, provider);
     }
 
     public void doStop() throws Exception {
@@ -91,7 +119,8 @@
         infoBuilder.addAttribute("id", String.class, true);
         infoBuilder.addAttribute("properties", Properties.class, true);
         infoBuilder.addAttribute("provider", String.class, true);
-        infoBuilder.addAttribute("type", Class.class, true);
+        infoBuilder.addAttribute("type", String.class, true);
+        infoBuilder.addAttribute("infoType", Class.class, true);
         GBEAN_INFO = infoBuilder.getBeanInfo();
     }