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;
+ }
+ }
}