Restrict the initial value usage of a property to types of java.lang.String and correctly trim the value to fix #FELIX-353.
git-svn-id: https://svn.apache.org/repos/asf/felix/trunk@572968 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/scrplugin/src/main/java/org/apache/felix/scrplugin/SCRDescriptorMojo.java b/scrplugin/src/main/java/org/apache/felix/scrplugin/SCRDescriptorMojo.java
index e22c970..85e8fa3 100644
--- a/scrplugin/src/main/java/org/apache/felix/scrplugin/SCRDescriptorMojo.java
+++ b/scrplugin/src/main/java/org/apache/felix/scrplugin/SCRDescriptorMojo.java
@@ -261,7 +261,16 @@
tag = fields[i].getTagByName(Constants.PROPERTY);
if (tag != null) {
- this.doProperty(tag, fields[i].getInitializationExpression(), component, ocd);
+ String defaultName = null;
+ if ( "java.lang.String".equals(fields[i].getType()) ) {
+ defaultName = fields[i].getInitializationExpression().trim();
+ int pos = defaultName.indexOf("\"");
+ if ( pos != -1 ) {
+ defaultName = defaultName.substring(pos + 1);
+ defaultName = defaultName.substring(0, defaultName.lastIndexOf("\""));
+ }
+ }
+ this.doProperty(tag, defaultName, component, ocd);
}
}
@@ -388,10 +397,8 @@
*/
protected void doProperty(JavaTag property, String defaultName, Component component, OCD ocd) {
String name = property.getNamedParameter(Constants.PROPERTY_NAME);
- if (StringUtils.isEmpty(name) && defaultName!= null) {
- name = defaultName.trim();
- if (name.startsWith("\"")) name = name.substring(1);
- if (name.endsWith("\"")) name = name.substring(0, name.length()-1);
+ if (StringUtils.isEmpty(name) && defaultName != null) {
+ name = defaultName;
}
if (!StringUtils.isEmpty(name)) {