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>.