Return-Path: X-Original-To: apmail-tomee-commits-archive@www.apache.org Delivered-To: apmail-tomee-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 9032A10B65 for ; Wed, 11 Mar 2015 11:56:18 +0000 (UTC) Received: (qmail 60832 invoked by uid 500); 11 Mar 2015 11:56:18 -0000 Delivered-To: apmail-tomee-commits-archive@tomee.apache.org Received: (qmail 60748 invoked by uid 500); 11 Mar 2015 11:56:18 -0000 Mailing-List: contact commits-help@tomee.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@tomee.apache.org Delivered-To: mailing list commits@tomee.apache.org Received: (qmail 60339 invoked by uid 99); 11 Mar 2015 11:56:18 -0000 Received: from git1-us-west.apache.org (HELO git1-us-west.apache.org) (140.211.11.23) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 11 Mar 2015 11:56:18 +0000 Received: by git1-us-west.apache.org (ASF Mail Server at git1-us-west.apache.org, from userid 33) id 8E420E1823; Wed, 11 Mar 2015 11:56:17 +0000 (UTC) Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: struberg@apache.org To: commits@tomee.apache.org Date: Wed, 11 Mar 2015 11:56:25 -0000 Message-Id: In-Reply-To: <0cd99567087e471b904df9da03d0c0e2@git.apache.org> References: <0cd99567087e471b904df9da03d0c0e2@git.apache.org> X-Mailer: ASF-Git Admin Mailer Subject: [09/50] tomee git commit: trying to honor java:module even with a faked managed bean test class trying to honor java:module even with a faked managed bean test class Project: http://git-wip-us.apache.org/repos/asf/tomee/repo Commit: http://git-wip-us.apache.org/repos/asf/tomee/commit/d464d6b0 Tree: http://git-wip-us.apache.org/repos/asf/tomee/tree/d464d6b0 Diff: http://git-wip-us.apache.org/repos/asf/tomee/diff/d464d6b0 Branch: refs/heads/master Commit: d464d6b047cbe847f421b38335603e5f1217f1df Parents: aa4cfc3 Author: Romain Manni-Bucau Authored: Thu Mar 5 00:29:07 2015 +0100 Committer: Romain Manni-Bucau Committed: Thu Mar 5 00:29:07 2015 +0100 ---------------------------------------------------------------------- .../openejb/OpenEJBArchiveProcessor.java | 4 ++- .../openejb/OpenEJBDeployableContainer.java | 28 ++++++++++++++++++++ .../openejb/ExceptionInjectionTest.java | 6 ++--- .../assembler/classic/EjbJarBuilder.java | 5 +++- .../apache/openejb/core/ivm/ContextHandler.java | 11 ++++++++ 5 files changed, 49 insertions(+), 5 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/tomee/blob/d464d6b0/arquillian/arquillian-openejb-embedded-5/src/main/java/org/apache/openejb/arquillian/openejb/OpenEJBArchiveProcessor.java ---------------------------------------------------------------------- diff --git a/arquillian/arquillian-openejb-embedded-5/src/main/java/org/apache/openejb/arquillian/openejb/OpenEJBArchiveProcessor.java b/arquillian/arquillian-openejb-embedded-5/src/main/java/org/apache/openejb/arquillian/openejb/OpenEJBArchiveProcessor.java index 1d6c72f..1a75a69 100644 --- a/arquillian/arquillian-openejb-embedded-5/src/main/java/org/apache/openejb/arquillian/openejb/OpenEJBArchiveProcessor.java +++ b/arquillian/arquillian-openejb-embedded-5/src/main/java/org/apache/openejb/arquillian/openejb/OpenEJBArchiveProcessor.java @@ -232,7 +232,8 @@ public class OpenEJBArchiveProcessor { // add the test as a managed bean to be able to inject into it easily final Map testDD; if (javaClass != null) { - testDD = addTestClassAsManagedBean(javaClass, tempClassLoader, appModule).getAltDDs(); + final EjbModule testEjbModule = addTestClassAsManagedBean(javaClass, tempClassLoader, appModule); + testDD = testEjbModule.getAltDDs(); } else { testDD = new HashMap<>(); // ignore } @@ -306,6 +307,7 @@ public class OpenEJBArchiveProcessor { ejbDeployment.setDeploymentId(ejbName); final EjbModule e = new EjbModule(ejbJar, openejbJar); e.getProperties().setProperty("openejb.cdi.activated", "false"); + e.getProperties().setProperty("openejb.test.module", "true"); e.setBeans(new Beans()); e.setClassLoader(tempClassLoader); appModule.getEjbModules().add(e); http://git-wip-us.apache.org/repos/asf/tomee/blob/d464d6b0/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 bc699ac..0b917cd 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 @@ -17,6 +17,8 @@ package org.apache.openejb.arquillian.openejb; import org.apache.openejb.AppContext; +import org.apache.openejb.BeanContext; +import org.apache.openejb.ModuleTestContext; import org.apache.openejb.OpenEJB; import org.apache.openejb.OpenEJBRuntimeException; import org.apache.openejb.OpenEjbContainer; @@ -35,6 +37,7 @@ 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.sun.BeanCache; import org.apache.openejb.loader.IO; import org.apache.openejb.loader.SystemInstance; import org.apache.openejb.web.LightweightWebAppBuilder; @@ -65,6 +68,8 @@ import java.io.ByteArrayInputStream; import java.io.Closeable; import java.io.IOException; import java.util.Collection; +import java.util.Iterator; +import java.util.List; import java.util.Map; import java.util.Properties; import java.util.concurrent.ConcurrentHashMap; @@ -219,6 +224,29 @@ public class OpenEJBDeployableContainer implements DeployableContainer beanContexts = info.appCtx.getBeanContexts(); + if (beanContexts.size() > 1) { + final Iterator it = beanContexts.iterator(); + while (it.hasNext()) { + final BeanContext next = it.next(); + if (ModuleTestContext.class.isInstance(next.getModuleContext()) && BeanContext.Comp.class != next.getBeanClass()) { + for (final BeanContext b : beanContexts) { + if (b.getModuleContext() != next.getModuleContext()) { + ModuleTestContext.class.cast(next.getModuleContext()) + .setModuleJndiContextOverride(b.getModuleContext().getModuleJndiContext()); + break; + } + } + break; + } + } + } + } + servletContextProducer.set(info.appServletContext); sessionProducer.set(info.appSession); appInfoProducer.set(info.appInfo); http://git-wip-us.apache.org/repos/asf/tomee/blob/d464d6b0/arquillian/arquillian-openejb-embedded-5/src/test/java/org/apache/openejb/arquillian/openejb/ExceptionInjectionTest.java ---------------------------------------------------------------------- diff --git a/arquillian/arquillian-openejb-embedded-5/src/test/java/org/apache/openejb/arquillian/openejb/ExceptionInjectionTest.java b/arquillian/arquillian-openejb-embedded-5/src/test/java/org/apache/openejb/arquillian/openejb/ExceptionInjectionTest.java index efa6d20..bab0830 100644 --- a/arquillian/arquillian-openejb-embedded-5/src/test/java/org/apache/openejb/arquillian/openejb/ExceptionInjectionTest.java +++ b/arquillian/arquillian-openejb-embedded-5/src/test/java/org/apache/openejb/arquillian/openejb/ExceptionInjectionTest.java @@ -16,7 +16,7 @@ */ package org.apache.openejb.arquillian.openejb; -import org.apache.webbeans.exception.WebBeansConfigurationException; +import org.apache.webbeans.exception.WebBeansDeploymentException; import org.jboss.arquillian.container.spi.client.container.DeploymentException; import org.jboss.arquillian.container.test.api.Deployment; import org.jboss.arquillian.container.test.api.ShouldThrowException; @@ -39,10 +39,10 @@ public class ExceptionInjectionTest { private DeploymentException de; @ArquillianResource - private WebBeansConfigurationException owbException; + private WebBeansDeploymentException owbException; @ArquillianResource - private javax.enterprise.inject.spi.DeploymentException oejbException; + private DeploymentException oejbException; @Deployment(testable = false) @ShouldThrowException(javax.enterprise.inject.spi.DeploymentException.class) http://git-wip-us.apache.org/repos/asf/tomee/blob/d464d6b0/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/EjbJarBuilder.java ---------------------------------------------------------------------- diff --git a/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/EjbJarBuilder.java b/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/EjbJarBuilder.java index 68c14a3..0accb01 100644 --- a/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/EjbJarBuilder.java +++ b/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/EjbJarBuilder.java @@ -22,6 +22,7 @@ import org.apache.openejb.BeanContext; import org.apache.openejb.Container; import org.apache.openejb.Injection; import org.apache.openejb.ModuleContext; +import org.apache.openejb.ModuleTestContext; import org.apache.openejb.OpenEJBException; import org.apache.openejb.util.Messages; @@ -54,7 +55,9 @@ public class EjbJarBuilder { final HashMap deployments = new HashMap(); - final ModuleContext moduleContext = new ModuleContext(ejbJar.moduleName, ejbJar.moduleUri, ejbJar.uniqueId, context, moduleJndiContext, classLoader); + final ModuleContext moduleContext = !ejbJar.properties.containsKey("openejb.test.module") ? + new ModuleContext(ejbJar.moduleName, ejbJar.moduleUri, ejbJar.uniqueId, context, moduleJndiContext, classLoader) : + new ModuleTestContext(ejbJar.moduleName, ejbJar.moduleUri, ejbJar.uniqueId, context, moduleJndiContext, classLoader); moduleContext.getProperties().putAll(ejbJar.properties); final InterceptorBindingBuilder interceptorBindingBuilder = new InterceptorBindingBuilder(classLoader, ejbJar); http://git-wip-us.apache.org/repos/asf/tomee/blob/d464d6b0/container/openejb-core/src/main/java/org/apache/openejb/core/ivm/ContextHandler.java ---------------------------------------------------------------------- diff --git a/container/openejb-core/src/main/java/org/apache/openejb/core/ivm/ContextHandler.java b/container/openejb-core/src/main/java/org/apache/openejb/core/ivm/ContextHandler.java index d62c592..b86aa9b 100644 --- a/container/openejb-core/src/main/java/org/apache/openejb/core/ivm/ContextHandler.java +++ b/container/openejb-core/src/main/java/org/apache/openejb/core/ivm/ContextHandler.java @@ -17,6 +17,7 @@ package org.apache.openejb.core.ivm; +import org.apache.openejb.core.ThreadContext; import org.apache.openejb.core.ivm.naming.ContextWrapper; import org.apache.openejb.loader.SystemInstance; import org.apache.openejb.spi.ContainerSystem; @@ -80,6 +81,16 @@ public class ContextHandler extends ContextWrapper { } catch (final NameNotFoundException nnfe2) { // ignore, let it be thrown } + try { + final ThreadContext threadContext = ThreadContext.getThreadContext(); + if (threadContext != null) { + return threadContext.getBeanContext() + .getModuleContext().getModuleJndiContext() + .lookup(name); + } + } catch (final Exception nnfe3) { + // ignore, let it be thrown + } throw nnfe; } }