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}".