You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by rm...@apache.org on 2016/12/03 16:37:29 UTC

[03/50] tomee git commit: TOMEE-1950 support of most of descriptors in classpath for tomee embedded case

TOMEE-1950 support of most of descriptors in classpath for tomee embedded case


Project: http://git-wip-us.apache.org/repos/asf/tomee/repo
Commit: http://git-wip-us.apache.org/repos/asf/tomee/commit/12f29b90
Tree: http://git-wip-us.apache.org/repos/asf/tomee/tree/12f29b90
Diff: http://git-wip-us.apache.org/repos/asf/tomee/diff/12f29b90

Branch: refs/heads/tomee-1.7.x
Commit: 12f29b9076a8b47d165f866635c16a82bf9c3eff
Parents: f367d4a
Author: rmannibucau <rm...@apache.org>
Authored: Thu Sep 29 20:43:20 2016 +0200
Committer: rmannibucau <rm...@apache.org>
Committed: Thu Sep 29 20:43:20 2016 +0200

----------------------------------------------------------------------
 .../org/apache/tomee/embedded/Container.java    | 23 +++++++++++++++++++-
 1 file changed, 22 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tomee/blob/12f29b90/tomee/tomee-embedded/src/main/java/org/apache/tomee/embedded/Container.java
----------------------------------------------------------------------
diff --git a/tomee/tomee-embedded/src/main/java/org/apache/tomee/embedded/Container.java b/tomee/tomee-embedded/src/main/java/org/apache/tomee/embedded/Container.java
index 600a4d8..0cd4cfa 100644
--- a/tomee/tomee-embedded/src/main/java/org/apache/tomee/embedded/Container.java
+++ b/tomee/tomee-embedded/src/main/java/org/apache/tomee/embedded/Container.java
@@ -102,6 +102,7 @@ import java.io.Writer;
 import java.net.MalformedURLException;
 import java.net.URL;
 import java.util.ArrayList;
+import java.util.Collection;
 import java.util.Collections;
 import java.util.HashMap;
 import java.util.HashSet;
@@ -279,7 +280,7 @@ public class Container implements AutoCloseable {
             } catch (final MalformedURLException e) {
                 // no-op
             }
-        }
+        } // else no classpath finding since we'll likely find it
         DeploymentLoader.addBeansXmls(webModule);
 
         final AppModule app = new AppModule(loader, null);
@@ -288,6 +289,26 @@ public class Container implements AutoCloseable {
         app.setModuleId(webModule.getModuleId());
         try {
             final Map<String, URL> webDescriptors = DeploymentLoader.getWebDescriptors(jarLocation);
+            if (webDescriptors.isEmpty()) { // likely so let's try to find them in the classpath
+                final ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
+                final Collection<String> metaDir = asList("META-INF/tomee/", "META-INF/");
+                for (final String dd : asList(
+                        "app-ctx.xml", "module.properties", "application.properties",
+                        "env-entries.properties", NewLoaderLogic.EXCLUSION_FILE,
+                        "web.xml", "ejb-jar.xml", "openejb-jar.xml", "validation.xml")) {
+                    if (Boolean.parseBoolean(SystemInstance.get().getProperty("tomee.embedded.descriptors.classpath." + dd + ".skip"))
+                            || webDescriptors.containsKey(dd)) {
+                        continue;
+                    }
+                    for (final String meta : metaDir) {
+                        final URL url = classLoader.getResource(meta + dd);
+                        if (url != null) {
+                            webDescriptors.put(dd, url);
+                            break;
+                        }
+                    }
+                }
+            }
             webDescriptors.remove("beans.xml");
             webModule.getAltDDs().putAll(webDescriptors);
             DeploymentLoader.addWebModule(webModule, app);