This is an automated email from the ASF dual-hosted git repository. rombert pushed a commit to annotated tag org.apache.sling.fsresource-1.3.0 in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-fsresource.git
commit 4c1b15f30adb817bbdb958bf33cdf1d76beac25e Author: Stefan Seifert <[email protected]> AuthorDate: Wed Mar 8 16:40:12 2017 +0000 SLING-6440 use ManifestHeader to parse directives git-svn-id: https://svn.apache.org/repos/asf/sling/branches/fsresource-1.x@1786018 13f79535-47bb-0310-9956-ffa450edef68 --- pom.xml | 6 ++++ .../internal/InitialContentImportOptions.java | 33 +++++++++------------- .../internal/InitialContentImportOptionsTest.java | 4 +-- 3 files changed, 22 insertions(+), 21 deletions(-) diff --git a/pom.xml b/pom.xml index 4f0ba96..0245895 100644 --- a/pom.xml +++ b/pom.xml @@ -141,6 +141,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> diff --git a/src/main/java/org/apache/sling/fsprovider/internal/InitialContentImportOptions.java b/src/main/java/org/apache/sling/fsprovider/internal/InitialContentImportOptions.java index 5353d0f..52de538 100644 --- a/src/main/java/org/apache/sling/fsprovider/internal/InitialContentImportOptions.java +++ b/src/main/java/org/apache/sling/fsprovider/internal/InitialContentImportOptions.java @@ -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; } diff --git a/src/test/java/org/apache/sling/fsprovider/internal/InitialContentImportOptionsTest.java b/src/test/java/org/apache/sling/fsprovider/internal/InitialContentImportOptionsTest.java index 513c51f..3a0d166 100644 --- a/src/test/java/org/apache/sling/fsprovider/internal/InitialContentImportOptionsTest.java +++ b/src/test/java/org/apache/sling/fsprovider/internal/InitialContentImportOptionsTest.java @@ -44,9 +44,9 @@ public class InitialContentImportOptionsTest { @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 -- To stop receiving notification emails like this one, please contact "[email protected]" <[email protected]>.
