[prev in list] [next in list] [prev in thread] [next in thread] 

List:       openejb-cvs
Subject:    svn commit: r1497283 - in /tomee/tomee/trunk: container/openejb-core/src/main/java/org/apache/openej
From:       rmannibucau () apache ! org
Date:       2013-06-27 10:07:08
Message-ID: 20130627100708.985232388900 () eris ! apache ! org
[Download RAW message or body]

Author: rmannibucau
Date: Thu Jun 27 10:07:08 2013
New Revision: 1497283

URL: http://svn.apache.org/r1497283
Log:
TOMEE-983 TOMEE-984 allowing to use mojarra

Modified:
    tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/util/classloader/URLClassLoaderFirst.java
  tomee/tomee/trunk/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/LazyStopWebappClassLoader.java


Modified: tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/util/classloader/URLClassLoaderFirst.java
                
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/main/ja \
va/org/apache/openejb/util/classloader/URLClassLoaderFirst.java?rev=1497283&r1=1497282&r2=1497283&view=diff
 ==============================================================================
--- tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/util/classloader/URLClassLoaderFirst.java \
                (original)
+++ tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/util/classloader/URLClassLoaderFirst.java \
Thu Jun 27 10:07:08 2013 @@ -341,11 +341,6 @@ public class URLClassLoaderFirst \
extends  return false;
         }
 
-        final ClassLoader parentLoader = findParent(loader);
-        if (parentLoader == null) {
-            return true;
-        }
-
         // using annotation to test to avoid to load more classes with deps
         final String testClass;
         if ("javax.faces.bean.RequestScoped".equals(name)) {
@@ -355,12 +350,16 @@ public class URLClassLoaderFirst extends
         }
 
         final String classname = testClass.replace('.', '/') + ".class";
-        final URL thisJSf = loader.getResource(classname);
-        if (thisJSf == null) {
+        try {
+            final Enumeration<URL> resources = loader.getResources(classname);
+            final Collection<URL> thisJSf = Collections.list(resources);
+            if (thisJSf == null || thisJSf.isEmpty()) {
+                return true;
+            }
+            return thisJSf.size() <= 1;
+        } catch (final IOException e) {
             return true;
         }
-        final URL containerJsf = parentLoader.getResource(classname);
-        return containerJsf != null && thisJSf.equals(containerJsf);
 
     }
 

Modified: tomee/tomee/trunk/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/LazyStopWebappClassLoader.java
                
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/tomee/tomee-catalina/src/main/java \
/org/apache/tomee/catalina/LazyStopWebappClassLoader.java?rev=1497283&r1=1497282&r2=1497283&view=diff
 ==============================================================================
--- tomee/tomee/trunk/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/LazyStopWebappClassLoader.java \
                (original)
+++ tomee/tomee/trunk/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/LazyStopWebappClassLoader.java \
Thu Jun 27 10:07:08 2013 @@ -75,10 +75,13 @@ public class LazyStopWebappClassLoader e
             synchronized (this) {
                 final ClassLoader old = system;
                 system = NoClassClassLoader.INSTANCE;
+                final boolean delegate = getDelegate();
+                setDelegate(false);
                 try {
                     return super.loadClass(name);
                 } finally {
                     system = old;
+                    setDelegate(delegate);
                 }
             }
         }
@@ -92,6 +95,16 @@ public class LazyStopWebappClassLoader e
             } catch (NoClassDefFoundError ncdfe) {
                 return super.loadClass(name);
             }
+        } else if (name.startsWith("javax.faces.") || \
name.startsWith("org.apache.webbeans.jsf.")) { +            final boolean delegate = \
getDelegate(); +            synchronized (this) {
+                setDelegate(false);
+                try {
+                    return super.loadClass(name);
+                } finally {
+                    setDelegate(delegate);
+                }
+            }
         }
         return super.loadClass(name);
     }
@@ -103,7 +116,7 @@ public class LazyStopWebappClassLoader e
 
     @Override
     protected boolean filter(final String name) {
-        return URLClassLoaderFirst.shouldSkip(name);
+        return !"org.apache.tomee.mojarra.TomEEInjectionProvider".equals(name) && \
URLClassLoaderFirst.shouldSkip(name);  }
 
     public void internalStop() throws LifecycleException {


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic