Author: rmannibucau Date: Sun Jun 1 22:09:45 2014 New Revision: 1599067 URL: http://svn.apache.org/r1599067 Log: TOMEE-1234 setting classloader for tomee embedded too
Added: tomee/tomee/trunk/arquillian/arquillian-common/src/main/java/org/apache/openejb/arquillian/common/TestObserver.java - copied, changed from r1598986, tomee/tomee/trunk/arquillian/arquillian-openejb-embedded-4/src/main/java/org/apache/openejb/arquillian/openejb/TestObserver.java Removed: tomee/tomee/trunk/arquillian/arquillian-openejb-embedded-4/src/main/java/org/apache/openejb/arquillian/openejb/TestObserver.java Modified: tomee/tomee/trunk/arquillian/arquillian-openejb-embedded-4/src/main/java/org/apache/openejb/arquillian/openejb/OpenEJBExtension.java tomee/tomee/trunk/arquillian/arquillian-tomee-embedded/src/main/java/org/apache/openejb/arquillian/embedded/EmbeddedTomEEContainer.java tomee/tomee/trunk/arquillian/arquillian-tomee-embedded/src/main/java/org/apache/openejb/arquillian/embedded/EmbeddedTomEEExtension.java Copied: tomee/tomee/trunk/arquillian/arquillian-common/src/main/java/org/apache/openejb/arquillian/common/TestObserver.java (from r1598986, tomee/tomee/trunk/arquillian/arquillian-openejb-embedded-4/src/main/java/org/apache/openejb/arquillian/openejb/TestObserver.java) URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/arquillian/arquillian-common/src/main/java/org/apache/openejb/arquillian/common/TestObserver.java?p2=tomee/tomee/trunk/arquillian/arquillian-common/src/main/java/org/apache/openejb/arquillian/common/TestObserver.java&p1=tomee/tomee/trunk/arquillian/arquillian-openejb-embedded-4/src/main/java/org/apache/openejb/arquillian/openejb/TestObserver.java&r1=1598986&r2=1599067&rev=1599067&view=diff ============================================================================== --- tomee/tomee/trunk/arquillian/arquillian-openejb-embedded-4/src/main/java/org/apache/openejb/arquillian/openejb/TestObserver.java (original) +++ tomee/tomee/trunk/arquillian/arquillian-common/src/main/java/org/apache/openejb/arquillian/common/TestObserver.java Sun Jun 1 22:09:45 2014 @@ -14,8 +14,9 @@ * See the License for the specific language governing permissions and * limitations under the License. */ -package org.apache.openejb.arquillian.openejb; +package org.apache.openejb.arquillian.common; +import org.apache.openejb.AppContext; import org.apache.openejb.BeanContext; import org.apache.openejb.core.ThreadContext; import org.apache.openejb.loader.SystemInstance; @@ -81,7 +82,14 @@ public class TestObserver { } private BeanContext beanContext() { - return SystemInstance.get().getComponent(ContainerSystem.class) - .getBeanContext(testClass.get().getName()); + final String className = testClass.get().getName(); + final ContainerSystem containerSystem = SystemInstance.get().getComponent(ContainerSystem.class); + for (final AppContext app : containerSystem.getAppContexts()) { + final BeanContext context = containerSystem.getBeanContext(app.getId() + "_" + className); + if (context != null) { + return context; + } + } + return null; } } Modified: tomee/tomee/trunk/arquillian/arquillian-openejb-embedded-4/src/main/java/org/apache/openejb/arquillian/openejb/OpenEJBExtension.java URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/arquillian/arquillian-openejb-embedded-4/src/main/java/org/apache/openejb/arquillian/openejb/OpenEJBExtension.java?rev=1599067&r1=1599066&r2=1599067&view=diff ============================================================================== --- tomee/tomee/trunk/arquillian/arquillian-openejb-embedded-4/src/main/java/org/apache/openejb/arquillian/openejb/OpenEJBExtension.java (original) +++ tomee/tomee/trunk/arquillian/arquillian-openejb-embedded-4/src/main/java/org/apache/openejb/arquillian/openejb/OpenEJBExtension.java Sun Jun 1 22:09:45 2014 @@ -17,6 +17,7 @@ package org.apache.openejb.arquillian.openejb; import org.apache.openejb.arquillian.common.ArquillianUtil; +import org.apache.openejb.arquillian.common.TestObserver; import org.apache.openejb.arquillian.common.deployment.DeploymentExceptionObserver; import org.apache.openejb.arquillian.common.deployment.DeploymentExceptionProvider; import org.apache.openejb.arquillian.transaction.OpenEJBTransactionProvider; Modified: tomee/tomee/trunk/arquillian/arquillian-tomee-embedded/src/main/java/org/apache/openejb/arquillian/embedded/EmbeddedTomEEContainer.java URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/arquillian/arquillian-tomee-embedded/src/main/java/org/apache/openejb/arquillian/embedded/EmbeddedTomEEContainer.java?rev=1599067&r1=1599066&r2=1599067&view=diff ============================================================================== --- tomee/tomee/trunk/arquillian/arquillian-tomee-embedded/src/main/java/org/apache/openejb/arquillian/embedded/EmbeddedTomEEContainer.java (original) +++ tomee/tomee/trunk/arquillian/arquillian-tomee-embedded/src/main/java/org/apache/openejb/arquillian/embedded/EmbeddedTomEEContainer.java Sun Jun 1 22:09:45 2014 @@ -23,6 +23,7 @@ import org.apache.openejb.arquillian.com import org.apache.openejb.assembler.classic.AppInfo; import org.apache.openejb.config.AdditionalBeanDiscoverer; import org.apache.openejb.loader.SystemInstance; +import org.apache.openejb.spi.ContainerSystem; import org.apache.tomee.embedded.Configuration; import org.apache.tomee.embedded.Container; import org.apache.webbeans.config.WebBeansContext; @@ -33,6 +34,10 @@ import org.jboss.arquillian.container.sp 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.core.api.InstanceProducer; +import org.jboss.arquillian.core.api.annotation.Inject; +import org.jboss.arquillian.test.spi.annotation.SuiteScoped; +import org.jboss.arquillian.test.spi.annotation.TestScoped; import org.jboss.shrinkwrap.api.Archive; import javax.enterprise.context.ConversationScoped; @@ -51,6 +56,10 @@ public class EmbeddedTomEEContainer exte private Container container; + @Inject + @SuiteScoped + private InstanceProducer<ClassLoader> classLoader; + @Override public Class<EmbeddedTomEEConfiguration> getConfigurationClass() { return EmbeddedTomEEConfiguration.class; @@ -139,6 +148,8 @@ public class EmbeddedTomEEContainer exte startCdiContexts(name); // ensure tests can use request/session scopes even if we don't have a request + classLoader.set(SystemInstance.get().getComponent(ContainerSystem.class).getAppContext(info.appId).getClassLoader()); + return new ProtocolMetaData().addContext(httpContext); } catch (final Exception e) { e.printStackTrace(); Modified: tomee/tomee/trunk/arquillian/arquillian-tomee-embedded/src/main/java/org/apache/openejb/arquillian/embedded/EmbeddedTomEEExtension.java URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/arquillian/arquillian-tomee-embedded/src/main/java/org/apache/openejb/arquillian/embedded/EmbeddedTomEEExtension.java?rev=1599067&r1=1599066&r2=1599067&view=diff ============================================================================== --- tomee/tomee/trunk/arquillian/arquillian-tomee-embedded/src/main/java/org/apache/openejb/arquillian/embedded/EmbeddedTomEEExtension.java (original) +++ tomee/tomee/trunk/arquillian/arquillian-tomee-embedded/src/main/java/org/apache/openejb/arquillian/embedded/EmbeddedTomEEExtension.java Sun Jun 1 22:09:45 2014 @@ -19,6 +19,7 @@ package org.apache.openejb.arquillian.em import org.apache.openejb.arquillian.common.ArquillianUtil; import org.apache.openejb.arquillian.common.RemoteInitialContextObserver; +import org.apache.openejb.arquillian.common.TestObserver; import org.apache.openejb.arquillian.common.TomEEInjectionEnricher; import org.apache.openejb.arquillian.common.deployment.DeploymentExceptionObserver; import org.apache.openejb.arquillian.common.deployment.DeploymentExceptionProvider; @@ -38,6 +39,7 @@ public class EmbeddedTomEEExtension impl builder.service(DeployableContainer.class, EmbeddedTomEEContainer.class) .observer(DeploymentExceptionObserver.class) .observer(RemoteInitialContextObserver.class) + .observer(TestObserver.class) .service(TestEnricher.class, TomEEInjectionEnricher.class) .service(TransactionProvider.class, OpenEJBTransactionProvider.class) .service(ResourceProvider.class, DeploymentExceptionProvider.class);