You are viewing a plain text version of this content. The canonical link for it is here.
Posted to scm@geronimo.apache.org by sp...@apache.org on 2007/01/15 22:15:15 UTC
svn commit: r496495 -
/geronimo/server/trunk/modules/geronimo-j2ee-builder/src/main/java/org/apache/geronimo/j2ee/deployment/EARConfigBuilder.java
Author: sppatel
Date: Mon Jan 15 13:15:14 2007
New Revision: 496495
URL: http://svn.apache.org/viewvc?view=rev&rev=496495
Log:
refactor addModules to improve readability
Modified:
geronimo/server/trunk/modules/geronimo-j2ee-builder/src/main/java/org/apache/geronimo/j2ee/deployment/EARConfigBuilder.java
Modified: geronimo/server/trunk/modules/geronimo-j2ee-builder/src/main/java/org/apache/geronimo/j2ee/deployment/EARConfigBuilder.java
URL: http://svn.apache.org/viewvc/geronimo/server/trunk/modules/geronimo-j2ee-builder/src/main/java/org/apache/geronimo/j2ee/deployment/EARConfigBuilder.java?view=diff&rev=496495&r1=496494&r2=496495
==============================================================================
--- geronimo/server/trunk/modules/geronimo-j2ee-builder/src/main/java/org/apache/geronimo/j2ee/deployment/EARConfigBuilder.java (original)
+++ geronimo/server/trunk/modules/geronimo-j2ee-builder/src/main/java/org/apache/geronimo/j2ee/deployment/EARConfigBuilder.java Mon Jan 15 13:15:14 2007
@@ -654,9 +654,8 @@
Map altVendorDDs = new HashMap();
try {
if (earFile != null) {
- ModuleType[] moduleTypes = null;
if(application != null) {
- moduleTypes = application.getModuleArray();
+ ModuleType[] moduleTypes = application.getModuleArray();
//paths is used to check that all modules in the geronimo plan are in the application.xml.
Set paths = new HashSet();
for (int i = 0; i < moduleTypes.length; i++) {
@@ -671,7 +670,7 @@
paths.add(type.getJava().getStringValue());
}
}
- // build map from module path to alt vendor dd
+ //build map from module path to alt vendor dd
GerModuleType gerModuleTypes[] = gerApplication.getModuleArray();
for (int i = 0; i < gerModuleTypes.length; i++) {
GerModuleType gerModule = gerModuleTypes[i];
@@ -705,80 +704,7 @@
altVendorDDs.put(path, anys[0]);
}
}
- }
-
- if(moduleTypes == null) {
- //no application.xml available, must inspect ear to locate and process modules
- //TODO //suport EE.8.2.1 bundled libraries
- Enumeration entries = earFile.entries();
- while (entries.hasMoreElements()) {
- ModuleBuilder builder = null;
- Object moduleContextInfo = null;
- String moduleTypeName = null;
- ZipEntry entry = (ZipEntry) entries.nextElement();
- if(entry.getName().endsWith(".war")) {
- if (getWebConfigBuilder() == null) {
- throw new DeploymentException("Cannot deploy web application; No war deployer defined: " + entry.getName());
- }
- builder = getWebConfigBuilder();
- moduleTypeName = "a war";
- moduleContextInfo = entry.getName().split(".war")[0];
- } else if(entry.getName().endsWith(".rar")) {
- if (getConnectorConfigBuilder() == null) {
- throw new DeploymentException("Cannot deploy resource adapter; No rar deployer defined: " + entry.getName());
- }
- builder = getConnectorConfigBuilder();
- moduleTypeName = "a connector";
- } else if(entry.getName().endsWith(".jar") && !entry.getName().startsWith("lib")) {
- try {
- NestedJarFile moduleFile = new NestedJarFile(earFile, entry.getName());
- if(moduleFile.getEntry("META-INF/application-client.xml") != null) {
- if (getAppClientConfigBuilder() == null) {
- throw new DeploymentException("Cannot deploy app client; No app client deployer defined: " + entry.getName());
- }
- builder = getAppClientConfigBuilder();
- moduleTypeName = "an application client";
- } else if(moduleFile.getEntry("META-INF/ejb-jar.xml") != null) {
- builder = getEjbConfigBuilder();
- if (builder == null) {
- throw new DeploymentException("Cannot deploy ejb application; No ejb deployer defined: " + entry.getName());
- }
- moduleTypeName = "an EJB";
- }
- //TODO if no ejb-jar.xml inspect classes for EJB component annotations to identify as EJBJar module
- } catch (IOException e) {
- throw new DeploymentException("Invalid moduleFile: " + entry.getName(), e);
- }
- } else {
- continue;
- }
-
- moduleLocations.add(entry.getName());
-
- NestedJarFile moduleFile;
- try {
- moduleFile = new NestedJarFile(earFile, entry.getName());
- } catch (IOException e) {
- throw new DeploymentException("Invalid moduleFile: " + entry.getName(), e);
- }
-
- Module module = builder.createModule(altVendorDDs.get(entry.getName()),
- moduleFile,
- entry.getName(),
- null,
- environment,
- moduleContextInfo,
- earName,
- naming, idBuilder);
-
- if (module == null) {
- throw new DeploymentException("Module was not " + moduleTypeName + ": " + entry.getName());
- }
-
- modules.add(module);
- }
- } else {
- // get a set containing all of the files in the ear that are actually modules
+ //get a set containing all of the files in the ear that are actually modules
for (int i = 0; i < moduleTypes.length; i++) {
ModuleType moduleXml = moduleTypes[i];
@@ -843,6 +769,76 @@
}
modules.add(module);
+ }
+ } else {
+ //no application.xml available, must inspect ear to locate and process modules
+ //TODO //suport EE.8.2.1 bundled libraries
+ Enumeration entries = earFile.entries();
+ while (entries.hasMoreElements()) {
+ ModuleBuilder builder = null;
+ Object moduleContextInfo = null;
+ String moduleTypeName = null;
+ ZipEntry entry = (ZipEntry) entries.nextElement();
+ if(entry.getName().endsWith(".war")) {
+ if (getWebConfigBuilder() == null) {
+ throw new DeploymentException("Cannot deploy web application; No war deployer defined: " + entry.getName());
+ }
+ builder = getWebConfigBuilder();
+ moduleTypeName = "a war";
+ moduleContextInfo = entry.getName().split(".war")[0];
+ } else if(entry.getName().endsWith(".rar")) {
+ if (getConnectorConfigBuilder() == null) {
+ throw new DeploymentException("Cannot deploy resource adapter; No rar deployer defined: " + entry.getName());
+ }
+ builder = getConnectorConfigBuilder();
+ moduleTypeName = "a connector";
+ } else if(entry.getName().endsWith(".jar") && !entry.getName().startsWith("lib")) {
+ try {
+ NestedJarFile moduleFile = new NestedJarFile(earFile, entry.getName());
+ if(moduleFile.getEntry("META-INF/application-client.xml") != null) {
+ if (getAppClientConfigBuilder() == null) {
+ throw new DeploymentException("Cannot deploy app client; No app client deployer defined: " + entry.getName());
+ }
+ builder = getAppClientConfigBuilder();
+ moduleTypeName = "an application client";
+ } else if(moduleFile.getEntry("META-INF/ejb-jar.xml") != null) {
+ builder = getEjbConfigBuilder();
+ if (builder == null) {
+ throw new DeploymentException("Cannot deploy ejb application; No ejb deployer defined: " + entry.getName());
+ }
+ moduleTypeName = "an EJB";
+ }
+ //TODO if no ejb-jar.xml inspect classes for EJB component annotations to identify as EJBJar module
+ } catch (IOException e) {
+ throw new DeploymentException("Invalid moduleFile: " + entry.getName(), e);
+ }
+ } else {
+ continue;
+ }
+
+ moduleLocations.add(entry.getName());
+
+ NestedJarFile moduleFile;
+ try {
+ moduleFile = new NestedJarFile(earFile, entry.getName());
+ } catch (IOException e) {
+ throw new DeploymentException("Invalid moduleFile: " + entry.getName(), e);
+ }
+
+ Module module = builder.createModule(altVendorDDs.get(entry.getName()),
+ moduleFile,
+ entry.getName(),
+ null,
+ environment,
+ moduleContextInfo,
+ earName,
+ naming, idBuilder);
+
+ if (module == null) {
+ throw new DeploymentException("Module was not " + moduleTypeName + ": " + entry.getName());
+ }
+
+ modules.add(module);
}
}
}
@@ -850,112 +846,97 @@
//deploy the extension modules
GerExtModuleType gerExtModuleTypes[] = gerApplication.getExtModuleArray();
for (int i = 0; i < gerExtModuleTypes.length; i++) {
- GerExtModuleType gerExtModule = gerExtModuleTypes[i];
- String moduleName;
- ModuleBuilder builder;
- Object moduleContextInfo = null;
- String moduleTypeName;
-
- if (gerExtModule.isSetEjb()) {
- moduleName = gerExtModule.getEjb().getStringValue();
- builder = getEjbConfigBuilder();
- if (builder == null) {
- throw new DeploymentException("Cannot deploy ejb application; No ejb deployer defined: " + moduleName);
- }
- moduleTypeName = "an EJB";
- } else if (gerExtModule.isSetWeb()) {
- moduleName = gerExtModule.getWeb().getStringValue();
- if (getWebConfigBuilder() == null) {
- throw new DeploymentException("Cannot deploy web application; No war deployer defined: " + moduleName);
- }
- builder = getWebConfigBuilder();
- moduleTypeName = "a war";
- //ext modules must use vendor plan to set context-root
-// moduleContextInfo = gerExtModule.getWeb().getContextRoot().getStringValue().trim();
- } else if (gerExtModule.isSetConnector()) {
- moduleName = gerExtModule.getConnector().getStringValue();
- if (getConnectorConfigBuilder() == null) {
- throw new DeploymentException("Cannot deploy resource adapter; No rar deployer defined: " + moduleName);
- }
- builder = getConnectorConfigBuilder();
- moduleTypeName = "a connector";
- } else if (gerExtModule.isSetJava()) {
- moduleName = gerExtModule.getJava().getStringValue();
- if (getAppClientConfigBuilder() == null) {
- throw new DeploymentException("Cannot deploy app client; No app client deployer defined: " + moduleName);
- }
- builder = getAppClientConfigBuilder();
- moduleTypeName = "an application client";
- } else {
- throw new DeploymentException("Could not find a module builder for module: " + gerExtModule);
- }
- //dd is included explicitly
- XmlObject[] anys = gerExtModule.selectChildren(GerExtModuleType.type.qnameSetForWildcardElements());
- if (anys.length != 1) {
- throw new DeploymentException("Unexpected count of xs:any elements in embedded vendor plan " + anys.length + " qnameset: " + GerExtModuleType.type.qnameSetForWildcardElements());
- }
- Object vendorDD = anys[0];
-
- JarFile moduleFile;
- if (gerExtModule.isSetInternalPath()) {
- String modulePath = gerExtModule.getInternalPath().trim();
- moduleLocations.add(modulePath);
- try {
- moduleFile = new NestedJarFile(earFile, modulePath);
- } catch (IOException e) {
- throw new DeploymentException("Invalid moduleFile: " + modulePath, e);
- }
- } else {
- String path = gerExtModule.getExternalPath().trim();
- Artifact artifact = Artifact.create(path);
- File location = null;
- for (Iterator iterator = repositories.iterator(); iterator.hasNext();) {
- Repository repository = (Repository) iterator.next();
- if (repository.contains(artifact)) {
- location = repository.getLocation(artifact);
- break;
- }
- }
- if (location == null) {
- throw new DeploymentException(moduleTypeName + " is missing in repositories: " + path);
- }
- try {
- moduleFile = new JarFile(location);
- } catch (IOException e) {
- throw new DeploymentException("Could not access contents of " + moduleTypeName, e);
- }
-
- }
+ GerExtModuleType gerExtModule = gerExtModuleTypes[i];
+ String moduleName;
+ ModuleBuilder builder;
+ Object moduleContextInfo = null;
+ String moduleTypeName;
+
+ if (gerExtModule.isSetEjb()) {
+ moduleName = gerExtModule.getEjb().getStringValue();
+ builder = getEjbConfigBuilder();
+ if (builder == null) {
+ throw new DeploymentException("Cannot deploy ejb application; No ejb deployer defined: " + moduleName);
+ }
+ moduleTypeName = "an EJB";
+ } else if (gerExtModule.isSetWeb()) {
+ moduleName = gerExtModule.getWeb().getStringValue();
+ if (getWebConfigBuilder() == null) {
+ throw new DeploymentException("Cannot deploy web application; No war deployer defined: " + moduleName);
+ }
+ builder = getWebConfigBuilder();
+ moduleTypeName = "a war";
+ //ext modules must use vendor plan to set context-root
+ } else if (gerExtModule.isSetConnector()) {
+ moduleName = gerExtModule.getConnector().getStringValue();
+ if (getConnectorConfigBuilder() == null) {
+ throw new DeploymentException("Cannot deploy resource adapter; No rar deployer defined: " + moduleName);
+ }
+ builder = getConnectorConfigBuilder();
+ moduleTypeName = "a connector";
+ } else if (gerExtModule.isSetJava()) {
+ moduleName = gerExtModule.getJava().getStringValue();
+ if (getAppClientConfigBuilder() == null) {
+ throw new DeploymentException("Cannot deploy app client; No app client deployer defined: " + moduleName);
+ }
+ builder = getAppClientConfigBuilder();
+ moduleTypeName = "an application client";
+ } else {
+ throw new DeploymentException("Could not find a module builder for module: " + gerExtModule);
+ }
+ //dd is included explicitly
+ XmlObject[] anys = gerExtModule.selectChildren(GerExtModuleType.type.qnameSetForWildcardElements());
+ if (anys.length != 1) {
+ throw new DeploymentException("Unexpected count of xs:any elements in embedded vendor plan " + anys.length + " qnameset: " + GerExtModuleType.type.qnameSetForWildcardElements());
+ }
+ Object vendorDD = anys[0];
+ JarFile moduleFile;
+ if (gerExtModule.isSetInternalPath()) {
+ String modulePath = gerExtModule.getInternalPath().trim();
+ moduleLocations.add(modulePath);
+ try {
+ moduleFile = new NestedJarFile(earFile, modulePath);
+ } catch (IOException e) {
+ throw new DeploymentException("Invalid moduleFile: " + modulePath, e);
+ }
+ } else {
+ String path = gerExtModule.getExternalPath().trim();
+ Artifact artifact = Artifact.create(path);
+ File location = null;
+ for (Iterator iterator = repositories.iterator(); iterator.hasNext();) {
+ Repository repository = (Repository) iterator.next();
+ if (repository.contains(artifact)) {
+ location = repository.getLocation(artifact);
+ break;
+ }
+ }
+ if (location == null) {
+ throw new DeploymentException(moduleTypeName + " is missing in repositories: " + path);
+ }
+ try {
+ moduleFile = new JarFile(location);
+ } catch (IOException e) {
+ throw new DeploymentException("Could not access contents of " + moduleTypeName, e);
+ }
- URL altSpecDD = null;
- //todo implement an alt-spec-dd element.
-// if (moduleXml.isSetAltDd()) {
-// try {
-// altSpecDD = DeploymentUtil.createJarURL(earFile, moduleXml.getAltDd().getStringValue());
-// } catch (MalformedURLException e) {
-// throw new DeploymentException("Invalid alt spec dd url: " + moduleXml.getAltDd().getStringValue(), e);
-// }
-// }
-
-
- Module module = builder.createModule(vendorDD,
- moduleFile,
- moduleName,
- altSpecDD,
- environment,
- moduleContextInfo,
- earName,
- naming, idBuilder);
-
- if (module == null) {
- throw new DeploymentException("Module was not " + moduleTypeName + ": " + moduleName);
- }
+ }
- modules.add(module);
- }
+ Module module = builder.createModule(vendorDD,
+ moduleFile,
+ moduleName,
+ null, //TODO implement an alt-spec-dd element
+ environment,
+ moduleContextInfo,
+ earName,
+ naming, idBuilder);
+ if (module == null) {
+ throw new DeploymentException("Module was not " + moduleTypeName + ": " + moduleName);
+ }
+ modules.add(module);
+ }
} finally {
// delete all the temp files created for alt vendor dds
for (Iterator iterator = altVendorDDs.values().iterator(); iterator.hasNext();) {