You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by ro...@apache.org on 2017/11/07 09:38:50 UTC
[sling-org-apache-sling-fsresource] 17/29: SLING-6440 use
ManifestHeader to parse directives
This is an automated email from the ASF dual-hosted git repository.
rombert pushed a commit to annotated tag org.apache.sling.fsresource-2.0.0
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-fsresource.git
commit 94499336c2bc1a393a94ebe97b26dc4b8ef14041
Author: Stefan Seifert <ss...@apache.org>
AuthorDate: Wed Mar 8 16:36:17 2017 +0000
SLING-6440 use ManifestHeader to parse directives
git-svn-id: https://svn.apache.org/repos/asf/sling/trunk/bundles/extensions/fsresource@1786016 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 def0725..f7f45c8 100644
--- a/pom.xml
+++ b/pom.xml
@@ -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>
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
"commits@sling.apache.org" <co...@sling.apache.org>.