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);