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

svn commit: r1796677 - in /sling/trunk/tooling/maven/maven-sling-plugin/src: main/java/org/apache/sling/maven/bundlesupport/ test/java/org/apache/sling/maven/bundlesupport/

Author: sseifert
Date: Mon May 29 19:20:23 2017
New Revision: 1796677

URL: http://svn.apache.org/viewvc?rev=1796677&view=rev
Log:
SLING-6920 Maven Sling Plugin: Optional activate json tick parse support for validate goal

Modified:
    sling/trunk/tooling/maven/maven-sling-plugin/src/main/java/org/apache/sling/maven/bundlesupport/JsonSupport.java
    sling/trunk/tooling/maven/maven-sling-plugin/src/main/java/org/apache/sling/maven/bundlesupport/ValidationMojo.java
    sling/trunk/tooling/maven/maven-sling-plugin/src/test/java/org/apache/sling/maven/bundlesupport/JsonSupportTest.java

Modified: sling/trunk/tooling/maven/maven-sling-plugin/src/main/java/org/apache/sling/maven/bundlesupport/JsonSupport.java
URL: http://svn.apache.org/viewvc/sling/trunk/tooling/maven/maven-sling-plugin/src/main/java/org/apache/sling/maven/bundlesupport/JsonSupport.java?rev=1796677&r1=1796676&r2=1796677&view=diff
==============================================================================
--- sling/trunk/tooling/maven/maven-sling-plugin/src/main/java/org/apache/sling/maven/bundlesupport/JsonSupport.java (original)
+++ sling/trunk/tooling/maven/maven-sling-plugin/src/main/java/org/apache/sling/maven/bundlesupport/JsonSupport.java Mon May 29 19:20:23 2017
@@ -57,7 +57,7 @@ public final class JsonSupport {
      * @return JSON object
      */
     public static JsonObject parseObject(String jsonString) {
-        try (StringReader reader = new StringReader(tickToDoubleQuote(jsonString));
+        try (StringReader reader = new StringReader(jsonString);
                 JsonReader jsonReader = JSON_READER_FACTORY.createReader(reader)) {
             return jsonReader.readObject();
         }
@@ -69,7 +69,7 @@ public final class JsonSupport {
      * @return JSON array
      */
     public static JsonArray parseArray(String jsonString) {
-        try (StringReader reader = new StringReader(tickToDoubleQuote(jsonString));
+        try (StringReader reader = new StringReader(jsonString);
                 JsonReader jsonReader = JSON_READER_FACTORY.createReader(reader)) {
             return jsonReader.readArray();
         }
@@ -80,8 +80,12 @@ public final class JsonSupport {
      * @param jsonString JSON string
      * @throws javax.json.JsonException when JSON structure is invalid
      */
-    public static void validateJsonStructure(String jsonString) {
-        try (StringReader reader = new StringReader(tickToDoubleQuote(jsonString));
+    public static void validateJsonStructure(String jsonString, boolean tickToDoubleQuote) {
+        String transformedJsonString = jsonString;
+        if (tickToDoubleQuote) {
+            transformedJsonString = tickToDoubleQuote(jsonString);
+        }
+        try (StringReader reader = new StringReader(transformedJsonString);
                 JsonReader jsonReader = JSON_READER_FACTORY.createReader(reader)) {
             jsonReader.read();
         }

Modified: sling/trunk/tooling/maven/maven-sling-plugin/src/main/java/org/apache/sling/maven/bundlesupport/ValidationMojo.java
URL: http://svn.apache.org/viewvc/sling/trunk/tooling/maven/maven-sling-plugin/src/main/java/org/apache/sling/maven/bundlesupport/ValidationMojo.java?rev=1796677&r1=1796676&r2=1796677&view=diff
==============================================================================
--- sling/trunk/tooling/maven/maven-sling-plugin/src/main/java/org/apache/sling/maven/bundlesupport/ValidationMojo.java (original)
+++ sling/trunk/tooling/maven/maven-sling-plugin/src/main/java/org/apache/sling/maven/bundlesupport/ValidationMojo.java Mon May 29 19:20:23 2017
@@ -62,6 +62,12 @@ public class ValidationMojo extends Abst
     private boolean skipJson;
 
     /**
+     * Whether to accept quote ticks in JSON files or not. 
+     */
+    @Parameter(property = "sling.validation.jsonQuoteTick", defaultValue = "false", required = true)
+    private boolean jsonQuoteTick;
+
+    /**
      * @see org.apache.maven.plugin.AbstractMojo#execute()
      */
     public void execute()
@@ -119,7 +125,7 @@ public class ValidationMojo extends Abst
                 }
                 // validate JSON
                 try {
-                    JsonSupport.validateJsonStructure(json);
+                    JsonSupport.validateJsonStructure(json, jsonQuoteTick);
                 } catch (JsonException e) {
                     throw new MojoExecutionException("An Error occured while validating the file '"+fileName+"'", e);
                 }

Modified: sling/trunk/tooling/maven/maven-sling-plugin/src/test/java/org/apache/sling/maven/bundlesupport/JsonSupportTest.java
URL: http://svn.apache.org/viewvc/sling/trunk/tooling/maven/maven-sling-plugin/src/test/java/org/apache/sling/maven/bundlesupport/JsonSupportTest.java?rev=1796677&r1=1796676&r2=1796677&view=diff
==============================================================================
--- sling/trunk/tooling/maven/maven-sling-plugin/src/test/java/org/apache/sling/maven/bundlesupport/JsonSupportTest.java (original)
+++ sling/trunk/tooling/maven/maven-sling-plugin/src/test/java/org/apache/sling/maven/bundlesupport/JsonSupportTest.java Mon May 29 19:20:23 2017
@@ -54,14 +54,19 @@ public class JsonSupportTest {
 
     @Test
     public void testValidateJsonStructure() {
-        validateJsonStructure("{\"prop1\":123}");
-        validateJsonStructure("[{\"prop1\":123}]");
-        validateJsonStructure("{'prop1':123}");
+        validateJsonStructure("{\"prop1\":123}", false);
+        validateJsonStructure("[{\"prop1\":123}]", false);
+        validateJsonStructure("{'prop1':123}", true);
     }
 
     @Test(expected=JsonException.class)
     public void testValidateJsonStructure_Invalid() {
-        validateJsonStructure("wurstbrot");
+        validateJsonStructure("wurstbrot", false);
+    }
+
+    @Test(expected=JsonException.class)
+    public void testValidateJsonStructure_InvalidQuoteTick() {
+        validateJsonStructure("{'prop1':123}", false);
     }
 
     @Test