[jboss-cvs] JBossAS SVN: r74871 - in projects/microcontainer/trunk: kernel/src/main/org/jboss/kernel/plugins/annotations and 2 other directories.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Fri Jun 20 04:33:05 EDT 2008


Author: alesj
Date: 2008-06-20 04:33:05 -0400 (Fri, 20 Jun 2008)
New Revision: 74871

Modified:
   projects/microcontainer/trunk/aop-mc-int/src/main/org/jboss/aop/microcontainer/aspects/jmx/JMX.java
   projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/annotations/CommonAnnotationAdapter.java
   projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/annotations/support/TestAnnotationPlugin.java
   projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/annotations/support/TestApplyOnlyBean.java
   projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/annotations/support/TestCleanupBean.java
   projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/annotations/support/TestCleanupOnlyBean.java
   projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/annotations/test/FactoryMethodBadTestCase.java
Log:
Make @JMX applicable on methods, fields.
Handle annotations on getters.
Fix FMBTC, error type.


Modified: projects/microcontainer/trunk/aop-mc-int/src/main/org/jboss/aop/microcontainer/aspects/jmx/JMX.java
===================================================================
--- projects/microcontainer/trunk/aop-mc-int/src/main/org/jboss/aop/microcontainer/aspects/jmx/JMX.java	2008-06-20 06:03:32 UTC (rev 74870)
+++ projects/microcontainer/trunk/aop-mc-int/src/main/org/jboss/aop/microcontainer/aspects/jmx/JMX.java	2008-06-20 08:33:05 UTC (rev 74871)
@@ -37,7 +37,7 @@
  * @version $Revision$
  */
 @Retention(RetentionPolicy.RUNTIME)
- at Target(ElementType.TYPE)
+ at Target({ElementType.TYPE, ElementType.METHOD, ElementType.FIELD})
 @InstanceAnnotation(false)
 public @interface JMX 
 {

Modified: projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/annotations/CommonAnnotationAdapter.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/annotations/CommonAnnotationAdapter.java	2008-06-20 06:03:32 UTC (rev 74870)
+++ projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/annotations/CommonAnnotationAdapter.java	2008-06-20 08:33:05 UTC (rev 74871)
@@ -235,29 +235,9 @@
       {
          for(PropertyInfo pi : properties)
          {
-            MethodInfo setter = pi.getSetter();
             FieldInfo field = pi.getFieldInfo();
-
-            if (setter != null)
+            if (field != null)
             {
-               visitedMethods.add(setter);
-               Signature sis = new MethodSignature(setter);
-               MetaData cmdr = retrieval.getComponentMetaData(sis);
-               if (cmdr != null)
-               {
-                  for(T plugin : propertyAnnotationPlugins)
-                  {
-                     if (isApplyPhase)
-                        applyPlugin(plugin, pi, cmdr, handle);
-                     else
-                        cleanPlugin(plugin, pi, cmdr, handle);
-                  }
-               }
-               else if (trace)
-                  log.trace("No annotations for property " + pi.getName());
-            }
-            else if (field != null)
-            {
                Signature sis = new FieldSignature(field);
                MetaData cmdr = retrieval.getComponentMetaData(sis);
                if (cmdr != null)
@@ -273,6 +253,11 @@
                else if (trace)
                   log.trace("No annotations for field " + field.getName());
             }
+            else
+            {
+               handleMethod(retrieval, handle, isApplyPhase, trace, visitedMethods, pi, pi.getSetter(), "setter");
+               handleMethod(retrieval, handle, isApplyPhase, trace, visitedMethods, pi, pi.getGetter(), "getter");
+            }
          }
       }
       else if (trace)
@@ -338,6 +323,50 @@
    }
 
    /**
+    * Handle setter or getter on property.
+    *
+    * @param retrieval the metadata
+    * @param handle the handle
+    * @param isApplyPhase is apply phase
+    * @param trace is trace enabled
+    * @param visitedMethods visited methods
+    * @param pi the property info
+    * @param method the method info
+    * @param type method type
+    * @throws Throwable for any error
+    */
+   protected void handleMethod(
+         MetaData retrieval,
+         U handle,
+         boolean isApplyPhase,
+         boolean trace,
+         Set<MethodInfo> visitedMethods,
+         PropertyInfo pi,
+         MethodInfo method,
+         String type)
+         throws Throwable
+   {
+      if (method == null)
+         return;
+      
+      visitedMethods.add(method);
+      Signature sis = new MethodSignature(method);
+      MetaData cmdr = retrieval.getComponentMetaData(sis);
+      if (cmdr != null)
+      {
+         for(T plugin : propertyAnnotationPlugins)
+         {
+            if (isApplyPhase)
+               applyPlugin(plugin, pi, cmdr, handle);
+            else
+               cleanPlugin(plugin, pi, cmdr, handle);
+         }
+      }
+      else if (trace)
+         log.trace("No annotations for " + type + ": " + pi.getName());
+   }
+
+   /**
     * Get the static methods of class info.
     *
     * @param classInfo the class info

Modified: projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/annotations/support/TestAnnotationPlugin.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/annotations/support/TestAnnotationPlugin.java	2008-06-20 06:03:32 UTC (rev 74870)
+++ projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/annotations/support/TestAnnotationPlugin.java	2008-06-20 08:33:05 UTC (rev 74871)
@@ -21,21 +21,22 @@
 */
 package org.jboss.test.kernel.annotations.support;
 
+import java.lang.annotation.Annotation;
 import java.lang.annotation.ElementType;
-import java.lang.annotation.Annotation;
 import java.util.List;
 
-import org.jboss.reflect.spi.MethodInfo;
+import org.jboss.beans.info.spi.PropertyInfo;
+import org.jboss.beans.metadata.spi.MetaDataVisitorNode;
 import org.jboss.kernel.plugins.annotations.AbstractAnnotationPlugin;
+import org.jboss.kernel.plugins.annotations.PropertyAware;
 import org.jboss.kernel.spi.dependency.KernelControllerContext;
-import org.jboss.beans.metadata.spi.MetaDataVisitorNode;
 import org.jboss.metadata.spi.MetaData;
 
 /**
  * @param <T> the annotation type
  * @author <a href="mailto:ales.justin at jboss.com">Ales Justin</a>
  */
-public class TestAnnotationPlugin<T extends Annotation> extends AbstractAnnotationPlugin<MethodInfo, T>
+public class TestAnnotationPlugin<T extends Annotation> extends AbstractAnnotationPlugin<PropertyInfo, T> implements PropertyAware
 {
    private boolean applied;
    private boolean cleaned;
@@ -47,16 +48,16 @@
 
    protected boolean isElementTypeSupported(ElementType type)
    {
-      return true;
+      return ElementType.METHOD == type;
    }
 
-   protected List<? extends MetaDataVisitorNode> internalApplyAnnotation(MethodInfo info, MetaData retrieval, T annotation, KernelControllerContext context) throws Throwable
+   protected List<? extends MetaDataVisitorNode> internalApplyAnnotation(PropertyInfo info, MetaData retrieval, T annotation, KernelControllerContext context) throws Throwable
    {
       applied = true;
       return null;
    }
 
-   protected void internalCleanAnnotation(MethodInfo info, MetaData retrieval, T annotation, KernelControllerContext context) throws Throwable
+   protected void internalCleanAnnotation(PropertyInfo info, MetaData retrieval, T annotation, KernelControllerContext context) throws Throwable
    {
       cleaned = true;
    }

Modified: projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/annotations/support/TestApplyOnlyBean.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/annotations/support/TestApplyOnlyBean.java	2008-06-20 06:03:32 UTC (rev 74870)
+++ projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/annotations/support/TestApplyOnlyBean.java	2008-06-20 08:33:05 UTC (rev 74871)
@@ -27,8 +27,7 @@
 public class TestApplyOnlyBean
 {
    @TestApplyOnly
-   public String getName()
+   public void setName(String name)
    {
-      return null;
    }
 }

Modified: projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/annotations/support/TestCleanupBean.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/annotations/support/TestCleanupBean.java	2008-06-20 06:03:32 UTC (rev 74870)
+++ projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/annotations/support/TestCleanupBean.java	2008-06-20 08:33:05 UTC (rev 74871)
@@ -27,8 +27,7 @@
 public class TestCleanupBean
 {
    @TestCleanup
-   public String getName()
+   public void setName(String param)
    {
-      return null;
    }
 }

Modified: projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/annotations/support/TestCleanupOnlyBean.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/annotations/support/TestCleanupOnlyBean.java	2008-06-20 06:03:32 UTC (rev 74870)
+++ projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/annotations/support/TestCleanupOnlyBean.java	2008-06-20 08:33:05 UTC (rev 74871)
@@ -27,8 +27,7 @@
 public class TestCleanupOnlyBean
 {
    @TestCleanupOnly
-   public String getName()
+   public void setName(String name)
    {
-      return null;
    }
 }

Modified: projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/annotations/test/FactoryMethodBadTestCase.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/annotations/test/FactoryMethodBadTestCase.java	2008-06-20 06:03:32 UTC (rev 74870)
+++ projects/microcontainer/trunk/kernel/src/tests/org/jboss/test/kernel/annotations/test/FactoryMethodBadTestCase.java	2008-06-20 08:33:05 UTC (rev 74871)
@@ -23,6 +23,7 @@
 
 import junit.framework.Test;
 import org.jboss.dependency.spi.ControllerState;
+import org.jboss.joinpoint.spi.JoinpointException;
 import org.jboss.kernel.spi.dependency.KernelControllerContext;
 import org.jboss.test.kernel.deployment.test.AbstractOnDemandDeploymentTest;
 
@@ -47,6 +48,6 @@
       change(context, ControllerState.INSTALLED);
       assertEquals(ControllerState.ERROR, context.getState());
       assertNotNull(context.getError());
-      assertInstanceOf(context.getError(), IllegalArgumentException.class);
+      assertInstanceOf(context.getError(), JoinpointException.class);
    }
 }




More information about the jboss-cvs-commits mailing list