Repository: camel
Updated Branches:
  refs/heads/master 7dd45d915 -> 12066bb2c


Fixed camel-connector to support componentOptions as well.


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

Branch: refs/heads/master
Commit: 12066bb2c7364dd4b70668e85e5396f4d487ccac
Parents: 90e33ba
Author: Claus Ibsen <davscl...@apache.org>
Authored: Tue Feb 7 17:02:10 2017 +0100
Committer: Claus Ibsen <davscl...@apache.org>
Committed: Tue Feb 7 18:22:26 2017 +0100

----------------------------------------------------------------------
 .../camel/maven/connector/ConnectorMojo.java    | 44 ++++++++++++++++----
 .../main/resources/camel-connector-schema.json  |  4 ++
 2 files changed, 41 insertions(+), 7 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/12066bb2/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 94df1e6..b98e478 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
@@ -130,8 +130,6 @@ public class ConnectorMojo extends AbstractJarMojo {
                     getLog().debug(header);
 
                     rows = 
JSonSchemaHelper.parseJsonSchema("componentProperties", json, true);
-                    // we do not offer editing component properties (yet) so 
clear the rows
-                    rows.clear();
                     String componentOptions = 
buildComponentOptionsSchema(rows, dto);
                     getLog().debug(componentOptions);
 
@@ -208,24 +206,56 @@ public class ConnectorMojo extends AbstractJarMojo {
     }
 
     private String buildComponentOptionsSchema(List<Map<String, String>> rows, 
Map dto) throws JsonProcessingException {
+        // find the endpoint options
+        List options = (List) dto.get("componentOptions");
+        Map values = (Map) dto.get("componentValues");
+        Map overrides = (Map) dto.get("componentOverrides");
+
         ObjectMapper mapper = new ObjectMapper();
 
         StringBuilder sb = new StringBuilder();
         sb.append("  \"componentProperties\": {\n");
 
+        boolean first = true;
         for (int i = 0; i < rows.size(); i++) {
             Map<String, String> row = rows.get(i);
             String key = row.get("name");
             row.remove("name");
+
+            if (options == null || !options.contains(key)) {
+                continue;
+            }
+
+            // do we have a new default value for this row?
+            if (values != null && values.containsKey(key)) {
+                String newDefaultValue = (String) values.get(key);
+                if (newDefaultValue != null) {
+                    row.put("defaultValue", newDefaultValue);
+                }
+            }
+
+            // is there any overrides for this row?
+            if (overrides != null && overrides.containsKey(key)) {
+                Map over = (Map) overrides.get(key);
+                if (over != null) {
+                    row.putAll(over);
+                }
+            }
+
+            // we should build the json as one-line which is how Camel does it 
today
+            // which makes its internal json parser support loading our 
generated schema file
             String line = mapper.writeValueAsString(row);
 
-            sb.append("    \"" + key + "\": ");
-            sb.append(line);
-            if (i < rows.size() - 1) {
+            if (!first) {
                 sb.append(",\n");
-            } else {
-                sb.append("\n");
             }
+            sb.append("    \"" + key + "\": ");
+            sb.append(line);
+
+            first = false;
+        }
+        if (!first) {
+            sb.append("\n");
         }
 
         sb.append("  },\n");

http://git-wip-us.apache.org/repos/asf/camel/blob/12066bb2/connectors/examples/twitter-mention-connector/src/main/resources/camel-connector-schema.json
----------------------------------------------------------------------
diff --git 
a/connectors/examples/twitter-mention-connector/src/main/resources/camel-connector-schema.json
 
b/connectors/examples/twitter-mention-connector/src/main/resources/camel-connector-schema.json
index a2228a0..0cd1639 100644
--- 
a/connectors/examples/twitter-mention-connector/src/main/resources/camel-connector-schema.json
+++ 
b/connectors/examples/twitter-mention-connector/src/main/resources/camel-connector-schema.json
@@ -16,6 +16,10 @@
     "version": "2.19.0-SNAPSHOT"
   },
   "componentProperties": {
+    "accessToken": 
{"kind":"property","group":"security","label":"security","required":"false","type":"string","javaType":"java.lang.String","deprecated":"false","secret":"true","description":"The
 access token"},
+    "accessTokenSecret": 
{"kind":"property","group":"security","label":"security","required":"false","type":"string","javaType":"java.lang.String","deprecated":"false","secret":"true","description":"The
 access token secret"},
+    "consumerKey": 
{"kind":"property","group":"security","label":"security","required":"false","type":"string","javaType":"java.lang.String","deprecated":"false","secret":"true","description":"The
 consumer key"},
+    "consumerSecret": 
{"kind":"property","group":"security","label":"security","required":"false","type":"string","javaType":"java.lang.String","deprecated":"false","secret":"true","description":"The
 consumer secret"}
   },
   "properties": {
   }

Reply via email to