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();
}
}