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;
}