Author: cziegeler
Date: Thu Jul 30 06:25:40 2015
New Revision: 1693390

URL: http://svn.apache.org/r1693390
Log:
FELIX-4979 : [Jetty] String array properties are not parsed correctly when 
supplied through framework properties. Fix metatype generation

Modified:
    
felix/trunk/http/jetty/src/main/java/org/apache/felix/http/jetty/internal/ConfigMetaTypeProvider.java

Modified: 
felix/trunk/http/jetty/src/main/java/org/apache/felix/http/jetty/internal/ConfigMetaTypeProvider.java
URL: 
http://svn.apache.org/viewvc/felix/trunk/http/jetty/src/main/java/org/apache/felix/http/jetty/internal/ConfigMetaTypeProvider.java?rev=1693390&r1=1693389&r2=1693390&view=diff
==============================================================================
--- 
felix/trunk/http/jetty/src/main/java/org/apache/felix/http/jetty/internal/ConfigMetaTypeProvider.java
 (original)
+++ 
felix/trunk/http/jetty/src/main/java/org/apache/felix/http/jetty/internal/ConfigMetaTypeProvider.java
 Thu Jul 30 06:25:40 2015
@@ -193,7 +193,7 @@ class ConfigMetaTypeProvider implements
                 new String[] {"/system"},
                 2147483647,
                 null, null,
-                
bundle.getBundleContext().getProperty(JettyConfig.FELIX_HTTP_PATH_EXCLUSIONS)));
+                
getStringArray(bundle.getBundleContext().getProperty(JettyConfig.FELIX_HTTP_PATH_EXCLUSIONS))));
 
         adList.add(new 
AttributeDefinitionImpl(JettyConfig.FELIX_JETTY_EXCLUDED_SUITES,
                 "Excluded Cipher Suites",
@@ -202,7 +202,7 @@ class ConfigMetaTypeProvider implements
                 null,
                 2147483647,
                 null, null,
-                
bundle.getBundleContext().getProperty(JettyConfig.FELIX_JETTY_EXCLUDED_SUITES)));
+                
getStringArray(bundle.getBundleContext().getProperty(JettyConfig.FELIX_JETTY_EXCLUDED_SUITES))));
 
         adList.add(new 
AttributeDefinitionImpl(JettyConfig.FELIX_JETTY_INCLUDED_SUITES,
                 "Included Cipher Suites",
@@ -211,7 +211,7 @@ class ConfigMetaTypeProvider implements
                 null,
                 2147483647,
                 null, null,
-                
bundle.getBundleContext().getProperty(JettyConfig.FELIX_JETTY_INCLUDED_SUITES)));
+                
getStringArray(bundle.getBundleContext().getProperty(JettyConfig.FELIX_JETTY_INCLUDED_SUITES))));
 
         adList.add(new 
AttributeDefinitionImpl(JettyConfig.FELIX_JETTY_SEND_SERVER_HEADER,
                 "Send Server Header",
@@ -229,7 +229,7 @@ class ConfigMetaTypeProvider implements
                 null,
                 2147483647,
                 null, null,
-                
bundle.getBundleContext().getProperty(JettyConfig.FELIX_JETTY_INCLUDED_PROTOCOLS)));
+                
getStringArray(bundle.getBundleContext().getProperty(JettyConfig.FELIX_JETTY_INCLUDED_PROTOCOLS))));
 
         adList.add(new 
AttributeDefinitionImpl(JettyConfig.FELIX_JETTY_EXCLUDED_PROTOCOLS,
                 "Excluded Protocols",
@@ -241,7 +241,7 @@ class ConfigMetaTypeProvider implements
                 null,
                 2147483647,
                 null, null,
-                
bundle.getBundleContext().getProperty(JettyConfig.FELIX_JETTY_EXCLUDED_PROTOCOLS)));
+                
getStringArray(bundle.getBundleContext().getProperty(JettyConfig.FELIX_JETTY_EXCLUDED_PROTOCOLS))));
 
         adList.add(new 
AttributeDefinitionImpl(JettyConfig.FELIX_PROXY_LOAD_BALANCER_CONNECTION_ENABLE,
                 "Enable Proxy/Load Balancer Connection",
@@ -290,6 +290,15 @@ class ConfigMetaTypeProvider implements
         };
     }
 
+    private String [] getStringArray(final String value)
+    {
+        if ( value != null )
+        {
+            return value.trim().split(",");
+        }
+        return null;
+    }
+
     private static class AttributeDefinitionImpl implements AttributeDefinition
     {
 
@@ -305,33 +314,41 @@ class ConfigMetaTypeProvider implements
 
         AttributeDefinitionImpl( final String id, final String name, final 
String description, final String defaultValue, final String overrideValue )
         {
-            this( id, name, description, STRING, defaultValue == null ? null : 
new String[] { defaultValue }, 0, null, null, overrideValue );
+            this( id, name, description, STRING, defaultValue == null ? null : 
new String[] { defaultValue }, 0, null, null, overrideValue == null ? null : 
new String[] { overrideValue } );
         }
 
         AttributeDefinitionImpl( final String id, final String name, final 
String description, final int defaultValue, final String overrideValue )
         {
             this( id, name, description, INTEGER, new String[]
-                { String.valueOf(defaultValue) }, 0, null, null, overrideValue 
);
+                { String.valueOf(defaultValue) }, 0, null, null, overrideValue 
== null ? null : new String[] { overrideValue } );
         }
 
         AttributeDefinitionImpl( final String id, final String name, final 
String description, final boolean defaultValue, final String overrideValue )
         {
             this( id, name, description, BOOLEAN, new String[]
-                { String.valueOf(defaultValue) }, 0, null, null, overrideValue 
);
+                { String.valueOf(defaultValue) }, 0, null, null, overrideValue 
== null ? null : new String[] { overrideValue } );
+        }
+
+        AttributeDefinitionImpl( final String id, final String name, final 
String description, final int type,
+                final String[] defaultValues, final int cardinality, final 
String[] optionLabels,
+                final String[] optionValues,
+                final String overrideValue)
+        {
+            this(id, name, description, type, defaultValues, cardinality, 
optionLabels, optionValues, overrideValue == null ? null : new String[] { 
overrideValue });
         }
 
         AttributeDefinitionImpl( final String id, final String name, final 
String description, final int type,
             final String[] defaultValues, final int cardinality, final 
String[] optionLabels,
             final String[] optionValues,
-            final String overrideValue)
+            final String[] overrideValues)
         {
             this.id = id;
             this.name = name;
             this.description = description;
             this.type = type;
-            if ( overrideValue != null )
+            if ( overrideValues != null )
             {
-               this.defaultValues = new String[] {overrideValue};
+               this.defaultValues = overrideValues;
             }
             else
             {


Reply via email to