[jboss-cvs] JBossAS SVN: r72920 - in projects/jboss-deployers/trunk/deployers-impl/src: tests/org/jboss/test/deployers/annotations/support and 1 other directories.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Thu May 1 06:50:50 EDT 2008
Author: alesj
Date: 2008-05-01 06:50:50 -0400 (Thu, 01 May 2008)
New Revision: 72920
Modified:
projects/jboss-deployers/trunk/deployers-impl/src/main/org/jboss/deployers/plugins/annotations/DefaultElement.java
projects/jboss-deployers/trunk/deployers-impl/src/main/org/jboss/deployers/plugins/annotations/ParametersElement.java
projects/jboss-deployers/trunk/deployers-impl/src/tests/org/jboss/test/deployers/annotations/support/AnnotationsHolder.java
projects/jboss-deployers/trunk/deployers-impl/src/tests/org/jboss/test/deployers/annotations/test/AnnotationEnvTestCase.java
Log:
Parameter annotation improvement #2.
Modified: projects/jboss-deployers/trunk/deployers-impl/src/main/org/jboss/deployers/plugins/annotations/DefaultElement.java
===================================================================
--- projects/jboss-deployers/trunk/deployers-impl/src/main/org/jboss/deployers/plugins/annotations/DefaultElement.java 2008-05-01 09:48:43 UTC (rev 72919)
+++ projects/jboss-deployers/trunk/deployers-impl/src/main/org/jboss/deployers/plugins/annotations/DefaultElement.java 2008-05-01 10:50:50 UTC (rev 72920)
@@ -26,10 +26,12 @@
import java.lang.reflect.AccessibleObject;
import org.jboss.deployers.spi.annotations.Element;
+import org.jboss.metadata.spi.signature.ConstructorParametersSignature;
import org.jboss.metadata.spi.signature.ConstructorSignature;
import org.jboss.metadata.spi.signature.FieldSignature;
import org.jboss.metadata.spi.signature.MethodSignature;
import org.jboss.metadata.spi.signature.Signature;
+import org.jboss.metadata.spi.signature.MethodParametersSignature;
import org.jboss.reflect.plugins.introspection.ReflectionUtils;
/**
@@ -90,7 +92,7 @@
AccessibleObject result = null;
Class<?> clazz = getOwner();
- if (signature instanceof ConstructorSignature)
+ if (signature instanceof ConstructorSignature || signature instanceof ConstructorParametersSignature)
{
try
{
@@ -100,7 +102,7 @@
{
}
}
- else if (signature instanceof MethodSignature)
+ else if (signature instanceof MethodSignature || signature instanceof MethodParametersSignature)
{
try
{
Modified: projects/jboss-deployers/trunk/deployers-impl/src/main/org/jboss/deployers/plugins/annotations/ParametersElement.java
===================================================================
--- projects/jboss-deployers/trunk/deployers-impl/src/main/org/jboss/deployers/plugins/annotations/ParametersElement.java 2008-05-01 09:48:43 UTC (rev 72919)
+++ projects/jboss-deployers/trunk/deployers-impl/src/main/org/jboss/deployers/plugins/annotations/ParametersElement.java 2008-05-01 10:50:50 UTC (rev 72920)
@@ -83,9 +83,4 @@
throw new IllegalArgumentException("No matching annotation: " + Arrays.asList(annotations));
}
-
- public M getAccessibleObject()
- {
- throw new UnsupportedOperationException("No such accessible object for parameters.");
- }
}
\ No newline at end of file
Modified: projects/jboss-deployers/trunk/deployers-impl/src/tests/org/jboss/test/deployers/annotations/support/AnnotationsHolder.java
===================================================================
--- projects/jboss-deployers/trunk/deployers-impl/src/tests/org/jboss/test/deployers/annotations/support/AnnotationsHolder.java 2008-05-01 09:48:43 UTC (rev 72919)
+++ projects/jboss-deployers/trunk/deployers-impl/src/tests/org/jboss/test/deployers/annotations/support/AnnotationsHolder.java 2008-05-01 10:50:50 UTC (rev 72920)
@@ -31,12 +31,12 @@
private Object object;
@TestAnnotation("constructor")
- public AnnotationsHolder()
+ public AnnotationsHolder(@TestAnnotation("cparameter") Object object)
{
}
@TestAnnotation("method")
- public void something(@TestAnnotation("parameter") Object object)
+ public void something(@TestAnnotation("mparameter") Object object)
{
System.out.println("object = " + object);
}
Modified: projects/jboss-deployers/trunk/deployers-impl/src/tests/org/jboss/test/deployers/annotations/test/AnnotationEnvTestCase.java
===================================================================
--- projects/jboss-deployers/trunk/deployers-impl/src/tests/org/jboss/test/deployers/annotations/test/AnnotationEnvTestCase.java 2008-05-01 09:48:43 UTC (rev 72919)
+++ projects/jboss-deployers/trunk/deployers-impl/src/tests/org/jboss/test/deployers/annotations/test/AnnotationEnvTestCase.java 2008-05-01 10:50:50 UTC (rev 72920)
@@ -78,27 +78,43 @@
AnnotationEnvironment env = getAnnotationEnvironment(unit);
Set<Class<?>> classes = env.classIsAnnotatedWith(taClass);
assertNotNull(classes);
+ assertEquals(1, classes.size());
assertEquals(AnnotationsHolder.class.getName(), classes.iterator().next().getName());
Element<TestAnnotation, Constructor> ec = getSingleton(env.classHasConstructorAnnotatedWith(taClass));
Annotation ta = ec.getAnnotation();
assertNotNull(ta);
assertEquals("constructor", getValue(ta));
+ assertInstanceOf(ec.getAccessibleObject(), Constructor.class, false);
Element<TestAnnotation, Field> ef = getSingleton(env.classHasFieldAnnotatedWith(taClass));
ta = ef.getAnnotation();
assertNotNull(ta);
assertEquals("field", getValue(ta));
+ assertInstanceOf(ef.getAccessibleObject(), Field.class, false);
Element<TestAnnotation, Method> em = getSingleton(env.classHasMethodAnnotatedWith(taClass));
ta = em.getAnnotation();
assertNotNull(ta);
assertEquals("method", getValue(ta));
+ assertInstanceOf(em.getAccessibleObject(), Method.class, false);
- Element<TestAnnotation, AccessibleObject> ep = getSingleton(env.classHasParameterAnnotatedWith(taClass));
- ta = ep.getAnnotation();
- assertNotNull(ta);
- assertEquals("parameter", getValue(ta));
+ Set<Element<TestAnnotation, AccessibleObject>> eps = env.classHasParameterAnnotatedWith(taClass);
+ assertNotNull(eps);
+ assertEquals(2, eps.size());
+ for (Element<TestAnnotation, AccessibleObject> ep : eps)
+ {
+ ta = ep.getAnnotation();
+ assertNotNull(ta);
+ Object value = getValue(ta);
+ AccessibleObject ao = ep.getAccessibleObject();
+ if ("cparameter".equals(value))
+ assertInstanceOf(ao, Constructor.class, false);
+ else if ("mparameter".equals(value))
+ assertInstanceOf(ao, Method.class, false);
+ else
+ fail("Illegal annotation value: " + value);
+ }
}
finally
{
More information about the jboss-cvs-commits
mailing list