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