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 2014/12/26 08:27:20 UTC
tomee git commit: new OWB SPI
Repository: tomee
Updated Branches:
refs/heads/develop 8e305cc42 -> cdaf95459
new OWB SPI
Project: http://git-wip-us.apache.org/repos/asf/tomee/repo
Commit: http://git-wip-us.apache.org/repos/asf/tomee/commit/cdaf9545
Tree: http://git-wip-us.apache.org/repos/asf/tomee/tree/cdaf9545
Diff: http://git-wip-us.apache.org/repos/asf/tomee/diff/cdaf9545
Branch: refs/heads/develop
Commit: cdaf95459da279f2959af964e0a38378fa3227d5
Parents: 8e305cc
Author: Romain Manni-Bucau <rm...@apache.org>
Authored: Fri Dec 26 08:25:46 2014 +0100
Committer: Romain Manni-Bucau <rm...@apache.org>
Committed: Fri Dec 26 08:25:46 2014 +0100
----------------------------------------------------------------------
.../java/org/apache/openejb/cdi/CdiEjbBean.java | 2 --
.../java/org/apache/openejb/cdi/CdiPlugin.java | 8 ++++++++
.../openejb/cdi/OptimizedLoaderService.java | 21 ++++++++++----------
tck/cdi-embedded/src/test/resources/failing.xml | 4 ++--
4 files changed, 21 insertions(+), 14 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tomee/blob/cdaf9545/container/openejb-core/src/main/java/org/apache/openejb/cdi/CdiEjbBean.java
----------------------------------------------------------------------
diff --git a/container/openejb-core/src/main/java/org/apache/openejb/cdi/CdiEjbBean.java b/container/openejb-core/src/main/java/org/apache/openejb/cdi/CdiEjbBean.java
index 14c9e56..b019779 100644
--- a/container/openejb-core/src/main/java/org/apache/openejb/cdi/CdiEjbBean.java
+++ b/container/openejb-core/src/main/java/org/apache/openejb/cdi/CdiEjbBean.java
@@ -68,8 +68,6 @@ import java.util.Set;
import java.util.concurrent.ConcurrentHashMap;
import java.util.logging.Level;
-import static java.util.Arrays.asList;
-
public class CdiEjbBean<T> extends BaseEjbBean<T> implements InterceptedMarker, DeploymentValidationService.BeanInterceptorInfoProvider {
private final Map<Integer, Object> dependentSFSBToBeRemoved = new ConcurrentHashMap<Integer, Object>();
http://git-wip-us.apache.org/repos/asf/tomee/blob/cdaf9545/container/openejb-core/src/main/java/org/apache/openejb/cdi/CdiPlugin.java
----------------------------------------------------------------------
diff --git a/container/openejb-core/src/main/java/org/apache/openejb/cdi/CdiPlugin.java b/container/openejb-core/src/main/java/org/apache/openejb/cdi/CdiPlugin.java
index a879981..1fd35e2 100644
--- a/container/openejb-core/src/main/java/org/apache/openejb/cdi/CdiPlugin.java
+++ b/container/openejb-core/src/main/java/org/apache/openejb/cdi/CdiPlugin.java
@@ -69,6 +69,9 @@ import javax.enterprise.inject.spi.PassivationCapable;
import javax.enterprise.inject.spi.Producer;
import javax.enterprise.inject.spi.SessionBeanType;
import javax.inject.Provider;
+import javax.servlet.Filter;
+import javax.servlet.Servlet;
+import javax.servlet.ServletContextListener;
import java.io.Serializable;
import java.lang.annotation.Annotation;
import java.lang.reflect.InvocationHandler;
@@ -106,6 +109,11 @@ public class CdiPlugin extends AbstractOwbPlugin implements OpenWebBeansJavaEEPl
}
}
+ @Override
+ public boolean isEEComponent(final Class<?> impl) {
+ return Servlet.class.isAssignableFrom(impl) || Filter.class.isAssignableFrom(impl) || ServletContextListener.class.isAssignableFrom(impl);
+ }
+
public void setClassLoader(final ClassLoader classLoader) {
this.classLoader = classLoader;
}
http://git-wip-us.apache.org/repos/asf/tomee/blob/cdaf9545/container/openejb-core/src/main/java/org/apache/openejb/cdi/OptimizedLoaderService.java
----------------------------------------------------------------------
diff --git a/container/openejb-core/src/main/java/org/apache/openejb/cdi/OptimizedLoaderService.java b/container/openejb-core/src/main/java/org/apache/openejb/cdi/OptimizedLoaderService.java
index 448aa3b..b8afb45 100644
--- a/container/openejb-core/src/main/java/org/apache/openejb/cdi/OptimizedLoaderService.java
+++ b/container/openejb-core/src/main/java/org/apache/openejb/cdi/OptimizedLoaderService.java
@@ -59,7 +59,7 @@ public class OptimizedLoaderService implements LoaderService {
public <T> List<T> load(final Class<T> serviceType, final ClassLoader classLoader) {
// ServiceLoader is expensive (can take up to a half second). This is an optimization
if (OpenWebBeansPlugin.class.equals(serviceType)) {
- return loadWebBeansPlugins(classLoader);
+ return (List<T>) loadWebBeansPlugins(classLoader);
}
// As far as we know, this only is reached for CDI Extension discovery
@@ -114,42 +114,43 @@ public class OptimizedLoaderService implements LoaderService {
return false;
}
- private <T> List<T> loadWebBeansPlugins(final ClassLoader loader) {
+ private List<? extends OpenWebBeansPlugin> loadWebBeansPlugins(final ClassLoader loader) {
final String[] knownPlugins = {
- "org.apache.openejb.cdi.CdiPlugin",
"org.apache.geronimo.openejb.cdi.GeronimoWebBeansPlugin"
};
final String[] loaderAwareKnownPlugins = {
"org.apache.webbeans.jsf.plugin.OpenWebBeansJsfPlugin"
};
- final List<T> list = new ArrayList<T>();
+ final List<OpenWebBeansPlugin> list = new ArrayList<>();
+ list.add(new CdiPlugin());
for (final String name : knownPlugins) {
- final Class<T> clazz;
+ final Class<?> clazz;
try {
- clazz = (Class<T>) loader.loadClass(name);
+ clazz = loader.loadClass(name);
} catch (final ClassNotFoundException e) {
// ignore
continue;
}
try {
- list.add(clazz.newInstance());
+ list.add(OpenWebBeansPlugin.class.cast(clazz.newInstance()));
} catch (final Exception e) {
log.error("Unable to load OpenWebBeansPlugin: " + name);
}
}
for (final String name : loaderAwareKnownPlugins) {
- final Class<T> clazz;
+ final Class<?> clazz;
try {
- clazz = (Class<T>) loader.loadClass(name);
+ clazz = loader.loadClass(name);
} catch (final ClassNotFoundException e) {
// ignore
continue;
}
try {
- list.add((T) Proxy.newProxyInstance(loader, new Class<?>[]{OpenWebBeansPlugin.class}, new ClassLoaderAwareHandler(clazz.getSimpleName(), clazz.newInstance(), loader)));
+ list.add(OpenWebBeansPlugin.class.cast(
+ Proxy.newProxyInstance(loader, new Class<?>[]{OpenWebBeansPlugin.class}, new ClassLoaderAwareHandler(clazz.getSimpleName(), clazz.newInstance(), loader))));
} catch (final Exception e) {
log.error("Unable to load OpenWebBeansPlugin: " + name);
}
http://git-wip-us.apache.org/repos/asf/tomee/blob/cdaf9545/tck/cdi-embedded/src/test/resources/failing.xml
----------------------------------------------------------------------
diff --git a/tck/cdi-embedded/src/test/resources/failing.xml b/tck/cdi-embedded/src/test/resources/failing.xml
index 95b92ed..992f984 100644
--- a/tck/cdi-embedded/src/test/resources/failing.xml
+++ b/tck/cdi-embedded/src/test/resources/failing.xml
@@ -20,9 +20,9 @@
<!-- runner helping properties
-Dopenejb.cdi.filter.classloader=false -Dorg.apache.openejb.assembler.classic.WebAppBuilder=org.apache.openejb.web.LightweightWebAppBuilder -Dopenejb.cdi.debug=true -Dopenejb.http.mock-request=true
-->
- <classes><!-- org.jboss.cdi.tck.tests.event.fires.FireEventTest, org.jboss.cdi.tck.tests.extensions.lifecycle.processInjectionPoint.ProcessInjectionPointFiredTest -->
+ <classes><!-- org.jboss.cdi.tck.tests.event.fires.FireEventTest -->
<!--<class name="org.jboss.cdi.tck.tests.context.application.async.ApplicationContextAsyncListenerTest" />-->
- <class name="org.jboss.cdi.tck.tests.extensions.beanManager.beanAttributes.CreateBeanAttributesTest" />
+ <class name="org.jboss.cdi.tck.tests.extensions.lifecycle.processInjectionPoint.ProcessInjectionPointFiredTest" />
</classes>
</test>
</suite>