Repository: camel
Updated Branches:
  refs/heads/master 223fa08c3 -> 44f82cbf0


CAMEL-7999: apt plugin fixed default value to be json safe


Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/44f82cbf
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/44f82cbf
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/44f82cbf

Branch: refs/heads/master
Commit: 44f82cbf0d1c379a0fc31ebd7d20a1d0acc70fd1
Parents: 223fa08
Author: Claus Ibsen <davscl...@apache.org>
Authored: Wed Jan 28 11:09:00 2015 +0100
Committer: Claus Ibsen <davscl...@apache.org>
Committed: Wed Jan 28 11:09:00 2015 +0100

----------------------------------------------------------------------
 .../apache/camel/tools/apt/JsonSchemaHelper.java    | 16 +++++++++++++++-
 1 file changed, 15 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/44f82cbf/tooling/apt/src/main/java/org/apache/camel/tools/apt/JsonSchemaHelper.java
----------------------------------------------------------------------
diff --git 
a/tooling/apt/src/main/java/org/apache/camel/tools/apt/JsonSchemaHelper.java 
b/tooling/apt/src/main/java/org/apache/camel/tools/apt/JsonSchemaHelper.java
index 6f9ee5f..ea78bae 100644
--- a/tooling/apt/src/main/java/org/apache/camel/tools/apt/JsonSchemaHelper.java
+++ b/tooling/apt/src/main/java/org/apache/camel/tools/apt/JsonSchemaHelper.java
@@ -80,7 +80,8 @@ final class JsonSchemaHelper {
 
         if (!Strings.isNullOrEmpty(defaultValue)) {
             sb.append(", \"defaultValue\": ");
-            sb.append(Strings.doubleQuote(defaultValue));
+            String text = safeDefaultValue(defaultValue);
+            sb.append(Strings.doubleQuote(text));
         }
 
         if (!Strings.isNullOrEmpty(description)) {
@@ -249,4 +250,17 @@ final class JsonSchemaHelper {
         return s.trim();
     }
 
+    /**
+     * The default value may need to be escaped to be safe for json
+     */
+    private static String safeDefaultValue(String value) {
+        if ("\"".equals(value)) {
+            return "\\\"";
+        } else if ("\\".equals(value)) {
+            return "\\\\";
+        } else {
+            return value;
+        }
+    }
+
 }

Reply via email to