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 2012/12/07 15:57:48 UTC

svn commit: r1418343 - /openejb/trunk/openejb/tomee/tomee-loader/src/main/java/org/apache/tomee/loader/EmbeddedJarScanner.java

Author: rmannibucau
Date: Fri Dec  7 14:57:47 2012
New Revision: 1418343

URL: http://svn.apache.org/viewvc?rev=1418343&view=rev
Log:
TOMEE-609 skipping web-inf/classes in jarscanner to keep the main webxml

Modified:
    openejb/trunk/openejb/tomee/tomee-loader/src/main/java/org/apache/tomee/loader/EmbeddedJarScanner.java

Modified: openejb/trunk/openejb/tomee/tomee-loader/src/main/java/org/apache/tomee/loader/EmbeddedJarScanner.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/tomee/tomee-loader/src/main/java/org/apache/tomee/loader/EmbeddedJarScanner.java?rev=1418343&r1=1418342&r2=1418343&view=diff
==============================================================================
--- openejb/trunk/openejb/tomee/tomee-loader/src/main/java/org/apache/tomee/loader/EmbeddedJarScanner.java (original)
+++ openejb/trunk/openejb/tomee/tomee-loader/src/main/java/org/apache/tomee/loader/EmbeddedJarScanner.java Fri Dec  7 14:57:47 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.