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 2012/12/31 12:17:32 UTC

svn commit: r1427084 - in /openwebbeans/trunk/webbeans-impl/src: main/java/org/apache/webbeans/proxy/asm/ test/java/org/apache/webbeans/newtests/interceptors/factory/ test/java/org/apache/webbeans/newtests/interceptors/factory/beans/

Author: struberg
Date: Mon Dec 31 11:17:31 2012
New Revision: 1427084

URL: http://svn.apache.org/viewvc?rev=1427084&view=rev
Log:
OWB-344 add test class for non-intercepted methods

Added:
    openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/interceptors/factory/beans/MethodInterceptedClass.java
      - copied, changed from r1427033, openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/interceptors/factory/beans/ClassInterceptedClass.java
Modified:
    openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/proxy/asm/InterceptorDecoratorProxyFactory.java
    openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/interceptors/factory/InterceptorDecoratorProxyFactoryTest.java

Modified: openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/proxy/asm/InterceptorDecoratorProxyFactory.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/proxy/asm/InterceptorDecoratorProxyFactory.java?rev=1427084&r1=1427083&r2=1427084&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/proxy/asm/InterceptorDecoratorProxyFactory.java (original)
+++ openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/proxy/asm/InterceptorDecoratorProxyFactory.java Mon Dec 31 11:17:31 2012
@@ -30,6 +30,7 @@ import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
+import org.apache.webbeans.config.WebBeansContext;
 import org.apache.webbeans.proxy.ProxyGenerationException;
 import org.objectweb.asm.ClassWriter;
 import org.objectweb.asm.MethodVisitor;
@@ -55,6 +56,16 @@ public class InterceptorDecoratorProxyFa
     /** the name of the field which stores the proxied instance */
     public static final String FIELD_PROXIED_INSTANCE = "owbIntDecProxiedInstance";
 
+    //X TODO add caching of created proxy classes. This is needed to prevent class loading clashes.
+    //X a generated proxy cannot easily get redefined later!
+
+    private WebBeansContext webBeansContext;
+
+    public InterceptorDecoratorProxyFactory(WebBeansContext webBeansContext)
+    {
+        this.webBeansContext = webBeansContext;
+    }
+
     public <T> T createProxyInstance(Class<T> proxyClass, T instance)
             throws ProxyGenerationException
     {

Modified: openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/interceptors/factory/InterceptorDecoratorProxyFactoryTest.java
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/interceptors/factory/InterceptorDecoratorProxyFactoryTest.java?rev=1427084&r1=1427083&r2=1427084&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/interceptors/factory/InterceptorDecoratorProxyFactoryTest.java (original)
+++ openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/interceptors/factory/InterceptorDecoratorProxyFactoryTest.java Mon Dec 31 11:17:31 2012
@@ -19,7 +19,10 @@
 package org.apache.webbeans.newtests.interceptors.factory;
 
 import java.lang.reflect.Field;
+import java.util.ArrayList;
+import java.util.Collection;
 
+import org.apache.webbeans.newtests.AbstractUnitTest;
 import org.apache.webbeans.newtests.interceptors.factory.beans.ClassInterceptedClass;
 import org.apache.webbeans.proxy.asm.InterceptorDecoratorProxyFactory;
 
@@ -30,13 +33,16 @@ import org.junit.Test;
 /**
  * Test the {@link org.apache.webbeans.proxy.asm.InterceptorDecoratorProxyFactory}
  */
-public class InterceptorDecoratorProxyFactoryTest
+public class InterceptorDecoratorProxyFactoryTest extends AbstractUnitTest
 {
 
     @Test
     public void textSimpleProxyCreation() throws Exception
     {
-        InterceptorDecoratorProxyFactory pf = new InterceptorDecoratorProxyFactory();
+        Collection<Class<?>> beanClasses = new ArrayList<Class<?>>();
+        startContainer(beanClasses, null);
+
+        InterceptorDecoratorProxyFactory pf = new InterceptorDecoratorProxyFactory(getWebBeansContext());
 
         ClassLoader classLoader = this.getClass().getClassLoader();
 
@@ -58,5 +64,8 @@ public class InterceptorDecoratorProxyFa
         proxy.setMeaningOfLife(42);
 
         Assert.assertEquals(42, proxy.getMeaningOfLife());
+
+
+        shutDownContainer();
     }
 }

Copied: openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/interceptors/factory/beans/MethodInterceptedClass.java (from r1427033, openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/interceptors/factory/beans/ClassInterceptedClass.java)
URL: http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/interceptors/factory/beans/MethodInterceptedClass.java?p2=openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/interceptors/factory/beans/MethodInterceptedClass.java&p1=openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/interceptors/factory/beans/ClassInterceptedClass.java&r1=1427033&r2=1427084&rev=1427084&view=diff
==============================================================================
--- openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/interceptors/factory/beans/ClassInterceptedClass.java (original)
+++ openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/newtests/interceptors/factory/beans/MethodInterceptedClass.java Mon Dec 31 11:17:31 2012
@@ -21,20 +21,21 @@ package org.apache.webbeans.newtests.int
 import org.apache.webbeans.test.component.intercept.webbeans.bindings.Transactional;
 
 /**
- * A simple class which is not intercepted
+ * A simple class which is not intercepted but has some
+ * methods which are.
  */
-@Transactional
-public class ClassInterceptedClass
+public class MethodInterceptedClass
 {
     private boolean defaultCtInvoked = false;
 
     private int meaningOfLife;
 
-    public ClassInterceptedClass()
+    public MethodInterceptedClass()
     {
         defaultCtInvoked = true;
     }
 
+    @Transactional
     public int getMeaningOfLife()
     {
         System.out.println("answering the question about life, the universe and everything!");
@@ -42,9 +43,14 @@ public class ClassInterceptedClass
         return meaningOfLife;
     }
 
+    @Transactional
     public void setMeaningOfLife(int meaningOfLife)
     {
         this.meaningOfLife = meaningOfLife;
     }
 
+    public int nonTransactionalGetter()
+    {
+        return meaningOfLife + 2;
+    }
 }