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 2013/01/20 15:20:55 UTC
svn commit: r1435846 - in /tomee/tomee/trunk:
container/openejb-core/src/main/java/org/apache/openejb/config/TldScanner.java
tomee/tomee-loader/src/main/java/org/apache/tomee/loader/TomEEJarScanner.java
Author: rmannibucau
Date: Sun Jan 20 14:20:55 2013
New Revision: 1435846
URL: http://svn.apache.org/viewvc?rev=1435846&view=rev
Log:
back to previous TldScanner since we don't need an index anymore in tomeescanner
Modified:
tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/config/TldScanner.java
tomee/tomee/trunk/tomee/tomee-loader/src/main/java/org/apache/tomee/loader/TomEEJarScanner.java
Modified: tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/config/TldScanner.java
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/config/TldScanner.java?rev=1435846&r1=1435845&r2=1435846&view=diff
==============================================================================
--- tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/config/TldScanner.java (original)
+++ tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/config/TldScanner.java Sun Jan 20 14:20:55 2013
@@ -28,7 +28,6 @@ import java.net.URL;
import java.net.URLClassLoader;
import java.util.Arrays;
import java.util.Collections;
-import java.util.HashMap;
import java.util.HashSet;
import java.util.LinkedList;
import java.util.Map;
@@ -56,17 +55,6 @@ import static org.apache.openejb.util.UR
public class TldScanner {
private static Map<ClassLoader, Set<URL>> cache = new WeakHashMap<ClassLoader, Set<URL>>();
- private static Map<ClassLoader, Map<File, Set<URL>>> cacheByUrl = new WeakHashMap<ClassLoader, Map<File, Set<URL>>>();
-
- public static Set<URL> scan(final ClassLoader classLoader, final File file) throws OpenEJBException {
- scan(classLoader); // ensure init
-
- final Map<File, Set<URL>> map = cacheByUrl.get(classLoader);
- if (map == null || !map.containsKey(file)) {
- return Collections.emptySet();
- }
- return map.get(file);
- }
public static Set<URL> scan(final ClassLoader classLoader) throws OpenEJBException {
if (classLoader == null) return Collections.emptySet();
@@ -74,31 +62,20 @@ public class TldScanner {
final Set<URL> urls = cache.get(classLoader);
if (urls != null) return urls;
- final Map<File, Set<URL>> result = scanClassLoaderForTagLibs(classLoader);
- cacheByUrl.put(classLoader, result);
-
- final Set<URL> merged = new HashSet<URL>();
- for (Set<URL> us : result.values()) {
- merged.addAll(us);
- }
- cache.put(classLoader, merged);
+ final Set<URL> result = scanClassLoaderForTagLibs(classLoader);
+ cache.put(classLoader, result);
- return merged;
+ return result;
}
+ public static Set<URL> scanClassLoaderForTagLibs(final ClassLoader classLoader) throws OpenEJBException {
- public static Map<File, Set<URL>> scanClassLoaderForTagLibs(final ClassLoader classLoader) throws OpenEJBException {
-
- final Map<File, Set<URL>> tldUrls = new HashMap<File, Set<URL>>();
+ final Set<URL> tldUrls = new HashSet<URL>();
if (classLoader == null) return tldUrls;
if (classLoader == Object.class.getClassLoader()) return tldUrls;
- final ClassLoader parent = classLoader.getParent();
- scan(parent);
- if (cacheByUrl.containsKey(parent)) {
- tldUrls.putAll(cacheByUrl.get(parent));
- }
+ tldUrls.addAll(scan(classLoader.getParent()));
UrlSet urlSet = new UrlSet();
@@ -125,7 +102,6 @@ public class TldScanner {
for (URL url : urlSet.getUrls()) {
-
if (url.getProtocol().equals("jar")) {
try {
String path = url.getPath();
@@ -151,11 +127,7 @@ public class TldScanner {
continue;
}
- final Set<URL> set = new HashSet<URL>();
- set.addAll(scanForTagLibs(file));
- if (!set.isEmpty()) {
- tldUrls.put(file, set);
- }
+ tldUrls.addAll(scanForTagLibs(file));
}
return tldUrls;
@@ -261,13 +233,6 @@ public class TldScanner {
}
cache.remove(loader);
- final Map<File, Set<URL>> map = cacheByUrl.remove(loader);
- if (map != null) {
- for (Set<URL> set : map.values()) {
- set.clear();
- }
- map.clear();
- }
if (loader.getParent() != TldScanner.class.getClassLoader()) { // for ears
clean(loader.getParent());
}
Modified: tomee/tomee/trunk/tomee/tomee-loader/src/main/java/org/apache/tomee/loader/TomEEJarScanner.java
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/tomee/tomee-loader/src/main/java/org/apache/tomee/loader/TomEEJarScanner.java?rev=1435846&r1=1435845&r2=1435846&view=diff
==============================================================================
--- tomee/tomee/trunk/tomee/tomee-loader/src/main/java/org/apache/tomee/loader/TomEEJarScanner.java (original)
+++ tomee/tomee/trunk/tomee/tomee-loader/src/main/java/org/apache/tomee/loader/TomEEJarScanner.java Sun Jan 20 14:20:55 2013
@@ -252,31 +252,6 @@ public class TomEEJarScanner extends Sta
return jars;
}
- /*
- * Scan a URL for JARs with the optional extensions to look at all files
- * and all directories.
- */
- private void process(final JarScannerCallback callback, final URL url) throws IOException {
-
- if (log.isTraceEnabled()) {
- log.trace(sm.getString("jarScan.jarUrlStart", url));
- }
-
- try {
- final File file = URLs.toFile(url);
- final Set<URL> urls = TldScanner.scan(Thread.currentThread().getContextClassLoader(), file);
- for (URL current : urls) {
- tldConfig(callback, current);
- }
- } catch (IllegalStateException e) {
- tomcatProcess(callback, url);
- } catch (IllegalArgumentException e) {
- tomcatProcess(callback, url);
- } catch (OpenEJBException e) {
- tomcatProcess(callback, url);
- }
- }
-
private static void tldLocationCache(final JarScannerCallback callback, final URL url) {
String resource = url.toString();
String entry = null;
@@ -312,7 +287,11 @@ public class TomEEJarScanner extends Sta
}
}
- private void tomcatProcess(final JarScannerCallback callback, final URL url) throws IOException {
+ /*
+ * Scan a URL for JARs with the optional extensions to look at all files
+ * and all directories.
+ */
+ private void process(final JarScannerCallback callback, final URL url) throws IOException {
final URLConnection conn = url.openConnection();
if (conn instanceof JarURLConnection) {