Author: rmannibucau
Date: Fri Dec 7 14:58:34 2012
New Revision: 1418345
URL: http://svn.apache.org/viewvc?rev=1418345&view=rev
Log:
TOMEE-609 skipping web-inf/classes in jarscanner to keep the main webxml -
merge in 4.5.1 branch
Modified:
openejb/branches/openejb-4.5.1-b/tomee/tomee-loader/src/main/java/org/apache/tomee/loader/EmbeddedJarScanner.java
Modified:
openejb/branches/openejb-4.5.1-b/tomee/tomee-loader/src/main/java/org/apache/tomee/loader/EmbeddedJarScanner.java
URL:
http://svn.apache.org/viewvc/openejb/branches/openejb-4.5.1-b/tomee/tomee-loader/src/main/java/org/apache/tomee/loader/EmbeddedJarScanner.java?rev=1418345&r1=1418344&r2=1418345&view=diff
==============================================================================
---
openejb/branches/openejb-4.5.1-b/tomee/tomee-loader/src/main/java/org/apache/tomee/loader/EmbeddedJarScanner.java
(original)
+++
openejb/branches/openejb-4.5.1-b/tomee/tomee-loader/src/main/java/org/apache/tomee/loader/EmbeddedJarScanner.java
Fri Dec 7 14:58:34 2012
@@ -19,6 +19,7 @@ package org.apache.tomee.loader;
import org.apache.juli.logging.Log;
import org.apache.juli.logging.LogFactory;
import org.apache.openejb.config.NewLoaderLogic;
+import org.apache.openejb.util.URLs;
import org.apache.tomcat.JarScanner;
import org.apache.tomcat.JarScannerCallback;
import org.apache.tomcat.util.res.StringManager;
@@ -69,6 +70,10 @@ public class EmbeddedJarScanner implemen
// scan = scan.exclude(".*/WEB-INF/lib/.*"); // doing it simply
prevent ServletContainerInitializer to de discovered
for (URL url : scan) {
+ if (isWebInfClasses(url)) {
+ continue;
+ }
+
// Need to scan this JAR
if (log.isDebugEnabled()) {
log.debug(sm.getString("jarScan.webinflibJarScan",
url.toExternalForm()));
@@ -85,6 +90,16 @@ public class EmbeddedJarScanner implemen
}
}
+ private static boolean isWebInfClasses(final URL url) {
+ final File file = URLs.toFile(url);
+ if (file == null || !file.exists() || !
"classes".equals(file.getName())) {
+ return false;
+ }
+
+ final File webInf = file.getParentFile();
+ return webInf != null && !(!webInf.exists() ||
!"WEB-INF".equals(webInf.getName()));
+ }
+
/*
* Scan a URL for JARs with the optional extensions to look at all files
* and all directories.