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 {