Repository: tomee Updated Branches: refs/heads/develop 7da9d6f08 -> 4127ae53f
if WEB-INF/ra.xml exists but is not in a rar then ignore unpacking etc Project: http://git-wip-us.apache.org/repos/asf/tomee/repo Commit: http://git-wip-us.apache.org/repos/asf/tomee/commit/17369cce Tree: http://git-wip-us.apache.org/repos/asf/tomee/tree/17369cce Diff: http://git-wip-us.apache.org/repos/asf/tomee/diff/17369cce Branch: refs/heads/develop Commit: 17369cce23c9a7a29cc2ddd0e7d7e40f99f5e2d5 Parents: 7da9d6f Author: Romain Manni-Bucau <[email protected]> Authored: Fri Feb 6 15:46:48 2015 +0100 Committer: Romain Manni-Bucau <[email protected]> Committed: Fri Feb 6 15:46:48 2015 +0100 ---------------------------------------------------------------------- .../apache/openejb/config/DeploymentLoader.java | 54 ++++++++++++-------- 1 file changed, 33 insertions(+), 21 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/tomee/blob/17369cce/container/openejb-core/src/main/java/org/apache/openejb/config/DeploymentLoader.java ---------------------------------------------------------------------- diff --git a/container/openejb-core/src/main/java/org/apache/openejb/config/DeploymentLoader.java b/container/openejb-core/src/main/java/org/apache/openejb/config/DeploymentLoader.java index a524dfc..8a24264 100644 --- a/container/openejb-core/src/main/java/org/apache/openejb/config/DeploymentLoader.java +++ b/container/openejb-core/src/main/java/org/apache/openejb/config/DeploymentLoader.java @@ -193,28 +193,29 @@ public class DeploymentLoader implements DeploymentFilterable { if (ConnectorModule.class.equals(moduleClass)) { final String jarLocation = URLs.toFilePath(baseUrl); final ConnectorModule connectorModule = createConnectorModule(jarLocation, jarLocation, getOpenEJBClassLoader(), null); + if (connectorModule != null) { + final List<ConnectorModule> connectorModules = new ArrayList<ConnectorModule>(); - final List<ConnectorModule> connectorModules = new ArrayList<ConnectorModule>(); - - // let it be able to deploy the same connector several times - final String id = connectorModule.getModuleId(); - if (!"true".equalsIgnoreCase(SystemInstance.get().getProperty("openejb.connector." + id + ".skip-default", "false"))) { - connectorModules.add(connectorModule); - } + // let it be able to deploy the same connector several times + final String id = connectorModule.getModuleId(); + if (!"true".equalsIgnoreCase(SystemInstance.get().getProperty("openejb.connector." + id + ".skip-default", "false"))) { + connectorModules.add(connectorModule); + } - final String aliases = SystemInstance.get().getProperty("openejb.connector." + id + ".aliases"); - if (aliases != null) { - for (final String alias : aliases.split(",")) { - final ConnectorModule aliasModule = createConnectorModule(jarLocation, jarLocation, getOpenEJBClassLoader(), alias); - connectorModules.add(aliasModule); + final String aliases = SystemInstance.get().getProperty("openejb.connector." + id + ".aliases"); + if (aliases != null) { + for (final String alias : aliases.split(",")) { + final ConnectorModule aliasModule = createConnectorModule(jarLocation, jarLocation, getOpenEJBClassLoader(), alias); + connectorModules.add(aliasModule); + } } - } - // Wrap the resource module with an Application Module - final AppModule appModule = new AppModule(connectorModules.toArray(new ConnectorModule[connectorModules.size()])); + // Wrap the resource module with an Application Module + final AppModule appModule = new AppModule(connectorModules.toArray(new ConnectorModule[connectorModules.size()])); - return appModule; + return appModule; + } } if (WebModule.class.equals(moduleClass)) { @@ -290,7 +291,9 @@ public class DeploymentLoader implements DeploymentFilterable { if (webModule.getAltDDs().containsKey("ra.xml")) { final String jarLocation = new File(webModule.getJarLocation(), "/WEB-INF/classes").getAbsolutePath(); final ConnectorModule connectorModule = createConnectorModule(jarLocation, jarLocation, webModule.getClassLoader(), webModule.getModuleId() + "RA", (URL) webModule.getAltDDs().get("ra.xml")); - appModule.getConnectorModules().add(connectorModule); + if (connectorModule != null) { + appModule.getConnectorModules().add(connectorModule); + } } // .rar @@ -300,7 +303,9 @@ public class DeploymentLoader implements DeploymentFilterable { if (file.getName().endsWith(".rar")) { final String jarLocation = file.getAbsolutePath(); final ConnectorModule connectorModule = createConnectorModule(jarLocation, jarLocation, webModule.getClassLoader(), null); - appModule.getConnectorModules().add(connectorModule); + if (connectorModule != null) { + appModule.getConnectorModules().add(connectorModule); + } } } catch (final Exception e) { logger.error("error processing url " + url.toExternalForm(), e); @@ -327,7 +332,9 @@ public class DeploymentLoader implements DeploymentFilterable { final String jarLocation = file.getAbsolutePath(); final ConnectorModule connectorModule = createConnectorModule(jarLocation, jarLocation, webModule.getClassLoader(), null); - appModule.getConnectorModules().add(connectorModule); + if (connectorModule != null) { + appModule.getConnectorModules().add(connectorModule); + } } } catch (final Exception e) { logger.error("error processing url " + url.toExternalForm(), e); @@ -590,8 +597,9 @@ public class DeploymentLoader implements DeploymentFilterable { } } final ConnectorModule connectorModule = createConnectorModule(appId, URLs.toFilePath(rarUrl), appClassLoader, moduleName); - - appModule.getConnectorModules().add(connectorModule); + if (connectorModule != null) { + appModule.getConnectorModules().add(connectorModule); + } } catch (final OpenEJBException e) { logger.error("Unable to load RAR: " + appId + ", module: " + moduleName + ". Exception: " + e.getMessage(), e); } @@ -1429,6 +1437,10 @@ public class DeploymentLoader implements DeploymentFilterable { protected static ConnectorModule createConnectorModule(final String appId, final String rarPath, final ClassLoader parentClassLoader, final String moduleId, final URL raXmlUrl) throws OpenEJBException { final URL baseUrl;// unpack the rar file File rarFile = new File(rarPath); + if (!rarFile.exists()) { + logger.warning(rarPath + " doesn't exist, skipping connector"); + return null; + } rarFile = unpack(rarFile); baseUrl = getFileUrl(rarFile);
