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 2018/01/30 21:07:20 UTC
svn commit: r1822701 - in /openwebbeans/trunk/webbeans-impl/src:
main/java/org/apache/webbeans/portable/
test/java/org/apache/webbeans/test/configurator/
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;
}