Author: struberg
Date: Tue Jan 30 21:07:20 2018
New Revision: 1822701

URL: http://svn.apache.org/viewvc?rev=1822701&view=rev
Log:
OWB-1224 add copy ct for AnnotatedParamImpl

hacked together with rsandtner via hangout

Modified:
    
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/AnnotatedMethodImpl.java
    
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/AnnotatedParameterImpl.java
    
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/AnnotatedTypeImpl.java
    
openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/test/configurator/AnnotatedTypeConfiguratorImplTest.java

Modified: 
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/AnnotatedMethodImpl.java
URL: 
http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/AnnotatedMethodImpl.java?rev=1822701&r1=1822700&r2=1822701&view=diff
==============================================================================
--- 
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/AnnotatedMethodImpl.java
 (original)
+++ 
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/AnnotatedMethodImpl.java
 Tue Jan 30 21:07:20 2018
@@ -47,7 +47,7 @@ public class AnnotatedMethodImpl<X> exte
      */
     AnnotatedMethodImpl(WebBeansContext webBeansContext, Method javaMember, 
AnnotatedType<X> declaringType)
     {        
-        super(webBeansContext, 
GenericsUtil.resolveReturnType(declaringType.getJavaClass(), javaMember), 
javaMember,declaringType);
+        super(webBeansContext, 
GenericsUtil.resolveReturnType(declaringType.getJavaClass(), javaMember), 
javaMember, declaringType);
         setAnnotations(javaMember.getDeclaredAnnotations());
         
setAnnotatedParameters(GenericsUtil.resolveParameterTypes(declaringType.getJavaClass(),
 javaMember), javaMember.getParameterAnnotations());
     }
@@ -55,14 +55,14 @@ public class AnnotatedMethodImpl<X> exte
     /**
      * Copy ct for Configurators
      */
-    public AnnotatedMethodImpl(WebBeansContext webBeansContext, 
AnnotatedMethod<? super X> originalAnnotatedMethod, AnnotatedType<X> 
declaringType)
+    AnnotatedMethodImpl(WebBeansContext webBeansContext, AnnotatedMethod<? 
super X> originalAnnotatedMethod, AnnotatedType<X> declaringType)
     {
         super(webBeansContext, originalAnnotatedMethod.getBaseType(), 
originalAnnotatedMethod.getJavaMember(), declaringType);
 
         getAnnotations().addAll(originalAnnotatedMethod.getAnnotations());
-        for (AnnotatedParameter<? super X> annotatedParameter : 
originalAnnotatedMethod.getParameters())
+        for (AnnotatedParameter<? super X> originalAnnotatedParameter : 
originalAnnotatedMethod.getParameters())
         {
-            getParameters().add(new AnnotatedParameterImpl<>(webBeansContext, 
annotatedParameter.getBaseType(), this, annotatedParameter.getPosition()));
+            getParameters().add(new AnnotatedParameterImpl(webBeansContext, 
originalAnnotatedParameter, this));
         }
     }
 

Modified: 
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/AnnotatedParameterImpl.java
URL: 
http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/AnnotatedParameterImpl.java?rev=1822701&r1=1822700&r2=1822701&view=diff
==============================================================================
--- 
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/AnnotatedParameterImpl.java
 (original)
+++ 
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/AnnotatedParameterImpl.java
 Tue Jan 30 21:07:20 2018
@@ -47,6 +47,17 @@ public class AnnotatedParameterImpl<X> e
         this.position = position;
     }
 
+
+    /**
+     * Copy ct for Configurators
+     */
+    AnnotatedParameterImpl(WebBeansContext webBeansContext, 
AnnotatedParameter<X> originalAnnotatedParameter, AnnotatedMethodImpl 
declaringCallable)
+    {
+        super(webBeansContext, originalAnnotatedParameter);
+        this.declaringCallable = declaringCallable;
+        this.position = originalAnnotatedParameter.getPosition();
+    }
+
     /**
      * {@inheritDoc}
      */

Modified: 
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/AnnotatedTypeImpl.java
URL: 
http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/AnnotatedTypeImpl.java?rev=1822701&r1=1822700&r2=1822701&view=diff
==============================================================================
--- 
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/AnnotatedTypeImpl.java
 (original)
+++ 
openwebbeans/trunk/webbeans-impl/src/main/java/org/apache/webbeans/portable/AnnotatedTypeImpl.java
 Tue Jan 30 21:07:20 2018
@@ -258,8 +258,6 @@ public class AnnotatedTypeImpl<X>
             }
 
             Field[] decFields = 
getWebBeansContext().getSecurityService().doPrivilegedGetDeclaredFields(annotatedClass);
-            Method[] decMethods =
-                
getWebBeansContext().getSecurityService().doPrivilegedGetDeclaredMethods(annotatedClass);
             for (Field f : decFields)
             {
                 if (!f.isSynthetic())
@@ -269,6 +267,8 @@ public class AnnotatedTypeImpl<X>
                 }
             }
 
+            Method[] decMethods =
+                    
getWebBeansContext().getSecurityService().doPrivilegedGetDeclaredMethods(annotatedClass);
             for (Method m : decMethods)
             {
                 if (!m.isSynthetic() && !m.isBridge())

Modified: 
openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/test/configurator/AnnotatedTypeConfiguratorImplTest.java
URL: 
http://svn.apache.org/viewvc/openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/test/configurator/AnnotatedTypeConfiguratorImplTest.java?rev=1822701&r1=1822700&r2=1822701&view=diff
==============================================================================
--- 
openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/test/configurator/AnnotatedTypeConfiguratorImplTest.java
 (original)
+++ 
openwebbeans/trunk/webbeans-impl/src/test/java/org/apache/webbeans/test/configurator/AnnotatedTypeConfiguratorImplTest.java
 Tue Jan 30 21:07:20 2018
@@ -23,6 +23,8 @@ import org.junit.Assert;
 import org.junit.Test;
 
 import javax.enterprise.event.Observes;
+import javax.enterprise.inject.spi.AnnotatedMethod;
+import javax.enterprise.inject.spi.AnnotatedParameter;
 import javax.enterprise.inject.spi.AnnotatedType;
 import javax.enterprise.inject.spi.Extension;
 import javax.enterprise.inject.spi.ProcessAnnotatedType;
@@ -34,9 +36,11 @@ import java.lang.annotation.ElementType;
 import java.lang.annotation.Retention;
 import java.lang.annotation.RetentionPolicy;
 import java.lang.annotation.Target;
+import java.util.List;
 import java.util.Set;
 import java.util.function.Consumer;
 
+import static junit.framework.TestCase.assertNotNull;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertTrue;
 
@@ -54,6 +58,15 @@ public class AnnotatedTypeConfiguratorIm
                 Set<Annotation> annotations = 
pba.getAnnotated().getAnnotations();
                 assertEquals(1, annotations.size());
                 assertEquals(TheQualifier.class, 
annotations.iterator().next().annotationType());
+                assertTrue(pba.getAnnotated() instanceof AnnotatedType);
+                AnnotatedMethod<? super AnnotatedTypeConfigClass> 
methodWithParameters = ((AnnotatedType<AnnotatedTypeConfigClass>) 
pba.getAnnotated()).getMethods().stream()
+                        .filter(am -> 
am.getJavaMember().getName().equals("methodWithParameters"))
+                        .findFirst().get();
+                TheQualifier param1Annotation = 
methodWithParameters.getParameters().stream()
+                        .filter(ap -> ap.getPosition() == 0)
+                        .findFirst().get().getAnnotation(TheQualifier.class);
+                assertNotNull(param1Annotation);
+                assertEquals("blub", param1Annotation.value());
             },
             AnnotatedTypeConfigClass.class);
     }
@@ -286,7 +299,7 @@ public class AnnotatedTypeConfiguratorIm
             return "method 2";
         }
 
-        public String methodWithParameters(String param1, Integer param2)
+        public String methodWithParameters(@TheQualifier("blub") String 
param1, Integer param2)
         {
             return "parameters: " + param1 + ", " + param2;
         }


Reply via email to