[jboss-cvs] JBossAS SVN: r73496 - in projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/annotations: wb and 1 other directory.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Mon May 19 15:21:58 EDT 2008


Author: alesj
Date: 2008-05-19 15:21:58 -0400 (Mon, 19 May 2008)
New Revision: 73496

Modified:
   projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/annotations/AbstractParameterAnnotationPlugin.java
   projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/annotations/Annotation2ValueMetaDataAdapter.java
   projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/annotations/ConstructorValueAnnotationPlugin.java
   projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/annotations/InjectableMemberAnnotationPlugin.java
   projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/annotations/wb/WBInjectAnnotationPlugin.java
Log:
Fix parameter annotation handling.

Modified: projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/annotations/AbstractParameterAnnotationPlugin.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/annotations/AbstractParameterAnnotationPlugin.java	2008-05-19 16:57:33 UTC (rev 73495)
+++ projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/annotations/AbstractParameterAnnotationPlugin.java	2008-05-19 19:21:58 UTC (rev 73496)
@@ -166,7 +166,7 @@
                Annotation adapterAnnotation = mdr.getAnnotation(adapter.getAnnotation());
                if (adapterAnnotation != null)
                {
-                  value = adapter.createValueMetaData(adapterAnnotation, value);
+                  value = adapter.createValueMetaData(pi, adapterAnnotation, value);
                }
             }
             if (value == null)

Modified: projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/annotations/Annotation2ValueMetaDataAdapter.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/annotations/Annotation2ValueMetaDataAdapter.java	2008-05-19 16:57:33 UTC (rev 73495)
+++ projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/annotations/Annotation2ValueMetaDataAdapter.java	2008-05-19 19:21:58 UTC (rev 73496)
@@ -24,6 +24,7 @@
 import java.lang.annotation.Annotation;
 
 import org.jboss.beans.metadata.spi.ValueMetaData;
+import org.jboss.reflect.spi.ParameterInfo;
 
 /**
  * Create ValueMetaData from Annotation.
@@ -43,9 +44,10 @@
    /**
     * Create ValueMetaData instance.
     *
+    * @param parameterInfo the parameter info
     * @param annotation the annotation instance
     * @param previousValue previous value
     * @return new ValueMetaData instance
     */
-   ValueMetaData createValueMetaData(C annotation, ValueMetaData previousValue);
+   ValueMetaData createValueMetaData(ParameterInfo parameterInfo, C annotation, ValueMetaData previousValue);
 }

Modified: projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/annotations/ConstructorValueAnnotationPlugin.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/annotations/ConstructorValueAnnotationPlugin.java	2008-05-19 16:57:33 UTC (rev 73495)
+++ projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/annotations/ConstructorValueAnnotationPlugin.java	2008-05-19 19:21:58 UTC (rev 73496)
@@ -31,8 +31,10 @@
 import org.jboss.beans.metadata.spi.MetaDataVisitorNode;
 import org.jboss.beans.metadata.spi.ValueMetaData;
 import org.jboss.kernel.spi.dependency.KernelControllerContext;
+import org.jboss.metadata.spi.MetaData;
 import org.jboss.reflect.spi.ClassInfo;
-import org.jboss.metadata.spi.MetaData;
+import org.jboss.reflect.spi.ParameterInfo;
+import org.jboss.reflect.spi.TypeInfo;
 
 /**
  * Constructor value annotation plugin.
@@ -65,6 +67,43 @@
       return Collections.singletonList(constructor);
    }
 
+   public ValueMetaData createValueMetaData(ParameterInfo parameterInfo, C annotation, ValueMetaData previousValue)
+   {
+      return createValueMetaData(parameterInfo.getParameterType(), annotation, previousValue);
+   }
+
+   /**
+    * Create value metadata.
+    *
+    * @param type the type info
+    * @param annotation the annotation
+    * @param previousValue the previous value
+    * @return value metadata instance
+    */
+   public ValueMetaData createValueMetaData(TypeInfo type, C annotation, ValueMetaData previousValue)
+   {
+      return createValueMetaData(type, annotation);
+   }
+
+   /**
+    * Create value metadata.
+    *
+    * @param type the type info
+    * @param annotation the annotation
+    * @return value metadata instance
+    */
+   public ValueMetaData createValueMetaData(TypeInfo type, C annotation)
+   {
+      return createValueMetaData(annotation, null);
+   }
+
+   /**
+    * Create value metadata.
+    *
+    * @param annotation the annotation
+    * @param previousValue the previous value
+    * @return value metadata instance
+    */
    public ValueMetaData createValueMetaData(C annotation, ValueMetaData previousValue)
    {
       return createValueMetaData(annotation);

Modified: projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/annotations/InjectableMemberAnnotationPlugin.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/annotations/InjectableMemberAnnotationPlugin.java	2008-05-19 16:57:33 UTC (rev 73495)
+++ projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/annotations/InjectableMemberAnnotationPlugin.java	2008-05-19 19:21:58 UTC (rev 73496)
@@ -34,6 +34,8 @@
 import org.jboss.beans.metadata.spi.PropertyMetaData;
 import org.jboss.beans.metadata.spi.ValueMetaData;
 import org.jboss.reflect.spi.AnnotatedInfo;
+import org.jboss.reflect.spi.ParameterInfo;
+import org.jboss.reflect.spi.TypeInfo;
 
 /**
  * Injectable member annotation plugin.
@@ -153,6 +155,44 @@
    /**
     * Create value meta data.
     *
+    * @param parameterInfo the parameter ifo
+    * @param annotation the annotation
+    * @param previousValue previous value
+    * @return value meta data
+    */
+   public ValueMetaData createValueMetaData(ParameterInfo parameterInfo, C annotation, ValueMetaData previousValue)
+   {
+      return createValueMetaData(parameterInfo.getParameterType(), annotation, previousValue);
+   }
+
+   /**
+    * Create value metadata.
+    *
+    * @param type the type info
+    * @param annotation the annotation
+    * @param previousValue the previous value
+    * @return value metadata instance
+    */
+   protected ValueMetaData createValueMetaData(TypeInfo type, C annotation, ValueMetaData previousValue)
+   {
+      return createValueMetaData(type, annotation);
+   }
+
+   /**
+    * Create value metadata.
+    *
+    * @param type the type info
+    * @param annotation the annotation
+    * @return value metadata instance
+    */
+   protected ValueMetaData createValueMetaData(TypeInfo type, C annotation)
+   {
+      return createValueMetaData(annotation, null);
+   }
+
+   /**
+    * Create value meta data.
+    *
     * @param info the info
     * @param annotation the annotation
     * @return value metadata
@@ -169,7 +209,7 @@
     * @param previousValue previous value
     * @return value meta data
     */
-   public ValueMetaData createValueMetaData(C annotation, ValueMetaData previousValue)
+   protected ValueMetaData createValueMetaData(C annotation, ValueMetaData previousValue)
    {
       return createValueMetaData(annotation);
    }

Modified: projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/annotations/wb/WBInjectAnnotationPlugin.java
===================================================================
--- projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/annotations/wb/WBInjectAnnotationPlugin.java	2008-05-19 16:57:33 UTC (rev 73495)
+++ projects/microcontainer/trunk/kernel/src/main/org/jboss/kernel/plugins/annotations/wb/WBInjectAnnotationPlugin.java	2008-05-19 19:21:58 UTC (rev 73496)
@@ -22,15 +22,16 @@
 package org.jboss.kernel.plugins.annotations.wb;
 
 import java.lang.annotation.Annotation;
+import java.util.ArrayList;
 import java.util.HashSet;
 import java.util.List;
 import java.util.Set;
-import java.util.ArrayList;
 
 import org.jboss.beans.info.spi.PropertyInfo;
 import org.jboss.beans.metadata.api.annotations.Inject;
 import org.jboss.beans.metadata.spi.ValueMetaData;
 import org.jboss.kernel.plugins.annotations.PropertyAnnotationPlugin;
+import org.jboss.reflect.spi.ParameterInfo;
 
 /**
  * Web beans kind of inject.
@@ -50,14 +51,31 @@
    @SuppressWarnings("deprecation")
    protected ValueMetaData createValueMetaData(PropertyInfo info, Inject inject)
    {
+      return createValueMetaData(info.getType().getType(), info.getUnderlyingAnnotations());
+   }
+
+   @SuppressWarnings("deprecation")
+   public ValueMetaData createValueMetaData(ParameterInfo info, Inject inject, ValueMetaData previousValue)
+   {
+      return createValueMetaData(info.getParameterType().getType(), info.getUnderlyingAnnotations());
+   }
+
+   /**
+    * Create wb injection value.
+    *
+    * @param type the matching type
+    * @param underlyingAnnotations underlying annotations
+    * @return injection value metadata
+    */
+   private ValueMetaData createValueMetaData(Class<?> type, Annotation[] underlyingAnnotations)
+   {
       List<Annotation> annotations = new ArrayList<Annotation>();
-      Annotation[] underlyingAnnotations = info.getUnderlyingAnnotations();
       for (Annotation annotation : underlyingAnnotations)
       {
          if (excludedAnnotations.contains(annotation.annotationType()) == false)
             annotations.add(annotation);
       }
-      return new WBInjectionValueMetaData(info.getType().getType(), annotations.toArray(new Annotation[annotations.size()]));
+      return new WBInjectionValueMetaData(type, annotations.toArray(new Annotation[annotations.size()]));
    }
 
    /**




More information about the jboss-cvs-commits mailing list