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 {


Reply via email to