This is an automated email from the ASF dual-hosted git repository. rombert pushed a commit to annotated tag org.apache.sling.jcr.contentloader-2.0.2-incubator in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-jcr-contentloader.git
commit 5e6f6b94f2309ea07ca03176d9de6944c345ac5a Author: Carsten Ziegeler <[email protected]> AuthorDate: Thu May 15 07:30:37 2008 +0000 Use new manifest parser in content loader. git-svn-id: https://svn.apache.org/repos/asf/incubator/sling/trunk/jcr/contentloader@656528 13f79535-47bb-0310-9956-ffa450edef68 --- pom.xml | 5 +++ .../jcr/contentloader/internal/PathEntry.java | 41 +++++++--------------- 2 files changed, 18 insertions(+), 28 deletions(-) diff --git a/pom.xml b/pom.xml index 8b9958a..21cc719 100644 --- a/pom.xml +++ b/pom.xml @@ -98,6 +98,11 @@ <version>2.0.0-incubator-SNAPSHOT</version> </dependency> <dependency> + <groupId>org.apache.sling</groupId> + <artifactId>org.apache.sling.commons.osgi</artifactId> + <version>2.0.0-incubator-SNAPSHOT</version> + </dependency> + <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> </dependency> diff --git a/src/main/java/org/apache/sling/jcr/contentloader/internal/PathEntry.java b/src/main/java/org/apache/sling/jcr/contentloader/internal/PathEntry.java index e70b561..c85a0b2 100644 --- a/src/main/java/org/apache/sling/jcr/contentloader/internal/PathEntry.java +++ b/src/main/java/org/apache/sling/jcr/contentloader/internal/PathEntry.java @@ -21,8 +21,8 @@ package org.apache.sling.jcr.contentloader.internal; import java.util.ArrayList; import java.util.Iterator; import java.util.List; -import java.util.StringTokenizer; +import org.apache.sling.commons.osgi.ManifestHeader; import org.osgi.framework.Bundle; /** @@ -53,10 +53,9 @@ public class PathEntry { final String root = (String) bundle.getHeaders().get(CONTENT_HEADER); if (root != null) { - final StringTokenizer tokener = new StringTokenizer(root, ","); - while (tokener.hasMoreTokens()) { - final String path = tokener.nextToken().trim(); - entries.add(new PathEntry(path)); + final ManifestHeader header = ManifestHeader.parse(root); + for(final ManifestHeader.Entry entry : header.getEntries()) { + entries.add(new PathEntry(entry)); } } @@ -66,32 +65,18 @@ public class PathEntry { return entries.iterator(); } - public PathEntry(String path) { - // check for overwrite flag + public PathEntry(ManifestHeader.Entry entry) { + // check for overwrite and uninstall flag + final String overwriteValue = entry.getDirectiveValue(OVERWRITE_FLAG); + final String uninstallValue = entry.getDirectiveValue(UNINSTALL_FLAG); boolean overwriteFlag = false; - Boolean uninstallFlag = null; - int flagPos = path.indexOf(";"); - if ( flagPos != -1 ) { - final StringTokenizer flagTokenizer = new StringTokenizer(path.substring(flagPos+1), ";"); - while ( flagTokenizer.hasMoreTokens() ) { - final String token = flagTokenizer.nextToken(); - int pos = token.indexOf(":="); - if ( pos != -1 ) { - final String name = token.substring(0, pos); - final String value = token.substring(pos+2); - if ( name.equals(OVERWRITE_FLAG) ) { - overwriteFlag = Boolean.valueOf(value).booleanValue(); - } else if (name.equals(UNINSTALL_FLAG) ) { - uninstallFlag = Boolean.valueOf(value); - } - } - } - path = path.substring(0, flagPos); + if ( overwriteValue != null ) { + overwriteFlag = Boolean.valueOf(overwriteValue).booleanValue(); } - this.path = path; + this.path = entry.getValue(); this.overwrite = overwriteFlag; - if ( uninstallFlag != null ) { - this.uninstall = uninstallFlag; + if ( uninstallValue != null ) { + this.uninstall = Boolean.valueOf(uninstallValue); } else { this.uninstall = this.overwrite; } -- To stop receiving notification emails like this one, please contact "[email protected]" <[email protected]>.
