You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@felix.apache.org by cz...@apache.org on 2014/03/05 14:38:27 UTC
svn commit: r1574483 - in /felix/trunk/scrplugin/annotations: changelog.txt
src/main/java/org/apache/felix/scrplugin/processing/SCRAnnotationProcessor.java
Author: cziegeler
Date: Wed Mar 5 13:38:26 2014
New Revision: 1574483
URL: http://svn.apache.org/r1574483
Log:
FELIX-4393 : @Property should accept empty name values on instance fields
Modified:
felix/trunk/scrplugin/annotations/changelog.txt
felix/trunk/scrplugin/annotations/src/main/java/org/apache/felix/scrplugin/processing/SCRAnnotationProcessor.java
Modified: felix/trunk/scrplugin/annotations/changelog.txt
URL: http://svn.apache.org/viewvc/felix/trunk/scrplugin/annotations/changelog.txt?rev=1574483&r1=1574482&r2=1574483&view=diff
==============================================================================
--- felix/trunk/scrplugin/annotations/changelog.txt (original)
+++ felix/trunk/scrplugin/annotations/changelog.txt Wed Mar 5 13:38:26 2014
@@ -2,7 +2,7 @@ Changes from 1.9.8 to 1.9.6
---------------------------
** Improvement
* [FELIX-4277] - The maven-scr-plugin generates false warnings when using @SlingServlet
-
+ * [FELIX-4393] - @Property should accept empty name values on instance fields
Changes from 1.9.6 to 1.9.4
---------------------------
Modified: felix/trunk/scrplugin/annotations/src/main/java/org/apache/felix/scrplugin/processing/SCRAnnotationProcessor.java
URL: http://svn.apache.org/viewvc/felix/trunk/scrplugin/annotations/src/main/java/org/apache/felix/scrplugin/processing/SCRAnnotationProcessor.java?rev=1574483&r1=1574482&r2=1574483&view=diff
==============================================================================
--- felix/trunk/scrplugin/annotations/src/main/java/org/apache/felix/scrplugin/processing/SCRAnnotationProcessor.java (original)
+++ felix/trunk/scrplugin/annotations/src/main/java/org/apache/felix/scrplugin/processing/SCRAnnotationProcessor.java Wed Mar 5 13:38:26 2014
@@ -403,9 +403,29 @@ public class SCRAnnotationProcessor impl
}
}
} else {
- final Object value = fieldAnnotation.getAnnotatedFieldValue();
- if (value != null) {
- name = value.toString();
+ if ( Modifier.isStatic(fieldAnnotation.getAnnotatedField().getModifiers()) ) {
+ final Object value = fieldAnnotation.getAnnotatedFieldValue();
+ if (value != null) {
+ name = value.toString();
+ }
+ } else {
+ // non static, no name, no value (FELIX-4393)
+ name = fieldAnnotation.getAnnotatedField().getName();
+ final Object value = fieldAnnotation.getAnnotatedFieldValue();
+ if (value != null) {
+ if (value.getClass().isArray()) {
+ final String[] newValues = new String[Array.getLength(value)];
+ for (int i = 0; i < newValues.length; i++) {
+ newValues[i] = Array.get(value, i).toString();
+ }
+ prop.setMultiValue(newValues);
+ prop.setType(PropertyType.from(fieldAnnotation.getAnnotatedField().getType().getComponentType()));
+ } else {
+ prop.setType(PropertyType.from(value.getClass()));
+ prop.setValue(value.toString());
+ }
+ }
+
}
}
}