modules.add(module);
}
}
//deploy the extension modules
GerExtModuleType gerExtModuleTypes[] = gerApplication.getExtModuleArray();
for (int i = 0; i < gerExtModuleTypes.length; i++) {
GerExtModuleType gerExtModule = gerExtModuleTypes[i];
String moduleName = null;
ModuleBuilder builder;
Object moduleContextInfo = null;
String moduleTypeName;
if (gerExtModule.isSetEjb()) {
moduleName = gerExtModule.getEjb().getStringValue();
if (ejbConfigBuilder == null) {
throw new DeploymentException("Cannot deploy ejb application; No ejb deployer defined: " + moduleName);
}
builder = ejbConfigBuilder;
moduleTypeName = "an EJB";
} else if (gerExtModule.isSetWeb()) {
moduleName = gerExtModule.getWeb().getStringValue();
if (webConfigBuilder == null) {
throw new DeploymentException("Cannot deploy web application; No war deployer defined: " + moduleName);
}
builder = webConfigBuilder;
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 (connectorConfigBuilder == null) {
throw new DeploymentException("Cannot deploy resource adapter; No rar deployer defined: " + moduleName);
}
builder = connectorConfigBuilder;
moduleTypeName = "a connector";
} else if (gerExtModule.isSetJava()) {
moduleName = gerExtModule.getJava().getStringValue();
if (appClientConfigBuilder == null) {
throw new DeploymentException("Cannot deploy app client; No app client deployer defined: " + moduleName);
}
builder = appClientConfigBuilder;
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 = null;
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();
URI pathURI = null;
try {
pathURI = new URI(path);
} catch (URISyntaxException e) {
throw new DeploymentException("Bad path to external module, " + moduleTypeName, e);