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 2006/11/10 00:12:44 UTC

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

Author: dblevins
Date: Thu Nov  9 15:12:42 2006
New Revision: 473133

URL: http://svn.apache.org/viewvc?view=rev&rev=473133
Log:
More refactorings on deployment for pulling out jndi building.  Fixed last remaining jta 1.0.1b references (i hope)

Added:
    incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/alt/config/JndiEncInfoBuilder.java
Modified:
    incubator/openejb/trunk/openejb3/assembly/openejb-standalone/pom.xml
    incubator/openejb/trunk/openejb3/assembly/openejb-standalone/try.sh
    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/DeploymentLoader.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/EjbReferenceInfo.java
    incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/JndiEncBuilder.java
    incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/util/Logger.java
    incubator/openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/ApplicationClient.java
    incubator/openejb/trunk/openejb3/pom.xml

Modified: incubator/openejb/trunk/openejb3/assembly/openejb-standalone/pom.xml
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/assembly/openejb-standalone/pom.xml?view=diff&rev=473133&r1=473132&r2=473133
==============================================================================
--- incubator/openejb/trunk/openejb3/assembly/openejb-standalone/pom.xml (original)
+++ incubator/openejb/trunk/openejb3/assembly/openejb-standalone/pom.xml Thu Nov  9 15:12:42 2006
@@ -92,6 +92,42 @@
       <groupId>org.apache.openejb</groupId>
       <artifactId>openejb-core</artifactId>
       <version>${pom.version}</version>
+      <exclusions>
+        <exclusion>
+          <groupId>geronimo</groupId>
+          <artifactId>geronimo-kernel</artifactId>
+        </exclusion>
+        <exclusion>
+          <groupId>geronimo</groupId>
+          <artifactId>geronimo-transaction</artifactId>
+        </exclusion>
+        <exclusion>
+          <groupId>geronimo</groupId>
+          <artifactId>geronimo-webservices</artifactId>
+        </exclusion>
+        <exclusion>
+          <groupId>geronimo</groupId>
+          <artifactId>geronimo-naming</artifactId>
+        </exclusion>
+        <exclusion>
+          <groupId>geronimo</groupId>
+          <artifactId>geronimo-timer</artifactId>
+        </exclusion>
+        <exclusion>
+          <groupId>geronimo</groupId>
+          <artifactId>geronimo-security</artifactId>
+        </exclusion>
+      </exclusions>
+    </dependency>
+    <dependency>
+      <groupId>org.apache.geronimo.specs</groupId>
+      <artifactId>geronimo-j2ee-connector_1.5_spec</artifactId>
+      <exclusions>
+        <exclusion>
+          <groupId>org.apache.geronimo.specs</groupId>
+          <artifactId>geronimo-jta_1.0.1B_spec</artifactId>
+        </exclusion>
+      </exclusions>
     </dependency>
     <dependency>
       <groupId>org.apache.openejb</groupId>

Modified: incubator/openejb/trunk/openejb3/assembly/openejb-standalone/try.sh
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/assembly/openejb-standalone/try.sh?view=diff&rev=473133&r1=473132&r2=473133
==============================================================================
--- incubator/openejb/trunk/openejb3/assembly/openejb-standalone/try.sh (original)
+++ incubator/openejb/trunk/openejb3/assembly/openejb-standalone/try.sh Thu Nov  9 15:12:42 2006
@@ -1,7 +1,11 @@
 #!/bin/bash
+
+JAR=$PWD/../../itests/openejb-itests-app/target/openejb-itests-app-3.0-incubating-SNAPSHOT.ear
+
 cd target/
 
-tar xzvf openejb-3.0-SNAPSHOT-bin.tar.gz
-cd openejb-3.0-SNAPSHOT
+tar xzvf openejb-3.0-incubating-SNAPSHOT-bin.tar.gz
+cd openejb-3.0-incubating-SNAPSHOT
+cp $JAR beans/
 ./bin/openejb start
 

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=473133&r1=473132&r2=473133
==============================================================================
--- 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 Thu Nov  9 15:12:42 2006
@@ -17,6 +17,7 @@
 package org.apache.openejb.alt.config;
 
 import org.apache.openejb.OpenEJBException;
+import org.apache.openejb.jee.ApplicationClient;
 import org.apache.openejb.loader.SystemInstance;
 import org.apache.openejb.alt.config.ejb.EjbDeployment;
 import org.apache.openejb.alt.config.sys.ConnectionManager;
@@ -51,6 +52,8 @@
 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.JndiEncInfo;
+import org.apache.openejb.assembler.classic.ClientInfo;
 import org.apache.openejb.util.Logger;
 import org.apache.openejb.util.Messages;
 
@@ -61,6 +64,7 @@
 import java.util.Map;
 import java.util.Properties;
 import java.util.Vector;
+import java.io.File;
 
 public class ConfigurationFactory implements OpenEjbConfigurationFactory, ProviderDefaults {
 
@@ -162,8 +166,9 @@
         sys.containerSystem.statefulContainers = sfsbContainers;
         sys.containerSystem.statelessContainers = slsbContainers;
 
-        ArrayList ejbs = new ArrayList();
-        ArrayList ejbJars = new ArrayList();
+        ArrayList<EnterpriseBeanInfo> ejbs = new ArrayList();
+        ArrayList<EjbJarInfo> ejbJars = new ArrayList();
+
         for (DeploymentModule jar : jars) {
             if (!(jar instanceof EjbModule)) {
                 continue;
@@ -182,8 +187,39 @@
                 ConfigUtils.logger.i18n.warning("conf.0004", ejbModule.getJarURI(), e.getMessage());
             }
         }
-        sys.containerSystem.enterpriseBeans = (EnterpriseBeanInfo[]) ejbs.toArray(new EnterpriseBeanInfo[]{});
-        sys.containerSystem.ejbJars = (EjbJarInfo[]) ejbJars.toArray(new EjbJarInfo[]{});
+
+        sys.containerSystem.enterpriseBeans = ejbs.toArray(new EnterpriseBeanInfo[]{});
+        sys.containerSystem.ejbJars = ejbJars.toArray(new EjbJarInfo[]{});
+
+        List<ClientInfo> clientInfos = new ArrayList();
+        for (DeploymentModule module : jars) {
+            if (!(module instanceof ClientModule)) {
+                continue;
+            }
+            ClientModule clientModule = (ClientModule) module;
+
+            Map<String, EnterpriseBeanInfo> infos = new HashMap();
+            for (EjbJarInfo ejbJarInfo : ejbJars) {
+                for (EnterpriseBeanInfo beanInfo : ejbJarInfo.enterpriseBeans) {
+                    infos.put(beanInfo.ejbName, beanInfo);
+                }
+            }
+
+            ApplicationClient applicationClient = clientModule.getApplicationClient();
+            ClientInfo clientInfo = new ClientInfo();
+            clientInfo.description = applicationClient.getDescription();
+            clientInfo.displayName = applicationClient.getDisplayName();
+            clientInfo.codebase = clientModule.getJarLocation();
+            clientInfo.mainClass = applicationClient.getMainClass();
+            clientInfo.moduleId = getClientModuleId(clientModule);
+
+            JndiEncInfoBuilder jndiEncInfoBuilder = new JndiEncInfoBuilder(infos);
+            JndiEncInfo jndiEncInfo = jndiEncInfoBuilder.build(applicationClient, clientModule.getJarLocation());
+            clientInfo.jndiEnc = jndiEncInfo;
+            clientInfos.add(clientInfo);
+        }
+
+        sys.containerSystem.clients = clientInfos.toArray(new ClientInfo[]{});
 
         SecurityRoleInfo defaultRole = new SecurityRoleInfo();
         defaultRole.description = "The role applied to recurity references that are not linked.";
@@ -202,6 +238,16 @@
 
         SystemInstance.get().setComponent(OpenEjbConfiguration.class, sys);
         return sys;
+    }
+
+    private static String getClientModuleId(ClientModule clientModule) {
+        String jarLocation = clientModule.getJarLocation();
+        File file = new File(jarLocation);
+        String name = file.getName();
+        if (name.endsWith(".jar") || name.endsWith(".zip")){
+            name = name.replaceFirst("....$","");
+        }
+        return name;
     }
 
 

Modified: incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/alt/config/DeploymentLoader.java
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/alt/config/DeploymentLoader.java?view=diff&rev=473133&r1=473132&r2=473133
==============================================================================
--- incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/alt/config/DeploymentLoader.java (original)
+++ incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/alt/config/DeploymentLoader.java Thu Nov  9 15:12:42 2006
@@ -204,7 +204,6 @@
         }
 
         String[] jarsToLoad = (String[]) jarList.toArray(new String[]{});
-        // resolve jar locations //////////////////////////////////////  END  ///////
 
         /*[1]  Put all EjbJar & OpenejbJar objects in a vector ***************/
         for (int i = 0; i < jarsToLoad.length; i++) {
@@ -223,6 +222,10 @@
 
                 URL appXml = getResource(baseUrl, classLoader, "META-INF/application.xml");
 
+                if (appXml == null){
+                    logger.debug("No \"META-INF/application.xml\" found.");
+                }
+
                 if (appXml != null) {
 
                     jarFile = unpack(appXml, jarFile);
@@ -433,20 +436,20 @@
 
     private ClassLoader getClassLoader(File jarFile) throws OpenEJBException {
         ClassLoader classLoader;
-        if (jarFile.isDirectory()) {
+//        if (jarFile.isDirectory()) {
             try {
                 URL[] urls = new URL[]{jarFile.toURL()};
                 classLoader = new URLClassLoader(urls, OpenEJB.class.getClassLoader());
                 //                        classLoader = new URLClassLoader(urls, this.getClass().getClassLoader());
-
+                return classLoader;
             } catch (MalformedURLException e) {
                 throw new OpenEJBException(ConfigurationFactory.messages.format("cl0001", jarFile.getAbsolutePath(), e.getMessage()));
             }
-        } else {
-            TempCodebase tempCodebase = new TempCodebase(jarFile.getAbsolutePath());
-            classLoader = tempCodebase.getClassLoader();
-        }
-        return classLoader;
+//        } else {
+//            TempCodebase tempCodebase = new TempCodebase(jarFile.getAbsolutePath());
+//            classLoader = tempCodebase.getClassLoader();
+//        }
+//        return classLoader;
     }
 
     private URL getResource(URL baseUrl, ClassLoader classLoader, String name) {

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=473133&r1=473132&r2=473133
==============================================================================
--- 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 Thu Nov  9 15:12:42 2006
@@ -20,18 +20,13 @@
 import org.apache.openejb.OpenEJBException;
 import org.apache.openejb.alt.config.ejb.EjbDeployment;
 import org.apache.openejb.assembler.classic.EjbJarInfo;
-import org.apache.openejb.assembler.classic.EjbLocalReferenceInfo;
-import org.apache.openejb.assembler.classic.EjbReferenceInfo;
-import org.apache.openejb.assembler.classic.EjbReferenceLocationInfo;
 import org.apache.openejb.assembler.classic.EnterpriseBeanInfo;
 import org.apache.openejb.assembler.classic.EntityBeanInfo;
-import org.apache.openejb.assembler.classic.EnvEntryInfo;
 import org.apache.openejb.assembler.classic.JndiEncInfo;
 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.QueryInfo;
-import org.apache.openejb.assembler.classic.ResourceReferenceInfo;
 import org.apache.openejb.assembler.classic.SecurityRoleInfo;
 import org.apache.openejb.assembler.classic.SecurityRoleReferenceInfo;
 import org.apache.openejb.assembler.classic.StatefulBeanInfo;
@@ -39,11 +34,8 @@
 import org.apache.openejb.assembler.classic.LifecycleCallbackInfo;
 import org.apache.openejb.jee.CmpField;
 import org.apache.openejb.jee.ContainerTransaction;
-import org.apache.openejb.jee.EjbLocalRef;
-import org.apache.openejb.jee.EjbRef;
 import org.apache.openejb.jee.EnterpriseBean;
 import org.apache.openejb.jee.EntityBean;
-import org.apache.openejb.jee.EnvEntry;
 import org.apache.openejb.jee.Icon;
 import org.apache.openejb.jee.Method;
 import org.apache.openejb.jee.MethodParams;
@@ -151,11 +143,14 @@
 
     private void initJndiReferences(Map<String, EjbDeployment> ejbds, Map<String, EnterpriseBeanInfo> beanInfos, Map<String, EnterpriseBean> beanData) throws OpenEJBException {
 
+        JndiEncInfoBuilder jndiEncInfoBuilder = new JndiEncInfoBuilder(beanInfos);
+
         for (EnterpriseBeanInfo beanInfo : beanInfos.values()) {
 
-            JndiConsumer jndiConsumer = beanData.get(beanInfo.ejbName);
+            String ejbName = beanInfo.ejbName;
+            JndiConsumer jndiConsumer = beanData.get(ejbName);
 
-            EjbDeployment ejbDeployment = (EjbDeployment) ejbds.get(beanInfo.ejbName);
+            EjbDeployment ejbDeployment = (EjbDeployment) ejbds.get(ejbName);
 
             // Link all the resource refs
             List<ResourceRef> resourceRefs = jndiConsumer.getResourceRef();
@@ -166,102 +161,10 @@
                 }
             }
 
-            /* Build Environment entries *****************/
-            JndiEncInfo jndi = new JndiEncInfo();
-
-            jndi.envEntries = buildEnvEntryInfos(jndiConsumer);
-
-            /* Build Resource References *****************/
-            jndi.resourceRefs = buildResourceRefInfos(jndiConsumer);
-
-            jndi.ejbReferences = buildEjbRefInfos(jndiConsumer, beanInfos, beanInfo.ejbName);
-
-            jndi.ejbLocalReferences = buildEjbLocalRefInfos(jndiConsumer, beanInfos, beanInfo.ejbName);
+            JndiEncInfo jndi = jndiEncInfoBuilder.build(jndiConsumer, ejbName);
 
             beanInfo.jndiEnc = jndi;
         }
-
-    }
-
-    private EjbLocalReferenceInfo[] buildEjbLocalRefInfos(JndiConsumer item, Map<String, EnterpriseBeanInfo> beanInfos, String referringComponent) throws OpenEJBException {
-        List<EjbLocalReferenceInfo> infos = new ArrayList();
-        for (EjbLocalRef ejb : item.getEjbLocalRef()) {
-            EjbLocalReferenceInfo info = new EjbLocalReferenceInfo();
-
-            info.homeType = ejb.getLocalHome();
-            info.referenceName = ejb.getEjbRefName();
-            info.location = new EjbReferenceLocationInfo();
-
-            String ejbLink;
-            if (ejb.getEjbLink() == null) {
-                ejbLink = null;
-            } else {
-                ejbLink = ejb.getEjbLink();
-            }
-
-            EnterpriseBeanInfo otherBean = (EnterpriseBeanInfo) beanInfos.get(ejbLink);
-            if (otherBean == null) {
-                String msg = ConfigurationFactory.messages.format("config.noBeanFound", ejb.getEjbRefName(), referringComponent);
-
-                ConfigurationFactory.logger.fatal(msg);
-                throw new OpenEJBException(msg);
-            }
-            info.location.ejbDeploymentId = otherBean.ejbDeploymentId;
-            infos.add(info);
-        }
-        return infos.toArray(new EjbLocalReferenceInfo[]{});
-    }
-
-    private EjbReferenceInfo[] buildEjbRefInfos(JndiConsumer item, Map<String, EnterpriseBeanInfo> beanInfos, String referringComponent) throws OpenEJBException {
-        List<EjbReferenceInfo> infos = new ArrayList();
-        for (EjbRef ejb : item.getEjbRef()) {
-            EjbReferenceInfo info = new EjbReferenceInfo();
-
-            info.homeType = ejb.getHome();
-            info.referenceName = ejb.getEjbRefName();
-            info.location = new EjbReferenceLocationInfo();
-
-            String ejbLink = ejb.getEjbLink();
-
-            EnterpriseBeanInfo otherBean = (EnterpriseBeanInfo) beanInfos.get(ejbLink);
-            if (otherBean == null) {
-                String msg = ConfigurationFactory.messages.format("config.noBeanFound", ejb.getEjbRefName(), referringComponent);
-
-                ConfigurationFactory.logger.fatal(msg);
-                throw new OpenEJBException(msg);
-            }
-            info.location.ejbDeploymentId = otherBean.ejbDeploymentId;
-            infos.add(info);
-        }
-        return infos.toArray(new EjbReferenceInfo[]{});
-    }
-
-    private ResourceReferenceInfo[] buildResourceRefInfos(JndiConsumer item) {
-        List<ResourceReferenceInfo> infos = new ArrayList();
-        for (ResourceRef res : item.getResourceRef()) {
-            ResourceReferenceInfo info = new ResourceReferenceInfo();
-
-            info.referenceAuth = res.getResAuth().toString();
-            info.referenceName = res.getResRefName();
-            info.referenceType = res.getResType();
-            info.resourceID = res.getResLink();
-            infos.add(info);
-        }
-        return infos.toArray(new ResourceReferenceInfo[]{});
-    }
-
-    private EnvEntryInfo[] buildEnvEntryInfos(JndiConsumer item) {
-        List<EnvEntryInfo> infos = new ArrayList();
-        for (EnvEntry env : item.getEnvEntry()) {
-            EnvEntryInfo info = new EnvEntryInfo();
-
-            info.name = env.getEnvEntryName();
-            info.type = env.getEnvEntryType();
-            info.value = env.getEnvEntryValue();
-
-            infos.add(info);
-        }
-        return infos.toArray(new EnvEntryInfo[]{});
     }
 
     private void initMethodTransactions(EjbModule jar, Map ejbds) {

Added: incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/alt/config/JndiEncInfoBuilder.java
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/alt/config/JndiEncInfoBuilder.java?view=auto&rev=473133
==============================================================================
--- incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/alt/config/JndiEncInfoBuilder.java (added)
+++ incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/alt/config/JndiEncInfoBuilder.java Thu Nov  9 15:12:42 2006
@@ -0,0 +1,141 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *     http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ */
+package org.apache.openejb.alt.config;
+
+import org.apache.openejb.assembler.classic.JndiEncInfo;
+import org.apache.openejb.assembler.classic.EnterpriseBeanInfo;
+import org.apache.openejb.assembler.classic.EjbLocalReferenceInfo;
+import org.apache.openejb.assembler.classic.EjbReferenceLocationInfo;
+import org.apache.openejb.assembler.classic.EjbReferenceInfo;
+import org.apache.openejb.assembler.classic.ResourceReferenceInfo;
+import org.apache.openejb.assembler.classic.EnvEntryInfo;
+import org.apache.openejb.jee.JndiConsumer;
+import org.apache.openejb.jee.EjbLocalRef;
+import org.apache.openejb.jee.EjbRef;
+import org.apache.openejb.jee.ResourceRef;
+import org.apache.openejb.jee.EnvEntry;
+import org.apache.openejb.OpenEJBException;
+
+import java.util.Map;
+import java.util.List;
+import java.util.ArrayList;
+
+/**
+ * @version $Rev$ $Date$
+ */
+public class JndiEncInfoBuilder {
+
+    private final Map<String, EnterpriseBeanInfo> beanInfos;
+
+    public JndiEncInfoBuilder(Map<String, EnterpriseBeanInfo> beanInfos) {
+        this.beanInfos = beanInfos;
+    }
+
+    public JndiEncInfo build(JndiConsumer jndiConsumer, String ejbName) throws OpenEJBException {
+
+        JndiEncInfo jndi = new JndiEncInfo();
+
+        /* Build Environment entries *****************/
+        jndi.envEntries = buildEnvEntryInfos(jndiConsumer);
+
+        /* Build Resource References *****************/
+        jndi.resourceRefs = buildResourceRefInfos(jndiConsumer);
+
+        jndi.ejbReferences = buildEjbRefInfos(jndiConsumer, ejbName);
+
+        jndi.ejbLocalReferences = buildEjbLocalRefInfos(jndiConsumer, ejbName);
+
+        return jndi;
+    }
+
+    private EjbLocalReferenceInfo[] buildEjbLocalRefInfos(JndiConsumer item, String referringComponent) throws OpenEJBException {
+        List<EjbLocalReferenceInfo> infos = new ArrayList();
+        for (EjbLocalRef ejb : item.getEjbLocalRef()) {
+            EjbLocalReferenceInfo info = new EjbLocalReferenceInfo();
+
+            info.homeType = ejb.getLocalHome();
+            info.referenceName = ejb.getEjbRefName();
+            info.location = new EjbReferenceLocationInfo();
+
+            String ejbLink = ejb.getEjbLink();
+
+            EnterpriseBeanInfo otherBean = (EnterpriseBeanInfo) beanInfos.get(ejbLink);
+            if (otherBean == null) {
+                String msg = ConfigurationFactory.messages.format("config.noBeanFound", ejb.getEjbRefName(), referringComponent);
+
+                ConfigurationFactory.logger.fatal(msg);
+                throw new OpenEJBException(msg);
+            }
+            info.location.ejbDeploymentId = otherBean.ejbDeploymentId;
+            infos.add(info);
+        }
+        return infos.toArray(new EjbLocalReferenceInfo[]{});
+    }
+
+    private EjbReferenceInfo[] buildEjbRefInfos(JndiConsumer item, String referringComponent) throws OpenEJBException {
+        List<EjbReferenceInfo> infos = new ArrayList();
+        for (EjbRef ejb : item.getEjbRef()) {
+            EjbReferenceInfo info = new EjbReferenceInfo();
+
+            info.homeType = ejb.getHome();
+            info.remoteType = ejb.getRemote();
+            info.referenceName = ejb.getEjbRefName();
+            info.location = new EjbReferenceLocationInfo();
+
+            String ejbLink = ejb.getEjbLink();
+
+            EnterpriseBeanInfo otherBean = (EnterpriseBeanInfo) beanInfos.get(ejbLink);
+            if (otherBean == null) {
+                String msg = ConfigurationFactory.messages.format("config.noBeanFound", ejb.getEjbRefName(), referringComponent);
+
+                ConfigurationFactory.logger.fatal(msg);
+                throw new OpenEJBException(msg);
+            }
+            info.location.ejbDeploymentId = otherBean.ejbDeploymentId;
+            infos.add(info);
+        }
+        return infos.toArray(new EjbReferenceInfo[]{});
+    }
+
+    private ResourceReferenceInfo[] buildResourceRefInfos(JndiConsumer item) {
+        List<ResourceReferenceInfo> infos = new ArrayList();
+        for (ResourceRef res : item.getResourceRef()) {
+            ResourceReferenceInfo info = new ResourceReferenceInfo();
+
+            info.referenceAuth = res.getResAuth().toString();
+            info.referenceName = res.getResRefName();
+            info.referenceType = res.getResType();
+            info.resourceID = res.getResLink();
+            infos.add(info);
+        }
+        return infos.toArray(new ResourceReferenceInfo[]{});
+    }
+
+    private EnvEntryInfo[] buildEnvEntryInfos(JndiConsumer item) {
+        List<EnvEntryInfo> infos = new ArrayList();
+        for (EnvEntry env : item.getEnvEntry()) {
+            EnvEntryInfo info = new EnvEntryInfo();
+
+            info.name = env.getEnvEntryName();
+            info.type = env.getEnvEntryType();
+            info.value = env.getEnvEntryValue();
+
+            infos.add(info);
+        }
+        return infos.toArray(new EnvEntryInfo[]{});
+    }
+}

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=473133&r1=473132&r2=473133
==============================================================================
--- 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 Thu Nov  9 15:12:42 2006
@@ -32,6 +32,7 @@
 import javax.resource.spi.ConnectionManager;
 import javax.resource.spi.ManagedConnectionFactory;
 import javax.transaction.TransactionManager;
+import javax.naming.Context;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.HashMap;
@@ -235,6 +236,15 @@
                 containerSystem.addDeployment(deployment);
                 jndiBuilder.bind(deployment);
             }
+        }
+
+        ClientInfo[] clients = containerSystemInfo.clients;
+        for (ClientInfo clientInfo : clients) {
+            JndiEncBuilder jndiEncBuilder = new JndiEncBuilder(clientInfo.jndiEnc);
+            Context context = jndiEncBuilder.build();
+            containerSystem.getJNDIContext().bind("java:openejb/client/"+clientInfo.moduleId+"/path", clientInfo.codebase);
+            containerSystem.getJNDIContext().bind("java:openejb/client/"+clientInfo.moduleId+"/mainClass", clientInfo.mainClass);
+            containerSystem.getJNDIContext().bind("java:openejb/client/"+clientInfo.moduleId+"/enc", context);
         }
 
         // roleMapping used later in buildMethodPermissions

Modified: incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/EjbReferenceInfo.java
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/EjbReferenceInfo.java?view=diff&rev=473133&r1=473132&r2=473133
==============================================================================
--- incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/EjbReferenceInfo.java (original)
+++ incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/EjbReferenceInfo.java Thu Nov  9 15:12:42 2006
@@ -20,5 +20,6 @@
 
     public String referenceName;
     public String homeType;
+    public String remoteType;
     public EjbReferenceLocationInfo location;
 }

Modified: incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/JndiEncBuilder.java
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/JndiEncBuilder.java?view=diff&rev=473133&r1=473132&r2=473133
==============================================================================
--- incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/JndiEncBuilder.java (original)
+++ incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/JndiEncBuilder.java Thu Nov  9 15:12:42 2006
@@ -34,6 +34,13 @@
 import java.util.Iterator;
 import java.util.Map;
 
+/**
+ * TODO: This class is essentially an over glorified sym-linker.  The names
+ * we were linking to are no longer guaranteed to be what we assume them to
+ * be.  We need to come up with a different internal naming structure for
+ * the global JNDI and finally create the default which will be the default
+ * symlinked version of all the components.
+ */
 public class JndiEncBuilder {
 
     private final ReferenceWrapper referenceWrapper;
@@ -43,8 +50,14 @@
     private final EnvEntryInfo[] envEntries;
     private final ResourceReferenceInfo[] resourceRefs;
 
+    public JndiEncBuilder(JndiEncInfo jndiEnc) throws OpenEJBException {
+        this(jndiEnc, null, null);
+    }
+
     public JndiEncBuilder(JndiEncInfo jndiEnc, String transactionType, BeanType ejbType) throws OpenEJBException {
-        if (ejbType.isEntity()) {
+        if (ejbType == null){
+            referenceWrapper = new DefaultReferenceWrapper();
+        } else if (ejbType.isEntity()) {
             referenceWrapper = new EntityRefereceWrapper();
         } else if (ejbType == BeanType.STATEFUL) {
             referenceWrapper = new StatefulRefereceWrapper();
@@ -80,8 +93,15 @@
             Reference reference = null;
 
             if (!location.remote) {
-                String jndiName = "java:openejb/ejb/" + location.ejbDeploymentId;
-                reference = new IntraVmJndiReference(jndiName);
+                // TODO: Before JndiNameStrategy can be used, this assumption has to be updated
+                if (referenceInfo.homeType == null){
+                    String jndiName = "java:openejb/ejb/" + location.ejbDeploymentId + "BusinessRemote";
+                    reference = new IntraVmJndiReference(jndiName);
+                }else {
+                    // TODO: Before JndiNameStrategy can be used, this assumption has to be updated
+                    String jndiName = "java:openejb/ejb/" + location.ejbDeploymentId;
+                    reference = new IntraVmJndiReference(jndiName);
+                }
             } else {
                 String openEjbSubContextName = "java:openejb/remote_jndi_contexts/" + location.jndiContextId;
                 reference = new JndiReference(openEjbSubContextName, location.remoteRefName);
@@ -94,6 +114,7 @@
 
             EjbReferenceLocationInfo location = referenceInfo.location;
             if (location != null && !location.remote) {
+                // TODO: Before JndiNameStrategy can be used, this assumption has to be updated
                 String jndiName = "java:openejb/ejb/" + location.ejbDeploymentId + "Local";
                 Reference reference = new IntraVmJndiReference(jndiName);
                 bindings.put(normalize(referenceInfo.referenceName), wrapReference(reference));
@@ -212,6 +233,16 @@
 
         public Object wrap(UserTransaction userTransaction) {
             return new org.apache.openejb.core.stateful.EncUserTransaction((CoreUserTransaction) userTransaction);
+        }
+    }
+
+    private static class DefaultReferenceWrapper extends ReferenceWrapper {
+        Object wrap(Reference reference) {
+            return reference;
+        }
+
+        Object wrap(UserTransaction reference) {
+            return reference;
         }
     }
 }

Modified: incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/util/Logger.java
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/util/Logger.java?view=diff&rev=473133&r1=473132&r2=473133
==============================================================================
--- incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/util/Logger.java (original)
+++ incubator/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/util/Logger.java Thu Nov  9 15:12:42 2006
@@ -782,11 +782,11 @@
 
         private void set(String category, Level level) {
             org.apache.log4j.Logger.getLogger(category).setLevel(level);
-            Enumeration allAppenders = org.apache.log4j.Logger.getLogger(category).getAllAppenders();
-            while (allAppenders.hasMoreElements()) {
-                Object object = allAppenders.nextElement();
-                System.out.println(category +" = " + object);
-            }
+//            Enumeration allAppenders = org.apache.log4j.Logger.getLogger(category).getAllAppenders();
+//            while (allAppenders.hasMoreElements()) {
+//                Object object = allAppenders.nextElement();
+//                System.out.println(category +" = " + object);
+//            }
         }
 
 

Modified: incubator/openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/ApplicationClient.java
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/ApplicationClient.java?view=diff&rev=473133&r1=473132&r2=473133
==============================================================================
--- incubator/openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/ApplicationClient.java (original)
+++ incubator/openejb/trunk/openejb3/container/openejb-jee/src/main/java/org/apache/openejb/jee/ApplicationClient.java Thu Nov  9 15:12:42 2006
@@ -28,6 +28,7 @@
 import javax.xml.bind.annotation.adapters.CollapsedStringAdapter;
 import java.util.List;
 import java.util.ArrayList;
+import java.util.Collections;
 
 @XmlRootElement(name = "application-client")
 @XmlAccessorType(XmlAccessType.FIELD)
@@ -47,7 +48,7 @@
         "callbackHandler",
         "messageDestination"
 })
-public class ApplicationClient {
+public class ApplicationClient implements JndiConsumer {
 
     @XmlTransient
     protected TextMap description = new TextMap();
@@ -90,6 +91,9 @@
     @XmlJavaTypeAdapter(CollapsedStringAdapter.class)
     protected String version;
 
+    @XmlTransient
+    protected String mainClass;
+
     public ApplicationClient() {
     }
 
@@ -147,6 +151,10 @@
         return this.ejbRef;
     }
 
+    public List<EjbLocalRef> getEjbLocalRef() {
+        return Collections.EMPTY_LIST;
+    }
+
     public List<ServiceRef> getServiceRef() {
         if (serviceRef == null) {
             serviceRef = new ArrayList<ServiceRef>();
@@ -175,6 +183,10 @@
         return this.messageDestinationRef;
     }
 
+    public List<PersistenceContextRef> getPersistenceContextRef() {
+        return Collections.EMPTY_LIST;
+    }
+
     public List<PersistenceUnitRef> getPersistenceUnitRef() {
         if (persistenceUnitRef == null) {
             persistenceUnitRef = new ArrayList<PersistenceUnitRef>();
@@ -196,6 +208,16 @@
         return this.preDestroy;
     }
 
+    public void addPostConstruct(String method) {
+        assert mainClass != null: "Set the mainClass before calling this method";
+        getPostConstruct().add(new LifecycleCallback(mainClass, method));
+    }
+
+    public void addPreDestroy(String method) {
+        assert mainClass != null: "Set the mainClass before calling this method";
+        getPreDestroy().add(new LifecycleCallback(mainClass, method));
+    }
+
     public String getCallbackHandler() {
         return callbackHandler;
     }
@@ -237,6 +259,14 @@
 
     public void setVersion(String value) {
         this.version = value;
+    }
+
+    public String getMainClass() {
+        return mainClass;
+    }
+
+    public void setMainClass(String mainClass) {
+        this.mainClass = mainClass;
     }
 
 }

Modified: incubator/openejb/trunk/openejb3/pom.xml
URL: http://svn.apache.org/viewvc/incubator/openejb/trunk/openejb3/pom.xml?view=diff&rev=473133&r1=473132&r2=473133
==============================================================================
--- incubator/openejb/trunk/openejb3/pom.xml (original)
+++ incubator/openejb/trunk/openejb3/pom.xml Thu Nov  9 15:12:42 2006
@@ -289,6 +289,12 @@
         <groupId>org.apache.geronimo.specs</groupId>
         <artifactId>geronimo-j2ee-connector_1.5_spec</artifactId>
         <version>1.0.1</version>
+        <exclusions>
+          <exclusion>
+            <groupId>org.apache.geronimo.specs</groupId>
+            <artifactId>geronimo-jta_1.0.1B_spec</artifactId>
+          </exclusion>
+        </exclusions>
       </dependency>
       <dependency>
         <groupId>org.apache.geronimo.specs</groupId>