This is an automated email from the ASF dual-hosted git repository. rombert pushed a commit to annotated tag org.apache.sling.provisioning.model-1.0.0 in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-provisioning-model.git
commit 43a5c064df5db23eb6facd3b320a6348713b5458 Author: Carsten Ziegeler <cziege...@apache.org> AuthorDate: Tue Sep 23 06:25:08 2014 +0000 Add simple txt parser git-svn-id: https://svn.apache.org/repos/asf/sling/trunk/tooling/support/slingstart-model@1626950 13f79535-47bb-0310-9956-ffa450edef68 --- .../slingstart/model/txt/TXTSSMModelReader.java | 42 ++++++++++++++++++---- 1 file changed, 35 insertions(+), 7 deletions(-) diff --git a/src/main/java/org/apache/sling/slingstart/model/txt/TXTSSMModelReader.java b/src/main/java/org/apache/sling/slingstart/model/txt/TXTSSMModelReader.java index 9c9ccd5..6c73c22 100644 --- a/src/main/java/org/apache/sling/slingstart/model/txt/TXTSSMModelReader.java +++ b/src/main/java/org/apache/sling/slingstart/model/txt/TXTSSMModelReader.java @@ -19,6 +19,7 @@ package org.apache.sling.slingstart.model.txt; import java.io.IOException; import java.io.LineNumberReader; import java.io.Reader; +import java.util.UUID; import org.apache.sling.slingstart.model.SSMArtifact; import org.apache.sling.slingstart.model.SSMConfiguration; @@ -28,6 +29,8 @@ import org.apache.sling.slingstart.model.SSMFeature; public class TXTSSMModelReader { + public static final String FELIX_FORMAT_SUFFIX = "FORMAT:felix.config"; + /** * Reads the deliverable file * The reader is not closed. @@ -52,13 +55,14 @@ public class TXTSSMModelReader { // Parse verb and qualifier from first line final String [] firstLine= line.split(" "); final String verb = firstLine[0]; - final StringBuilder qualifier = new StringBuilder(); + final StringBuilder builder = new StringBuilder(); for(int i=1; i < firstLine.length; i++) { - if (qualifier.length() > 0) { - qualifier.append(' '); + if (builder.length() > 0) { + builder.append(' '); } - qualifier.append(firstLine[i]); + builder.append(firstLine[i]); } + final String qualifier = builder.toString(); // Parse properties from optional indented lines // that follow verb line @@ -75,15 +79,39 @@ public class TXTSSMModelReader { if ( "classpath".equals("verb") ) { final SSMFeature boot = model.getOrCreateFeature(new String[] {SSMFeature.RUN_MODE_BOOT}); - final SSMArtifact artifact = SSMArtifact.fromMvnUrl(qualifier.toString()); + final SSMArtifact artifact = SSMArtifact.fromMvnUrl(qualifier); boot.getOrCreateStartLevel(0).artifacts.add(artifact); } else if ( "bundle".equals(verb) ) { final SSMFeature feature = model.getOrCreateFeature(null); - final SSMArtifact artifact = SSMArtifact.fromMvnUrl(qualifier.toString()); + final SSMArtifact artifact = SSMArtifact.fromMvnUrl(qualifier); feature.getOrCreateStartLevel(0).artifacts.add(artifact); - } else if ( "configuration".equals(verb) ) { + } else if ( "config".equals(verb) ) { + final SSMFeature feature = model.getOrCreateFeature(null); + final SSMConfiguration config = new SSMConfiguration(); + boolean felixFormat = false; + if (qualifier.endsWith(FELIX_FORMAT_SUFFIX)) { + felixFormat = true; + config.pid = qualifier.split(" ")[0].trim(); + } else { + config.pid = qualifier; + } + if ( props != null ) { + config.properties = props.toString(); + } + feature.configurations.add(config); + } else if ( "config.factory".equals(verb) ) { final SSMFeature feature = model.getOrCreateFeature(null); final SSMConfiguration config = new SSMConfiguration(); + boolean felixFormat = false; + if (qualifier.endsWith(FELIX_FORMAT_SUFFIX)) { + felixFormat = true; + config.factoryPid = qualifier.split(" ")[0].trim(); + } else { + config.factoryPid = qualifier; + } + // create unique alias + config.pid = UUID.randomUUID().toString(); + if ( props != null ) { config.properties = props.toString(); } -- To stop receiving notification emails like this one, please contact "commits@sling.apache.org" <commits@sling.apache.org>.