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 02:16:35 UTC

svn commit: r495075 - in /incubator/openejb/trunk/openejb3/container: openejb-core/src/main/java/org/apache/openejb/alt/config/ openejb-core/src/main/java/org/apache/openejb/assembler/classic/ openejb-core/src/main/java/org/apache/openejb/core/ openejb...

Author: dblevins
Date: Wed Jan 10 17:16:34 2007
New Revision: 495075

URL: http://svn.apache.org/viewvc?view=rev&rev=495075
Log:
build containers before deployments

Modified:
    incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/alt/config/ConfigurationFactory.java
    incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/alt/config/ConfigurationPrinter.java
    incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/alt/config/EjbJarInfoBuilder.java
    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/assembler/classic/ContainersBuilder.java
    incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/EjbJarBuilder.java
    incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/EnterpriseBeanInfo.java
    incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/CoreContainerSystem.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/entity/EntityInstanceManager.java
    incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/mdb/MdbContainer.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/util/proxy/Jdk13InvocationHandler.java
    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
    incubator/openejb/trunk/openejb3/container/openejb-loader/src/main/java/org/apache/openejb/loader/SystemInstance.java

Modified: incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/alt/config/ConfigurationFactory.java
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/alt/config/ConfigurationFactory.java?view=diff&rev=495075&r1=495074&r2=495075
==============================================================================
--- incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/alt/config/ConfigurationFactory.java (original)
+++ incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/alt/config/ConfigurationFactory.java Wed Jan 10 17:16:34 2007
@@ -426,7 +426,7 @@
                 logger.fatal(msg);
                 throw new OpenEJBException(msg);
             }
-            cInfo.ejbeans.add(bean);
+            bean.containerId = d.getContainerId();
         }
     }
 

Modified: incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/alt/config/ConfigurationPrinter.java
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/alt/config/ConfigurationPrinter.java?view=diff&rev=495075&r1=495074&r2=495075
==============================================================================
--- incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/alt/config/ConfigurationPrinter.java (original)
+++ incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/alt/config/ConfigurationPrinter.java Wed Jan 10 17:16:34 2007
@@ -53,62 +53,63 @@
             out(1, "displayName  ", container.displayName);
             out(1, "properties   ");
             container.properties.list(System.out);
-            out(1, "ejbeans      ", container.ejbeans.size());
-            for (EnterpriseBeanInfo bean : container.ejbeans) {
-                out(2, "codebase       ", bean.codebase);
-                out(2, "description    ", bean.description);
-                out(2, "displayName    ", bean.displayName);
-                out(2, "ejbClass       ", bean.ejbClass);
-                out(2, "ejbDeploymentId", bean.ejbDeploymentId);
-                out(2, "ejbName        ", bean.ejbName);
-                out(2, "home           ", bean.home);
-                out(2, "largeIcon      ", bean.largeIcon);
-                out(2, "remote         ", bean.remote);
-                out(2, "smallIcon      ", bean.smallIcon);
-                out(2, "transactionType", bean.transactionType);
-                out(2, "type           ", bean.type);
-
-                JndiEncInfo jndiEnc = bean.jndiEnc;
-                out(2, "jndiEnc        ", jndiEnc);
-                out(2, "envEntries     ", jndiEnc.envEntries.size());
-                for (ListIterator<EnvEntryInfo> iterator = jndiEnc.envEntries.listIterator(); iterator.hasNext();) {
-                    EnvEntryInfo envEntry = iterator.next();
-                    out(3, "--[" + iterator.previousIndex() + "]----------------------");
-                    out(3, "name  ", envEntry.name);
-                    out(3, "type  ", envEntry.type);
-                    out(3, "value ", envEntry.value);
-                }
-                out(2, "ejbReferences  ", jndiEnc.ejbReferences.size());
-                for (ListIterator<EjbReferenceInfo> iterator = jndiEnc.ejbReferences.listIterator(); iterator.hasNext();) {
-                    EjbReferenceInfo ejbReference = iterator.next();
-                    out(3, "--[" + iterator.previousIndex() + "]----------------------");
-                    out(3, "homeType        ", ejbReference.homeType);
-                    out(3, "referenceName   ", ejbReference.referenceName);
-                    out(3, "location        ", ejbReference.location);
-                    out(3, "ejbDeploymentId ", ejbReference.location.ejbDeploymentId);
-                    out(3, "jndiContextId   ", ejbReference.location.jndiContextId);
-                    out(3, "remote          ", ejbReference.location.remote);
-                    out(3, "remoteRefName   ", ejbReference.location.remoteRefName);
-                }
-                out(2, "resourceRefs   ", jndiEnc.resourceRefs.size());
-                for (ListIterator<ResourceReferenceInfo> iterator = jndiEnc.resourceRefs.listIterator(); iterator.hasNext();) {
-                    ResourceReferenceInfo resourceRef = iterator.next();
-                    out(3, "--[" + iterator.previousIndex() + "]----------------------");
-                    out(3, "referenceAuth   ", resourceRef.referenceAuth);
-                    out(3, "referenceName   ", resourceRef.referenceName);
-                    out(3, "referenceType   ", resourceRef.referenceType);
-                    if (resourceRef.location != null) {
-                        out(3, "location        ", resourceRef.location);
-                        out(3, "jndiContextId   ", resourceRef.location.jndiContextId);
-                        out(3, "remote          ", resourceRef.location.remote);
-                        out(3, "remoteRefName   ", resourceRef.location.remoteRefName);
-                    }
-                }
-            }
         }
 
         for (AppInfo app : conf.containerSystem.applications) {
             for (EjbJarInfo ejbJar : app.ejbJars) {
+                out(1, "ejbeans      ", ejbJar.enterpriseBeans.size());
+                for (EnterpriseBeanInfo bean : ejbJar.enterpriseBeans) {
+                    out(2, "codebase       ", bean.codebase);
+                    out(2, "description    ", bean.description);
+                    out(2, "displayName    ", bean.displayName);
+                    out(2, "ejbClass       ", bean.ejbClass);
+                    out(2, "ejbDeploymentId", bean.ejbDeploymentId);
+                    out(2, "ejbName        ", bean.ejbName);
+                    out(2, "home           ", bean.home);
+                    out(2, "largeIcon      ", bean.largeIcon);
+                    out(2, "remote         ", bean.remote);
+                    out(2, "smallIcon      ", bean.smallIcon);
+                    out(2, "transactionType", bean.transactionType);
+                    out(2, "type           ", bean.type);
+
+                    JndiEncInfo jndiEnc = bean.jndiEnc;
+                    out(2, "jndiEnc        ", jndiEnc);
+                    out(2, "envEntries     ", jndiEnc.envEntries.size());
+                    for (ListIterator<EnvEntryInfo> iterator = jndiEnc.envEntries.listIterator(); iterator.hasNext();) {
+                        EnvEntryInfo envEntry = iterator.next();
+                        out(3, "--[" + iterator.previousIndex() + "]----------------------");
+                        out(3, "name  ", envEntry.name);
+                        out(3, "type  ", envEntry.type);
+                        out(3, "value ", envEntry.value);
+                    }
+                    out(2, "ejbReferences  ", jndiEnc.ejbReferences.size());
+                    for (ListIterator<EjbReferenceInfo> iterator = jndiEnc.ejbReferences.listIterator(); iterator.hasNext();) {
+                        EjbReferenceInfo ejbReference = iterator.next();
+                        out(3, "--[" + iterator.previousIndex() + "]----------------------");
+                        out(3, "homeType        ", ejbReference.homeType);
+                        out(3, "referenceName   ", ejbReference.referenceName);
+                        out(3, "location        ", ejbReference.location);
+                        out(3, "ejbDeploymentId ", ejbReference.location.ejbDeploymentId);
+                        out(3, "jndiContextId   ", ejbReference.location.jndiContextId);
+                        out(3, "remote          ", ejbReference.location.remote);
+                        out(3, "remoteRefName   ", ejbReference.location.remoteRefName);
+                    }
+                    out(2, "resourceRefs   ", jndiEnc.resourceRefs.size());
+                    for (ListIterator<ResourceReferenceInfo> iterator = jndiEnc.resourceRefs.listIterator(); iterator.hasNext();) {
+                        ResourceReferenceInfo resourceRef = iterator.next();
+                        out(3, "--[" + iterator.previousIndex() + "]----------------------");
+                        out(3, "referenceAuth   ", resourceRef.referenceAuth);
+                        out(3, "referenceName   ", resourceRef.referenceName);
+                        out(3, "referenceType   ", resourceRef.referenceType);
+                        if (resourceRef.location != null) {
+                            out(3, "location        ", resourceRef.location);
+                            out(3, "jndiContextId   ", resourceRef.location.jndiContextId);
+                            out(3, "remote          ", resourceRef.location.remote);
+                            out(3, "remoteRefName   ", resourceRef.location.remoteRefName);
+                        }
+                    }
+                }
+
                 if (!ejbJar.securityRoles.isEmpty()) {
                     out(0, "--Security Roles------------");
                     for (ListIterator<SecurityRoleInfo> iterator = ejbJar.securityRoles.listIterator(); iterator.hasNext();) {

Modified: incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/alt/config/EjbJarInfoBuilder.java
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/alt/config/EjbJarInfoBuilder.java?view=diff&rev=495075&r1=495074&r2=495075
==============================================================================
--- incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/alt/config/EjbJarInfoBuilder.java (original)
+++ incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/alt/config/EjbJarInfoBuilder.java Wed Jan 10 17:16:34 2007
@@ -432,6 +432,7 @@
                     + ". Please redeploy the jar");
         }
         bean.ejbDeploymentId = d.getDeploymentId();
+        bean.containerId = d.getContainerId();
 
         Icon icon = s.getIcon();
         bean.largeIcon = (icon == null) ? null : icon.getLargeIcon();
@@ -472,6 +473,7 @@
                     + ". Please redeploy the jar");
         }
         bean.ejbDeploymentId = d.getDeploymentId();
+        bean.containerId = d.getContainerId();
 
         Icon icon = mdb.getIcon();
         bean.largeIcon = (icon == null) ? null : icon.getLargeIcon();
@@ -518,6 +520,7 @@
                     + ". Please redeploy the jar");
         }
         bean.ejbDeploymentId = d.getDeploymentId();
+        bean.containerId = d.getContainerId();
 
         Icon icon = e.getIcon();
         bean.largeIcon = (icon == null) ? null : icon.getLargeIcon();

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=495075&r1=495074&r2=495075
==============================================================================
--- 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 17:16:34 2007
@@ -241,7 +241,15 @@
 
         AssemblerTool.RoleMapping roleMapping = new AssemblerTool.RoleMapping(configInfo.facilities.securityService.roleMappings);
 
-        HashMap<String, DeploymentInfo> deployments2 = new HashMap<String, DeploymentInfo>();
+        // 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);
+        }
+
+        JndiBuilder jndiBuilder = new JndiBuilder(containerSystem.getJNDIContext());
         for (AppInfo appInfo : containerSystemInfo.applications) {
 
             List<URL> jars = new ArrayList<URL>();
@@ -284,14 +292,17 @@
             }
 
             // EJB
-            EjbJarBuilder ejbJarBuilder = new EjbJarBuilder(classLoader);
+            EjbJarBuilder ejbJarBuilder = new EjbJarBuilder(props, classLoader);
             for (EjbJarInfo ejbJar : appInfo.ejbJars) {
                 HashMap<String, DeploymentInfo> deployments = ejbJarBuilder.build(ejbJar, allFactories);
-                deployments2.putAll(deployments);
+
                 for (DeploymentInfo deploymentInfo : deployments.values()) {
                     applyMethodPermissions((org.apache.openejb.core.CoreDeploymentInfo) deploymentInfo, ejbJar.methodPermissions, roleMapping);
                     applyTransactionAttributes((org.apache.openejb.core.CoreDeploymentInfo) deploymentInfo, ejbJar.methodTransactions);
+                    containerSystem.addDeployment(deploymentInfo);
+                    jndiBuilder.bind(deploymentInfo);
                 }
+
                 for (EnterpriseBeanInfo beanInfo : ejbJar.enterpriseBeans) {
                     CoreDeploymentInfo deployment = (CoreDeploymentInfo) deployments.get(beanInfo.ejbDeploymentId);
                     applySecurityRoleReference(deployment, beanInfo, roleMapping);
@@ -323,22 +334,6 @@
                     }
                 }
                 containerSystem.getJNDIContext().bind("java:openejb/client/" + clientInfo.moduleId + "/comp/injections", injections);
-            }
-        }
-
-        JndiBuilder jndiBuilder = new JndiBuilder(containerSystem.getJNDIContext());
-
-        // Containers
-        ContainersBuilder containersBuilder = new ContainersBuilder(containerSystemInfo, ((AssemblerTool) this).props);
-        List containers = (List) containersBuilder.buildContainers(deployments2);
-        for (int i1 = 0; i1 < containers.size(); i1++) {
-            Container container1 = (Container) containers.get(i1);
-            containerSystem.addContainer(container1.getContainerID(), container1);
-            org.apache.openejb.DeploymentInfo[] deployments1 = container1.deployments();
-            for (int j = 0; j < deployments1.length; j++) {
-                CoreDeploymentInfo deployment = (CoreDeploymentInfo) deployments1[j];
-                containerSystem.addDeployment(deployment);
-                jndiBuilder.bind(deployment);
             }
         }
 

Modified: incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/ContainersBuilder.java
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/ContainersBuilder.java?view=diff&rev=495075&r1=495074&r2=495075
==============================================================================
--- incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/ContainersBuilder.java (original)
+++ incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/ContainersBuilder.java Wed Jan 10 17:16:34 2007
@@ -21,6 +21,7 @@
 import org.apache.openejb.OpenEJBException;
 import org.apache.openejb.RpcContainer;
 import org.apache.openejb.core.CoreDeploymentInfo;
+import org.apache.openejb.core.CoreContainerSystem;
 import org.apache.openejb.loader.SystemInstance;
 import org.apache.openejb.spi.SecurityService;
 import org.apache.openejb.util.Logger;
@@ -29,6 +30,7 @@
 import org.apache.xbean.recipe.StaticRecipe;
 
 import javax.transaction.TransactionManager;
+import javax.naming.NamingException;
 import java.io.File;
 import java.util.ArrayList;
 import java.util.HashMap;
@@ -43,35 +45,50 @@
     private final Properties props;
     private final List<ContainerInfo> containerInfos;
     private final String[] decorators;
+    private CoreContainerSystem containerSystem;
 
-    public ContainersBuilder(ContainerSystemInfo containerSystemInfo, Properties props) {
+    public ContainersBuilder(CoreContainerSystem containerSystem, ContainerSystemInfo containerSystemInfo, Properties props) {
         this.props = props;
         this.containerInfos = containerSystemInfo.containers;
         String decorators = props.getProperty("openejb.container.decorators");
         this.decorators = (decorators == null) ? new String[]{} : decorators.split(":");
-
+        this.containerSystem = containerSystem;
     }
 
-    public Object buildContainers(HashMap<String, DeploymentInfo> deployments) throws OpenEJBException {
+    public Object buildContainers(HashMap<String, DeploymentInfo> deployments) throws OpenEJBException, NamingException {
         List<Container> containers = new ArrayList<Container>();
-        for (ContainerInfo containerInfo : containerInfos) {
+        for (ContainerInfo serviceInfo : containerInfos) {
 
             Map<String, CoreDeploymentInfo> deploymentsList = new HashMap<String, CoreDeploymentInfo>();
-            for (EnterpriseBeanInfo bean : containerInfo.ejbeans) {
-                String ejbDeploymentId = bean.ejbDeploymentId;
-                CoreDeploymentInfo deployment = (CoreDeploymentInfo) deployments.get(ejbDeploymentId);
-                deploymentsList.put(ejbDeploymentId, deployment);
-            }
+//            for (EnterpriseBeanInfo bean : containerInfo.ejbeans) {
+//                String ejbDeploymentId = bean.ejbDeploymentId;
+//                CoreDeploymentInfo deployment = (CoreDeploymentInfo) deployments.get(ejbDeploymentId);
+//                deploymentsList.put(ejbDeploymentId, deployment);
+//            }
 
-            Container container = buildContainer(containerInfo, deploymentsList);
+            Container container = buildContainer(serviceInfo, deploymentsList);
             container = wrapContainer(container);
 
-            DeploymentInfo [] deploys = container.deployments();
-            for (int x = 0; x < deploys.length; x++) {
-                CoreDeploymentInfo di = (CoreDeploymentInfo) deploys[x];
-                di.setContainer(container);
-            }
+//            DeploymentInfo [] deploys = container.deployments();
+//            for (int x = 0; x < deploys.length; x++) {
+//                CoreDeploymentInfo di = (CoreDeploymentInfo) deploys[x];
+//                di.setContainer(container);
+//            }
+
             containers.add(container);
+
+            Class interfce = AssemblerTool.serviceInterfaces.get(serviceInfo.serviceType);
+            AssemblerTool.checkImplementation(interfce, container.getClass(), serviceInfo.serviceType, serviceInfo.id);
+
+
+            this.containerSystem.getJNDIContext().bind("java:openejb/" + serviceInfo.serviceType + "/" + serviceInfo.id, container);
+
+            SystemInstance.get().setComponent(interfce, container);
+
+            props.put(interfce.getName(), container);
+            props.put(serviceInfo.serviceType, container);
+            props.put(serviceInfo.id, container);
+
         }
         return containers;
     }

Modified: incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/EjbJarBuilder.java
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/EjbJarBuilder.java?view=diff&rev=495075&r1=495074&r2=495075
==============================================================================
--- incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/EjbJarBuilder.java (original)
+++ incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/EjbJarBuilder.java Wed Jan 10 17:16:34 2007
@@ -19,12 +19,14 @@
 
 import org.apache.openejb.DeploymentInfo;
 import org.apache.openejb.OpenEJBException;
+import org.apache.openejb.Container;
 import org.apache.openejb.core.CoreDeploymentInfo;
 import org.apache.openejb.util.Messages;
 
 import javax.persistence.EntityManagerFactory;
 import java.util.HashMap;
 import java.util.Map;
+import java.util.Properties;
 
 /**
  * @version $Revision$ $Date$
@@ -33,21 +35,28 @@
     protected static final Messages messages = new Messages("org.apache.openejb.util.resources");
 
     private final ClassLoader classLoader;
+    private final Properties props;
 
-    public EjbJarBuilder(ClassLoader classLoader) {
+    public EjbJarBuilder(Properties props, ClassLoader classLoader) {
+        this.props = props;
         this.classLoader = classLoader;
     }
 
     public HashMap<String, DeploymentInfo> build(EjbJarInfo ejbJar, Map<String, Map<String, EntityManagerFactory>> allFactories) throws OpenEJBException {
         HashMap<String, DeploymentInfo> deployments = new HashMap<String, DeploymentInfo>();
-        
-        
+
+
         for (EnterpriseBeanInfo ejbInfo: ejbJar.enterpriseBeans) {
-            try {            	
+            try {
                 EnterpriseBeanBuilder deploymentBuilder = new EnterpriseBeanBuilder(classLoader, ejbInfo, ejbJar.defaultInterceptors,allFactories);
                 CoreDeploymentInfo deployment = (CoreDeploymentInfo) deploymentBuilder.build();
                 deployment.setJarPath(ejbJar.jarPath);
                 deployments.put(ejbInfo.ejbDeploymentId, deployment);
+
+                Container container = (Container) props.get(ejbInfo.containerId);
+                if (container == null) throw new IllegalStateException("Container does not exist: "+ejbInfo.containerId +".  Referenced by deployment: "+deployment.getDeploymentID());
+                container.deploy(deployment.getDeploymentID(), deployment);
+                deployment.setContainer(container);
             } catch (Throwable e) {
                 throw new OpenEJBException("Error building bean '"+ejbInfo.ejbName+"'.  Exception: "+e.getClass()+": "+e.getMessage(), e);
             }

Modified: incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/EnterpriseBeanInfo.java
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/EnterpriseBeanInfo.java?view=diff&rev=495075&r1=495074&r2=495075
==============================================================================
--- incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/EnterpriseBeanInfo.java (original)
+++ incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/EnterpriseBeanInfo.java Wed Jan 10 17:16:34 2007
@@ -58,5 +58,6 @@
     public boolean excludeDefaultInterceptors;
     public final List<InterceptorInfo> classInterceptors = new ArrayList<InterceptorInfo>();
     public final List<MethodInterceptorInfo> methodInterceptors = new ArrayList<MethodInterceptorInfo>();
-    
+
+    public String containerId;
 }

Modified: incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/CoreContainerSystem.java
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/CoreContainerSystem.java?view=diff&rev=495075&r1=495074&r2=495075
==============================================================================
--- incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/CoreContainerSystem.java (original)
+++ incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/CoreContainerSystem.java Wed Jan 10 17:16:34 2007
@@ -68,7 +68,7 @@
         containers.put(id, c);
     }
 
-    public void addDeployment(org.apache.openejb.core.CoreDeploymentInfo deployment) {
+    public void addDeployment(DeploymentInfo deployment) {
 
         this.deployments.put(deployment.getDeploymentID(), deployment);
 

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=495075&r1=495074&r2=495075
==============================================================================
--- 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 17:16:34 2007
@@ -89,6 +89,7 @@
         deploymentRegistry = registry;
         org.apache.openejb.core.CoreDeploymentInfo di = (org.apache.openejb.core.CoreDeploymentInfo) info;
         di.setContainer(this);
+        instanceManager.deploy(info);
     }
 
     public Object invoke(Object deployID, Method callMethod, Object [] args, Object primKey, Object securityIdentity) throws org.apache.openejb.OpenEJBException {

Modified: incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/entity/EntityInstanceManager.java
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/entity/EntityInstanceManager.java?view=diff&rev=495075&r1=495074&r2=495075
==============================================================================
--- incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/entity/EntityInstanceManager.java (original)
+++ incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/entity/EntityInstanceManager.java Wed Jan 10 17:16:34 2007
@@ -72,8 +72,12 @@
         org.apache.openejb.DeploymentInfo[] deploymentInfos = this.container.deployments();
         for (int i = 0; i < deploymentInfos.length; i++) {
             org.apache.openejb.DeploymentInfo deploymentInfo = deploymentInfos[i];
-            poolMap.put(deploymentInfo.getDeploymentID(), new LinkedListStack(poolsize / 2));
+            deploy(deploymentInfo);
         }
+    }
+
+    public void deploy(org.apache.openejb.DeploymentInfo deploymentInfo) {
+        poolMap.put(deploymentInfo.getDeploymentID(), new LinkedListStack(poolsize / 2));
     }
 
     public EntityBean obtainInstance(ThreadContext callContext)

Modified: incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/mdb/MdbContainer.java
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/mdb/MdbContainer.java?view=diff&rev=495075&r1=495074&r2=495075
==============================================================================
--- incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/mdb/MdbContainer.java (original)
+++ incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/core/mdb/MdbContainer.java Wed Jan 10 17:16:34 2007
@@ -81,7 +81,11 @@
         return containerID;
     }
 
-    public void deploy(Object deploymentId, DeploymentInfo deploymentInfo) throws OpenEJBException {
+    public void deploy(Object deploymentID, DeploymentInfo info) throws OpenEJBException {
+    }
+
+    // TODO: DMB: Temporarily commenting out as it locks the VM
+    public void LOCKUP_deploy(Object deploymentId, DeploymentInfo deploymentInfo) throws OpenEJBException {
         // create the activation spec
         ActivationSpec activationSpec = createActivationSpec(deploymentInfo);
 

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=495075&r1=495074&r2=495075
==============================================================================
--- 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 17:16:34 2007
@@ -63,7 +63,6 @@
 
         for (CoreDeploymentInfo deploymentInfo : deploymentRegistry.values()) {
             Map<Method, MethodType> methods = getLifecycelMethodsOfInterface(deploymentInfo);
-
             deploymentInfo.setContainerData(new Data(new Index(methods)));
         }
     }
@@ -186,11 +185,18 @@
         return containerID;
     }
 
-    public void deploy(Object deploymentID, DeploymentInfo info) throws OpenEJBException {
+    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)));
+
         HashMap registry = (HashMap) deploymentRegistry.clone();
-        registry.put(deploymentID, info);
+        registry.put(deploymentID, deploymentInfo);
         deploymentRegistry = registry;
-        CoreDeploymentInfo di = (CoreDeploymentInfo) info;
+        CoreDeploymentInfo di = (CoreDeploymentInfo) deploymentInfo;
         di.setContainer(this);
     }
 

Modified: incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/util/proxy/Jdk13InvocationHandler.java
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/util/proxy/Jdk13InvocationHandler.java?view=diff&rev=495075&r1=495074&r2=495075
==============================================================================
--- incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/util/proxy/Jdk13InvocationHandler.java (original)
+++ incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/util/proxy/Jdk13InvocationHandler.java Wed Jan 10 17:16:34 2007
@@ -40,15 +40,13 @@
     }
 
     public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
-        if (delegate != null) {
-            if (args == null) {
-                args = new Object[0];
-
-            }
-            return delegate.invoke(proxy, method, args);
-        } else {
+        if (delegate == null) {
             throw new NullPointerException("No invocation handler for proxy " + proxy);
         }
+        if (args == null) {
+            args = new Object[0];
+        }
+        return delegate.invoke(proxy, method, args);
     }
 }
 

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=495075&r1=495074&r2=495075
==============================================================================
--- 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 17:16:34 2007
@@ -43,6 +43,7 @@
 import java.util.Stack;
 import java.util.List;
 import java.util.Arrays;
+import java.util.Properties;
 import java.lang.reflect.Method;
 import java.io.Serializable;
 
@@ -152,11 +153,6 @@
 
         EjbModule jar = new EjbModule(this.getClass().getClassLoader(), "", ejbJar, openejbJar);
 
-        // Build the DeploymentInfos
-
-        HashMap<String, DeploymentInfo> ejbs = build(jar);
-        deploymentInfo = ejbs.get("widget");
-
         // Build and register the TransactionManager and SecurityService
 
         PseudoTransactionService transactionManager = new PseudoTransactionService();
@@ -165,10 +161,16 @@
         PseudoSecurityService securityService = new PseudoSecurityService();
         SystemInstance.get().setComponent(SecurityService.class, securityService);
 
+
         // Create the Container
+        container = new StatefulContainer("Stateful Container", transactionManager, securityService, new HashMap(),null, 10, 0, 1);
+        Properties props = new Properties();
+        props.put(container.getContainerID(), container);
+
+        // Build the DeploymentInfos
 
-        container = new StatefulContainer("Stateful Container", transactionManager, securityService, ejbs,null, 10, 0, 1);
-        ((CoreDeploymentInfo)deploymentInfo).setContainer(container);
+        HashMap<String, DeploymentInfo> ejbs = build(props, jar);
+        deploymentInfo = ejbs.get("widget");
 
         ProxyManager.registerFactory("ivm_server", new Jdk13ProxyFactory());
         ProxyManager.setDefaultFactory("ivm_server");
@@ -186,10 +188,10 @@
         return sb.toString();
     }
 
-    private HashMap<String, DeploymentInfo> build(EjbModule jar) throws OpenEJBException {
+    private HashMap<String, DeploymentInfo> build(Properties props, EjbModule jar) throws OpenEJBException {
         EjbJarInfoBuilder.deploymentIds.clear();
         EjbJarInfoBuilder infoBuilder = new EjbJarInfoBuilder();
-        EjbJarBuilder builder = new EjbJarBuilder(this.getClass().getClassLoader());
+        EjbJarBuilder builder = new EjbJarBuilder(props, this.getClass().getClassLoader());
         EjbJarInfo jarInfo = infoBuilder.buildInfo(jar);
         HashMap<String, DeploymentInfo> ejbs = builder.build(jarInfo,null);
         return ejbs;

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=495075&r1=495074&r2=495075
==============================================================================
--- 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 17:16:34 2007
@@ -41,6 +41,7 @@
 import java.util.HashMap;
 import java.util.List;
 import java.util.Stack;
+import java.util.Properties;
 
 /**
  * @version $Revision$ $Date$
@@ -123,14 +124,15 @@
 
         EjbModule jar = new EjbModule(this.getClass().getClassLoader(), "", ejbJar, openejbJar);
 
-        HashMap<String, DeploymentInfo> ejbs = build(jar);
-        deploymentInfo = ejbs.get("widget");
-
         PseudoTransactionService transactionManager = new PseudoTransactionService();
         PseudoSecurityService securityService = new PseudoSecurityService();
         SystemInstance.get().setComponent(SecurityService.class, securityService);
-        container = new StatelessContainer("Stateless Container", transactionManager, securityService, ejbs, 10, 0, false);
-        ((CoreDeploymentInfo)deploymentInfo).setContainer(container);
+        container = new StatelessContainer("Stateless Container", transactionManager, securityService, new HashMap(), 10, 0, false);
+        Properties props = new Properties();
+        props.put(container.getContainerID(), container);
+
+        HashMap<String, DeploymentInfo> ejbs = build(props, jar);
+        deploymentInfo = ejbs.get("widget");
 
         ProxyManager.registerFactory("ivm_server", new Jdk13ProxyFactory());
         ProxyManager.setDefaultFactory("ivm_server");
@@ -146,10 +148,10 @@
         return sb.toString();
     }
 
-    private HashMap<String, DeploymentInfo> build(EjbModule jar) throws OpenEJBException {
+    private HashMap<String, DeploymentInfo> build(Properties props, EjbModule jar) throws OpenEJBException {
         EjbJarInfoBuilder.deploymentIds.clear();
         EjbJarInfoBuilder infoBuilder = new EjbJarInfoBuilder();
-        EjbJarBuilder builder = new EjbJarBuilder(this.getClass().getClassLoader());
+        EjbJarBuilder builder = new EjbJarBuilder(props, this.getClass().getClassLoader());
         EjbJarInfo jarInfo = infoBuilder.buildInfo(jar);
         HashMap<String, DeploymentInfo> ejbs = builder.build(jarInfo,null);
         return ejbs;

Modified: incubator/openejb/trunk/openejb3/container/openejb-loader/src/main/java/org/apache/openejb/loader/SystemInstance.java
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/container/openejb-loader/src/main/java/org/apache/openejb/loader/SystemInstance.java?view=diff&rev=495075&r1=495074&r2=495075
==============================================================================
--- incubator/openejb/trunk/openejb3/container/openejb-loader/src/main/java/org/apache/openejb/loader/SystemInstance.java (original)
+++ incubator/openejb/trunk/openejb3/container/openejb-loader/src/main/java/org/apache/openejb/loader/SystemInstance.java Wed Jan 10 17:16:34 2007
@@ -141,7 +141,6 @@
      * @param type the class type of the component required
      */
     public <T> T setComponent(Class<T> type, T value) {
-//    public Object setComponent(Class type, Object value) {
         return (T)components.put(type, value);
     }
 
@@ -175,4 +174,5 @@
     public boolean hasProperty(String propName) {
         return this.internalProperties.get(propName) != null;
     }
+
 }