You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by da...@apache.org on 2007/03/24 19:03:26 UTC

svn commit: r522073 - in /incubator/openejb/trunk/openejb3/container: openejb-core/src/main/java/org/apache/openejb/config/ openejb-core/src/test/java/org/apache/openejb/core/stateful/ openejb-core/src/test/java/org/apache/openejb/core/stateless/ opene...

Author: dain
Date: Sat Mar 24 11:03:25 2007
New Revision: 522073

URL: http://svn.apache.org/viewvc?view=rev&rev=522073
Log:
Move JNDI enc info building to app level so cross module link refs work

Modified:
    incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/ConfigurationFactory.java
    incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/EjbJarInfoBuilder.java
    incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/JndiEncInfoBuilder.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/ExtendedInjectionTest.java
    incubator/openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/core/stateless/StatelessContainerTest.java
    incubator/openejb/trunk/openejb3/container/openejb-javaagent/pom.xml

Modified: incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/ConfigurationFactory.java
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/ConfigurationFactory.java?view=diff&rev=522073&r1=522072&r2=522073
==============================================================================
--- incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/ConfigurationFactory.java (original)
+++ incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/ConfigurationFactory.java Sat Mar 24 11:03:25 2007
@@ -16,20 +16,6 @@
  */
 package org.apache.openejb.config;
 
-import java.io.ByteArrayInputStream;
-import java.io.File;
-import java.io.IOException;
-import java.net.URL;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-import java.util.Properties;
-import javax.xml.bind.JAXBException;
-
 import org.apache.openejb.OpenEJBException;
 import org.apache.openejb.assembler.classic.AppInfo;
 import org.apache.openejb.assembler.classic.Assembler;
@@ -45,28 +31,29 @@
 import org.apache.openejb.assembler.classic.FacilitiesInfo;
 import org.apache.openejb.assembler.classic.JndiContextInfo;
 import org.apache.openejb.assembler.classic.MdbContainerInfo;
+import org.apache.openejb.assembler.classic.MessageDrivenBeanInfo;
 import org.apache.openejb.assembler.classic.OpenEjbConfiguration;
 import org.apache.openejb.assembler.classic.OpenEjbConfigurationFactory;
 import org.apache.openejb.assembler.classic.PersistenceUnitInfo;
 import org.apache.openejb.assembler.classic.ProxyFactoryInfo;
+import org.apache.openejb.assembler.classic.ResourceInfo;
 import org.apache.openejb.assembler.classic.SecurityServiceInfo;
 import org.apache.openejb.assembler.classic.ServiceInfo;
 import org.apache.openejb.assembler.classic.StatefulSessionContainerInfo;
 import org.apache.openejb.assembler.classic.StatelessSessionContainerInfo;
 import org.apache.openejb.assembler.classic.TransactionServiceInfo;
-import org.apache.openejb.assembler.classic.ResourceInfo;
-import org.apache.openejb.assembler.classic.MessageDrivenBeanInfo;
 import org.apache.openejb.config.sys.ConnectionManager;
 import org.apache.openejb.config.sys.Connector;
 import org.apache.openejb.config.sys.Container;
 import org.apache.openejb.config.sys.JndiProvider;
 import org.apache.openejb.config.sys.Openejb;
 import org.apache.openejb.config.sys.ProxyFactory;
+import org.apache.openejb.config.sys.Resource;
 import org.apache.openejb.config.sys.SecurityService;
 import org.apache.openejb.config.sys.ServiceProvider;
 import org.apache.openejb.config.sys.TransactionManager;
-import org.apache.openejb.config.sys.Resource;
-import org.apache.openejb.jee.*;
+import org.apache.openejb.jee.ApplicationClient;
+import org.apache.openejb.jee.EjbJar;
 import org.apache.openejb.jee.jpa.EntityMappings;
 import org.apache.openejb.jee.jpa.JpaJaxbUtil;
 import org.apache.openejb.jee.jpa.unit.Persistence;
@@ -77,6 +64,20 @@
 import org.apache.openejb.util.Logger;
 import org.apache.openejb.util.Messages;
 
+import javax.xml.bind.JAXBException;
+import java.io.ByteArrayInputStream;
+import java.io.File;
+import java.io.IOException;
+import java.net.URL;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import java.util.Properties;
+
 public class ConfigurationFactory implements OpenEjbConfigurationFactory {
 
     private static final Logger logger = Logger.getInstance("OpenEJB.startup.config", "org.apache.openejb.util.resources");
@@ -340,6 +341,10 @@
                 throw e;
             }
         }
+
+        // process JNDI refs... all JDNI refs for the whole application
+        // must be processed at the same time
+        JndiEncInfoBuilder.initJndiReferences(appModule, appInfo);
 
         for (ClientModule clientModule : appModule.getClientModules()) {
 

Modified: incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/EjbJarInfoBuilder.java
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/EjbJarInfoBuilder.java?view=diff&rev=522073&r1=522072&r2=522073
==============================================================================
--- incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/EjbJarInfoBuilder.java (original)
+++ incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/EjbJarInfoBuilder.java Sat Mar 24 11:03:25 2007
@@ -18,23 +18,68 @@
 package org.apache.openejb.config;
 
 import org.apache.openejb.OpenEJBException;
-import org.apache.openejb.util.Messages;
-import org.apache.openejb.util.Logger;
-import org.apache.openejb.jee.oejb3.EjbDeployment;
-import org.apache.openejb.jee.oejb3.ResourceLink;
-import org.apache.openejb.assembler.classic.*;
-import org.apache.openejb.jee.*;
+import org.apache.openejb.assembler.classic.CallbackInfo;
+import org.apache.openejb.assembler.classic.CmrFieldInfo;
+import org.apache.openejb.assembler.classic.EjbJarInfo;
+import org.apache.openejb.assembler.classic.EnterpriseBeanInfo;
+import org.apache.openejb.assembler.classic.EntityBeanInfo;
+import org.apache.openejb.assembler.classic.InitMethodInfo;
+import org.apache.openejb.assembler.classic.InterceptorBindingInfo;
+import org.apache.openejb.assembler.classic.InterceptorInfo;
+import org.apache.openejb.assembler.classic.MessageDrivenBeanInfo;
+import org.apache.openejb.assembler.classic.MethodInfo;
+import org.apache.openejb.assembler.classic.MethodPermissionInfo;
+import org.apache.openejb.assembler.classic.MethodTransactionInfo;
+import org.apache.openejb.assembler.classic.NamedMethodInfo;
+import org.apache.openejb.assembler.classic.QueryInfo;
+import org.apache.openejb.assembler.classic.RemoveMethodInfo;
+import org.apache.openejb.assembler.classic.SecurityRoleInfo;
+import org.apache.openejb.assembler.classic.SecurityRoleReferenceInfo;
+import org.apache.openejb.assembler.classic.StatefulBeanInfo;
+import org.apache.openejb.assembler.classic.StatelessBeanInfo;
+import org.apache.openejb.jee.ActivationConfig;
+import org.apache.openejb.jee.ActivationConfigProperty;
+import org.apache.openejb.jee.CallbackMethod;
+import org.apache.openejb.jee.CmpField;
+import org.apache.openejb.jee.CmpVersion;
+import org.apache.openejb.jee.ContainerTransaction;
+import org.apache.openejb.jee.EjbRelation;
+import org.apache.openejb.jee.EjbRelationshipRole;
+import org.apache.openejb.jee.EnterpriseBean;
 import org.apache.openejb.jee.EntityBean;
+import org.apache.openejb.jee.Icon;
+import org.apache.openejb.jee.InitMethod;
+import org.apache.openejb.jee.Interceptor;
+import org.apache.openejb.jee.InterceptorBinding;
+import org.apache.openejb.jee.JndiConsumer;
+import org.apache.openejb.jee.MessageDrivenBean;
+import org.apache.openejb.jee.Method;
+import org.apache.openejb.jee.MethodParams;
+import org.apache.openejb.jee.MethodPermission;
+import org.apache.openejb.jee.Multiplicity;
+import org.apache.openejb.jee.NamedMethod;
+import org.apache.openejb.jee.PersistenceType;
+import org.apache.openejb.jee.Query;
+import org.apache.openejb.jee.QueryMethod;
+import org.apache.openejb.jee.RemoteBean;
+import org.apache.openejb.jee.RemoveMethod;
+import org.apache.openejb.jee.SecurityRole;
+import org.apache.openejb.jee.SecurityRoleRef;
 import org.apache.openejb.jee.SessionBean;
+import org.apache.openejb.jee.SessionType;
+import org.apache.openejb.jee.TransactionType;
+import org.apache.openejb.jee.oejb3.EjbDeployment;
 import org.apache.openejb.loader.SystemInstance;
+import org.apache.openejb.util.Logger;
+import org.apache.openejb.util.Messages;
 
+import java.io.File;
 import java.util.ArrayList;
+import java.util.Collections;
 import java.util.HashMap;
+import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
-import java.util.Collections;
-import java.util.Iterator;
-import java.io.File;
 
 /**
  * @version $Revision$ $Date$
@@ -107,8 +152,6 @@
 
         }
 
-        initJndiReferences(ejbds, infos, items);
-
         if (jar.getEjbJar().getAssemblyDescriptor() != null) {
             initInterceptors(jar, ejbJar, infos);
             initSecurityRoles(jar, ejbJar);
@@ -221,32 +264,6 @@
 
             info.method = toInfo(binding.getMethod());
             ejbJar.interceptorBindings.add(info);
-        }
-    }
-
-    private void initJndiReferences(Map<String, EjbDeployment> ejbds, Map<String, EnterpriseBeanInfo> beanInfos, Map<String, EnterpriseBean> beanData) throws OpenEJBException {
-
-        JndiEncInfoBuilder jndiEncInfoBuilder = new JndiEncInfoBuilder(beanInfos.values(), null);
-
-        for (EnterpriseBeanInfo beanInfo : beanInfos.values()) {
-
-            String ejbName = beanInfo.ejbName;
-            JndiConsumer jndiConsumer = beanData.get(ejbName);
-
-            EjbDeployment ejbDeployment = ejbds.get(ejbName);
-
-            // Link all the resource refs
-            List<ResourceRef> resourceRefs = jndiConsumer.getResourceRef();
-            for (ResourceRef res : resourceRefs) {
-                ResourceLink resourceLink = ejbDeployment.getResourceLink(res.getResRefName());
-                if (resourceLink != null && resourceLink.getResId() != null /* don't overwrite with null */) {
-                    res.setResLink(resourceLink.getResId());
-                }
-            }
-
-            JndiEncInfo jndi = jndiEncInfoBuilder.build(jndiConsumer, ejbName);
-
-            beanInfo.jndiEnc = jndi;
         }
     }
 

Modified: incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/JndiEncInfoBuilder.java
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/JndiEncInfoBuilder.java?view=diff&rev=522073&r1=522072&r2=522073
==============================================================================
--- incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/JndiEncInfoBuilder.java (original)
+++ incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/JndiEncInfoBuilder.java Sat Mar 24 11:03:25 2007
@@ -31,6 +31,7 @@
 import org.apache.openejb.assembler.classic.ResourceReferenceInfo;
 import org.apache.openejb.assembler.classic.MessageDestinationReferenceInfo;
 import org.apache.openejb.assembler.classic.ServiceReferenceInfo;
+import org.apache.openejb.assembler.classic.AppInfo;
 import org.apache.openejb.jee.EjbLocalRef;
 import org.apache.openejb.jee.EjbRef;
 import org.apache.openejb.jee.EnvEntry;
@@ -46,6 +47,9 @@
 import org.apache.openejb.jee.ResourceRef;
 import org.apache.openejb.jee.ServiceRef;
 import org.apache.openejb.jee.MessageDestinationRef;
+import org.apache.openejb.jee.EnterpriseBean;
+import org.apache.openejb.jee.oejb3.EjbDeployment;
+import org.apache.openejb.jee.oejb3.ResourceLink;
 import org.apache.openejb.util.Logger;
 import org.apache.openejb.util.Messages;
 
@@ -55,11 +59,85 @@
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
+import java.util.Arrays;
+import java.util.TreeMap;
 
 /**
  * @version $Rev$ $Date$
  */
 public class JndiEncInfoBuilder {
+    public static void initJndiReferences(AppModule appModule, AppInfo appInfo) throws OpenEJBException {
+        // index the jaxb objects
+        Map<String, EnterpriseBean> beanData = new TreeMap<String, EnterpriseBean>();
+        Map<String, EjbDeployment> ejbDeployments = new TreeMap<String, EjbDeployment>();
+        for (EjbModule ejbModule : appModule.getEjbModules()) {
+            for (EnterpriseBean enterpriseBean : ejbModule.getEjbJar().getEnterpriseBeans()) {
+                beanData.put(enterpriseBean.getEjbName(), enterpriseBean);
+            }
+            ejbDeployments.putAll(ejbModule.getOpenejbJar().getDeploymentsByEjbName());
+        }
+
+        // Create the JNDI info builder
+        JndiEncInfoBuilder jndiEncInfoBuilder = new JndiEncInfoBuilder(appInfo.ejbJars);
+
+        // Build the JNDI tree for each ejb
+        for (EjbJarInfo ejbJar : appInfo.ejbJars) {
+            for (EnterpriseBeanInfo beanInfo : ejbJar.enterpriseBeans) {
+                String ejbName = beanInfo.ejbName;
+
+                // Get the JAXB tree for the info object
+                EnterpriseBean enterpriseBean = beanData.get(ejbName);
+
+                // Get the OpenEJB deployment
+                EjbDeployment ejbDeployment = ejbDeployments.get(ejbName);
+
+                // build the tree
+                initJndiReferences(enterpriseBean, ejbDeployment, beanInfo, jndiEncInfoBuilder);
+            }
+        }
+    }
+
+    public static void initJndiReferences(EjbModule ejbModule, EjbJarInfo ejbJarInfo) throws OpenEJBException {
+        // index the jaxb objects
+        Map<String, EnterpriseBean> beanData = new TreeMap<String, EnterpriseBean>();
+        for (EnterpriseBean enterpriseBean : ejbModule.getEjbJar().getEnterpriseBeans()) {
+            beanData.put(enterpriseBean.getEjbName(), enterpriseBean);
+        }
+
+        Map<String, EjbDeployment> ejbDeployments = ejbModule.getOpenejbJar().getDeploymentsByEjbName();
+
+        // Create the JNDI info builder
+        JndiEncInfoBuilder jndiEncInfoBuilder = new JndiEncInfoBuilder(ejbJarInfo);
+
+        // Build the JNDI tree for each ejb
+        for (EnterpriseBeanInfo beanInfo : ejbJarInfo.enterpriseBeans) {
+            String ejbName = beanInfo.ejbName;
+
+            // Get the JAXB tree for the info object
+            EnterpriseBean enterpriseBean = beanData.get(ejbName);
+
+            // Get the OpenEJB deployment
+            EjbDeployment ejbDeployment = ejbDeployments.get(ejbName);
+
+            // build the tree
+            initJndiReferences(enterpriseBean, ejbDeployment, beanInfo, jndiEncInfoBuilder);
+        }
+    }
+
+    private static void initJndiReferences(EnterpriseBean enterpriseBean, EjbDeployment ejbDeployment, EnterpriseBeanInfo beanInfo, JndiEncInfoBuilder jndiEncInfoBuilder) throws OpenEJBException {
+        // Link all the resource refs
+        List<ResourceRef> resourceRefs = enterpriseBean.getResourceRef();
+        for (ResourceRef res : resourceRefs) {
+            ResourceLink resourceLink = ejbDeployment.getResourceLink(res.getResRefName());
+            if (resourceLink != null && resourceLink.getResId() != null /* don't overwrite with null */) {
+                res.setResLink(resourceLink.getResId());
+            }
+        }
+
+        // Build the JNDI info tree for the EJB
+        JndiEncInfo jndi = jndiEncInfoBuilder.build(enterpriseBean, beanInfo.ejbName);
+        beanInfo.jndiEnc = jndi;
+    }
 
     public static final Logger logger = Logger.getInstance("OpenEJB.startup", "org.apache.openejb.util.resources");
     protected static final Messages messages = new Messages("org.apache.openejb.util.resources");
@@ -67,10 +145,8 @@
     private final Map<String, EnterpriseBeanInfo> byEjbName = new HashMap<String, EnterpriseBeanInfo>();
     private final Map<String, EnterpriseBeanInfo> byInterfaces = new HashMap<String, EnterpriseBeanInfo>();
 
-    public JndiEncInfoBuilder(Collection<EnterpriseBeanInfo> ejbBeanInfos, String withoutThisConstructorsClash) {
-        for (EnterpriseBeanInfo bean : ejbBeanInfos) {
-            index(bean);
-        }
+    public JndiEncInfoBuilder(EjbJarInfo... ejbJarInfos) {
+        this(Arrays.asList(ejbJarInfos));
     }
 
     public JndiEncInfoBuilder(Collection<EjbJarInfo> ejbJarInfos) {

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=522073&r1=522072&r2=522073
==============================================================================
--- 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 Sat Mar 24 11:03:25 2007
@@ -24,6 +24,7 @@
 import org.apache.openejb.jee.oejb3.EjbDeployment;
 import org.apache.openejb.config.EjbModule;
 import org.apache.openejb.config.EjbJarInfoBuilder;
+import org.apache.openejb.config.JndiEncInfoBuilder;
 import org.apache.openejb.core.CoreDeploymentInfo;
 import org.apache.openejb.ri.sp.PseudoTransactionService;
 import org.apache.openejb.ri.sp.PseudoSecurityService;
@@ -135,8 +136,9 @@
     }
 
     protected void setUp() throws Exception {
-        // Setup the descriptor information
+        super.setUp();
 
+        // Setup the descriptor information
         StatefulBean bean = new StatefulBean("widget", WidgetBean.class.getName());
         bean.setBusinessLocal(Widget.class.getName());
         bean.setBusinessRemote(RemoteWidget.class.getName());
@@ -161,9 +163,8 @@
         PseudoSecurityService securityService = new PseudoSecurityService();
         SystemInstance.get().setComponent(SecurityService.class, securityService);
 
-
         // Create the Container
-        container = new StatefulContainer("Stateful Container", transactionManager, securityService,null, 10, 0, 1);
+        container = new StatefulContainer("Stateful Container", transactionManager, securityService, null, 10, 0, 1);
         Properties props = new Properties();
         props.put(container.getContainerID(), container);
 
@@ -188,10 +189,14 @@
         return sb.toString();
     }
 
-    private HashMap<String, DeploymentInfo> build(Properties props, EjbModule jar) throws OpenEJBException {
+    private HashMap<String, DeploymentInfo> build(Properties props, EjbModule ejbModule) throws OpenEJBException {
         EjbJarInfoBuilder infoBuilder = new EjbJarInfoBuilder();
+        EjbJarInfo jarInfo = infoBuilder.buildInfo(ejbModule);
+
+        // Process JNDI refs
+        JndiEncInfoBuilder.initJndiReferences(ejbModule, jarInfo);
+
         EjbJarBuilder builder = new EjbJarBuilder(props, this.getClass().getClassLoader());
-        EjbJarInfo jarInfo = infoBuilder.buildInfo(jar);
         HashMap<String, DeploymentInfo> ejbs = builder.build(jarInfo,null);
         return ejbs;
     }
@@ -210,11 +215,12 @@
     }
 
     public static class WidgetBean implements Widget, RemoteWidget, Serializable {
+        private static final long serialVersionUID = -8499745487520955081L;
 
         private int activates = 0;
         private int passivates = 0;
 
-        public static Stack<Lifecycle> lifecycle = new Stack();
+        public static Stack<Lifecycle> lifecycle = new Stack<Lifecycle>();
 
         public WidgetBean() {
             lifecycle.push(Lifecycle.CONSTRUCTOR);
@@ -229,11 +235,11 @@
         }
 
         public void activate(){
-            lifecycle.push((Lifecycle) Enum.valueOf(Lifecycle.class, "POST_ACTIVATE" + (++activates)));
+            lifecycle.push(Enum.valueOf(Lifecycle.class, "POST_ACTIVATE" + (++activates)));
         }
 
         public void passivate(){
-            lifecycle.push((Lifecycle) Enum.valueOf(Lifecycle.class, "PRE_PASSIVATE" + (++passivates)));
+            lifecycle.push(Enum.valueOf(Lifecycle.class, "PRE_PASSIVATE" + (++passivates)));
         }
 
         public void init() {

Modified: incubator/openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/core/stateless/ExtendedInjectionTest.java
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/core/stateless/ExtendedInjectionTest.java?view=diff&rev=522073&r1=522072&r2=522073
==============================================================================
--- incubator/openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/core/stateless/ExtendedInjectionTest.java (original)
+++ incubator/openejb/trunk/openejb3/container/openejb-core/src/test/java/org/apache/openejb/core/stateless/ExtendedInjectionTest.java Sat Mar 24 11:03:25 2007
@@ -29,6 +29,7 @@
 import org.apache.openejb.ri.sp.PseudoSecurityService;
 import org.apache.openejb.config.EjbModule;
 import org.apache.openejb.config.EjbJarInfoBuilder;
+import org.apache.openejb.config.JndiEncInfoBuilder;
 import org.apache.openejb.jee.StatelessBean;
 import org.apache.openejb.jee.EjbJar;
 import org.apache.openejb.jee.EnvEntry;
@@ -37,10 +38,6 @@
 import org.apache.openejb.jee.oejb3.EjbDeployment;
 import org.apache.openejb.core.CoreDeploymentInfo;
 
-import javax.ejb.SessionContext;
-import java.util.Stack;
-import java.util.List;
-import java.util.Arrays;
 import java.util.Properties;
 import java.util.HashMap;
 import java.net.URL;
@@ -49,7 +46,6 @@
  * @version $Revision: 500061 $ $Date: 2007-01-25 15:47:53 -0800 (Thu, 25 Jan 2007) $
  */
 public class ExtendedInjectionTest extends TestCase {
-    private StatelessContainer container;
     private DeploymentInfo deploymentInfo;
 
     public void testBusinessLocalInterface() throws Exception {
@@ -93,6 +89,7 @@
     }
 
     protected void setUp() throws Exception {
+        super.setUp();
         StatelessBean bean = new StatelessBean("widget", WidgetBean.class.getName());
         bean.setBusinessLocal(Widget.class.getName());
         bean.setBusinessRemote(RemoteWidget.class.getName());
@@ -112,7 +109,7 @@
         PseudoTransactionService transactionManager = new PseudoTransactionService();
         PseudoSecurityService securityService = new PseudoSecurityService();
         SystemInstance.get().setComponent(SecurityService.class, securityService);
-        container = new StatelessContainer("Stateless Container", transactionManager, securityService, 10, 0, false);
+        StatelessContainer container = new StatelessContainer("Stateless Container", transactionManager, securityService, 10, 0, false);
         Properties props = new Properties();
         props.put(container.getContainerID(), container);
 
@@ -124,18 +121,14 @@
 
     }
 
-    private static String join(String delimeter, List items) {
-        StringBuffer sb = new StringBuffer();
-        for (Object item : items) {
-            sb.append(item.toString()).append(delimeter);
-        }
-        return sb.toString();
-    }
-
-    private HashMap<String, DeploymentInfo> build(Properties props, EjbModule jar) throws OpenEJBException {
+    private HashMap<String, DeploymentInfo> build(Properties props, EjbModule ejbModule) throws OpenEJBException {
         EjbJarInfoBuilder infoBuilder = new EjbJarInfoBuilder();
+        EjbJarInfo jarInfo = infoBuilder.buildInfo(ejbModule);
+
+        // Process JNDI refs
+        JndiEncInfoBuilder.initJndiReferences(ejbModule, jarInfo);
+
         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=522073&r1=522072&r2=522073
==============================================================================
--- 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 Sat Mar 24 11:03:25 2007
@@ -27,6 +27,7 @@
 import org.apache.openejb.core.CoreDeploymentInfo;
 import org.apache.openejb.config.EjbModule;
 import org.apache.openejb.config.EjbJarInfoBuilder;
+import org.apache.openejb.config.JndiEncInfoBuilder;
 import org.apache.openejb.jee.oejb3.EjbDeployment;
 import org.apache.openejb.jee.oejb3.OpenejbJar;
 import org.apache.openejb.assembler.classic.EjbJarBuilder;
@@ -110,6 +111,7 @@
     }
 
     protected void setUp() throws Exception {
+        super.setUp();
         StatelessBean bean = new StatelessBean("widget", WidgetBean.class.getName());
         bean.setBusinessLocal(Widget.class.getName());
         bean.setBusinessRemote(RemoteWidget.class.getName());
@@ -148,10 +150,14 @@
         return sb.toString();
     }
 
-    private HashMap<String, DeploymentInfo> build(Properties props, EjbModule jar) throws OpenEJBException {
+    private HashMap<String, DeploymentInfo> build(Properties props, EjbModule ejbModule) throws OpenEJBException {
         EjbJarInfoBuilder infoBuilder = new EjbJarInfoBuilder();
+        EjbJarInfo jarInfo = infoBuilder.buildInfo(ejbModule);
+
+        // Process JNDI refs
+        JndiEncInfoBuilder.initJndiReferences(ejbModule, jarInfo);
+
         EjbJarBuilder builder = new EjbJarBuilder(props, this.getClass().getClassLoader());
-        EjbJarInfo jarInfo = infoBuilder.buildInfo(jar);
         HashMap<String, DeploymentInfo> ejbs = builder.build(jarInfo,null);
         return ejbs;
     }
@@ -170,7 +176,7 @@
 
     public static class WidgetBean implements Widget, RemoteWidget {
 
-        private static Stack<Lifecycle> lifecycle = new Stack();
+        private static Stack<Lifecycle> lifecycle = new Stack<Lifecycle>();
 
         public WidgetBean() {
             lifecycle.push(Lifecycle.CONSTRUCTOR);

Modified: incubator/openejb/trunk/openejb3/container/openejb-javaagent/pom.xml
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/container/openejb-javaagent/pom.xml?view=diff&rev=522073&r1=522072&r2=522073
==============================================================================
--- incubator/openejb/trunk/openejb3/container/openejb-javaagent/pom.xml (original)
+++ incubator/openejb/trunk/openejb3/container/openejb-javaagent/pom.xml Sat Mar 24 11:03:25 2007
@@ -49,4 +49,12 @@
       </plugin>
     </plugins>
   </build>
+  <dependencies>
+    <dependency>
+      <groupId>junit</groupId>
+      <artifactId>junit</artifactId>
+      <version>3.8.1</version>
+      <scope>test</scope>
+    </dependency>
+  </dependencies>
 </project>