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

Reply via email to