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/23 18:01:59 UTC

[1/2] tomee git commit: adding servlets in arquillian HTTPContext

Repository: tomee
Updated Branches:
  refs/heads/develop 74877b290 -> 7b293f9e8


adding servlets in arquillian HTTPContext


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

Branch: refs/heads/develop
Commit: dcae75e53466fb63d540e26faff1b2ed3a8c5bb4
Parents: 74877b2
Author: Romain Manni-Bucau <rm...@apache.org>
Authored: Tue Dec 23 17:47:00 2014 +0100
Committer: Romain Manni-Bucau <rm...@apache.org>
Committed: Tue Dec 23 17:47:00 2014 +0100

----------------------------------------------------------------------
 .../openejb/OpenEJBDeployableContainer.java     | 29 +++++++++++++++++++-
 tck/cdi-embedded/src/test/resources/failing.xml |  2 +-
 2 files changed, 29 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tomee/blob/dcae75e5/arquillian/arquillian-openejb-embedded-5/src/main/java/org/apache/openejb/arquillian/openejb/OpenEJBDeployableContainer.java
----------------------------------------------------------------------
diff --git a/arquillian/arquillian-openejb-embedded-5/src/main/java/org/apache/openejb/arquillian/openejb/OpenEJBDeployableContainer.java b/arquillian/arquillian-openejb-embedded-5/src/main/java/org/apache/openejb/arquillian/openejb/OpenEJBDeployableContainer.java
index 98c75f7..17875fa 100644
--- a/arquillian/arquillian-openejb-embedded-5/src/main/java/org/apache/openejb/arquillian/openejb/OpenEJBDeployableContainer.java
+++ b/arquillian/arquillian-openejb-embedded-5/src/main/java/org/apache/openejb/arquillian/openejb/OpenEJBDeployableContainer.java
@@ -24,14 +24,18 @@ import org.apache.openejb.arquillian.common.ArquillianUtil;
 import org.apache.openejb.arquillian.openejb.server.ServiceManagers;
 import org.apache.openejb.assembler.classic.AppInfo;
 import org.apache.openejb.assembler.classic.Assembler;
+import org.apache.openejb.assembler.classic.ClassListInfo;
 import org.apache.openejb.assembler.classic.OpenEjbConfigurationFactory;
+import org.apache.openejb.assembler.classic.ServletInfo;
 import org.apache.openejb.assembler.classic.WebAppBuilder;
+import org.apache.openejb.assembler.classic.WebAppInfo;
 import org.apache.openejb.config.AppModule;
 import org.apache.openejb.config.ConfigurationFactory;
 import org.apache.openejb.config.DeploymentFilterable;
 import org.apache.openejb.config.WebModule;
 import org.apache.openejb.core.LocalInitialContext;
 import org.apache.openejb.core.LocalInitialContextFactory;
+import org.apache.openejb.jee.WebApp;
 import org.apache.openejb.loader.IO;
 import org.apache.openejb.loader.SystemInstance;
 import org.apache.openejb.web.LightweightWebAppBuilder;
@@ -41,7 +45,9 @@ import org.jboss.arquillian.container.spi.client.container.DeployableContainer;
 import org.jboss.arquillian.container.spi.client.container.DeploymentException;
 import org.jboss.arquillian.container.spi.client.container.LifecycleException;
 import org.jboss.arquillian.container.spi.client.protocol.ProtocolDescription;
+import org.jboss.arquillian.container.spi.client.protocol.metadata.HTTPContext;
 import org.jboss.arquillian.container.spi.client.protocol.metadata.ProtocolMetaData;
+import org.jboss.arquillian.container.spi.client.protocol.metadata.Servlet;
 import org.jboss.arquillian.container.spi.context.annotation.DeploymentScoped;
 import org.jboss.arquillian.core.api.Instance;
 import org.jboss.arquillian.core.api.InstanceProducer;
@@ -208,10 +214,11 @@ public class OpenEJBDeployableContainer implements DeployableContainer<OpenEJBCo
 
     @Override
     public ProtocolMetaData deploy(final Archive<?> archive) throws DeploymentException {
+        final DeploymentInfo info;
         try {
             final Closeables cl = new Closeables();
             closeablesProducer.set(cl);
-            final DeploymentInfo info = quickDeploy(archive, testClass.get(), cl);
+            info = quickDeploy(archive, testClass.get(), cl);
 
             servletContextProducer.set(info.appServletContext);
             sessionProducer.set(info.appSession);
@@ -226,6 +233,26 @@ public class OpenEJBDeployableContainer implements DeployableContainer<OpenEJBCo
         // if service manager is started allow @ArquillianResource URL injection
         if (PROPERTIES.containsKey(OpenEjbContainer.OPENEJB_EMBEDDED_REMOTABLE)) {
             final ProtocolMetaData metaData = ServiceManagers.protocolMetaData(appInfoProducer.get());
+            HTTPContext http = null;
+            for (final WebAppInfo webapp : info.appInfo.webApps) {
+                for (final ServletInfo servletInfo : webapp.servlets) {
+                    if (http == null) {
+                        http = HTTPContext.class.cast(metaData.getContexts().iterator().next());
+                        http.add(new Servlet(servletInfo.servletName, webapp.contextRoot));
+                    }
+                }
+                for (final ClassListInfo classListInfo : webapp.webAnnotatedClasses) {
+                    for (final String path : classListInfo.list) {
+                        if (!path.contains("!")) {
+                            continue;
+                        }
+                        if (http == null) {
+                            http = HTTPContext.class.cast(metaData.getContexts().iterator().next());
+                            http.add(new Servlet(path.substring(path.lastIndexOf('!') + 2).replace(".class", "").replace("/", "."), webapp.contextRoot));
+                        }
+                    }
+                }
+            }
             if (metaData != null) {
                 return metaData;
             }

http://git-wip-us.apache.org/repos/asf/tomee/blob/dcae75e5/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 9667973..56d4e5d 100644
--- a/tck/cdi-embedded/src/test/resources/failing.xml
+++ b/tck/cdi-embedded/src/test/resources/failing.xml
@@ -18,7 +18,7 @@
 <suite name="CDI TCK" verbose="0">
   <test name="CDI TCK">
     <classes>
-      <class name="org.jboss.cdi.tck.tests.lookup.modules.EnabledSessionBeanInjectionAvailabilityTest" />
+      <class name="org.jboss.cdi.tck.tests.context.request.event.RequestScopeEventTest" />
     </classes>
   </test>
 </suite>


[2/2] tomee git commit: @Initialized(RequestScoped.class) @Destroyed(RequestScoped.class)

Posted by rm...@apache.org.
@Initialized(RequestScoped.class) @Destroyed(RequestScoped.class)


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

Branch: refs/heads/develop
Commit: 7b293f9e8eede8b10d065ce90d462700b7d4b8f7
Parents: dcae75e
Author: Romain Manni-Bucau <rm...@apache.org>
Authored: Tue Dec 23 18:01:40 2014 +0100
Committer: Romain Manni-Bucau <rm...@apache.org>
Committed: Tue Dec 23 18:01:40 2014 +0100

----------------------------------------------------------------------
 .../openejb/cdi/CdiAppContextsService.java      | 40 ++++++++++++++++++++
 1 file changed, 40 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tomee/blob/7b293f9e/container/openejb-core/src/main/java/org/apache/openejb/cdi/CdiAppContextsService.java
----------------------------------------------------------------------
diff --git a/container/openejb-core/src/main/java/org/apache/openejb/cdi/CdiAppContextsService.java b/container/openejb-core/src/main/java/org/apache/openejb/cdi/CdiAppContextsService.java
index 79bb6fa..0e6db75 100644
--- a/container/openejb-core/src/main/java/org/apache/openejb/cdi/CdiAppContextsService.java
+++ b/container/openejb-core/src/main/java/org/apache/openejb/cdi/CdiAppContextsService.java
@@ -42,10 +42,14 @@ import javax.enterprise.context.ContextException;
 import javax.enterprise.context.Conversation;
 import javax.enterprise.context.ConversationScoped;
 import javax.enterprise.context.Dependent;
+import javax.enterprise.context.Destroyed;
+import javax.enterprise.context.Initialized;
 import javax.enterprise.context.RequestScoped;
 import javax.enterprise.context.SessionScoped;
 import javax.enterprise.context.spi.Context;
+import javax.enterprise.util.AnnotationLiteral;
 import javax.inject.Singleton;
+import javax.servlet.ServletRequest;
 import javax.servlet.ServletRequestEvent;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpSession;
@@ -252,6 +256,8 @@ public class CdiAppContextsService extends AbstractContextsService implements Co
             final HttpServletRequest request = (HttpServletRequest) event.getServletRequest();
             ((ServletRequestContext) rq).setServletRequest(request);
 
+            webBeansContext.getBeanManagerImpl().fireEvent(request, InitializedLiteral.REQUEST);
+
             if (request != null) {
                 //Re-initialize thread local for session
                 final HttpSession session = request.getSession(false);
@@ -276,6 +282,7 @@ public class CdiAppContextsService extends AbstractContextsService implements Co
 
         //Destroy context
         if (context != null) {
+            webBeansContext.getBeanManagerImpl().fireEvent(ServletRequestContext.class.cast(context).getServletRequest(), DestroyedLiteral.REQUEST);
             context.destroy();
         }
 
@@ -341,6 +348,8 @@ public class CdiAppContextsService extends AbstractContextsService implements Co
 
         //Set thread local
         sessionContext.set(currentSessionContext);
+
+        webBeansContext.getBeanManagerImpl().fireEvent(session, InitializedLiteral.SESSION);
     }
 
     private SessionContext newSessionContext(final HttpSession session) {
@@ -377,6 +386,7 @@ public class CdiAppContextsService extends AbstractContextsService implements Co
             if (context != null) {
                 context.destroy();
             }
+            webBeansContext.getBeanManagerImpl().fireEvent(session, DestroyedLiteral.SESSION);
 
             //Clear thread locals
             sessionContext.set(null);
@@ -558,4 +568,34 @@ public class CdiAppContextsService extends AbstractContextsService implements Co
             this.conversation = conversation;
         }
     }
+
+    public static class InitializedLiteral extends AnnotationLiteral<Initialized> implements Initialized {
+        private static final InitializedLiteral REQUEST = new InitializedLiteral(RequestScoped.class);
+        private static final InitializedLiteral SESSION = new InitializedLiteral(SessionScoped.class);
+
+        private final Class<? extends Annotation> value;
+
+        public InitializedLiteral(final Class<? extends Annotation> value) {
+            this.value = value;
+        }
+
+        public Class<? extends Annotation> value() {
+            return value;
+        }
+    }
+
+    public static class DestroyedLiteral extends AnnotationLiteral<Destroyed> implements Destroyed {
+        private static final DestroyedLiteral REQUEST = new DestroyedLiteral(RequestScoped.class);
+        private static final DestroyedLiteral SESSION = new DestroyedLiteral(SessionScoped.class);
+
+        private final Class<? extends Annotation> value;
+
+        public DestroyedLiteral(final Class<? extends Annotation> value) {
+            this.value = value;
+        }
+
+        public Class<? extends Annotation> value() {
+            return value;
+        }
+    }
 }