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/09/24 19:29:22 UTC
svn commit: r1627369 - in /tomee/tomee/branches/tomee-1.7.x/arquillian:
arquillian-tomee-common/src/main/java/org/apache/openejb/arquillian/common/
arquillian-tomee-embedded/src/test/java/org/apache/openejb/arquillian/embedded/
Author: rmannibucau
Date: Wed Sep 24 17:29:22 2014
New Revision: 1627369
URL: http://svn.apache.org/r1627369
Log:
TOMEE-1359 complete backport of trunk fix in TomEEInjectionEnricher - sorry, not sure what happent
Modified:
tomee/tomee/branches/tomee-1.7.x/arquillian/arquillian-tomee-common/src/main/java/org/apache/openejb/arquillian/common/TomEEInjectionEnricher.java
tomee/tomee/branches/tomee-1.7.x/arquillian/arquillian-tomee-embedded/src/test/java/org/apache/openejb/arquillian/embedded/MultipleDeploymentsTest.java
Modified: tomee/tomee/branches/tomee-1.7.x/arquillian/arquillian-tomee-common/src/main/java/org/apache/openejb/arquillian/common/TomEEInjectionEnricher.java
URL: http://svn.apache.org/viewvc/tomee/tomee/branches/tomee-1.7.x/arquillian/arquillian-tomee-common/src/main/java/org/apache/openejb/arquillian/common/TomEEInjectionEnricher.java?rev=1627369&r1=1627368&r2=1627369&view=diff
==============================================================================
--- tomee/tomee/branches/tomee-1.7.x/arquillian/arquillian-tomee-common/src/main/java/org/apache/openejb/arquillian/common/TomEEInjectionEnricher.java (original)
+++ tomee/tomee/branches/tomee-1.7.x/arquillian/arquillian-tomee-common/src/main/java/org/apache/openejb/arquillian/common/TomEEInjectionEnricher.java Wed Sep 24 17:29:22 2014
@@ -22,6 +22,7 @@ import org.apache.openejb.BeanContext;
import org.apache.openejb.arquillian.common.enrichment.OpenEJBEnricher;
import org.apache.openejb.loader.SystemInstance;
import org.apache.openejb.spi.ContainerSystem;
+import org.jboss.arquillian.container.spi.client.deployment.Deployment;
import org.jboss.arquillian.core.api.Instance;
import org.jboss.arquillian.core.api.annotation.Inject;
import org.jboss.arquillian.test.spi.TestClass;
@@ -33,41 +34,50 @@ import java.util.logging.Level;
import java.util.logging.Logger;
public class TomEEInjectionEnricher implements TestEnricher {
-
@Inject
private Instance<TestClass> testClass;
+ @Inject
+ private Instance<Deployment> deployment;
+
@Override
public void enrich(final Object o) {
if (!SystemInstance.isInitialized()) {
return;
}
- OpenEJBEnricher.enrich(o, getAppContext(o));
+ OpenEJBEnricher.enrich(o, getAppContext(o.getClass()));
}
- private AppContext getAppContext(final Object instance) {
- final String className = instance.getClass().getName();
+ private AppContext getAppContext(final Class<?> clazz) {
+ final String clazzName = clazz.getName();
final ContainerSystem containerSystem = SystemInstance.get().getComponent(ContainerSystem.class);
+ if (deployment != null && deployment.get() != null) {
+ final BeanContext context = containerSystem.getBeanContext(deployment.get().getDescription().getName() + "_" + clazzName);
+ if (context != null) {
+ return context.getModuleContext().getAppContext();
+ }
+ }
+
final List<AppContext> appContexts = containerSystem.getAppContexts();
- final ClassLoader loader = instance.getClass().getClassLoader();
+ final ClassLoader loader = clazz.getClassLoader();
for (final AppContext app : appContexts) {
- final BeanContext context = containerSystem.getBeanContext(app.getId() + "_" + className);
+ final BeanContext context = containerSystem.getBeanContext(app.getId() + "_" + clazzName);
if (context != null) {
+ // in embedded mode we have deployment so we dont go here were AppLoader would just be everywhere
if (context.getBeanClass().getClassLoader() == loader) {
return app;
}
}
}
- Logger.getLogger(TomEEInjectionEnricher.class.getName()).log(Level.SEVERE, "Failed to find AppContext for: " + className);
+ Logger.getLogger(TomEEInjectionEnricher.class.getName()).log(Level.WARNING, "Failed to find AppContext for: " + clazzName);
return null;
}
@Override
public Object[] resolve(final Method method) {
- return OpenEJBEnricher.resolve(getAppContext(method.getDeclaringClass().getName()), testClass.get(), method);
+ return OpenEJBEnricher.resolve(getAppContext(method.getDeclaringClass()), testClass.get(), method);
}
}
-
Modified: tomee/tomee/branches/tomee-1.7.x/arquillian/arquillian-tomee-embedded/src/test/java/org/apache/openejb/arquillian/embedded/MultipleDeploymentsTest.java
URL: http://svn.apache.org/viewvc/tomee/tomee/branches/tomee-1.7.x/arquillian/arquillian-tomee-embedded/src/test/java/org/apache/openejb/arquillian/embedded/MultipleDeploymentsTest.java?rev=1627369&r1=1627368&r2=1627369&view=diff
==============================================================================
--- tomee/tomee/branches/tomee-1.7.x/arquillian/arquillian-tomee-embedded/src/test/java/org/apache/openejb/arquillian/embedded/MultipleDeploymentsTest.java (original)
+++ tomee/tomee/branches/tomee-1.7.x/arquillian/arquillian-tomee-embedded/src/test/java/org/apache/openejb/arquillian/embedded/MultipleDeploymentsTest.java Wed Sep 24 17:29:22 2014
@@ -16,10 +16,6 @@
*/
package org.apache.openejb.arquillian.embedded;
-import org.apache.openejb.AppContext;
-import org.apache.openejb.BeanContext;
-import org.apache.openejb.loader.SystemInstance;
-import org.apache.openejb.spi.ContainerSystem;
import org.apache.tomee.catalina.environment.Hosts;
import org.jboss.arquillian.container.test.api.Deployment;
import org.jboss.arquillian.container.test.api.OperateOnDeployment;
@@ -32,7 +28,6 @@ import org.junit.Test;
import org.junit.runner.RunWith;
import javax.inject.Inject;
-import java.util.List;
@RunWith(Arquillian.class)
public class MultipleDeploymentsTest extends Assert {
@@ -63,61 +58,17 @@ public class MultipleDeploymentsTest ext
return ShrinkWrap.create(WebArchive.class, "yellow.war");
}
- @Inject
- private TestMe testMe;
-
@Test
@OperateOnDeployment("orange")
- public void testOrange() throws Exception {
-
- final String className = TestMe.class.getName();
- final ContainerSystem containerSystem = SystemInstance.get().getComponent(ContainerSystem.class);
- final List<AppContext> appContexts = containerSystem.getAppContexts();
- final ClassLoader loader = this.getClass().getClassLoader();
-
- int size = appContexts.size();
- assertEquals("Unexpected app count", 4, size);
-
- AppContext found = null;
-
- for (final AppContext app : appContexts) {
- final BeanContext context = containerSystem.getBeanContext(app.getId() + "_" + className);
- if (context != null) {
- if (context.getBeanClass().getClassLoader() == loader) {
- System.out.println("Found '" + className + "' in app: " + app.getId());
- size--;
- found = app;
- }
- }
- }
-
- assertEquals("Found " + (4 - size) + " matching contexts", 3, size);
-
- assertNotNull(found);
- assertEquals("Unexpected context: " + found.getId(), "orange", found.getId());
-
+ public void testOrange(final TestMe testMe) throws Exception {
assertNotNull(testMe);
assertEquals("Unexpected message", MSG, testMe.getMessage());
-
-
}
@Test
@OperateOnDeployment("green")
- public void testGreen() throws Exception {
- assertNull("Value should be null", testMe);
- }
-
- @Test
- @OperateOnDeployment("blue")
- public void testBlue() throws Exception {
- assertNull("Value should be null", testMe);
- }
-
- @Test
- @OperateOnDeployment("yellow")
- public void testYellow() throws Exception {
- assertNull("Value should be null", testMe);
+ public void testMap() throws Exception {
+ // no-op
}
public static class TestMe {