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.


Reply via email to