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