Repository: camel Updated Branches: refs/heads/master a8776920b -> 8e0e3083e
CAMEL-10842: Adjust connector to new JSon schema Project: http://git-wip-us.apache.org/repos/asf/camel/repo Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/8e0e3083 Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/8e0e3083 Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/8e0e3083 Branch: refs/heads/master Commit: 8e0e3083e8028d57db6c5cc90d480c2e9ba14e1b Parents: a877692 Author: Claus Ibsen <davscl...@apache.org> Authored: Thu Feb 16 16:43:59 2017 +0100 Committer: Claus Ibsen <davscl...@apache.org> Committed: Thu Feb 16 16:43:59 2017 +0100 ---------------------------------------------------------------------- .../camel/maven/connector/ConnectorMojo.java | 34 +++++++++++++++--- .../src/main/resources/camel-connector.json | 34 +++++++++--------- .../src/main/resources/camel-connector.json | 36 ++++++++++---------- .../salesforce-upsert-contact-connector/pom.xml | 22 ++++++++++-- .../main/resources/camel-connector-schema.json | 5 +-- .../src/main/resources/camel-connector.json | 4 +-- .../src/main/resources/camel-connector.json | 2 +- .../src/main/resources/camel-connector.json | 34 +++++++++--------- 8 files changed, 106 insertions(+), 65 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/camel/blob/8e0e3083/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 b60244c..ff8a574 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 @@ -455,18 +455,36 @@ public class ConnectorMojo extends AbstractJarMojo { private static String buildJSonLineFromRow(Map<String, String> row) { String name = row.get("name"); String kind = row.get("kind"); - boolean required = Boolean.valueOf(row.getOrDefault("required", "false")); + boolean required = false; + Object value = row.getOrDefault("required", "false"); + if (value instanceof Boolean) { + required = (Boolean) value; + } else if (value != null) { + required = Boolean.valueOf(value.toString()); + } String javaType = row.get("javaType"); String defaultValue = row.get("defaultValue"); String description = row.get("description"); - boolean deprecated = Boolean.valueOf(row.getOrDefault("deprecated", "false")); - boolean secret = Boolean.valueOf(row.getOrDefault("secret", "false")); + boolean deprecated = false; + value = row.getOrDefault("deprecated", "false"); + if (value instanceof Boolean) { + deprecated = (Boolean) value; + } else if (value != null) { + deprecated = Boolean.valueOf(value.toString()); + } + boolean secret = false; + value = row.getOrDefault("secret", "false"); + if (value instanceof Boolean) { + secret = (Boolean) value; + } else if (value != null) { + secret = Boolean.valueOf(value.toString()); + } String group = row.get("group"); String label = row.get("label"); // for enum we need to build it back as a set Set<String> enums = null; // the enum can either be a List or String - Object value = row.get("enum"); + value = row.get("enum"); if (value != null && value instanceof List) { enums = new LinkedHashSet<String>((List)value); } else if (value != null && value instanceof String) { @@ -476,7 +494,13 @@ public class ConnectorMojo extends AbstractJarMojo { boolean enumType = enums != null; String optionalPrefix = row.get("optionalPrefix"); String prefix = row.get("prefix"); - boolean multiValue = Boolean.valueOf(row.getOrDefault("multiValue", "false")); + boolean multiValue = false; + value = row.getOrDefault("multiValue", "false"); + if (value instanceof Boolean) { + multiValue = (Boolean) value; + } else if (value != null) { + multiValue = Boolean.valueOf(value.toString()); + } return JSonSchemaHelper.toJson(name, kind, required, javaType, defaultValue, description, deprecated, secret, group, label, enumType, enums, false, null, false, optionalPrefix, prefix, multiValue); http://git-wip-us.apache.org/repos/asf/camel/blob/8e0e3083/connectors/examples/bar-connector/src/main/resources/camel-connector.json ---------------------------------------------------------------------- diff --git a/connectors/examples/bar-connector/src/main/resources/camel-connector.json b/connectors/examples/bar-connector/src/main/resources/camel-connector.json index e4062cc..46a1740 100644 --- a/connectors/examples/bar-connector/src/main/resources/camel-connector.json +++ b/connectors/examples/bar-connector/src/main/resources/camel-connector.json @@ -1,20 +1,20 @@ { - "baseScheme" : "beverage", - "baseGroupId" : "org.foo", - "baseArtifactId" : "beverage-component", - "baseVersion" : "2.19.0-SNAPSHOT", - "baseJavaType" : "org.beverage.BeverageComponent", - "name" : "Bar", - "scheme" : "bar", - "javaType" : "org.foo.connector.BarComponent", - "groupId" : "org.foo", - "artifactId" : "wine-connector", - "version" : "2.19.0-SNAPSHOT", - "description" : "To order drinks from the bar", - "labels" : [ "bar" ], - "pattern" : "To", - "endpointOptions" : [ "drink", "amount", "celebrity" ], - "endpointValues" : { - "amount" : 2 + "baseScheme": "beverage", + "baseGroupId": "org.foo", + "baseArtifactId": "beverage-component", + "baseVersion": "2.19.0-SNAPSHOT", + "baseJavaType": "org.beverage.BeverageComponent", + "name": "Bar", + "scheme": "bar", + "javaType": "org.foo.connector.BarComponent", + "groupId": "org.foo", + "artifactId": "wine-connector", + "version": "2.19.0-SNAPSHOT", + "description": "To order drinks from the bar", + "labels": [ "bar" ], + "pattern": "To", + "endpointOptions": [ "drink", "amount", "celebrity" ], + "endpointValues": { + "amount": 2 } } \ No newline at end of file http://git-wip-us.apache.org/repos/asf/camel/blob/8e0e3083/connectors/examples/foo-connector/src/main/resources/camel-connector.json ---------------------------------------------------------------------- diff --git a/connectors/examples/foo-connector/src/main/resources/camel-connector.json b/connectors/examples/foo-connector/src/main/resources/camel-connector.json index 0f6dec9..deeb90d 100644 --- a/connectors/examples/foo-connector/src/main/resources/camel-connector.json +++ b/connectors/examples/foo-connector/src/main/resources/camel-connector.json @@ -1,21 +1,21 @@ { - "baseScheme" : "timer", - "baseGroupId" : "org.apache.camel", - "baseArtifactId" : "camel-core", - "baseVersion" : "2.19.0-SNAPSHOT", - "baseJavaType" : "org.apache.camel.component.timer.TimerComponent", - "name" : "Foo", - "scheme" : "foo", - "javaType" : "org.foo.connector.FooComponent", - "groupId" : "org.foo", - "artifactId" : "foo-connector", - "version" : "2.19.0-SNAPSHOT", - "description" : "Something cool", - "labels" : [ "foo", "timer" ], - "pattern" : "From", - "endpointOptions" : [ "timerName", "period", "repeatCount" ], - "endpointValues" : { - "fixedRate" : true, - "period" : 5000 + "baseScheme": "timer", + "baseGroupId": "org.apache.camel", + "baseArtifactId": "camel-core", + "baseVersion": "2.19.0-SNAPSHOT", + "baseJavaType": "org.apache.camel.component.timer.TimerComponent", + "name": "Foo", + "scheme": "foo", + "javaType": "org.foo.connector.FooComponent", + "groupId": "org.foo", + "artifactId": "foo-connector", + "version": "2.19.0-SNAPSHOT", + "description": "Something cool", + "labels": [ "foo", "timer" ], + "pattern": "From", + "endpointOptions": [ "timerName", "period", "repeatCount" ], + "endpointValues": { + "fixedRate": true, + "period": 5000 } } \ No newline at end of file http://git-wip-us.apache.org/repos/asf/camel/blob/8e0e3083/connectors/examples/salesforce-upsert-contact-connector/pom.xml ---------------------------------------------------------------------- diff --git a/connectors/examples/salesforce-upsert-contact-connector/pom.xml b/connectors/examples/salesforce-upsert-contact-connector/pom.xml index d7f655c..10a9e27 100644 --- a/connectors/examples/salesforce-upsert-contact-connector/pom.xml +++ b/connectors/examples/salesforce-upsert-contact-connector/pom.xml @@ -72,14 +72,30 @@ </executions> </plugin> - <!-- generate connector --> + <!-- turn off jar plugin as we use connector plugin to jar instead --> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-jar-plugin</artifactId> + <version>${maven-jar-plugin-version}</version> + <executions> + <execution> + <id>default-jar</id> + <phase/> + </execution> + </executions> + </plugin> + + <!-- connector plugin will build the jar --> <plugin> <groupId>org.apache.camel</groupId> <artifactId>camel-connector-maven-plugin</artifactId> - <version>${camel.version}</version> + <version>${project.version}</version> <executions> <execution> - <id>generate-connector</id> + <id>connector</id> + <goals> + <goal>jar</goal> + </goals> </execution> </executions> </plugin> http://git-wip-us.apache.org/repos/asf/camel/blob/8e0e3083/connectors/examples/salesforce-upsert-contact-connector/src/main/resources/camel-connector-schema.json ---------------------------------------------------------------------- diff --git a/connectors/examples/salesforce-upsert-contact-connector/src/main/resources/camel-connector-schema.json b/connectors/examples/salesforce-upsert-contact-connector/src/main/resources/camel-connector-schema.json index a82c836..8030697 100644 --- a/connectors/examples/salesforce-upsert-contact-connector/src/main/resources/camel-connector-schema.json +++ b/connectors/examples/salesforce-upsert-contact-connector/src/main/resources/camel-connector-schema.json @@ -10,6 +10,7 @@ "deprecated": false, "async": false, "producerOnly": true, + "lenientProperties": false, "javaType": "org.foo.salesforce.contact.SalesforceUpsertContactComponent", "groupId": "org.foo", "artifactId": "salesforce-upsert-contact-connector", @@ -22,7 +23,7 @@ "refreshToken": { "kind": "property", "group": "security", "label": "security", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": true, "description": "Salesforce connected application Consumer token" } }, "properties": { - "sObjectIdName": {"kind":"parameter","group":"common","type":"string","javaType":"java.lang.String","deprecated":false,"secret":false,"description":"SObject external ID field name","required":true}, - "sObjectIdValue": {"kind":"parameter","group":"common","type":"string","javaType":"java.lang.String","deprecated":false,"secret":false,"description":"SObject external ID field value"} + "sObjectIdName": { "kind": "parameter", "group": "common", "required": true, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "description": "SObject external ID field name" }, + "sObjectIdValue": { "kind": "parameter", "group": "common", "required": false, "type": "string", "javaType": "java.lang.String", "deprecated": false, "secret": false, "description": "SObject external ID field value" } } } http://git-wip-us.apache.org/repos/asf/camel/blob/8e0e3083/connectors/examples/salesforce-upsert-contact-connector/src/main/resources/camel-connector.json ---------------------------------------------------------------------- diff --git a/connectors/examples/salesforce-upsert-contact-connector/src/main/resources/camel-connector.json b/connectors/examples/salesforce-upsert-contact-connector/src/main/resources/camel-connector.json index c1a26ec..ff515ce 100644 --- a/connectors/examples/salesforce-upsert-contact-connector/src/main/resources/camel-connector.json +++ b/connectors/examples/salesforce-upsert-contact-connector/src/main/resources/camel-connector.json @@ -10,14 +10,14 @@ "artifactId": "salesforce-upsert-contact-connector", "version": "1.0", "description": "Create or update Salesforce Contact SObject", - "labels" : [ "salesforce" ], + "labels": [ "salesforce" ], "pattern": "To", "componentOptions" : [ "loginUrl", "clientId", "clientSecret", "refreshToken" ], "endpointValues" : { "operationName": "upsertSObject" }, "endpointOverrides": { - "sObjectIdName": {"required": true} + "sObjectIdName": { "required": true } }, "endpointOptions": [ "sObjectIdName", "sObjectIdValue" ] } \ No newline at end of file http://git-wip-us.apache.org/repos/asf/camel/blob/8e0e3083/connectors/examples/twitter-mention-connector/src/main/resources/camel-connector.json ---------------------------------------------------------------------- diff --git a/connectors/examples/twitter-mention-connector/src/main/resources/camel-connector.json b/connectors/examples/twitter-mention-connector/src/main/resources/camel-connector.json index a38fc73..30523cb 100644 --- a/connectors/examples/twitter-mention-connector/src/main/resources/camel-connector.json +++ b/connectors/examples/twitter-mention-connector/src/main/resources/camel-connector.json @@ -10,7 +10,7 @@ "artifactId": "twitter-mention-connector", "version": "1.0", "description": "Connection from twitter when anyone mention you", - "labels" : [ "twitter" ], + "labels": [ "twitter" ], "pattern": "From", "componentOptions" : [ "accessToken", "accessTokenSecret", "consumerKey", "consumerSecret" ], "endpointValues" : { http://git-wip-us.apache.org/repos/asf/camel/blob/8e0e3083/connectors/examples/wine-connector/src/main/resources/camel-connector.json ---------------------------------------------------------------------- diff --git a/connectors/examples/wine-connector/src/main/resources/camel-connector.json b/connectors/examples/wine-connector/src/main/resources/camel-connector.json index c7c88e5..7122db7 100644 --- a/connectors/examples/wine-connector/src/main/resources/camel-connector.json +++ b/connectors/examples/wine-connector/src/main/resources/camel-connector.json @@ -1,21 +1,21 @@ { - "baseScheme" : "beverage", - "baseGroupId" : "org.foo", - "baseArtifactId" : "beverage-component", - "baseVersion" : "2.19.0-SNAPSHOT", - "baseJavaType" : "org.beverage.BeverageComponent", - "name" : "Wine", - "scheme" : "wine", - "javaType" : "org.foo.connector.WineComponent", - "groupId" : "org.foo", - "artifactId" : "wine-connector", - "version" : "2.19.0-SNAPSHOT", - "description" : "To order wine from the bar", - "labels" : [ "bar" ], - "pattern" : "To", - "endpointOptions" : [ "drink", "amount" ], - "endpointValues" : { - "drink" : "Wine" + "baseScheme": "beverage", + "baseGroupId": "org.foo", + "baseArtifactId": "beverage-component", + "baseVersion": "2.19.0-SNAPSHOT", + "baseJavaType": "org.beverage.BeverageComponent", + "name": "Wine", + "scheme": "wine", + "javaType": "org.foo.connector.WineComponent", + "groupId": "org.foo", + "artifactId": "wine-connector", + "version": "2.19.0-SNAPSHOT", + "description": "To order wine from the bar", + "labels": [ "bar" ], + "pattern": "To", + "endpointOptions": [ "drink", "amount" ], + "endpointValues": { + "drink": "Wine" }, "endpointOverrides": { "drink": { "enum": [ "Wine" ], "description": "You can only order wine" }