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 2014/10/09 09:52:42 UTC

svn commit: r1630309 - in /sling/trunk/tooling/support/provisioning-model/src/main/java/org/apache/sling/provisioning/model: ModelUtility.java io/ModelReader.java

Author: cziegeler
Date: Thu Oct  9 07:52:42 2014
New Revision: 1630309

URL: http://svn.apache.org/r1630309
Log:
Allow comments in configurations

Modified:
    sling/trunk/tooling/support/provisioning-model/src/main/java/org/apache/sling/provisioning/model/ModelUtility.java
    sling/trunk/tooling/support/provisioning-model/src/main/java/org/apache/sling/provisioning/model/io/ModelReader.java

Modified: sling/trunk/tooling/support/provisioning-model/src/main/java/org/apache/sling/provisioning/model/ModelUtility.java
URL: http://svn.apache.org/viewvc/sling/trunk/tooling/support/provisioning-model/src/main/java/org/apache/sling/provisioning/model/ModelUtility.java?rev=1630309&r1=1630308&r2=1630309&view=diff
==============================================================================
--- sling/trunk/tooling/support/provisioning-model/src/main/java/org/apache/sling/provisioning/model/ModelUtility.java (original)
+++ sling/trunk/tooling/support/provisioning-model/src/main/java/org/apache/sling/provisioning/model/ModelUtility.java Thu Oct  9 07:52:42 2014
@@ -18,6 +18,7 @@ package org.apache.sling.provisioning.mo
 
 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();

Modified: sling/trunk/tooling/support/provisioning-model/src/main/java/org/apache/sling/provisioning/model/io/ModelReader.java
URL: http://svn.apache.org/viewvc/sling/trunk/tooling/support/provisioning-model/src/main/java/org/apache/sling/provisioning/model/io/ModelReader.java?rev=1630309&r1=1630308&r2=1630309&view=diff
==============================================================================
--- sling/trunk/tooling/support/provisioning-model/src/main/java/org/apache/sling/provisioning/model/io/ModelReader.java (original)
+++ sling/trunk/tooling/support/provisioning-model/src/main/java/org/apache/sling/provisioning/model/io/ModelReader.java Thu Oct  9 07:52:42 2014
@@ -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;