CAMEL-10969: Use json-simple as json parser in JSonSchemaHelper instead of our 
own home-ground parser.


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

Branch: refs/heads/json-simple
Commit: 372f327d7cd4388340b5c6b1bb9240bc74308b5d
Parents: 6208158
Author: Claus Ibsen <davscl...@apache.org>
Authored: Sun Sep 24 11:20:04 2017 +0200
Committer: Claus Ibsen <davscl...@apache.org>
Committed: Sun Sep 24 11:20:04 2017 +0200

----------------------------------------------------------------------
 .../camel/maven/connector/ConnectorMojo.java    |   8 +-
 .../SpringBootAutoConfigurationMojo.java        |   2 +-
 .../maven/connector/util/JSonSchemaHelper.java  | 105 -------------------
 3 files changed, 5 insertions(+), 110 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/372f327d/connectors/camel-connector-maven-plugin/src/main/java/org/apache/camel/maven/connector/ConnectorMojo.java
----------------------------------------------------------------------
diff --git 
a/connectors/camel-connector-maven-plugin/src/main/java/org/apache/camel/maven/connector/ConnectorMojo.java
 
b/connectors/camel-connector-maven-plugin/src/main/java/org/apache/camel/maven/connector/ConnectorMojo.java
index 2d0fcc4..f03fa71 100644
--- 
a/connectors/camel-connector-maven-plugin/src/main/java/org/apache/camel/maven/connector/ConnectorMojo.java
+++ 
b/connectors/camel-connector-maven-plugin/src/main/java/org/apache/camel/maven/connector/ConnectorMojo.java
@@ -118,15 +118,15 @@ public class ConnectorMojo extends AbstractJarMojo {
                 if (schema != null) {
                     String json = FileHelper.loadText(new 
FileInputStream(schema));
 
-                    List<Map<String, String>> rows = 
JSonSchemaHelper.parseJsonSchema("component", json, false);
+                    List<Map<String, String>> rows = 
org.apache.camel.catalog.JSonSchemaHelper.parseJsonSchema("component", json, 
false);
                     String header = buildComponentHeaderSchema(rows, dto, 
gitUrl);
                     getLog().debug(header);
 
-                    rows = 
JSonSchemaHelper.parseJsonSchema("componentProperties", json, true);
+                    rows = 
org.apache.camel.catalog.JSonSchemaHelper.parseJsonSchema("componentProperties",
 json, true);
                     String componentOptions = 
buildComponentOptionsSchema(rows, dto);
                     getLog().debug(componentOptions);
 
-                    rows = JSonSchemaHelper.parseJsonSchema("properties", 
json, true);
+                    rows = 
org.apache.camel.catalog.JSonSchemaHelper.parseJsonSchema("properties", json, 
true);
                     String endpointOptions = buildEndpointOptionsSchema(rows, 
dto);
                     getLog().debug(endpointOptions);
 
@@ -145,7 +145,7 @@ public class ConnectorMojo extends AbstractJarMojo {
                     String newJson = jsonSchema.toString();
 
                     // parse ourselves
-                    rows = JSonSchemaHelper.parseJsonSchema("component", 
newJson, false);
+                    rows = 
org.apache.camel.catalog.JSonSchemaHelper.parseJsonSchema("component", newJson, 
false);
                     String newScheme = getOption(rows, "scheme");
 
                     checkConnectorScheme(newScheme);

http://git-wip-us.apache.org/repos/asf/camel/blob/372f327d/connectors/camel-connector-maven-plugin/src/main/java/org/apache/camel/maven/connector/SpringBootAutoConfigurationMojo.java
----------------------------------------------------------------------
diff --git 
a/connectors/camel-connector-maven-plugin/src/main/java/org/apache/camel/maven/connector/SpringBootAutoConfigurationMojo.java
 
b/connectors/camel-connector-maven-plugin/src/main/java/org/apache/camel/maven/connector/SpringBootAutoConfigurationMojo.java
index c629271..9b1bd24 100644
--- 
a/connectors/camel-connector-maven-plugin/src/main/java/org/apache/camel/maven/connector/SpringBootAutoConfigurationMojo.java
+++ 
b/connectors/camel-connector-maven-plugin/src/main/java/org/apache/camel/maven/connector/SpringBootAutoConfigurationMojo.java
@@ -29,12 +29,12 @@ import javax.annotation.Generated;
 import javax.annotation.PostConstruct;
 
 import com.fasterxml.jackson.databind.ObjectMapper;
+import org.apache.camel.catalog.JSonSchemaHelper;
 import org.apache.camel.maven.connector.model.ComponentModel;
 import org.apache.camel.maven.connector.model.ComponentOptionModel;
 import org.apache.camel.maven.connector.model.ConnectorOptionModel;
 import org.apache.camel.maven.connector.model.EndpointOptionModel;
 import org.apache.camel.maven.connector.model.OptionModel;
-import org.apache.camel.maven.connector.util.JSonSchemaHelper;
 import org.apache.commons.io.FileUtils;
 import org.apache.maven.plugin.AbstractMojo;
 import org.apache.maven.plugin.MojoExecutionException;

http://git-wip-us.apache.org/repos/asf/camel/blob/372f327d/connectors/camel-connector-maven-plugin/src/main/java/org/apache/camel/maven/connector/util/JSonSchemaHelper.java
----------------------------------------------------------------------
diff --git 
a/connectors/camel-connector-maven-plugin/src/main/java/org/apache/camel/maven/connector/util/JSonSchemaHelper.java
 
b/connectors/camel-connector-maven-plugin/src/main/java/org/apache/camel/maven/connector/util/JSonSchemaHelper.java
index 2bc95b7..a4b04ef 100644
--- 
a/connectors/camel-connector-maven-plugin/src/main/java/org/apache/camel/maven/connector/util/JSonSchemaHelper.java
+++ 
b/connectors/camel-connector-maven-plugin/src/main/java/org/apache/camel/maven/connector/util/JSonSchemaHelper.java
@@ -19,14 +19,8 @@ package org.apache.camel.maven.connector.util;
 import java.io.File;
 import java.net.URI;
 import java.net.URL;
-import java.util.ArrayList;
 import java.util.Date;
-import java.util.LinkedHashMap;
-import java.util.List;
-import java.util.Map;
 import java.util.Set;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
 
 /**
  * A helper class for <a href="http://json-schema.org/";>JSON schema</a>.
@@ -34,9 +28,6 @@ import java.util.regex.Pattern;
 public final class JSonSchemaHelper {
 
     private static final String VALID_CHARS = ".-='/\\!&():;";
-    // 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() {
     }
@@ -316,102 +307,6 @@ public final class JSonSchemaHelper {
     }
 
     /**
-     * Parses the json schema to split it into a list or rows, where each row 
contains key value pairs with the metadata
-     *
-     * @param group the group to parse from such as <tt>component</tt>, 
<tt>componentProperties</tt>, or <tt>properties</tt>.
-     * @param json the json
-     * @return a list of all the rows, where each row is a set of key value 
pairs with metadata
-     */
-    public static List<Map<String, String>> parseJsonSchema(String group, 
String json, boolean parseProperties) {
-        List<Map<String, String>> answer = new ArrayList<Map<String, 
String>>();
-        if (json == null) {
-            return answer;
-        }
-
-        boolean found = false;
-
-        // parse line by line
-        String[] lines = json.split("\n");
-        for (String line : lines) {
-            // we need to find the group first
-            if (!found) {
-                String s = line.trim();
-                found = s.startsWith("\"" + group + "\":") && s.endsWith("{");
-                continue;
-            }
-
-            // we should stop when we end the group
-            if (line.equals("  },") || line.equals("  }")) {
-                break;
-            }
-
-            // need to safe encode \" so we can parse the line
-            line = line.replaceAll("\"\\\\\"\"", '"' + QUOT + '"');
-
-            Map<String, String> row = new LinkedHashMap<String, String>();
-            Matcher matcher = PATTERN.matcher(line);
-
-            String key;
-            if (parseProperties) {
-                // when parsing properties the first key is given as name, so 
the first parsed token is the value of the name
-                key = "name";
-            } else {
-                key = null;
-            }
-            while (matcher.find()) {
-                if (key == null) {
-                    key = matcher.group(1);
-                } else {
-                    String value = matcher.group(1);
-                    if (value != null) {
-                        // its text based
-                        value = value.trim();
-                        // decode
-                        value = value.replaceAll(QUOT, "\"");
-                        value = decodeJson(value);
-                    }
-                    if (value == null) {
-                        // not text then its maybe an enum?
-                        value = matcher.group(2);
-                        if (value != null) {
-                            // its an enum so strip out " and trim spaces 
after comma
-                            value = value.replaceAll("\"", "");
-                            value = value.replaceAll(", ", ",");
-                            value = value.trim();
-                        }
-                    }
-                    if (value == null) {
-                        // not text then its maybe a boolean?
-                        value = matcher.group(3);
-                    }
-                    if (value == null) {
-                        // not text then its maybe a integer?
-                        value = matcher.group(4);
-                    }
-                    if (value != null) {
-                        row.put(key, value);
-                    }
-                    // reset
-                    key = null;
-                }
-            }
-            if (!row.isEmpty()) {
-                answer.add(row);
-            }
-        }
-
-        return answer;
-    }
-
-    private static String decodeJson(String value) {
-        // json encodes a \ as \\ so we need to decode from \\ back to \
-        if ("\\\\".equals(value)) {
-            value = "\\";
-        }
-        return value;
-    }
-
-    /**
      * The default value may need to be escaped to be safe for json
      */
     private static String safeDefaultValue(String value) {

Reply via email to