[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