CAMEL-10842: Component JSon schema - JSon values should not always be string 
types


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

Branch: refs/heads/master
Commit: 197b54a3d60b378eff3804ed1efb0d5c3c97a2a0
Parents: 55dcbe8
Author: Claus Ibsen <davscl...@apache.org>
Authored: Thu Feb 16 13:09:44 2017 +0100
Committer: Claus Ibsen <davscl...@apache.org>
Committed: Thu Feb 16 13:09:44 2017 +0100

----------------------------------------------------------------------
 .../java/org/apache/camel/util/JsonSchemaHelper.java   |  4 ++--
 .../org/apache/camel/catalog/JSonSchemaHelper.java     |  4 ++--
 .../org/apache/camel/catalog/CamelCatalogTest.java     | 13 ++++++++++++-
 .../src/test/resources/org/foo/camel/dummy.json        |  2 ++
 .../camel/tools/apt/helper/JsonSchemaHelper.java       |  4 ++--
 .../apache/camel/maven/packaging/JSonSchemaHelper.java |  4 ++--
 6 files changed, 22 insertions(+), 9 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/197b54a3/camel-core/src/main/java/org/apache/camel/util/JsonSchemaHelper.java
----------------------------------------------------------------------
diff --git 
a/camel-core/src/main/java/org/apache/camel/util/JsonSchemaHelper.java 
b/camel-core/src/main/java/org/apache/camel/util/JsonSchemaHelper.java
index 09e89c0..1c2c638 100644
--- a/camel-core/src/main/java/org/apache/camel/util/JsonSchemaHelper.java
+++ b/camel-core/src/main/java/org/apache/camel/util/JsonSchemaHelper.java
@@ -30,8 +30,8 @@ import java.util.regex.Pattern;
  */
 public final class JsonSchemaHelper {
 
-    // 0 = text, 1 = enum, 2 = boolean, 3 = integer
-    private static final Pattern PATTERN = 
Pattern.compile("\"(.+?)\"|\\[(.+)\\]|(true|false)|(\\d+)");
+    // 0 = text, 1 = enum, 2 = boolean, 3 = integer or number
+    private static final Pattern PATTERN = 
Pattern.compile("\"(.+?)\"|\\[(.+)\\]|(true|false)|(\\d+\\.?\\d+)");
     private static final String QUOT = "&quot;";
 
     private JsonSchemaHelper() {

http://git-wip-us.apache.org/repos/asf/camel/blob/197b54a3/platforms/catalog/src/main/java/org/apache/camel/catalog/JSonSchemaHelper.java
----------------------------------------------------------------------
diff --git 
a/platforms/catalog/src/main/java/org/apache/camel/catalog/JSonSchemaHelper.java
 
b/platforms/catalog/src/main/java/org/apache/camel/catalog/JSonSchemaHelper.java
index 1258256..fbd2fff 100644
--- 
a/platforms/catalog/src/main/java/org/apache/camel/catalog/JSonSchemaHelper.java
+++ 
b/platforms/catalog/src/main/java/org/apache/camel/catalog/JSonSchemaHelper.java
@@ -27,8 +27,8 @@ import java.util.regex.Pattern;
 
 public final class JSonSchemaHelper {
 
-    // 0 = text, 1 = enum, 2 = boolean, 3 = integer
-    private static final Pattern PATTERN = 
Pattern.compile("\"(.+?)\"|\\[(.+)\\]|(true|false)|(\\d+)");
+    // 0 = text, 1 = enum, 2 = boolean, 3 = integer or number
+    private static final Pattern PATTERN = 
Pattern.compile("\"(.+?)\"|\\[(.+)\\]|(true|false)|(\\d+\\.?\\d+)");
     private static final String QUOT = "&quot;";
 
     private JSonSchemaHelper() {

http://git-wip-us.apache.org/repos/asf/camel/blob/197b54a3/platforms/catalog/src/test/java/org/apache/camel/catalog/CamelCatalogTest.java
----------------------------------------------------------------------
diff --git 
a/platforms/catalog/src/test/java/org/apache/camel/catalog/CamelCatalogTest.java
 
b/platforms/catalog/src/test/java/org/apache/camel/catalog/CamelCatalogTest.java
index c98cd1d..78c1052 100644
--- 
a/platforms/catalog/src/test/java/org/apache/camel/catalog/CamelCatalogTest.java
+++ 
b/platforms/catalog/src/test/java/org/apache/camel/catalog/CamelCatalogTest.java
@@ -1078,6 +1078,7 @@ public class CamelCatalogTest {
                 break;
             }
         }
+        assertEquals("The dummy component logs message exchanges to the 
underlying logging mechanism.", desc);
 
         // componentProperties
         rows = JSonSchemaHelper.parseJsonSchema("componentProperties", json, 
true);
@@ -1088,7 +1089,7 @@ public class CamelCatalogTest {
 
         // properties
         rows = JSonSchemaHelper.parseJsonSchema("properties", json, true);
-        assertEquals(27, rows.size());
+        assertEquals(29, rows.size());
         row = JSonSchemaHelper.getRow(rows, "level");
         assertNotNull(row);
         assertEquals("INFO", row.get("defaultValue"));
@@ -1099,6 +1100,16 @@ public class CamelCatalogTest {
         assertNotNull(row);
         assertEquals("false", row.get("deprecated"));
         assertEquals("10000", row.get("defaultValue"));
+
+        row = JSonSchemaHelper.getRow(rows, "fontSize");
+        assertNotNull(row);
+        assertEquals("false", row.get("deprecated"));
+        assertEquals("14", row.get("defaultValue"));
+
+        row = JSonSchemaHelper.getRow(rows, "kerberosRenewJitter");
+        assertNotNull(row);
+        assertEquals("java.lang.Double", row.get("javaType"));
+        assertEquals("0.05", row.get("defaultValue"));
     }
 
 }

http://git-wip-us.apache.org/repos/asf/camel/blob/197b54a3/platforms/catalog/src/test/resources/org/foo/camel/dummy.json
----------------------------------------------------------------------
diff --git a/platforms/catalog/src/test/resources/org/foo/camel/dummy.json 
b/platforms/catalog/src/test/resources/org/foo/camel/dummy.json
index feee3de..8dfd7b3 100644
--- a/platforms/catalog/src/test/resources/org/foo/camel/dummy.json
+++ b/platforms/catalog/src/test/resources/org/foo/camel/dummy.json
@@ -26,6 +26,7 @@
     "marker": { "kind": "parameter", "group": "producer", "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "description": "An 
optional Marker name to use." },
     "exchangePattern": { "kind": "parameter", "group": "advanced", "label": 
"advanced", "type": "string", "javaType": "org.apache.camel.ExchangePattern", 
"enum": [ "InOnly", "RobustInOnly", "InOut", "InOptionalOut", "OutOnly", 
"RobustOutOnly", "OutIn", "OutOptionalIn" ], "deprecated": false, 
"defaultValue": "InOnly", "description": "Sets the default exchange pattern 
when creating an exchange." },
     "synchronous": { "kind": "parameter", "group": "advanced", "label": 
"advanced", "type": "boolean", "javaType": "boolean", "deprecated": false, 
"defaultValue": false, "description": "Sets whether synchronous processing 
should be strictly used or Camel is allowed to use asynchronous processing (if 
supported)." },
+    "kerberosRenewJitter": { "kind": "parameter", "group": "security", 
"label": "common,security", "type": "number", "javaType": "java.lang.Double", 
"deprecated": false, "secret": false, "defaultValue": 0.05, "description": 
"Percentage of random jitter added to the renewal time." },
     "maxChars": { "kind": "parameter", "group": "formatting", "label": 
"formatting", "type": "integer", "javaType": "int", "deprecated": false, 
"defaultValue": 10000, "description": "Limits the number of characters logged 
per line." },
     "multiline": { "kind": "parameter", "group": "formatting", "label": 
"formatting", "type": "boolean", "javaType": "boolean", "deprecated": false, 
"defaultValue": false, "description": "If enabled then each information is 
outputted on a newline." },
     "showAll": { "kind": "parameter", "group": "formatting", "label": 
"formatting", "type": "boolean", "javaType": "boolean", "deprecated": false, 
"defaultValue": false, "description": "Quick option for turning all options on. 
(multiline maxChars has to be manually set if to be used)" },
@@ -43,6 +44,7 @@
     "showStackTrace": { "kind": "parameter", "group": "formatting", "label": 
"formatting", "type": "boolean", "javaType": "boolean", "deprecated": false, 
"defaultValue": false, "description": "Show the stack trace if an exchange has 
an exception. Only effective if one of showAll showException or 
showCaughtException are enabled." },
     "showStreams": { "kind": "parameter", "group": "formatting", "label": 
"formatting", "type": "boolean", "javaType": "boolean", "deprecated": false, 
"defaultValue": false, "description": "Whether Camel should show stream bodies 
or not (eg such as java.io.InputStream). Beware if you enable this option then 
you may not be able later to access the message body as the stream have already 
been read by this logger. To remedy this you will have to use Stream Caching." 
},
     "skipBodyLineSeparator": { "kind": "parameter", "group": "formatting", 
"label": "formatting", "type": "boolean", "javaType": "boolean", "deprecated": 
false, "defaultValue": true, "description": "Whether to skip line separators 
when logging the message body. This allows to log the message body in one line 
setting this option to false will preserve any line separators from the body 
which then will log the body as is." },
+    "fontSize": { "kind": "parameter", "group": "producer", "type": "number", 
"javaType": "float", "deprecated": false, "secret": false, "defaultValue": 14, 
"description": "Font size in pixels" },
     "style": { "kind": "parameter", "group": "formatting", "label": 
"formatting", "type": "string", "javaType": 
"org.apache.camel.processor.DefaultExchangeFormatter.OutputStyle", "enum": [ 
"Default", "Tab", "Fixed" ], "deprecated": false, "defaultValue": "Default", 
"description": "Sets the outputs style to use." }
   }
 }

http://git-wip-us.apache.org/repos/asf/camel/blob/197b54a3/tooling/apt/src/main/java/org/apache/camel/tools/apt/helper/JsonSchemaHelper.java
----------------------------------------------------------------------
diff --git 
a/tooling/apt/src/main/java/org/apache/camel/tools/apt/helper/JsonSchemaHelper.java
 
b/tooling/apt/src/main/java/org/apache/camel/tools/apt/helper/JsonSchemaHelper.java
index 955e915..cf3588f 100644
--- 
a/tooling/apt/src/main/java/org/apache/camel/tools/apt/helper/JsonSchemaHelper.java
+++ 
b/tooling/apt/src/main/java/org/apache/camel/tools/apt/helper/JsonSchemaHelper.java
@@ -34,8 +34,8 @@ import java.util.regex.Pattern;
 public final class JsonSchemaHelper {
 
     private static final String VALID_CHARS = ".-='/\\!&():;";
-    // 0 = text, 1 = enum, 2 = boolean, 3 = integer
-    private static final Pattern PATTERN = 
Pattern.compile("\"(.+?)\"|\\[(.+)\\]|(true|false)|(\\d+)");
+    // 0 = text, 1 = enum, 2 = boolean, 3 = integer or number
+    private static final Pattern PATTERN = 
Pattern.compile("\"(.+?)\"|\\[(.+)\\]|(true|false)|(\\d+\\.?\\d+)");
     private static final String QUOT = "&quot;";
 
     private JsonSchemaHelper() {

http://git-wip-us.apache.org/repos/asf/camel/blob/197b54a3/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/JSonSchemaHelper.java
----------------------------------------------------------------------
diff --git 
a/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/JSonSchemaHelper.java
 
b/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/JSonSchemaHelper.java
index 27bc6e4..2fbd27f 100644
--- 
a/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/JSonSchemaHelper.java
+++ 
b/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/JSonSchemaHelper.java
@@ -25,8 +25,8 @@ import java.util.regex.Pattern;
 
 public final class JSonSchemaHelper {
 
-    // 0 = text, 1 = enum, 2 = boolean, 3 = integer
-    private static final Pattern PATTERN = 
Pattern.compile("\"(.+?)\"|\\[(.+)\\]|(true|false)|(\\d+)");
+    // 0 = text, 1 = enum, 2 = boolean, 3 = integer or number
+    private static final Pattern PATTERN = 
Pattern.compile("\"(.+?)\"|\\[(.+)\\]|(true|false)|(\\d+\\.?\\d+)");
     private static final String QUOT = "&quot;";
 
     private JSonSchemaHelper() {

Reply via email to