You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2016/06/21 08:18:42 UTC

[2/5] camel git commit: CAMEL-10062: For specialized Dataformats, provide default value in catalog

CAMEL-10062: For specialized Dataformats, provide default value in catalog


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

Branch: refs/heads/camel-2.17.x
Commit: eb0c7d5fe715db6a89ef3dce54123592bb4fcb61
Parents: cdd0704
Author: Claus Ibsen <da...@apache.org>
Authored: Tue Jun 21 09:52:07 2016 +0200
Committer: Claus Ibsen <da...@apache.org>
Committed: Tue Jun 21 10:18:23 2016 +0200

----------------------------------------------------------------------
 .../maven/packaging/PackageDataFormatMojo.java  | 39 ++++++++++++++++++++
 1 file changed, 39 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/eb0c7d5f/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/PackageDataFormatMojo.java
----------------------------------------------------------------------
diff --git a/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/PackageDataFormatMojo.java b/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/PackageDataFormatMojo.java
index 9f88702..9405f73 100644
--- a/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/PackageDataFormatMojo.java
+++ b/tooling/maven/camel-package-maven-plugin/src/main/java/org/apache/camel/maven/packaging/PackageDataFormatMojo.java
@@ -200,6 +200,11 @@ public class PackageDataFormatMojo extends AbstractMojo {
 
                                 // build json schema for the data format
                                 String properties = after(json, "  \"properties\": {");
+
+                                // special prepare for bindy/json properties
+                                properties = prepareBindyProperties(name, properties);
+                                properties = prepareJsonProperties(name, properties);
+
                                 String schema = createParameterJsonSchema(dataFormatModel, properties);
                                 log.debug("JSon schema\n" + schema);
 
@@ -275,6 +280,40 @@ public class PackageDataFormatMojo extends AbstractMojo {
         }
     }
 
+    private static String prepareBindyProperties(String name, String properties) {
+        String bindy = "\"enum\": [ \"Csv\", \"Fixed\", \"KeyValue\" ], \"deprecated\": \"false\", \"secret\": \"false\"";
+        String bindyCsv = "\"enum\": [ \"Csv\", \"Fixed\", \"KeyValue\" ], \"deprecated\": \"false\", \"secret\": \"false\", \"defaultValue\": \"Csv\"";
+        String bindyFixed = "\"enum\": [ \"Csv\", \"Fixed\", \"KeyValue\" ], \"deprecated\": \"false\", \"secret\": \"false\", \"defaultValue\": \"Fixed\"";
+        String bindyKvp = "\"enum\": [ \"Csv\", \"Fixed\", \"KeyValue\" ], \"deprecated\": \"false\", \"secret\": \"false\", \"defaultValue\": \"KeyValue\"";
+
+        if ("bindy-csv".equals(name)) {
+            properties = properties.replace(bindy, bindyCsv);
+        } else if ("bindy-fixed".equals(name)) {
+            properties = properties.replace(bindy, bindyFixed);
+        } else if ("bindy-kvp".equals(name)) {
+            properties = properties.replace(bindy, bindyKvp);
+        }
+
+        return properties;
+    }
+
+    private static String prepareJsonProperties(String name, String properties) {
+        String json = "\"enum\": [ \"Gson\", \"Jackson\", \"Johnzon\", \"XStream\" ], \"deprecated\": \"false\", \"secret\": \"false\"";
+        String jsonGson = "\"enum\": [ \"Gson\", \"Jackson\", \"Johnzon\", \"XStream\" ], \"deprecated\": \"false\", \"secret\": \"false\", \"defaultValue\": \"Gson\"";
+        String jsonJackson = "\"enum\": [ \"Gson\", \"Jackson\", \"Johnzon\", \"XStream\" ], \"deprecated\": \"false\", \"secret\": \"false\", \"defaultValue\": \"Jackson\"";
+        String jsonXStream = "\"enum\": [ \"Gson\", \"Jackson\", \"Johnzon\", \"XStream\" ], \"deprecated\": \"false\", \"secret\": \"false\", \"defaultValue\": \"XStream\"";
+
+        if ("json-gson".equals(name)) {
+            properties = properties.replace(json, jsonGson);
+        } else if ("json-jackson".equals(name)) {
+            properties = properties.replace(json, jsonJackson);
+        } else if ("json-xstream".equals(name)) {
+            properties = properties.replace(json, jsonXStream);
+        }
+
+        return properties;
+    }
+
     private static String readClassFromCamelResource(File file, StringBuilder buffer, BuildContext buildContext) throws MojoExecutionException {
         // skip directories as there may be a sub .resolver directory
         if (file.isDirectory()) {