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/06/14 00:04:21 UTC

svn commit: r1350036 - in /openejb/trunk/openejb: container/openejb-core/src/main/java/org/apache/openejb/cdi/CdiScanner.java osgi/openejb-core-osgi/src/main/java/org/apache/openejb/core/osgi/impl/Activator.java

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();