You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by pa...@apache.org on 2017/05/23 23:14:17 UTC

svn commit: r1795978 - in /sling/trunk/bundles/jcr/contentloader: pom.xml src/main/java/org/apache/sling/jcr/contentloader/internal/readers/JsonReader.java

Author: pauls
Date: Tue May 23 23:14:17 2017
New Revision: 1795978

URL: http://svn.apache.org/viewvc?rev=1795978&view=rev
Log:
SLING-6876: Use JsonTicksConverter inlined from JCR Content Parser to improve tick handling.

Modified:
    sling/trunk/bundles/jcr/contentloader/pom.xml
    sling/trunk/bundles/jcr/contentloader/src/main/java/org/apache/sling/jcr/contentloader/internal/readers/JsonReader.java

Modified: sling/trunk/bundles/jcr/contentloader/pom.xml
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/jcr/contentloader/pom.xml?rev=1795978&r1=1795977&r2=1795978&view=diff
==============================================================================
--- sling/trunk/bundles/jcr/contentloader/pom.xml (original)
+++ sling/trunk/bundles/jcr/contentloader/pom.xml Tue May 23 23:14:17 2017
@@ -76,7 +76,8 @@
               org.xmlpull.v1
             </Private-Package>
             <Embed-Dependency>
-              kxml2
+              kxml2,
+              org.apache.sling.jcr.contentparser;inline="org/apache/sling/jcr/contentparser/impl/JsonTicksConverter.class"
             </Embed-Dependency>
           </instructions>
         </configuration>
@@ -181,6 +182,18 @@
       <scope>provided</scope>
     </dependency>
     <dependency>
+      <groupId>org.apache.sling</groupId>
+      <artifactId>org.apache.sling.jcr.contentparser</artifactId>
+      <version>1.1.1-SNAPSHOT</version>
+      <scope>provided</scope>
+      <exclusions>
+        <exclusion>
+            <groupId>*</groupId>
+            <artifactId>*</artifactId>
+        </exclusion>
+    </exclusions>
+    </dependency>
+    <dependency>
       <!-- for security content loader (users/groups/acls) -->
       <groupId>org.apache.sling</groupId>
       <artifactId>org.apache.sling.jcr.base</artifactId>

Modified: sling/trunk/bundles/jcr/contentloader/src/main/java/org/apache/sling/jcr/contentloader/internal/readers/JsonReader.java
URL: http://svn.apache.org/viewvc/sling/trunk/bundles/jcr/contentloader/src/main/java/org/apache/sling/jcr/contentloader/internal/readers/JsonReader.java?rev=1795978&r1=1795977&r2=1795978&view=diff
==============================================================================
--- sling/trunk/bundles/jcr/contentloader/src/main/java/org/apache/sling/jcr/contentloader/internal/readers/JsonReader.java (original)
+++ sling/trunk/bundles/jcr/contentloader/src/main/java/org/apache/sling/jcr/contentloader/internal/readers/JsonReader.java Tue May 23 23:14:17 2017
@@ -46,6 +46,7 @@ import org.apache.felix.scr.annotations.
 import org.apache.felix.scr.annotations.Service;
 import org.apache.sling.jcr.contentloader.ContentCreator;
 import org.apache.sling.jcr.contentloader.ContentReader;
+import static org.apache.sling.jcr.contentparser.impl.JsonTicksConverter.tickToDoubleQuote;
 
 /**
  * The <code>JsonReader</code> Parses a Json document on content load and creates the
@@ -466,39 +467,4 @@ public class JsonReader implements Conte
 		//do the work.
 		contentCreator.createAce(principalID, grantedPrivileges, deniedPrivileges, order);
     }
-    
-    private static String tickToDoubleQuote(String input) {
-        char[] output = new char[input.length()];
-        boolean quoted = false;
-        boolean escaped = false;
-        for (int i = 0; i < output.length;i++) {
-            char in = input.charAt(i);
-            if (!quoted)
-            {
-                if (in == '\'') {
-                    in = '"';
-                }
-                else if (in == '"') {
-                    quoted = true;
-                }
-            }
-            else {
-                if (!escaped) {
-                    if (in == '"') {
-                        quoted = false;
-                    }
-                    else if (in == '\\') {
-                        escaped = true;
-                    }
-                }
-                else
-                {
-                    escaped = false;
-                }
-            }
-            output[i] = in;
-        }
-        return new String(output);
-    }
-
 }