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/09/13 14:19:17 UTC
svn commit: r1384296 - in
/openejb/trunk/openejb/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina:
LazyStopWebappClassLoader.java TomEEClassLoaderEnricher.java
TomEEWebappLoader.java
Author: rmannibucau
Date: Thu Sep 13 12:19:17 2012
New Revision: 1384296
URL: http://svn.apache.org/viewvc?rev=1384296&view=rev
Log:
TOMEE-414 slf4j in the app
Modified:
openejb/trunk/openejb/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/LazyStopWebappClassLoader.java
openejb/trunk/openejb/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomEEClassLoaderEnricher.java
openejb/trunk/openejb/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomEEWebappLoader.java
Modified: openejb/trunk/openejb/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/LazyStopWebappClassLoader.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/LazyStopWebappClassLoader.java?rev=1384296&r1=1384295&r2=1384296&view=diff
==============================================================================
--- openejb/trunk/openejb/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/LazyStopWebappClassLoader.java (original)
+++ openejb/trunk/openejb/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/LazyStopWebappClassLoader.java Thu Sep 13 12:19:17 2012
@@ -25,6 +25,7 @@ import org.apache.openejb.loader.SystemI
import java.io.File;
import java.io.IOException;
import java.net.URL;
+import java.util.Enumeration;
public class LazyStopWebappClassLoader extends WebappClassLoader {
public static final String TOMEE_WEBAPP_FIRST = "tomee.webapp-first";
@@ -95,4 +96,13 @@ public class LazyStopWebappClassLoader e
public static boolean isDelegate() {
return !SystemInstance.get().getOptions().get(TOMEE_WEBAPP_FIRST, true);
}
+
+ @Override
+ public Enumeration<URL> getResources(final String name) throws IOException {
+ final Enumeration<URL> urls = super.getResources(name);
+ if (TomEEClassLoaderEnricher.isSlf4jQuery(name)) {
+ return TomEEClassLoaderEnricher.filterSlf4jImpl(urls);
+ }
+ return urls;
+ }
}
Modified: openejb/trunk/openejb/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomEEClassLoaderEnricher.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomEEClassLoaderEnricher.java?rev=1384296&r1=1384295&r2=1384296&view=diff
==============================================================================
--- openejb/trunk/openejb/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomEEClassLoaderEnricher.java (original)
+++ openejb/trunk/openejb/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomEEClassLoaderEnricher.java Thu Sep 13 12:19:17 2012
@@ -32,6 +32,8 @@ import java.net.URL;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
+import java.util.Collections;
+import java.util.Enumeration;
import java.util.jar.JarEntry;
import java.util.jar.JarFile;
@@ -222,4 +224,25 @@ public final class TomEEClassLoaderEnric
}
}
}
+
+ /**
+ * Helper part
+ */
+ public static final String SLF4J_STATIC_LOGGER_BINDER_CLASS = "org/slf4j/impl/StaticLoggerBinder.class";
+
+ public static boolean isSlf4jQuery(final String name) {
+ return SLF4J_STATIC_LOGGER_BINDER_CLASS.equals(name);
+ }
+
+ public static Enumeration<URL> filterSlf4jImpl(final Enumeration<URL> result) {
+ final Collection<URL> values = Collections.list(result);
+ if (values.size() > 1) {
+ // remove openejb one
+ final URL url = TomEEClassLoaderEnricher.class.getResource("/" + SLF4J_STATIC_LOGGER_BINDER_CLASS);
+ if (url != null) {
+ values.remove(url);
+ }
+ }
+ return Collections.enumeration(values);
+ }
}
Modified: openejb/trunk/openejb/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomEEWebappLoader.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomEEWebappLoader.java?rev=1384296&r1=1384295&r2=1384296&view=diff
==============================================================================
--- openejb/trunk/openejb/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomEEWebappLoader.java (original)
+++ openejb/trunk/openejb/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomEEWebappLoader.java Thu Sep 13 12:19:17 2012
@@ -183,12 +183,21 @@ public class TomEEWebappLoader extends W
final Map<String, URL> urls = new HashMap<String, URL>();
+ final Enumeration<URL> result;
+
if (webapp.isStarted() || webapp.getParent() == null) { // we set a parent so if it is null webapp was detroyed
add(urls, app.getResources(name));
add(urls, webapp.getResources(name));
- return new ArrayEnumeration(clear(urls.values()));
+ result = new ArrayEnumeration(clear(urls.values()));
+ } else {
+ result = app.getResources(name);
+ }
+
+ if (TomEEClassLoaderEnricher.isSlf4jQuery(name)) {
+ return TomEEClassLoaderEnricher.filterSlf4jImpl(result);
}
- return app.getResources(name);
+
+ return result;
}
private List<URL> clear(Iterable<URL> urls) { // take care of antiJarLocking