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/29 14:45:27 UTC

[2/3] tomee git commit: right types for HttpServletRequest

right types for HttpServletRequest


Project: http://git-wip-us.apache.org/repos/asf/tomee/repo
Commit: http://git-wip-us.apache.org/repos/asf/tomee/commit/bbd6bbe4
Tree: http://git-wip-us.apache.org/repos/asf/tomee/tree/bbd6bbe4
Diff: http://git-wip-us.apache.org/repos/asf/tomee/diff/bbd6bbe4

Branch: refs/heads/develop
Commit: bbd6bbe41536063583cf165716b20ef34882998f
Parents: 3b0bc94
Author: Romain Manni-Bucau <rm...@apache.org>
Authored: Mon Dec 29 14:38:27 2014 +0100
Committer: Romain Manni-Bucau <rm...@apache.org>
Committed: Mon Dec 29 14:38:27 2014 +0100

----------------------------------------------------------------------
 .../apache/openejb/cdi/OpenEJBLifecycle.java    | 25 ++++++++++++++++----
 tck/cdi-embedded/src/test/resources/failing.xml |  2 +-
 2 files changed, 22 insertions(+), 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tomee/blob/bbd6bbe4/container/openejb-core/src/main/java/org/apache/openejb/cdi/OpenEJBLifecycle.java
----------------------------------------------------------------------
diff --git a/container/openejb-core/src/main/java/org/apache/openejb/cdi/OpenEJBLifecycle.java b/container/openejb-core/src/main/java/org/apache/openejb/cdi/OpenEJBLifecycle.java
index 142b107..d982a8c 100644
--- a/container/openejb-core/src/main/java/org/apache/openejb/cdi/OpenEJBLifecycle.java
+++ b/container/openejb-core/src/main/java/org/apache/openejb/cdi/OpenEJBLifecycle.java
@@ -61,10 +61,13 @@ import javax.servlet.jsp.JspApplicationContext;
 import javax.servlet.jsp.JspFactory;
 import java.io.ObjectStreamException;
 import java.io.Serializable;
+import java.lang.reflect.Type;
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.Collections;
+import java.util.HashSet;
 import java.util.Properties;
+import java.util.Set;
 import java.util.concurrent.Executors;
 import java.util.concurrent.ScheduledExecutorService;
 import java.util.concurrent.ThreadFactory;
@@ -246,10 +249,7 @@ public class OpenEJBLifecycle implements ContainerLifecycle {
         beanManager.getInjectionResolver().clearCaches();
 
         if (!hasBean(beanManager, HttpServletRequest.class)) {
-            beanManager.addInternalBean(new InternalBean<>(webBeansContext, HttpServletRequest.class, HttpServletRequest.class));
-        }
-        if (!hasBean(beanManager, ServletRequest.class)) {
-            beanManager.addInternalBean(new InternalBean<>(webBeansContext, ServletRequest.class, HttpServletRequest.class));
+            beanManager.addInternalBean(new HttpServletRequestBean(webBeansContext));
         }
         if (!hasBean(beanManager, HttpSession.class)) {
             beanManager.addInternalBean(new InternalBean<>(webBeansContext, HttpSession.class, HttpSession.class));
@@ -465,6 +465,23 @@ public class OpenEJBLifecycle implements ContainerLifecycle {
         }
     }
 
+    public static class HttpServletRequestBean extends InternalBean<HttpServletRequest> {
+        private final Set<Type> types;
+
+        protected HttpServletRequestBean(final WebBeansContext webBeansContext) {
+            super(webBeansContext, HttpServletRequest.class, HttpServletRequest.class);
+            this.types = new HashSet<>(); // here we need 2 types (+Object) otherwise decoratione etc fails
+            this.types.add(HttpServletRequest.class);
+            this.types.add(ServletRequest.class);
+            this.types.add(Object.class);
+        }
+
+        @Override
+        public Set<Type> getTypes() {
+            return types;
+        }
+    }
+
     private static class OpenEJBComponentProvider<T> implements Provider<T>, Serializable {
         private Class<?> type;
         private transient WebBeansContext webBeansContext;

http://git-wip-us.apache.org/repos/asf/tomee/blob/bbd6bbe4/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 ad0858d..fbbb50c 100644
--- a/tck/cdi-embedded/src/test/resources/failing.xml
+++ b/tck/cdi-embedded/src/test/resources/failing.xml
@@ -26,7 +26,7 @@
     -Dopenejb.deploymentId.format={appId}/{ejbJarId}/{ejbName}
     -->
     <classes>
-      <class name="org.jboss.cdi.tck.tests.context.conversation.ClientConversationContextTest" />
+      <class name="org.jboss.cdi.tck.tests.decorators.builtin.http.servletcontext.BuiltinServletContextDecoratorTest" />
     </classes>
   </test>
 </suite>