You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openwebbeans.apache.org by st...@apache.org on 2013/01/16 00:16:26 UTC

svn commit: r1433731 - in /openwebbeans/trunk/webbeans-impl/src: main/java/org/apache/webbeans/intercept/ main/java/org/apache/webbeans/proxy/ test/java/org/apache/webbeans/test/unittests/intercept/

Author: struberg
Date: Tue Jan 15 23:16:26 2013
New Revision: 1433731

URL: http://svn.apache.org/viewvc?rev=1433731&view=rev
Log:
OWB-344 fix Context map and class-name-conflict detection

Modified:
    openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/intercept/LifecycleInterceptorInvocationContext.java
    openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/proxy/AbstractProxyFactory.java
    openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/test/unittests/intercept/EJBInterceptComponentTest.java

Modified: openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/intercept/LifecycleInterceptorInvocationContext.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/intercept/LifecycleInterceptorInvocationContext.java?rev=1433731&r1=1433730&r2=1433731&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/intercept/LifecycleInterceptorInvocationContext.java (original)
+++ openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/intercept/LifecycleInterceptorInvocationContext.java Tue Jan 15 23:16:26 2013
@@ -23,6 +23,7 @@ import javax.enterprise.inject.spi.Inter
 import javax.enterprise.inject.spi.Interceptor;
 import javax.interceptor.InvocationContext;
 import java.lang.reflect.Method;
+import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
@@ -35,7 +36,7 @@ public class LifecycleInterceptorInvocat
     private InterceptionType type;
     private List<Interceptor<?>> interceptors;
     private Map<Interceptor<?>, ?> instances;
-    private Map<String, Object> contextData;
+    private Map<String, Object> contextData = new HashMap<String, Object>();
     private int interceptorIndex = 0;
     private List<AnnotatedMethod<?>> lifecycleMethods;
 

Modified: openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/proxy/AbstractProxyFactory.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/proxy/AbstractProxyFactory.java?rev=1433731&r1=1433730&r2=1433731&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/proxy/AbstractProxyFactory.java (original)
+++ openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/proxy/AbstractProxyFactory.java Tue Jan 15 23:16:26 2013
@@ -84,17 +84,18 @@ public abstract class AbstractProxyFacto
      */
     protected String getUnusedProxyClassName(ClassLoader classLoader, String proxyClassName)
     {
+        String finalName = proxyClassName;
         for (int i = 0; i < MAX_CLASSLOAD_TRIES; i++)
         {
             try
             {
-                String finalName = proxyClassName + i;
-                classLoader.loadClass(finalName);
+                finalName = proxyClassName + i;
+                Class.forName(finalName, true, classLoader);
             }
             catch (ClassNotFoundException cnfe)
             {
                 // this is exactly what we need!
-                return proxyClassName;
+                return finalName;
             }
             // otherwise we continue ;)
         }
@@ -198,7 +199,7 @@ public abstract class AbstractProxyFacto
 
             try
             {
-                Class<T> loadedClass = (Class<T>) classLoader.loadClass(definedClass.getName());
+                Class<T> loadedClass = (Class<T>) Class.forName(definedClass.getName(), true, classLoader);
                 return loadedClass;
             }
             catch (ClassNotFoundException e)

Modified: openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/test/unittests/intercept/EJBInterceptComponentTest.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/test/unittests/intercept/EJBInterceptComponentTest.java?rev=1433731&r1=1433730&r2=1433731&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/test/unittests/intercept/EJBInterceptComponentTest.java (original)
+++ openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/test/unittests/intercept/EJBInterceptComponentTest.java Tue Jan 15 23:16:26 2013
@@ -18,79 +18,56 @@
  */
 package org.apache.webbeans.test.unittests.intercept;
 
-import java.util.List;
+import java.util.ArrayList;
+import java.util.Collection;
 
 import junit.framework.Assert;
 
-import org.apache.webbeans.component.AbstractOwbBean;
-import org.apache.webbeans.config.WebBeansContext;
-import org.apache.webbeans.context.ContextFactory;
-import org.apache.webbeans.test.TestContext;
+import org.apache.webbeans.newtests.AbstractUnitTest;
 import org.apache.webbeans.test.component.intercept.InterceptedComponent;
 import org.apache.webbeans.test.component.intercept.InterceptorWithSuperClassInterceptedComponent;
 import org.apache.webbeans.test.component.intercept.MultipleInterceptedComponent;
 import org.apache.webbeans.test.component.intercept.MultipleListOfInterceptedComponent;
 import org.apache.webbeans.test.component.intercept.MultipleListOfInterceptedWithExcludeClassComponent;
-import org.junit.Before;
 import org.junit.Test;
 
-public class EJBInterceptComponentTest extends TestContext
+public class EJBInterceptComponentTest extends AbstractUnitTest
 {
 
-    public EJBInterceptComponentTest()
-    {
-        super(EJBInterceptComponentTest.class.getName());
-    }
-
-    @Before
-    public void init()
-    {
-        super.init();
-    }
-
     @Test
     public void testInterceptedComponent()
     {
-        defineManagedBean(InterceptedComponent.class);
+        Collection<Class<?>> beanClasses = new ArrayList<Class<?>>();
+        beanClasses.add(InterceptedComponent.class);
+        startContainer(beanClasses, null);
+
+
+        shutDownContainer();
     }
 
     @Test
     public void testInterceptorCalls()
     {
-        clear();
-        defineManagedBean(InterceptedComponent.class);
-
-        ContextFactory contextFactory = WebBeansContext.getInstance().getContextFactory();
-        contextFactory.initRequestContext(null);
-        List<AbstractOwbBean<?>> comps = getComponents();
-
-        Object object = getManager().getInstance(comps.get(0));
+        Collection<Class<?>> beanClasses = new ArrayList<Class<?>>();
+        beanClasses.add(InterceptedComponent.class);
+        startContainer(beanClasses, null);
 
-        Assert.assertTrue(object instanceof InterceptedComponent);
-
-        InterceptedComponent comp = (InterceptedComponent) object;
+        InterceptedComponent comp = getInstance(InterceptedComponent.class);
         Object s = comp.hello(null);
 
         Assert.assertEquals(new Integer(5), s);
 
-        contextFactory.destroyRequestContext(null);
+        shutDownContainer();
     }
 
     @Test
     public void testMultipleInterceptedComponent()
     {
-        clear();
-        defineManagedBean(MultipleInterceptedComponent.class);
-
-        ContextFactory contextFactory = WebBeansContext.getInstance().getContextFactory();
-        contextFactory.initRequestContext(null);
-        List<AbstractOwbBean<?>> comps = getComponents();
-
-        Object object = getManager().getInstance(comps.get(0));
+        Collection<Class<?>> beanClasses = new ArrayList<Class<?>>();
+        beanClasses.add(MultipleInterceptedComponent.class);
+        startContainer(beanClasses, null);
 
-        Assert.assertTrue(object instanceof MultipleInterceptedComponent);
-
-        MultipleInterceptedComponent comp = (MultipleInterceptedComponent) object;
+        MultipleInterceptedComponent comp = getInstance(MultipleInterceptedComponent.class);
         Object obj = comp.intercepted();
 
         Assert.assertTrue(obj instanceof String[]);
@@ -99,24 +76,18 @@ public class EJBInterceptComponentTest e
 
         Assert.assertEquals(2, arr.length);
         Assert.assertTrue("key".equals(arr[0]) && "key2".equals(arr[1]) || "key".equals(arr[1]) && "key2".equals(arr[0]));
-        contextFactory.destroyRequestContext(null);
+
+        shutDownContainer();;
     }
 
     @Test
     public void testInterceptorWithSuperClassComponent()
     {
-        clear();
-        defineManagedBean(InterceptorWithSuperClassInterceptedComponent.class);
-
-        ContextFactory contextFactory = WebBeansContext.getInstance().getContextFactory();
-        contextFactory.initRequestContext(null);
-        List<AbstractOwbBean<?>> comps = getComponents();
+        Collection<Class<?>> beanClasses = new ArrayList<Class<?>>();
+        beanClasses.add(InterceptorWithSuperClassInterceptedComponent.class);
+        startContainer(beanClasses, null);
 
-        Object object = getManager().getInstance(comps.get(0));
-
-        Assert.assertTrue(object instanceof InterceptorWithSuperClassInterceptedComponent);
-
-        InterceptorWithSuperClassInterceptedComponent comp = (InterceptorWithSuperClassInterceptedComponent) object;
+        InterceptorWithSuperClassInterceptedComponent comp = getInstance(InterceptorWithSuperClassInterceptedComponent.class);
         Object obj = comp.intercepted();
 
         Assert.assertTrue(obj instanceof String[]);
@@ -125,55 +96,42 @@ public class EJBInterceptComponentTest e
 
         Assert.assertEquals(1, arr.length);
         Assert.assertTrue("key0".equals(arr[0]));
-        contextFactory.destroyRequestContext(null);
+
+        shutDownContainer();
     }
 
     @Test
     public void testMultipleListOfInterceptedComponent()
     {
-        clear();
-        defineManagedBean(MultipleListOfInterceptedComponent.class);
+        Collection<Class<?>> beanClasses = new ArrayList<Class<?>>();
+        beanClasses.add(MultipleListOfInterceptedComponent.class);
+        startContainer(beanClasses, null);
 
-        ContextFactory contextFactory = WebBeansContext.getInstance().getContextFactory();
-        contextFactory.initRequestContext(null);
-        List<AbstractOwbBean<?>> comps = getComponents();
-
-        Object object = getManager().getInstance(comps.get(0));
-
-        Assert.assertTrue(object instanceof MultipleListOfInterceptedComponent);
-
-        MultipleListOfInterceptedComponent comp = (MultipleListOfInterceptedComponent) object;
+        MultipleListOfInterceptedComponent comp = getInstance(MultipleListOfInterceptedComponent.class);
         Object obj = comp.intercepted();
 
         Assert.assertTrue(obj instanceof String);
 
         Assert.assertEquals("ok", (String) obj);
 
-        contextFactory.destroyRequestContext(null);
+        shutDownContainer();
     }
 
     @Test
     public void testMultipleListOfInterceptedWithExcludeClassComponent()
     {
-        clear();
-        defineManagedBean(MultipleListOfInterceptedWithExcludeClassComponent.class);
-
-        ContextFactory contextFactory = WebBeansContext.getInstance().getContextFactory();
-        contextFactory.initRequestContext(null);
-        List<AbstractOwbBean<?>> comps = getComponents();
-
-        Object object = getManager().getInstance(comps.get(0));
-
-        Assert.assertTrue(object instanceof MultipleListOfInterceptedWithExcludeClassComponent);
+        Collection<Class<?>> beanClasses = new ArrayList<Class<?>>();
+        beanClasses.add(MultipleListOfInterceptedWithExcludeClassComponent.class);
+        startContainer(beanClasses, null);
 
-        MultipleListOfInterceptedWithExcludeClassComponent comp = (MultipleListOfInterceptedWithExcludeClassComponent) object;
+        MultipleListOfInterceptedWithExcludeClassComponent comp = getInstance(MultipleListOfInterceptedWithExcludeClassComponent.class);
         Object obj = comp.intercepted();
 
         Assert.assertTrue(obj instanceof String);
 
         Assert.assertEquals("value2", (String) obj);
 
-        contextFactory.destroyRequestContext(null);
+        shutDownContainer();
     }
 
 }