Author: sseifert
Date: Wed Mar  8 16:36:17 2017
New Revision: 1786016

URL: http://svn.apache.org/viewvc?rev=1786016&view=rev
Log:
SLING-6440 use ManifestHeader to parse directives

Modified:
    sling/trunk/bundles/extensions/fsresource/pom.xml
    
sling/trunk/bundles/extensions/fsresource/src/main/java/org/apache/sling/fsprovider/internal/InitialContentImportOptions.java
    
sling/trunk/bundles/extensions/fsresource/src/test/java/org/apache/sling/fsprovider/internal/InitialContentImportOptionsTest.java

Modified: sling/trunk/bundles/extensions/fsresource/pom.xml
URL: 
http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/fsresource/pom.xml?rev=1786016&r1=1786015&r2=1786016&view=diff
==============================================================================
--- sling/trunk/bundles/extensions/fsresource/pom.xml (original)
+++ sling/trunk/bundles/extensions/fsresource/pom.xml Wed Mar  8 16:36:17 2017
@@ -139,6 +139,12 @@
         </dependency>
         <dependency>
             <groupId>org.apache.sling</groupId>
+            <artifactId>org.apache.sling.commons.osgi</artifactId>
+            <version>2.2.0</version>
+            <scope>compile</scope>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.sling</groupId>
             <artifactId>org.apache.sling.commons.fscontentparser</artifactId>
             <version>1.0.0-SNAPSHOT</version>
             <scope>compile</scope>

Modified: 
sling/trunk/bundles/extensions/fsresource/src/main/java/org/apache/sling/fsprovider/internal/InitialContentImportOptions.java
URL: 
http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/fsresource/src/main/java/org/apache/sling/fsprovider/internal/InitialContentImportOptions.java?rev=1786016&r1=1786015&r2=1786016&view=diff
==============================================================================
--- 
sling/trunk/bundles/extensions/fsresource/src/main/java/org/apache/sling/fsprovider/internal/InitialContentImportOptions.java
 (original)
+++ 
sling/trunk/bundles/extensions/fsresource/src/main/java/org/apache/sling/fsprovider/internal/InitialContentImportOptions.java
 Wed Mar  8 16:36:17 2017
@@ -19,13 +19,14 @@
 package org.apache.sling.fsprovider.internal;
 
 import java.util.Arrays;
-import java.util.HashMap;
+import java.util.Collections;
 import java.util.HashSet;
-import java.util.Map;
 import java.util.Set;
 
 import org.apache.commons.lang3.BooleanUtils;
 import org.apache.commons.lang3.StringUtils;
+import org.apache.sling.commons.osgi.ManifestHeader;
+import org.apache.sling.commons.osgi.ManifestHeader.Entry;
 
 class InitialContentImportOptions {
 
@@ -46,25 +47,19 @@ class InitialContentImportOptions {
     private final Set<String> ignoreImportProviders;
     
     public InitialContentImportOptions(String optionsString) {
-        Map<String,String> options = parseOptions(optionsString);
-        overwrite = BooleanUtils.toBoolean(options.get(OVERWRITE_DIRECTIVE));
-        ignoreImportProviders = new 
HashSet<>(Arrays.asList(StringUtils.split(StringUtils.defaultString(options.get(IGNORE_CONTENT_READERS_DIRECTIVE)))));
-    }
-    
-    private static Map<String,String> parseOptions(String optionsString) {
-        Map<String,String> options = new HashMap<>();
-        String[] optionsList = StringUtils.split(optionsString, ";");
-        if (optionsList != null) {
-            for (String keyValueString : optionsList) {
-                String[] keyValue = 
StringUtils.splitByWholeSeparator(keyValueString, ":=");
-                if (keyValue.length == 2) {
-                    options.put(StringUtils.trim(keyValue[0]), 
StringUtils.trim(keyValue[1]));
-                }
-            }
+        ManifestHeader header = ManifestHeader.parse("/dummy/path;" + 
optionsString);
+        Entry[] entries = header.getEntries();
+        if (entries.length > 0) {
+            overwrite = 
BooleanUtils.toBoolean(entries[0].getDirectiveValue(OVERWRITE_DIRECTIVE));
+            String ignoreImportProvidersString = 
StringUtils.defaultString(entries[0].getDirectiveValue(IGNORE_CONTENT_READERS_DIRECTIVE));
+            ignoreImportProviders = new 
HashSet<>(Arrays.asList(StringUtils.split(ignoreImportProvidersString, ",")));
+        }
+        else {
+            overwrite = false;
+            ignoreImportProviders = Collections.emptySet();
         }
-        return options;
     }
-
+    
     public boolean isOverwrite() {
         return overwrite;
     }

Modified: 
sling/trunk/bundles/extensions/fsresource/src/test/java/org/apache/sling/fsprovider/internal/InitialContentImportOptionsTest.java
URL: 
http://svn.apache.org/viewvc/sling/trunk/bundles/extensions/fsresource/src/test/java/org/apache/sling/fsprovider/internal/InitialContentImportOptionsTest.java?rev=1786016&r1=1786015&r2=1786016&view=diff
==============================================================================
--- 
sling/trunk/bundles/extensions/fsresource/src/test/java/org/apache/sling/fsprovider/internal/InitialContentImportOptionsTest.java
 (original)
+++ 
sling/trunk/bundles/extensions/fsresource/src/test/java/org/apache/sling/fsprovider/internal/InitialContentImportOptionsTest.java
 Wed Mar  8 16:36:17 2017
@@ -44,9 +44,9 @@ public class InitialContentImportOptions
 
     @Test
     public void testOptions1() {
-        InitialContentImportOptions underTest = new 
InitialContentImportOptions("overwrite:=true;ignoreImportProviders:=xml,json");
+        InitialContentImportOptions underTest = new 
InitialContentImportOptions("overwrite:=true;ignoreImportProviders:=\"xml,json\"");
         assertTrue(underTest.isOverwrite());
-        assertEquals(ImmutableSet.of("xml,json"), 
underTest.getIgnoreImportProviders());
+        assertEquals(ImmutableSet.of("xml","json"), 
underTest.getIgnoreImportProviders());
     }
 
     @Test


Reply via email to