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/08/26 07:28:16 UTC

svn commit: r569766 - in /openejb/trunk/openejb3/container/openejb-core/src/main: java/org/apache/openejb/config/ resources/org/apache/openejb/config/

Author: dblevins
Date: Sat Aug 25 22:28:14 2007
New Revision: 569766

URL: http://svn.apache.org/viewvc?rev=569766&view=rev
Log:
use the "id" attribute of the <ejb-jar> and <application-client> elements for their respective modules (EjbModule, ClientModule)

Modified:
    openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/ClientModule.java
    openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/DeploymentLoader.java
    openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/EjbModule.java
    openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/JndiEncInfoBuilder.java
    openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/ReadDescriptors.java
    openejb/trunk/openejb3/container/openejb-core/src/main/resources/org/apache/openejb/config/Messages.properties

Modified: openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/ClientModule.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/ClientModule.java?rev=569766&r1=569765&r2=569766&view=diff
==============================================================================
--- openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/ClientModule.java (original)
+++ openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/ClientModule.java Sat Aug 25 22:28:14 2007
@@ -40,8 +40,12 @@
         this.mainClass = mainClass;
 
         if (moduleId == null){
-            File file = new File(jarLocation);
-            moduleId = file.getName();
+            if (applicationClient != null && applicationClient.getId() != null){
+                moduleId = applicationClient.getId();
+            } else {
+                File file = new File(jarLocation);
+                moduleId = file.getName();
+            }
         }
 
         this.moduleId = moduleId;

Modified: openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/DeploymentLoader.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/DeploymentLoader.java?rev=569766&r1=569765&r2=569766&view=diff
==============================================================================
--- openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/DeploymentLoader.java (original)
+++ openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/DeploymentLoader.java Sat Aug 25 22:28:14 2007
@@ -23,6 +23,8 @@
 import org.apache.openejb.jee.Application;
 import org.apache.openejb.jee.Module;
 import org.apache.openejb.jee.JaxbJavaee;
+import org.apache.openejb.jee.EjbJar;
+import org.apache.openejb.jee.ApplicationClient;
 import org.apache.openejb.util.LogCategory;
 import org.apache.openejb.util.Logger;
 import org.apache.openejb.util.Messages;
@@ -182,9 +184,17 @@
                     try {
                         URL ejbUrl = ejbModules.get(moduleName);
                         File ejbFile = new File(ejbUrl.getPath());
-                        EjbModule ejbModule = new EjbModule(appClassLoader, moduleName, ejbFile.getAbsolutePath(), null, null);
 
-                        fillDescriptors(ejbUrl, ejbModule);
+                        Map<String, URL> descriptors = getDescriptors(ejbUrl);
+
+                        EjbJar ejbJar = null;
+                        if (descriptors.containsKey("ejb-jar.xml")){
+                            ejbJar = ReadDescriptors.readEjbJar(descriptors.get("ejb-jar.xml"));
+                        }
+
+                        EjbModule ejbModule = new EjbModule(appClassLoader, moduleName, ejbFile.getAbsolutePath(), ejbJar, null);
+
+                        ejbModule.getAltDDs().putAll(descriptors);
 
                         appModule.getEjbModules().add(ejbModule);
                     } catch (OpenEJBException e) {
@@ -202,9 +212,16 @@
                         Manifest manifest = new Manifest(is);
                         String mainClass = manifest.getMainAttributes().getValue(Attributes.Name.MAIN_CLASS);
 
-                        ClientModule clientModule = new ClientModule(null, appClassLoader, clientFile.getAbsolutePath(), mainClass, moduleName);
+                        Map<String, URL> descriptors = getDescriptors(clientUrl);
+
+                        ApplicationClient applicationClient = null;
+                        if (descriptors.containsKey("application-client.xml")){
+                            applicationClient = ReadDescriptors.readApplicationClient(descriptors.get("application-client.xml"));
+                        }
+
+                        ClientModule clientModule = new ClientModule(applicationClient, appClassLoader, clientFile.getAbsolutePath(), mainClass, moduleName);
 
-                        fillDescriptors(clientUrl, clientModule);
+                        clientModule.getAltDDs().putAll(descriptors);
 
                         appModule.getClientModules().add(clientModule);
                     } catch (Exception e) {
@@ -231,9 +248,21 @@
 
         } else if (EjbModule.class.equals(moduleClass)) {
 
-            EjbModule ejbModule = new EjbModule(classLoader, jarFile.getAbsolutePath(), null, null);
+            Map<String, URL> descriptors = getDescriptors(baseUrl);
+
+            EjbJar ejbJar = null;
+            if (descriptors.containsKey("ejb-jar.xml")){
+                ejbJar = ReadDescriptors.readEjbJar(descriptors.get("ejb-jar.xml"));
+            }
+
+            System.out.println("baseUrl = " + baseUrl);
+            for (Map.Entry<String, URL> entry : descriptors.entrySet()) {
+                System.out.println("entry.getKey() = " + entry.getKey());
+            }
+
+            EjbModule ejbModule = new EjbModule(classLoader, jarFile.getAbsolutePath(), ejbJar, null);
 
-            fillDescriptors(baseUrl, ejbModule);
+            ejbModule.getAltDDs().putAll(descriptors);
 
             AppModule appModule = new AppModule(classLoader, ejbModule.getJarLocation());
             appModule.getEjbModules().add(ejbModule);
@@ -254,13 +283,12 @@
         }
     }
 
-    private void fillDescriptors(URL moduleUrl, DeploymentModule module) throws OpenEJBException {
+    private Map<String, URL> getDescriptors(URL moduleUrl) throws OpenEJBException {
         try {
             ResourceFinder finder = new ResourceFinder(moduleUrl);
 
-            Map<String, URL> descriptors = finder.getResourcesMap("META-INF/");
+            return finder.getResourcesMap("META-INF/");
 
-            module.getAltDDs().putAll(descriptors);
         } catch (IOException e) {
             throw new OpenEJBException("Unable to determine descriptors in jar.", e);
         }

Modified: openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/EjbModule.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/EjbModule.java?rev=569766&r1=569765&r2=569766&view=diff
==============================================================================
--- openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/EjbModule.java (original)
+++ openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/EjbModule.java Sat Aug 25 22:28:14 2007
@@ -57,8 +57,12 @@
         this.jarURI = jarURI;
 
         if (moduleId == null){
-            File file = new File(jarURI);
-            moduleId = file.getName();
+            if (ejbJar != null && ejbJar.getId() != null){
+                jarURI = ejbJar.getId();
+            } else {
+                File file = new File(jarURI);
+                moduleId = file.getName();
+            }
         }
         this.moduleId = moduleId;
     }

Modified: openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/JndiEncInfoBuilder.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/JndiEncInfoBuilder.java?rev=569766&r1=569765&r2=569766&view=diff
==============================================================================
--- openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/JndiEncInfoBuilder.java (original)
+++ openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/JndiEncInfoBuilder.java Sat Aug 25 22:28:14 2007
@@ -168,8 +168,8 @@
         beanInfo.jndiEnc = jndi;
     }
 
-    public static final Logger logger = Logger.getInstance(LogCategory.OPENEJB_STARTUP, "org.apache.openejb.util.resources");
-    protected static final Messages messages = new Messages("org.apache.openejb.util.resources");
+    public static final Logger logger = Logger.getInstance(LogCategory.OPENEJB_STARTUP, JndiEncInfoBuilder.class);
+    protected static final Messages messages = new Messages(JndiEncInfoBuilder.class);
 
     private final Map<String,EnterpriseBeanInfo> allDeployments = new TreeMap<String,EnterpriseBeanInfo>();
 

Modified: openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/ReadDescriptors.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/ReadDescriptors.java?rev=569766&r1=569765&r2=569766&view=diff
==============================================================================
--- openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/ReadDescriptors.java (original)
+++ openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/ReadDescriptors.java Sat Aug 25 22:28:14 2007
@@ -58,27 +58,7 @@
         }
 
         for (ClientModule clientModule : appModule.getClientModules()) {
-
-            Object data = clientModule.getAltDDs().get("application-client.xml");
-            if (data instanceof URL) {
-                URL url = (URL) data;
-                try {
-                    ApplicationClient applicationClient = (ApplicationClient) JaxbJavaee.unmarshal(ApplicationClient.class, url.openStream());
-                    clientModule.setApplicationClient(applicationClient);
-                } catch (SAXException e) {
-                    throw new OpenEJBException("Cannot parse the application-client.xml file: "+ url.toExternalForm(), e);
-                } catch (JAXBException e) {
-                    throw new OpenEJBException("Cannot unmarshall the application-client.xml file: "+ url.toExternalForm(), e);
-                } catch (IOException e) {
-                    throw new OpenEJBException("Cannot read the application-client.xml file: "+ url.toExternalForm(), e);
-                } catch (Exception e) {
-                    throw new OpenEJBException("Encountered unknown error parsing the application-client.xml file: "+ url.toExternalForm(), e);
-                }
-            } else {
-                DeploymentLoader.logger.warning("No application-client.xml found assuming annotations present: " + appModule.getJarLocation() + ", module: " + clientModule.getModuleId());
-                clientModule.setApplicationClient(new ApplicationClient());
-            }
-
+            readAppClient(clientModule, appModule);
         }
 
         List<URL> persistenceUrls = (List<URL>) appModule.getAltDDs().get("persistence.xml");
@@ -247,26 +227,68 @@
 
     }
 
+    private void readAppClient(ClientModule clientModule, AppModule appModule) throws OpenEJBException {
+        if (clientModule.getApplicationClient() != null) return;
+
+        Object data = clientModule.getAltDDs().get("application-client.xml");
+        if (data instanceof ApplicationClient) {
+            clientModule.setApplicationClient((ApplicationClient) data);
+        } else if (data instanceof URL) {
+            URL url = (URL) data;
+            ApplicationClient applicationClient = readApplicationClient(url);
+            clientModule.setApplicationClient(applicationClient);
+        } else {
+            DeploymentLoader.logger.warning("No application-client.xml found assuming annotations present: " + appModule.getJarLocation() + ", module: " + clientModule.getModuleId());
+            clientModule.setApplicationClient(new ApplicationClient());
+        }
+    }
+
     private void readEjbJar(EjbModule ejbModule, AppModule appModule) throws OpenEJBException {
+        if (ejbModule.getEjbJar() != null) return;
+
         Object data = ejbModule.getAltDDs().get("ejb-jar.xml");
-        if (data instanceof URL) {
+        if (data instanceof EjbJar) {
+            ejbModule.setEjbJar((EjbJar) data);
+        } else if (data instanceof URL) {
             URL url = (URL) data;
-            try {
-                EjbJar ejbJar = (EjbJar) JaxbJavaee.unmarshal(EjbJar.class, url.openStream());
-                ejbModule.setEjbJar(ejbJar);
-            } catch (SAXException e) {
-                throw new OpenEJBException("Cannot parse the ejb-jar.xml file: "+ url.toExternalForm(), e);
-            } catch (JAXBException e) {
-                throw new OpenEJBException("Cannot unmarshall the ejb-jar.xml file: "+ url.toExternalForm(), e);
-            } catch (IOException e) {
-                throw new OpenEJBException("Cannot read the ejb-jar.xml file: "+ url.toExternalForm(), e);
-            } catch (Exception e) {
-                throw new OpenEJBException("Encountered unknown error parsing the ejb-jar.xml file: "+ url.toExternalForm(), e);
-            }
+            EjbJar ejbJar = readEjbJar(url);
+            ejbModule.setEjbJar(ejbJar);
         } else {
             DeploymentLoader.logger.warning("No ejb-jar.xml found assuming annotated beans present: " + appModule.getJarLocation() + ", module: " + ejbModule.getModuleId());
             ejbModule.setEjbJar(new EjbJar());
         }
+    }
+
+    public static ApplicationClient readApplicationClient(URL url) throws OpenEJBException {
+        ApplicationClient applicationClient;
+        try {
+            applicationClient = (ApplicationClient) JaxbJavaee.unmarshal(ApplicationClient.class, url.openStream());
+        } catch (SAXException e) {
+            throw new OpenEJBException("Cannot parse the application-client.xml file: "+ url.toExternalForm(), e);
+        } catch (JAXBException e) {
+            throw new OpenEJBException("Cannot unmarshall the application-client.xml file: "+ url.toExternalForm(), e);
+        } catch (IOException e) {
+            throw new OpenEJBException("Cannot read the application-client.xml file: "+ url.toExternalForm(), e);
+        } catch (Exception e) {
+            throw new OpenEJBException("Encountered unknown error parsing the application-client.xml file: "+ url.toExternalForm(), e);
+        }
+        return applicationClient;
+    }
+
+    public static EjbJar readEjbJar(URL url) throws OpenEJBException {
+        EjbJar ejbJar = null;
+        try {
+            ejbJar = (EjbJar) JaxbJavaee.unmarshal(EjbJar.class, url.openStream());
+        } catch (SAXException e) {
+            throw new OpenEJBException("Cannot parse the ejb-jar.xml file: " + url.toExternalForm(), e);
+        } catch (JAXBException e) {
+            throw new OpenEJBException("Cannot unmarshall the ejb-jar.xml file: " + url.toExternalForm(), e);
+        } catch (IOException e) {
+            throw new OpenEJBException("Cannot read the ejb-jar.xml file: " + url.toExternalForm(), e);
+        } catch (Exception e) {
+            throw new OpenEJBException("Encountered unknown error parsing the ejb-jar.xml file: " + url.toExternalForm(), e);
+        }
+        return ejbJar;
     }
 
     private Source getSource(Object o) {

Modified: openejb/trunk/openejb3/container/openejb-core/src/main/resources/org/apache/openejb/config/Messages.properties
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/main/resources/org/apache/openejb/config/Messages.properties?rev=569766&r1=569765&r2=569766&view=diff
==============================================================================
--- openejb/trunk/openejb3/container/openejb-core/src/main/resources/org/apache/openejb/config/Messages.properties (original)
+++ openejb/trunk/openejb3/container/openejb-core/src/main/resources/org/apache/openejb/config/Messages.properties Sat Aug 25 22:28:14 2007
@@ -53,4 +53,11 @@
 envprops.add = Adding env-entry(name='{1}', value='{2}', type='java.lang.String'), Bean='{0}'
 
 # error("envprops.notLoaded", e, module.getModuleId(), propsUrl.toExternalForm());
-envprops.notLoaded = Could not load META-INF/env-entries.properties for module '{0}'.   
\ No newline at end of file
+envprops.notLoaded = Could not load META-INF/env-entries.properties for module '{0}'.
+
+
+#fatal("config.noBeanFoundEjbLink", ejb.getEjbRefName(), referringComponent, ejb.getEjbLink());
+config.noBeanFoundEjbLink=Cannot find bean "{0}" referenced by bean "{1}" with ejb-link "{2}".
+
+#fatal("config.noBeanFound", ejb.getEjbRefName(), referringComponent);
+config.noBeanFound=Cannot find bean "{0}" referenced by bean "{1}".