FELIX-1010 : Apply patch from Stefan Seifert to fix the compilation issue.
git-svn-id: https://svn.apache.org/repos/asf/felix/trunk@767574 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/scrplugin/src/main/java/org/apache/felix/scrplugin/tags/annotation/defaulttag/PropertyTag.java b/scrplugin/src/main/java/org/apache/felix/scrplugin/tags/annotation/defaulttag/PropertyTag.java
index 2262e6c..bccc417 100644
--- a/scrplugin/src/main/java/org/apache/felix/scrplugin/tags/annotation/defaulttag/PropertyTag.java
+++ b/scrplugin/src/main/java/org/apache/felix/scrplugin/tags/annotation/defaulttag/PropertyTag.java
@@ -90,12 +90,7 @@
public String[] value() {
// value property can be used as String[] or String property
Object obj = annotation.getNamedParameter("value");
- if (obj instanceof List) {
- return Util.getStringValues(annotation, "value", Property.class);
- }
- else {
- return new String[] { Util.getStringValue(annotation, "value", Property.class) };
- }
+ return Util.getStringValues(annotation, "value", Property.class);
}
public Class<? extends java.lang.annotation.Annotation> annotationType() {
diff --git a/scrplugin/src/main/java/org/apache/felix/scrplugin/tags/annotation/defaulttag/Util.java b/scrplugin/src/main/java/org/apache/felix/scrplugin/tags/annotation/defaulttag/Util.java
index d27980c..1e58d4b 100644
--- a/scrplugin/src/main/java/org/apache/felix/scrplugin/tags/annotation/defaulttag/Util.java
+++ b/scrplugin/src/main/java/org/apache/felix/scrplugin/tags/annotation/defaulttag/Util.java
@@ -18,6 +18,7 @@
*/
package org.apache.felix.scrplugin.tags.annotation.defaulttag;
+import java.util.ArrayList;
import java.util.EnumSet;
import java.util.List;
@@ -66,7 +67,14 @@
public static String[] getStringValues(Annotation annotation, String name, final Class<?> clazz) {
final Object obj = annotation.getNamedParameter(name);
if ( obj != null ) {
- List<String> list = (List<String>)obj;
+ List<String> list;
+ if (obj instanceof String) {
+ list = new ArrayList<String>();
+ list.add((String)obj);
+ }
+ else {
+ list = (List<String>)obj;
+ }
String[] values = new String[list.size()];
for (int i=0; i<values.length; i++) {
values[i] = stripQuotes(list.get(i));
@@ -144,7 +152,7 @@
if (dotPos >= 0) {
enumName = enumName.substring(dotPos+1);
}
- return Enum.valueOf(enumClass, enumName);
+ return (T)Enum.valueOf(enumClass, enumName);
}
}
return null;