[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