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 bbe9bcd89cbfed6a053942039a518e7bb0b886b4
Author: Carsten Ziegeler <cziege...@apache.org>
AuthorDate: Thu Oct 9 07:52:42 2014 +0000

    Allow comments in configurations
    
    git-svn-id: 
https://svn.apache.org/repos/asf/sling/trunk/tooling/support/provisioning-model@1630309
 13f79535-47bb-0310-9956-ffa450edef68
---
 .../sling/provisioning/model/ModelUtility.java       | 20 +++++++++++++++++++-
 .../sling/provisioning/model/io/ModelReader.java     |  7 ++++++-
 2 files changed, 25 insertions(+), 2 deletions(-)

diff --git 
a/src/main/java/org/apache/sling/provisioning/model/ModelUtility.java 
b/src/main/java/org/apache/sling/provisioning/model/ModelUtility.java
index cb711a9..82c129f 100644
--- a/src/main/java/org/apache/sling/provisioning/model/ModelUtility.java
+++ b/src/main/java/org/apache/sling/provisioning/model/ModelUtility.java
@@ -18,6 +18,7 @@ package org.apache.sling.provisioning.model;
 
 import java.io.ByteArrayInputStream;
 import java.io.IOException;
+import java.io.LineNumberReader;
 import java.io.StringReader;
 import java.util.Arrays;
 import java.util.Dictionary;
@@ -174,9 +175,26 @@ public abstract class ModelUtility {
                                 }
                             } else {
                                 // Apache Felix CA format
+                                // the raw format might have comments, we have 
to remove them first
+                                final StringBuilder sb = new StringBuilder();
+                                try {
+                                    final LineNumberReader lnr = new 
LineNumberReader(new StringReader(rawConfig));
+                                    String line = null;
+                                    while ((line = lnr.readLine()) != null ) {
+                                        line = line.trim();
+                                        if ( line.isEmpty() || 
line.startsWith("#")) {
+                                            continue;
+                                        }
+                                        sb.append(line);
+                                        sb.append('\n');
+                                    }
+                                } catch ( final IOException ioe) {
+                                    throw new IllegalArgumentException("Unable 
to read configuration properties: " + config, ioe);
+                                }
+
                                 ByteArrayInputStream bais = null;
                                 try {
-                                    bais = new 
ByteArrayInputStream(rawConfig.getBytes("UTF-8"));
+                                    bais = new 
ByteArrayInputStream(sb.toString().getBytes("UTF-8"));
                                     @SuppressWarnings("unchecked")
                                     final Dictionary<String, Object> props = 
ConfigurationHandler.read(bais);
                                     final Enumeration<String> i = props.keys();
diff --git 
a/src/main/java/org/apache/sling/provisioning/model/io/ModelReader.java 
b/src/main/java/org/apache/sling/provisioning/model/io/ModelReader.java
index 5fa2f7e..8786a13 100644
--- a/src/main/java/org/apache/sling/provisioning/model/io/ModelReader.java
+++ b/src/main/java/org/apache/sling/provisioning/model/io/ModelReader.java
@@ -110,7 +110,12 @@ public class ModelReader {
 
             // comment?
             if ( line.startsWith("#") ) {
-                checkConfig();
+                if ( config != null ) {
+                    configBuilder.append(line);
+                    configBuilder.append('\n');
+
+                    continue;
+                }
                 final String c = line.substring(1).trim();
                 if ( comment == null ) {
                     comment = c;

-- 
To stop receiving notification emails like this one, please contact
"commits@sling.apache.org" <commits@sling.apache.org>.

Reply via email to