You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by db...@apache.org on 2007/01/11 06:06:05 UTC

svn commit: r495121 - in /incubator/openejb/trunk/openejb3/container/openejb-core/src: main/java/org/apache/openejb/assembler/classic/ main/java/org/apache/openejb/core/cmp/ main/java/org/apache/openejb/core/entity/ main/java/org/apache/openejb/core/md...

Author: dblevins
Date: Wed Jan 10 21:06:04 2007
New Revision: 495121

URL: http://svn.apache.org/viewvc?view=rev&rev=495121
Log:
inlined and simplified the construction of containers

Removed:
    incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/ContainersBuilder.java
Modified:
    incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java
    incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/cmp/CmpContainer.java
    incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/entity/Cmp2EntityContainer.java
    incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/entity/EntityContainer.java
    incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/mdb/ActiveMQContainer.java
    incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/stateful/StatefulContainer.java
    incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/stateless/StatelessContainer.java
    incubator/openejb/trunk/openejb3/container/openejb-core/src/main/resources/META-INF/org.apache.openejb/service-jar.xml
    incubator/openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/core/stateful/StatefulContainerTest.java
    incubator/openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/core/stateless/StatelessContainerTest.java

Modified: incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java?view=diff&rev=495121&r1=495120&r2=495121
==============================================================================
--- incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java (original)
+++ incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java Wed Jan 10 21:06:04 2007
@@ -242,11 +242,8 @@
         AssemblerTool.RoleMapping roleMapping = new AssemblerTool.RoleMapping(configInfo.facilities.securityService.roleMappings);
 
         // Containers
-        ContainersBuilder containersBuilder = new ContainersBuilder(containerSystem, containerSystemInfo, props);
-        List containers = (List) containersBuilder.buildContainers(new HashMap<String, DeploymentInfo>());
-        for (int i1 = 0; i1 < containers.size(); i1++) {
-            Container container = (Container) containers.get(i1);
-            containerSystem.addContainer(container.getContainerID(), container);
+        for (ContainerInfo serviceInfo : containerSystemInfo.containers) {
+            createContainer(serviceInfo);
         }
 
         JndiBuilder jndiBuilder = new JndiBuilder(containerSystem.getJNDIContext());
@@ -344,6 +341,31 @@
         }
 
         return containerSystem;
+    }
+
+    private void createContainer(ContainerInfo serviceInfo) throws OpenEJBException, NamingException {
+
+        ObjectRecipe serviceRecipe = new ObjectRecipe(serviceInfo.className, serviceInfo.constructorArgs.toArray(new String[0]), null);
+        serviceRecipe.setAllProperties(serviceInfo.properties);
+
+        serviceRecipe.setProperty("id", new StaticRecipe(serviceInfo.id));
+        serviceRecipe.setProperty("transactionManager", new StaticRecipe(props.get(TransactionManager.class.getName())));
+        serviceRecipe.setProperty("securityService", new StaticRecipe(props.get(SecurityService.class.getName())));
+
+        Object service = serviceRecipe.create();
+
+        Class interfce = serviceInterfaces.get(serviceInfo.serviceType);
+        checkImplementation(interfce, service.getClass(), serviceInfo.serviceType, serviceInfo.id);
+
+        this.containerSystem.getJNDIContext().bind("java:openejb/" + serviceInfo.serviceType + "/" + serviceInfo.id, service);
+
+        SystemInstance.get().setComponent(interfce, service);
+
+        props.put(interfce.getName(), service);
+        props.put(serviceInfo.serviceType, service);
+        props.put(serviceInfo.id, service);
+
+        containerSystem.addContainer(serviceInfo.id, (Container) service);
     }
 
     private void createProxyFactory(IntraVmServerInfo serviceInfo) throws OpenEJBException, NamingException {

Modified: incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/cmp/CmpContainer.java
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/cmp/CmpContainer.java?view=diff&rev=495121&r1=495120&r2=495121
==============================================================================
--- incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/cmp/CmpContainer.java (original)
+++ incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/cmp/CmpContainer.java Wed Jan 10 21:06:04 2007
@@ -88,7 +88,7 @@
     protected final Map<Object, CmpEngine> cmpEngines = new HashMap<Object, CmpEngine>();
 
 
-    public CmpContainer(Object id, TransactionManager transactionManager, SecurityService securityService, HashMap<Object, DeploymentInfo> registry, String cmpEngineFactory, String engine, String connectorName) throws OpenEJBException {
+    public CmpContainer(Object id, TransactionManager transactionManager, SecurityService securityService, String cmpEngineFactory, String engine, String connectorName) throws OpenEJBException {
         this.transactionManager = transactionManager;
         this.securityService = securityService;
         this.containerID = id;
@@ -97,10 +97,6 @@
         this.engine = engine;
 
         cmpCallback = new ContainerCmpCallback();
-
-        for (DeploymentInfo deploymentInfo : registry.values()) {
-            deploy((CoreDeploymentInfo) deploymentInfo);
-        }
     }
 
     public Object getContainerID() {

Modified: incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/entity/Cmp2EntityContainer.java
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/entity/Cmp2EntityContainer.java?view=diff&rev=495121&r1=495120&r2=495121
==============================================================================
--- incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/entity/Cmp2EntityContainer.java (original)
+++ incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/entity/Cmp2EntityContainer.java Wed Jan 10 21:06:04 2007
@@ -33,12 +33,11 @@
  */
 public class Cmp2EntityContainer implements org.apache.openejb.RpcContainer, TransactionContainer {
 
-    private Map deploymentRegistry;
+    private Map deploymentRegistry = new HashMap();
 
     private Object containerID = null;
 
-    public Cmp2EntityContainer(Object id, TransactionManager transactionManager, SecurityService securityService, Map registry) throws OpenEJBException {
-        this.deploymentRegistry = registry;
+    public Cmp2EntityContainer(Object id, TransactionManager transactionManager, SecurityService securityService) throws OpenEJBException {
         this.containerID = id;
     }
 

Modified: incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/entity/EntityContainer.java
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/entity/EntityContainer.java?view=diff&rev=495121&r1=495120&r2=495121
==============================================================================
--- incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/entity/EntityContainer.java (original)
+++ incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/entity/EntityContainer.java Wed Jan 10 21:06:04 2007
@@ -50,7 +50,7 @@
 
     private EntityInstanceManager instanceManager;
 
-    private Map deploymentRegistry;
+    private Map<String,CoreDeploymentInfo> deploymentRegistry  = new HashMap<String,CoreDeploymentInfo>();
 
     private Object containerID = null;
 
@@ -58,8 +58,7 @@
     private TransactionManager transactionManager;
     private SecurityService securityService;
 
-    public EntityContainer(Object id, TransactionManager transactionManager, SecurityService securityService, Map registry, int poolSize) throws OpenEJBException {
-        this.deploymentRegistry = registry;
+    public EntityContainer(Object id, TransactionManager transactionManager, SecurityService securityService, int poolSize) throws OpenEJBException {
         this.containerID = id;
         this.transactionManager = transactionManager;
         this.securityService = securityService;
@@ -68,11 +67,11 @@
     }
 
     public DeploymentInfo [] deployments() {
-        return (DeploymentInfo []) deploymentRegistry.values().toArray(new DeploymentInfo[deploymentRegistry.size()]);
+        return deploymentRegistry.values().toArray(new DeploymentInfo[deploymentRegistry.size()]);
     }
 
     public DeploymentInfo getDeploymentInfo(Object deploymentID) {
-        return (DeploymentInfo) deploymentRegistry.get(deploymentID);
+        return deploymentRegistry.get(deploymentID);
     }
 
     public int getContainerType() {

Modified: incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/mdb/ActiveMQContainer.java
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/mdb/ActiveMQContainer.java?view=diff&rev=495121&r1=495120&r2=495121
==============================================================================
--- incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/mdb/ActiveMQContainer.java (original)
+++ incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/mdb/ActiveMQContainer.java Wed Jan 10 21:06:04 2007
@@ -38,7 +38,6 @@
     public ActiveMQContainer(Object containerID,
                              GeronimoTransactionManager transactionManager,
                              SecurityService securityService,
-                             Map<String, DeploymentInfo> deploymentRegistry,
                              String serverUrl,
                              int threadPoolSize,
                              int instanceLimit) throws OpenEJBException {
@@ -50,21 +49,6 @@
                 ActiveMQActivationSpec.class,
                 instanceLimit);
 
-        // deploy the beans
-        try {
-            for (Map.Entry<String, DeploymentInfo> entry : deploymentRegistry.entrySet()) {
-                deploy(entry.getKey(), entry.getValue());
-            }
-        } catch (OpenEJBException e) {
-            // there was a failure deploying the beans... undeploy them
-            for (DeploymentInfo deploymentInfo : deployments()) {
-                try {
-                    undeploy(deploymentInfo.getDeploymentID());
-                } finally {
-                    logger.error("Error undeploying " + deploymentInfo.getDeploymentID(), e);
-                }
-            }
-        }
     }
 
     public static ActiveMQResourceAdapter createActiveMQResourceAdapter(GeronimoTransactionManager transactionManager, String serverUrl, int threadPoolSize) throws OpenEJBException {

Modified: incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/stateful/StatefulContainer.java
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/stateful/StatefulContainer.java?view=diff&rev=495121&r1=495120&r2=495121
==============================================================================
--- incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/stateful/StatefulContainer.java (original)
+++ incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/stateful/StatefulContainer.java Wed Jan 10 21:06:04 2007
@@ -45,7 +45,7 @@
 
     private StatefulInstanceManager instanceManager;
 
-    private HashMap<String,CoreDeploymentInfo> deploymentRegistry;
+    private HashMap<String,CoreDeploymentInfo> deploymentRegistry = new HashMap<String,CoreDeploymentInfo>();
 
     private Object containerID = null;
 
@@ -53,8 +53,7 @@
     private TransactionManager transactionManager;
     private SecurityService securityService;
 
-    public StatefulContainer(Object id, TransactionManager transactionManager, SecurityService securityService, HashMap registry, Class passivator, int timeOut, int poolSize, int bulkPassivate) throws OpenEJBException {
-        this.deploymentRegistry = registry;
+    public StatefulContainer(Object id, TransactionManager transactionManager, SecurityService securityService, Class passivator, int timeOut, int poolSize, int bulkPassivate) throws OpenEJBException {
         this.containerID = id;
         this.transactionManager = transactionManager;
         this.securityService = securityService;
@@ -188,7 +187,7 @@
     public void deploy(Object deploymentID, DeploymentInfo deploymentInfo) throws OpenEJBException {
         deploy(deploymentID, (CoreDeploymentInfo)deploymentInfo);
     }
-    
+
     private void deploy(Object deploymentID, CoreDeploymentInfo deploymentInfo) throws OpenEJBException {
         Map<Method, MethodType> methods = getLifecycelMethodsOfInterface(deploymentInfo);
         deploymentInfo.setContainerData(new Data(new Index(methods)));

Modified: incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/stateless/StatelessContainer.java
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/stateless/StatelessContainer.java?view=diff&rev=495121&r1=495120&r2=495121
==============================================================================
--- incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/stateless/StatelessContainer.java (original)
+++ incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/stateless/StatelessContainer.java Wed Jan 10 21:06:04 2007
@@ -44,14 +44,13 @@
 
     private StatelessInstanceManager instanceManager;
 
-    private HashMap<String,DeploymentInfo> deploymentRegistry;
+    private HashMap<String,DeploymentInfo> deploymentRegistry = new HashMap<String,DeploymentInfo>();
 
     private Object containerID = null;
     private TransactionManager transactionManager;
     private SecurityService securityService;
 
-    public StatelessContainer(Object id, TransactionManager transactionManager, SecurityService securityService, HashMap registry, int timeOut, int poolSize, boolean strictPooling) throws OpenEJBException {
-        this.deploymentRegistry = registry;
+    public StatelessContainer(Object id, TransactionManager transactionManager, SecurityService securityService, int timeOut, int poolSize, boolean strictPooling) throws OpenEJBException {
         this.containerID = id;
         this.transactionManager = transactionManager;
         this.securityService = securityService;

Modified: incubator/openejb/trunk/openejb3/container/openejb-core/src/main/resources/META-INF/org.apache.openejb/service-jar.xml
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/container/openejb-core/src/main/resources/META-INF/org.apache.openejb/service-jar.xml?view=diff&rev=495121&r1=495120&r2=495121
==============================================================================
--- incubator/openejb/trunk/openejb3/container/openejb-core/src/main/resources/META-INF/org.apache.openejb/service-jar.xml (original)
+++ incubator/openejb/trunk/openejb3/container/openejb-core/src/main/resources/META-INF/org.apache.openejb/service-jar.xml Wed Jan 10 21:06:04 2007
@@ -50,7 +50,7 @@
   -->
   <ServiceProvider id="Default CMP Container"
                    provider-type="Container"
-                   constructor="id, transactionManager, securityService, deployments, CmpEngineFactory, Engine, ConnectorName"
+                   constructor="id, transactionManager, securityService, CmpEngineFactory, Engine, ConnectorName"
                    class-name="org.apache.openejb.core.cmp.CmpContainer">
 
     #CmpEngineFactory org.apache.openejb.alt.containers.castor_cmp11.CastorCmpEngineFactory
@@ -69,7 +69,7 @@
   -->
   <ServiceProvider id="Default CMP2 Container"
                    provider-type="Container"
-                   constructor="id, transactionManager, securityService, deployments"
+                   constructor="id, transactionManager, securityService"
                    class-name="org.apache.openejb.core.entity.Cmp2EntityContainer">
   </ServiceProvider>
 
@@ -81,7 +81,7 @@
   <ServiceProvider
           id="Default BMP Container"
           provider-type="Container"
-          constructor="id, transactionManager, securityService, deployments, PoolSize"
+          constructor="id, transactionManager, securityService, PoolSize"
           class-name="org.apache.openejb.core.entity.EntityContainer">
 
     # Specifies the size of the bean pools for this
@@ -101,7 +101,7 @@
   <ServiceProvider
           id="Default Stateless Container"
           provider-type="Container"
-          constructor="id, transactionManager, securityService, deployments, TimeOut, PoolSize, StrictPooling"
+          constructor="id, transactionManager, securityService, TimeOut, PoolSize, StrictPooling"
           class-name="org.apache.openejb.core.stateless.StatelessContainer">
 
     # Specifies the time to wait between invocations. This
@@ -142,7 +142,7 @@
   <ServiceProvider
           id="Default Stateful Container"
           provider-type="Container"
-          constructor="id, transactionManager, securityService, deployments, Passivator, TimeOut, PoolSize, BulkPassivate"
+          constructor="id, transactionManager, securityService, Passivator, TimeOut, PoolSize, BulkPassivate"
           class-name="org.apache.openejb.core.stateful.StatefulContainer">
 
     # The passivator is responsible for writing beans to disk
@@ -185,7 +185,7 @@
   <ServiceProvider
           id="Default MDB Container"
           provider-type="Container"
-          constructor="id, transactionManager, securityService, deployments, ServerUrl, ThreadPoolSize, InstanceLimit"
+          constructor="id, transactionManager, securityService, ServerUrl, ThreadPoolSize, InstanceLimit"
           class-name="org.apache.openejb.core.mdb.ActiveMQContainer">
 
     # Specifies the url used to create the ActiveMQ resource adapter.

Modified: incubator/openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/core/stateful/StatefulContainerTest.java
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/core/stateful/StatefulContainerTest.java?view=diff&rev=495121&r1=495120&r2=495121
==============================================================================
--- incubator/openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/core/stateful/StatefulContainerTest.java (original)
+++ incubator/openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/core/stateful/StatefulContainerTest.java Wed Jan 10 21:06:04 2007
@@ -163,7 +163,7 @@
 
 
         // Create the Container
-        container = new StatefulContainer("Stateful Container", transactionManager, securityService, new HashMap(),null, 10, 0, 1);
+        container = new StatefulContainer("Stateful Container", transactionManager, securityService,null, 10, 0, 1);
         Properties props = new Properties();
         props.put(container.getContainerID(), container);
 

Modified: incubator/openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/core/stateless/StatelessContainerTest.java
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/core/stateless/StatelessContainerTest.java?view=diff&rev=495121&r1=495120&r2=495121
==============================================================================
--- incubator/openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/core/stateless/StatelessContainerTest.java (original)
+++ incubator/openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/core/stateless/StatelessContainerTest.java Wed Jan 10 21:06:04 2007
@@ -127,7 +127,7 @@
         PseudoTransactionService transactionManager = new PseudoTransactionService();
         PseudoSecurityService securityService = new PseudoSecurityService();
         SystemInstance.get().setComponent(SecurityService.class, securityService);
-        container = new StatelessContainer("Stateless Container", transactionManager, securityService, new HashMap(), 10, 0, false);
+        container = new StatelessContainer("Stateless Container", transactionManager, securityService, 10, 0, false);
         Properties props = new Properties();
         props.put(container.getContainerID(), container);