[jboss-cvs] JBossAS SVN: r57693 - in projects/aop/trunk/aop/src: main/org/jboss/aop/annotation test/org/jboss/test/aop/instanceofannotated

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Tue Oct 17 12:50:24 EDT 2006


Author: kabir.khan at jboss.com
Date: 2006-10-17 12:50:20 -0400 (Tue, 17 Oct 2006)
New Revision: 57693

Modified:
   projects/aop/trunk/aop/src/main/org/jboss/aop/annotation/PortableAnnotationElement.java
   projects/aop/trunk/aop/src/test/org/jboss/test/aop/instanceofannotated/AnnotatedSuperClass.java
   projects/aop/trunk/aop/src/test/org/jboss/test/aop/instanceofannotated/Annotation.java
   projects/aop/trunk/aop/src/test/org/jboss/test/aop/instanceofannotated/Introduced.java
   projects/aop/trunk/aop/src/test/org/jboss/test/aop/instanceofannotated/IntroducedPOJO.java
   projects/aop/trunk/aop/src/test/org/jboss/test/aop/instanceofannotated/Type.java
Log:
[JBAOP-254] Fix one of the failing tests

Modified: projects/aop/trunk/aop/src/main/org/jboss/aop/annotation/PortableAnnotationElement.java
===================================================================
--- projects/aop/trunk/aop/src/main/org/jboss/aop/annotation/PortableAnnotationElement.java	2006-10-17 15:30:53 UTC (rev 57692)
+++ projects/aop/trunk/aop/src/main/org/jboss/aop/annotation/PortableAnnotationElement.java	2006-10-17 16:50:20 UTC (rev 57693)
@@ -214,21 +214,38 @@
 
    public static boolean isAnyAnnotationPresent(CtClass clazz, String annotation) throws Exception
    {
-      if (clazz == CtClass.voidType) return false;
-      ClassFile cf = clazz.getClassFile2();
-      AnnotationsAttribute visible = (AnnotationsAttribute) cf.getAttribute(AnnotationsAttribute.visibleTag);
-      if (visible != null)
+      try
       {
-         if (visible.getAnnotation(annotation) != null) return true;
+         if (clazz == CtClass.voidType) return false;
+         
+         CtClass theClass = clazz;
+         while(theClass.isArray())
+         {
+            theClass = theClass.getComponentType();
+         }
+         
+         if (theClass.isPrimitive()) return false;
+         
+         ClassFile cf = theClass.getClassFile2();
+         AnnotationsAttribute visible = (AnnotationsAttribute) cf.getAttribute(AnnotationsAttribute.visibleTag);
+         if (visible != null)
+         {
+            if (visible.getAnnotation(annotation) != null) return true;
+         }
+
+         AnnotationsAttribute invisible = (AnnotationsAttribute) cf.getAttribute(AnnotationsAttribute.invisibleTag);
+         if (invisible != null)
+         {
+            if (invisible.getAnnotation(annotation) != null) return true;
+         }
+
+         return false;
       }
-
-      AnnotationsAttribute invisible = (AnnotationsAttribute) cf.getAttribute(AnnotationsAttribute.invisibleTag);
-      if (invisible != null)
+      catch (RuntimeException e)
       {
-         if (invisible.getAnnotation(annotation) != null) return true;
+         String name = (clazz != null) ? clazz.getName() : null;
+         throw new RuntimeException("Error looking for " + annotation + " in " + clazz.getName(), e);
       }
-
-      return false;
    }
 
    public static boolean isAnyAnnotationPresent(Class clazz, String annotation) throws Exception

Modified: projects/aop/trunk/aop/src/test/org/jboss/test/aop/instanceofannotated/AnnotatedSuperClass.java
===================================================================
--- projects/aop/trunk/aop/src/test/org/jboss/test/aop/instanceofannotated/AnnotatedSuperClass.java	2006-10-17 15:30:53 UTC (rev 57692)
+++ projects/aop/trunk/aop/src/test/org/jboss/test/aop/instanceofannotated/AnnotatedSuperClass.java	2006-10-17 16:50:20 UTC (rev 57693)
@@ -25,8 +25,8 @@
  *
  * @author <a href="mailto:kabir.khan at jboss.org">Kabir Khan</a>
  * @version $Revision$
- * @@org.jboss.test.aop.instanceofannotated.ClassAnnotation
  */
+ at ClassAnnotation
 public class AnnotatedSuperClass
 {
    public int superClassMethod()

Modified: projects/aop/trunk/aop/src/test/org/jboss/test/aop/instanceofannotated/Annotation.java
===================================================================
--- projects/aop/trunk/aop/src/test/org/jboss/test/aop/instanceofannotated/Annotation.java	2006-10-17 15:30:53 UTC (rev 57692)
+++ projects/aop/trunk/aop/src/test/org/jboss/test/aop/instanceofannotated/Annotation.java	2006-10-17 16:50:20 UTC (rev 57693)
@@ -21,12 +21,18 @@
   */
 package org.jboss.test.aop.instanceofannotated;
 
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
 /**
  *
  * @author <a href="mailto:kabir.khan at jboss.org">Kabir Khan</a>
  * @version $Revision$
  */
-public interface Annotation
+ at Target({ElementType.TYPE})@Retention(RetentionPolicy.RUNTIME)
+public @interface Annotation
 {
 
 }

Modified: projects/aop/trunk/aop/src/test/org/jboss/test/aop/instanceofannotated/Introduced.java
===================================================================
--- projects/aop/trunk/aop/src/test/org/jboss/test/aop/instanceofannotated/Introduced.java	2006-10-17 15:30:53 UTC (rev 57692)
+++ projects/aop/trunk/aop/src/test/org/jboss/test/aop/instanceofannotated/Introduced.java	2006-10-17 16:50:20 UTC (rev 57693)
@@ -31,7 +31,7 @@
  * @author <a href="mailto:kabir.khan at jboss.org">Kabir Khan</a>
  * @version $Revision$
  */
- at Target({ElementType.TYPE})@Retention(RetentionPolicy.RUNTIME)
+ at Target({ElementType.TYPE, ElementType.CONSTRUCTOR}) @Retention(RetentionPolicy.RUNTIME)
 public @interface Introduced
 {
 }

Modified: projects/aop/trunk/aop/src/test/org/jboss/test/aop/instanceofannotated/IntroducedPOJO.java
===================================================================
--- projects/aop/trunk/aop/src/test/org/jboss/test/aop/instanceofannotated/IntroducedPOJO.java	2006-10-17 15:30:53 UTC (rev 57692)
+++ projects/aop/trunk/aop/src/test/org/jboss/test/aop/instanceofannotated/IntroducedPOJO.java	2006-10-17 16:50:20 UTC (rev 57693)
@@ -25,8 +25,8 @@
  *
  * @author <a href="mailto:kabir.khan at jboss.org">Kabir Khan</a>
  * @version $Revision$
- * @@org.jboss.test.aop.instanceofannotated.Annotation
  */
+ at Annotation
 public class IntroducedPOJO
 {
    public Type field;

Modified: projects/aop/trunk/aop/src/test/org/jboss/test/aop/instanceofannotated/Type.java
===================================================================
--- projects/aop/trunk/aop/src/test/org/jboss/test/aop/instanceofannotated/Type.java	2006-10-17 15:30:53 UTC (rev 57692)
+++ projects/aop/trunk/aop/src/test/org/jboss/test/aop/instanceofannotated/Type.java	2006-10-17 16:50:20 UTC (rev 57693)
@@ -25,8 +25,8 @@
  *
  * @author <a href="mailto:kabir.khan at jboss.org">Kabir Khan</a>
  * @version $Revision$
- * @@org.jboss.test.aop.instanceofannotated.TypeAnnotation
  */
+ at TypeAnnotation
 public class Type extends SuperType
 {
    public Type(int i)




More information about the jboss-cvs-commits mailing list