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>