Author: rmannibucau
Date: Wed Jun 13 22:04:21 2012
New Revision: 1350036

URL: http://svn.apache.org/viewvc?rev=1350036&view=rev
Log:
in OSGi skipping the classloader check before adding a cdi bean -  in progress

Modified:
    
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/cdi/CdiScanner.java
    
openejb/trunk/openejb/osgi/openejb-core-osgi/src/main/java/org/apache/openejb/core/osgi/impl/Activator.java

Modified: 
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/cdi/CdiScanner.java
URL: 
http://svn.apache.org/viewvc/openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/cdi/CdiScanner.java?rev=1350036&r1=1350035&r2=1350036&view=diff
==============================================================================
--- 
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/cdi/CdiScanner.java
 (original)
+++ 
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/cdi/CdiScanner.java
 Wed Jun 13 22:04:21 2012
@@ -33,6 +33,7 @@ import org.apache.openejb.assembler.clas
 import org.apache.openejb.assembler.classic.EjbJarInfo;
 import org.apache.openejb.assembler.classic.EnterpriseBeanInfo;
 import org.apache.openejb.core.WebContext;
+import org.apache.openejb.loader.SystemInstance;
 import org.apache.webbeans.annotation.AnnotationManager;
 import org.apache.webbeans.config.WebBeansContext;
 import org.apache.webbeans.decorator.DecoratorsManager;
@@ -47,6 +48,7 @@ import org.apache.webbeans.util.Annotati
  * @version $Rev:$ $Date:$
  */
 public class CdiScanner implements ScannerService {
+    public static final String OPENEJB_CDI_FILTER_CLASSLOADER = 
"openejb.cdi.filter.classloader";
 
     // TODO add all annotated class
     private final Set<Class<?>> classes = new HashSet<Class<?>>();
@@ -144,6 +146,7 @@ public class CdiScanner implements Scann
 
             // here for ears we need to skip classes in the parent classloader
             final ClassLoader scl = ClassLoader.getSystemClassLoader();
+            final boolean filterByClassLoader = 
"true".equals(SystemInstance.get().getProperty(OPENEJB_CDI_FILTER_CLASSLOADER, 
"true"));
             for (String className : beans.managedClasses) {
                 if (ejbClasses.contains(className)) continue;
                 final Class clazz = load(className, classLoader);
@@ -154,7 +157,8 @@ public class CdiScanner implements Scann
                 final ClassLoader cl = clazz.getClassLoader();
                 // 1. this classloader is the good one
                 // 2. the classloader is the appclassloader one and we are in 
the ear parent
-                if (classLoader.equals(cl) || (cl.equals(scl) && 
startupObject.getWebContext() == null)) {
+                if (!filterByClassLoader
+                        || classLoader.equals(cl) || (cl.equals(scl) && 
startupObject.getWebContext() == null)) {
                     classes.add(clazz);
                 }
             }

Modified: 
openejb/trunk/openejb/osgi/openejb-core-osgi/src/main/java/org/apache/openejb/core/osgi/impl/Activator.java
URL: 
http://svn.apache.org/viewvc/openejb/trunk/openejb/osgi/openejb-core-osgi/src/main/java/org/apache/openejb/core/osgi/impl/Activator.java?rev=1350036&r1=1350035&r2=1350036&view=diff
==============================================================================
--- 
openejb/trunk/openejb/osgi/openejb-core-osgi/src/main/java/org/apache/openejb/core/osgi/impl/Activator.java
 (original)
+++ 
openejb/trunk/openejb/osgi/openejb-core-osgi/src/main/java/org/apache/openejb/core/osgi/impl/Activator.java
 Wed Jun 13 22:04:21 2012
@@ -18,6 +18,8 @@ package org.apache.openejb.core.osgi.imp
 
 import org.apache.openejb.OpenEJB;
 import org.apache.openejb.OpenEJBException;
+import org.apache.openejb.cdi.CdiScanner;
+import org.apache.openejb.config.EjbModule;
 import org.apache.openejb.loader.OpenEJBInstance;
 import org.apache.openejb.loader.SystemInstance;
 import org.osgi.framework.BundleActivator;
@@ -57,6 +59,7 @@ public class Activator implements Bundle
         env.setProperty("openejb.deployments.classpath", "false");
         env.setProperty("openejb.nobanner", "true");
         env.setProperty("openejb.modulename.useHash", "true");
+        env.setProperty(CdiScanner.OPENEJB_CDI_FILTER_CLASSLOADER, "false"); 
// TODO: improve it reactivating it
 
         SystemInstance.init(env);
         // OptionsLog.install();


Reply via email to