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 2015/07/30 08:25:41 UTC

svn commit: r1693390 - /felix/trunk/http/jetty/src/main/java/org/apache/felix/http/jetty/internal/ConfigMetaTypeProvider.java

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
             {