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:46:02 UTC
[sling-org-apache-sling-jcr-contentloader] 09/32: Use new manifest
parser in content loader.
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 <cz...@apache.org>
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
"commits@sling.apache.org" <co...@sling.apache.org>.