You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by cz...@apache.org on 2008/05/15 09:30:37 UTC

svn commit: r656528 - in /incubator/sling/trunk: commons/osgi/ commons/osgi/src/main/java/org/apache/sling/commons/osgi/ jcr/contentloader/ jcr/contentloader/src/main/java/org/apache/sling/jcr/contentloader/internal/

Author: cziegeler
Date: Thu May 15 00:30:37 2008
New Revision: 656528

URL: http://svn.apache.org/viewvc?rev=656528&view=rev
Log:
Use new manifest parser in content loader.

Modified:
    incubator/sling/trunk/commons/osgi/pom.xml
    incubator/sling/trunk/commons/osgi/src/main/java/org/apache/sling/commons/osgi/ManifestHeader.java
    incubator/sling/trunk/jcr/contentloader/pom.xml
    incubator/sling/trunk/jcr/contentloader/src/main/java/org/apache/sling/jcr/contentloader/internal/PathEntry.java

Modified: incubator/sling/trunk/commons/osgi/pom.xml
URL: http://svn.apache.org/viewvc/incubator/sling/trunk/commons/osgi/pom.xml?rev=656528&r1=656527&r2=656528&view=diff
==============================================================================
--- incubator/sling/trunk/commons/osgi/pom.xml (original)
+++ incubator/sling/trunk/commons/osgi/pom.xml Thu May 15 00:30:37 2008
@@ -83,6 +83,11 @@
             <groupId>org.apache.felix</groupId>
             <artifactId>org.osgi.compendium</artifactId>
         </dependency>
+        
+        <dependency>
+            <groupId>junit</groupId>
+            <artifactId>junit</artifactId>
+        </dependency>
     </dependencies>
 
 </project>

Modified: incubator/sling/trunk/commons/osgi/src/main/java/org/apache/sling/commons/osgi/ManifestHeader.java
URL: http://svn.apache.org/viewvc/incubator/sling/trunk/commons/osgi/src/main/java/org/apache/sling/commons/osgi/ManifestHeader.java?rev=656528&r1=656527&r2=656528&view=diff
==============================================================================
--- incubator/sling/trunk/commons/osgi/src/main/java/org/apache/sling/commons/osgi/ManifestHeader.java (original)
+++ incubator/sling/trunk/commons/osgi/src/main/java/org/apache/sling/commons/osgi/ManifestHeader.java Thu May 15 00:30:37 2008
@@ -47,7 +47,11 @@
          * The directives for this entry.
          */
         NameValuePair[] getDirectives();
-    }
+
+        String getAttributeValue(String name);
+
+        String getDirectiveValue(String name);
+}
 
     /** The entries for this header. */
     private Entry[] entries = new Entry[0];
@@ -305,5 +309,28 @@
             return this.value;
         }
 
+        public String getAttributeValue(String name) {
+            String v = null;
+            int index = 0;
+            while ( v == null && index < attributes.length ) {
+                if ( attributes[index].getName().equals(name) ) {
+                    v = attributes[index].getValue();
+                }
+                index++;
+            }
+            return v;
+        }
+
+        public String getDirectiveValue(String name) {
+            String v = null;
+            int index = 0;
+            while ( v == null && index < directives.length ) {
+                if ( directives[index].getName().equals(name) ) {
+                    v = directives[index].getValue();
+                }
+                index++;
+            }
+            return v;
+        }
     }
 }

Modified: incubator/sling/trunk/jcr/contentloader/pom.xml
URL: http://svn.apache.org/viewvc/incubator/sling/trunk/jcr/contentloader/pom.xml?rev=656528&r1=656527&r2=656528&view=diff
==============================================================================
--- incubator/sling/trunk/jcr/contentloader/pom.xml (original)
+++ incubator/sling/trunk/jcr/contentloader/pom.xml Thu May 15 00:30:37 2008
@@ -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>

Modified: incubator/sling/trunk/jcr/contentloader/src/main/java/org/apache/sling/jcr/contentloader/internal/PathEntry.java
URL: http://svn.apache.org/viewvc/incubator/sling/trunk/jcr/contentloader/src/main/java/org/apache/sling/jcr/contentloader/internal/PathEntry.java?rev=656528&r1=656527&r2=656528&view=diff
==============================================================================
--- incubator/sling/trunk/jcr/contentloader/src/main/java/org/apache/sling/jcr/contentloader/internal/PathEntry.java (original)
+++ incubator/sling/trunk/jcr/contentloader/src/main/java/org/apache/sling/jcr/contentloader/internal/PathEntry.java Thu May 15 00:30:37 2008
@@ -21,8 +21,8 @@
 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 @@
 
         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 @@
         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;
         }