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 9857e6cb1f6a8ba3896fdeb85f1716d113f0c8a0
Author: Carsten Ziegeler <[email protected]>
AuthorDate: Wed Sep 24 09:05:18 2014 +0000

    Fully support Apach Felix config file format. Move from properties to 
getter and setter methods
    
    git-svn-id: 
https://svn.apache.org/repos/asf/sling/trunk/tooling/support/slingstart-model@1627261
 13f79535-47bb-0310-9956-ffa450edef68
---
 .../slingstart/model/txt/TXTSSMModelReader.java    |  2 ++
 .../slingstart/model/xml/XMLSSMModelReader.java    | 40 ++++++++++++----------
 .../slingstart/model/xml/XMLSSMModelWriter.java    | 19 +++++-----
 3 files changed, 35 insertions(+), 26 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 fa0f3f4..41b8eb6 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
@@ -148,6 +148,8 @@ public class TXTSSMModelReader {
                     }
                 }
             }
+        } else if ( config.isSpecial() ) {
+            config.addProperty(config.getPid(), textValue);
         } else {
             final LineNumberReader lnr = new LineNumberReader(new 
StringReader(textValue));
             String line;
diff --git 
a/src/main/java/org/apache/sling/slingstart/model/xml/XMLSSMModelReader.java 
b/src/main/java/org/apache/sling/slingstart/model/xml/XMLSSMModelReader.java
index 609661d..3045e50 100644
--- a/src/main/java/org/apache/sling/slingstart/model/xml/XMLSSMModelReader.java
+++ b/src/main/java/org/apache/sling/slingstart/model/xml/XMLSSMModelReader.java
@@ -215,24 +215,28 @@ public class XMLSSMModelReader {
                         if ( prevMode == MODE.STARTLEVEL || prevMode == 
MODE.FEATURE_STARTLEVEL ) {
                             this.startLevel = 0;
                         } else if ( prevMode == MODE.CONFIGURATION || prevMode 
== MODE.FEATURE_CONFIGURATION ) {
-                            ByteArrayInputStream bais = null;
-                            try {
-                                bais = new 
ByteArrayInputStream(textValue.getBytes("UTF-8"));
-                                @SuppressWarnings("unchecked")
-                                final Dictionary<String, Object> props = 
ConfigurationHandler.read(bais);
-                                final Enumeration<String> e = props.keys();
-                                while ( e.hasMoreElements() ) {
-                                    final String key = e.nextElement();
-                                    this.configuration.addProperty(key, 
props.get(key));
-                                }
-                            } catch ( final IOException ioe ) {
-                                throw new SAXException(ioe);
-                            } finally {
-                                if ( bais != null ) {
-                                    try {
-                                        bais.close();
-                                    } catch ( final IOException ignore ) {
-                                        // ignore
+                            if ( this.configuration.isSpecial() ) {
+                                
this.configuration.addProperty(this.configuration.getPid(), textValue);
+                            } else {
+                                ByteArrayInputStream bais = null;
+                                try {
+                                    bais = new 
ByteArrayInputStream(textValue.getBytes("UTF-8"));
+                                    @SuppressWarnings("unchecked")
+                                    final Dictionary<String, Object> props = 
ConfigurationHandler.read(bais);
+                                    final Enumeration<String> e = props.keys();
+                                    while ( e.hasMoreElements() ) {
+                                        final String key = e.nextElement();
+                                        this.configuration.addProperty(key, 
props.get(key));
+                                    }
+                                } catch ( final IOException ioe ) {
+                                    throw new SAXException(ioe);
+                                } finally {
+                                    if ( bais != null ) {
+                                        try {
+                                            bais.close();
+                                        } catch ( final IOException ignore ) {
+                                            // ignore
+                                        }
                                     }
                                 }
                             }
diff --git 
a/src/main/java/org/apache/sling/slingstart/model/xml/XMLSSMModelWriter.java 
b/src/main/java/org/apache/sling/slingstart/model/xml/XMLSSMModelWriter.java
index 510cdb7..2881527 100644
--- a/src/main/java/org/apache/sling/slingstart/model/xml/XMLSSMModelWriter.java
+++ b/src/main/java/org/apache/sling/slingstart/model/xml/XMLSSMModelWriter.java
@@ -144,15 +144,18 @@ public class XMLSSMModelWriter {
                 pw.print("pid=\"");
                 pw.print(escapeXml(config.getPid()));
                 pw.println("\"><![CDATA[");
-                final ByteArrayOutputStream os = new ByteArrayOutputStream();
-                try {
-                    ConfigurationHandler.write(os , config.getProperties());
-                } finally {
-                    os.close();
+                if ( config.isSpecial() ) {
+                    pw.println(config.getProperties().get(config.getPid()));
+                } else {
+                    final ByteArrayOutputStream os = new 
ByteArrayOutputStream();
+                    try {
+                        ConfigurationHandler.write(os , 
config.getProperties());
+                    } finally {
+                        os.close();
+                    }
+                    final String configString = new String(os.toByteArray(), 
"UTF-8");
+                    pw.println(configString);
                 }
-                final String configString = new String(os.toByteArray(), 
"UTF-8");
-                pw.println(configString);
-                pw.println(config.getProperties());
                 pw.print(indent);
                 pw.println("]]></configuration>");
             }

-- 
To stop receiving notification emails like this one, please contact
"[email protected]" <[email protected]>.

Reply via email to