CAMEL-10969: Output connector json in pretty print mode

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

Branch: refs/heads/json-simple
Commit: b15f7cfebe705f8084552429c975c3bd9d5ca46a
Parents: d0f31f1
Author: Claus Ibsen <davscl...@apache.org>
Authored: Sun Sep 24 11:36:57 2017 +0200
Committer: Claus Ibsen <davscl...@apache.org>
Committed: Sun Sep 24 11:36:57 2017 +0200

----------------------------------------------------------------------
 .../camel/maven/connector/ConnectorMojo.java    |   8 +-
 .../maven/connector/util/JSonSchemaHelper.java  |  25 ++-
 .../main/resources/camel-connector-schema.json  |  93 +++++++----
 .../main/resources/camel-connector-schema.json  |  88 +++++++----
 .../src/main/resources/camel-connector.json     |   2 +-
 .../main/resources/camel-connector-schema.json  |  89 +++++++----
 .../src/main/resources/camel-connector.json     |   2 +-
 ...sertContactConnectorConfigurationCommon.java |  50 +++---
 .../main/resources/camel-connector-schema.json  | 126 +++++++++++----
 .../src/main/resources/camel-connector.json     |   2 +-
 ...TwitterFindConnectorConfigurationCommon.java |  62 ++++----
 .../main/resources/camel-connector-schema.json  | 155 +++++++++++++++----
 ...tterMentionConnectorConfigurationCommon.java |  36 ++---
 .../main/resources/camel-connector-schema.json  | 102 ++++++++----
 .../main/resources/camel-connector-schema.json  |  79 ++++++----
 15 files changed, 637 insertions(+), 282 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/b15f7cfe/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 f03fa71..169dc12 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
@@ -49,6 +49,8 @@ import org.apache.maven.plugins.annotations.Parameter;
 import org.apache.maven.plugins.annotations.ResolutionScope;
 import org.apache.maven.plugins.jar.AbstractJarMojo;
 
+import static 
org.apache.camel.maven.connector.util.JSonSchemaHelper.prettyPrint;
+
 @Mojo(name = "jar", defaultPhase = LifecyclePhase.PREPARE_PACKAGE, 
requiresProject = true, threadSafe = true,
         requiresDependencyResolution = ResolutionScope.RUNTIME)
 public class ConnectorMojo extends AbstractJarMojo {
@@ -159,13 +161,15 @@ public class ConnectorMojo extends AbstractJarMojo {
                     File out = new File(subDir, name);
 
                     FileOutputStream fos = new FileOutputStream(out, false);
-                    fos.write(newJson.getBytes());
+                    // output as pretty print
+                    String pretty = prettyPrint(newJson);
+                    fos.write(pretty.getBytes());
                     fos.close();
 
                     // also write the file in the root folder so its easier to 
find that for tooling
                     out = new File(classesDirectory, 
"camel-connector-schema.json");
                     fos = new FileOutputStream(out, false);
-                    fos.write(newJson.getBytes());
+                    fos.write(pretty.getBytes());
                     fos.close();
 
                     if (generateToSources) {

http://git-wip-us.apache.org/repos/asf/camel/blob/b15f7cfe/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 a4b04ef..92984a1 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
@@ -5,9 +5,9 @@
  * The ASF licenses this file to You under the Apache License, Version 2.0
  * (the "License"); you may not use this file except in compliance with
  * the License.  You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
+ * <p>
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * <p>
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
@@ -22,6 +22,8 @@ import java.net.URL;
 import java.util.Date;
 import java.util.Set;
 
+import org.apache.camel.org.json.simple.Jsoner;
+
 /**
  * A helper class for <a href="http://json-schema.org/";>JSON schema</a>.
  */
@@ -156,14 +158,25 @@ public final class JSonSchemaHelper {
         }
 
         sb.append(" }");
-        return sb.toString();
+
+        // output in pretty print
+        return prettyPrint(sb.toString());
+    }
+
+    /**
+     * Pretty print the json
+     * @param json existing json
+     * @return output in pretty printed format
+     */
+    public static String prettyPrint(String json) {
+        return Jsoner.prettyPrint(json);
     }
 
     /**
      * Gets the JSon schema type.
      *
      * @param   type the java type
-     * @return  the json schema type, is never null, but returns 
<tt>object</tt> as the generic type
+     * @return the json schema type, is never null, but returns 
<tt>object</tt> as the generic type
      */
     public static String getType(String type, boolean enumType) {
         if (enumType) {
@@ -195,7 +208,7 @@ public final class JSonSchemaHelper {
      * Gets the JSon schema primitive type.
      *
      * @param   name the java type
-     * @return  the json schema primitive type, or <tt>null</tt> if not a 
primitive
+     * @return the json schema primitive type, or <tt>null</tt> if not a 
primitive
      */
     public static String getPrimitiveType(String name) {
 

http://git-wip-us.apache.org/repos/asf/camel/blob/b15f7cfe/connectors/examples/bar-connector/src/main/resources/camel-connector-schema.json
----------------------------------------------------------------------
diff --git 
a/connectors/examples/bar-connector/src/main/resources/camel-connector-schema.json
 
b/connectors/examples/bar-connector/src/main/resources/camel-connector-schema.json
index 8682139..696de62 100644
--- 
a/connectors/examples/bar-connector/src/main/resources/camel-connector-schema.json
+++ 
b/connectors/examples/bar-connector/src/main/resources/camel-connector-schema.json
@@ -1,28 +1,67 @@
 {
-  "component": {
-    "kind": "component",
-    "baseScheme": "beverage",
-    "scheme": "bar",
-    "syntax": "bar:drink",
-    "title": "Bar",
-    "description": "To order drinks from the bar",
-    "label": "bar",
-    "deprecated": false,
-    "async": false,
-    "producerOnly": true,
-    "lenientProperties": false,
-    "javaType": "org.foo.connector.BarComponent",
-    "groupId": "org.foo",
-    "artifactId": "bar-connector",
-    "version": "2.20.0-SNAPSHOT"
-  },
-  "componentProperties": {
-  },
-  "properties": {
-    "drink": { "kind": "path", "displayName": "Drink", "group": "producer", 
"required": true, "type": "object", "javaType": "org.beverage.Beverages", 
"enum": [ "Wine", "GinTonic", "Beer" ], "deprecated": false, "secret": false, 
"description": "What drink to order" },
-    "amount": { "kind": "parameter", "displayName": "Amount", "group": 
"producer", "required": false, "type": "integer", "javaType": "int", 
"deprecated": false, "secret": false, "defaultValue": 2, "description": "Number 
of drinks in the order" },
-    "celebrity": { "kind": "parameter", "displayName": "Celebrity", "group": 
"producer", "required": false, "type": "boolean", "javaType": "boolean", 
"deprecated": false, "secret": false, "defaultValue": false, "description": "Is 
this a famous person ordering" }
-  },
-  "connectorProperties": {
-  }
-}
+       "component":{
+               "kind":"component",
+               "baseScheme":"beverage",
+               "scheme":"bar",
+               "syntax":"bar:drink",
+               "title":"Bar",
+               "description":"To order drinks from the bar",
+               "label":"bar",
+               "deprecated":false,
+               "async":false,
+               "producerOnly":true,
+               "lenientProperties":false,
+               "javaType":"org.foo.connector.BarComponent",
+               "groupId":"org.foo",
+               "artifactId":"bar-connector",
+               "version":"2.20.0-SNAPSHOT"
+       },
+       "componentProperties":{
+               
+       },
+       "properties":{
+               "celebrity":{
+                       "kind":"parameter",
+                       "displayName":"Celebrity",
+                       "group":"producer",
+                       "required":false,
+                       "type":"boolean",
+                       "javaType":"boolean",
+                       "deprecated":false,
+                       "secret":false,
+                       "defaultValue":false,
+                       "description":"Is this a famous person ordering"
+               },
+               "amount":{
+                       "kind":"parameter",
+                       "displayName":"Amount",
+                       "group":"producer",
+                       "required":false,
+                       "type":"integer",
+                       "javaType":"int",
+                       "deprecated":false,
+                       "secret":false,
+                       "defaultValue":2,
+                       "description":"Number of drinks in the order"
+               },
+               "drink":{
+                       "kind":"path",
+                       "displayName":"Drink",
+                       "group":"producer",
+                       "required":true,
+                       "type":"object",
+                       "javaType":"org.beverage.Beverages",
+                       "enum":[
+                               "Wine",
+                               "GinTonic",
+                               "Beer"
+                       ],
+                       "deprecated":false,
+                       "secret":false,
+                       "description":"What drink to order"
+               }
+       },
+       "connectorProperties":{
+               
+       }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/b15f7cfe/connectors/examples/foo-connector/src/main/resources/camel-connector-schema.json
----------------------------------------------------------------------
diff --git 
a/connectors/examples/foo-connector/src/main/resources/camel-connector-schema.json
 
b/connectors/examples/foo-connector/src/main/resources/camel-connector-schema.json
index 7d15f98..999257c 100644
--- 
a/connectors/examples/foo-connector/src/main/resources/camel-connector-schema.json
+++ 
b/connectors/examples/foo-connector/src/main/resources/camel-connector-schema.json
@@ -1,28 +1,62 @@
 {
-  "component": {
-    "kind": "component",
-    "baseScheme": "timer",
-    "scheme": "foo",
-    "syntax": "foo:timerName",
-    "title": "Foo",
-    "description": "Something cool",
-    "label": "foo,timer",
-    "deprecated": false,
-    "async": false,
-    "consumerOnly": true,
-    "lenientProperties": false,
-    "javaType": "org.foo.connector.FooComponent",
-    "groupId": "org.foo",
-    "artifactId": "foo-connector",
-    "version": "2.20.0-SNAPSHOT"
-  },
-  "componentProperties": {
-  },
-  "properties": {
-    "timerName": { "kind": "path", "displayName": "Timer Name", "group": 
"consumer", "required": true, "type": "string", "javaType": "java.lang.String", 
"deprecated": false, "secret": false, "description": "The name of the timer" },
-    "period": { "kind": "parameter", "displayName": "Period", "group": 
"consumer", "required": false, "type": "integer", "javaType": "long", 
"deprecated": false, "secret": false, "defaultValue": 5000, "description": "If 
greater than 0 generate periodic events every period milliseconds. The default 
value is 1000. You can also specify time values using units such as 60s (60 
seconds) 5m30s (5 minutes and 30 seconds) and 1h (1 hour)." },
-    "repeatCount": { "kind": "parameter", "displayName": "Repeat Count", 
"group": "consumer", "required": false, "type": "integer", "javaType": "long", 
"deprecated": false, "secret": false, "defaultValue": 0, "description": 
"Specifies a maximum limit of number of fires. So if you set it to 1 the timer 
will only fire once. If you set it to 5 it will only fire five times. A value 
of zero or negative means fire forever." }
-  },
-  "connectorProperties": {
-  }
-}
+       "component":{
+               "kind":"component",
+               "baseScheme":"timer",
+               "scheme":"foo",
+               "syntax":"foo:timerName",
+               "title":"Foo",
+               "description":"Something cool",
+               "label":"foo,timer",
+               "deprecated":false,
+               "async":false,
+               "consumerOnly":true,
+               "lenientProperties":false,
+               "javaType":"org.foo.connector.FooComponent",
+               "groupId":"org.foo",
+               "artifactId":"foo-connector",
+               "version":"2.20.0-SNAPSHOT"
+       },
+       "componentProperties":{
+               
+       },
+       "properties":{
+               "period":{
+                       "kind":"parameter",
+                       "displayName":"Period",
+                       "group":"consumer",
+                       "required":false,
+                       "type":"integer",
+                       "javaType":"long",
+                       "deprecated":false,
+                       "secret":false,
+                       "defaultValue":5000,
+                       "description":"If greater than 0 generate periodic 
events every period milliseconds. The default value is 1000. You can also 
specify time values using units such as 60s (60 seconds) 5m30s (5 minutes and 
30 seconds) and 1h (1 hour)."
+               },
+               "timerName":{
+                       "kind":"path",
+                       "displayName":"Timer Name",
+                       "group":"consumer",
+                       "required":true,
+                       "type":"string",
+                       "javaType":"java.lang.String",
+                       "deprecated":false,
+                       "secret":false,
+                       "description":"The name of the timer"
+               },
+               "repeatCount":{
+                       "kind":"parameter",
+                       "displayName":"Repeat Count",
+                       "group":"consumer",
+                       "required":false,
+                       "type":"integer",
+                       "javaType":"long",
+                       "deprecated":false,
+                       "secret":false,
+                       "defaultValue":0,
+                       "description":"Specifies a maximum limit of number of 
fires. So if you set it to 1 the timer will only fire once. If you set it to 5 
it will only fire five times. A value of zero or negative means fire forever."
+               }
+       },
+       "connectorProperties":{
+               
+       }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/b15f7cfe/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 ccc5c94..c2bfda1 100644
--- a/connectors/examples/foo-connector/src/main/resources/camel-connector.json
+++ b/connectors/examples/foo-connector/src/main/resources/camel-connector.json
@@ -2,7 +2,7 @@
   "baseScheme" : "timer",
   "baseGroupId" : "org.apache.camel",
   "baseArtifactId" : "camel-core",
-  "baseVersion" : "2.20.0-20170910.162727-225",
+  "baseVersion" : "2.20.0-SNAPSHOT",
   "baseJavaType" : "org.apache.camel.component.timer.TimerComponent",
   "name" : "Foo",
   "scheme" : "foo",

http://git-wip-us.apache.org/repos/asf/camel/blob/b15f7cfe/connectors/examples/petstore-connector/src/main/resources/camel-connector-schema.json
----------------------------------------------------------------------
diff --git 
a/connectors/examples/petstore-connector/src/main/resources/camel-connector-schema.json
 
b/connectors/examples/petstore-connector/src/main/resources/camel-connector-schema.json
index f28e253..cf3ffd4 100644
--- 
a/connectors/examples/petstore-connector/src/main/resources/camel-connector-schema.json
+++ 
b/connectors/examples/petstore-connector/src/main/resources/camel-connector-schema.json
@@ -1,28 +1,63 @@
 {
-  "component": {
-    "kind": "component",
-    "baseScheme": "rest-swagger",
-    "scheme": "petstore",
-    "syntax": "petstore:specificationUri#operationId",
-    "title": "PetStore",
-    "description": "Pets in the store",
-    "label": "api,rest",
-    "deprecated": false,
-    "async": false,
-    "consumerOnly": true,
-    "lenientProperties": false,
-    "javaType": "org.foo.connector.PetStoreComponent",
-    "groupId": "org.foo",
-    "artifactId": "petstore-connector",
-    "version": "2.20.0-SNAPSHOT"
-  },
-  "componentProperties": {
-    "specificationUri": { "kind": "property", "displayName": "Specification 
Uri", "group": "producer", "label": "producer", "required": false, "type": 
"string", "javaType": "java.net.URI", "deprecated": false, "secret": false, 
"defaultValue": "http://petstore.swagger.io/v2/swagger.json";, "description": 
"Path to the Swagger specification file. The scheme host base path are taken 
from this specification but these can be overriden with properties on the 
component or endpoint level. If not given the component tries to load 
swagger.json resource. Note that the host defined on the component and endpoint 
of this Component should contain the scheme hostname and optionally the port in 
the URI syntax (i.e. https://api.example.com:8080). Can be overriden in 
endpoint configuration." }
-  },
-  "properties": {
-    "operationId": { "kind": "path", "displayName": "Operation Id", "group": 
"producer", "label": "producer", "required": true, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "secret": false, 
"description": "ID of the operation from the Swagger specification." },
-    "schedulerPeriod": { "kind": "parameter", "displayName": "Period", 
"group": "consumer", "required": false, "type": "integer", "javaType": "long", 
"deprecated": false, "secret": false, "defaultValue": 5000, "description": 
"Delay in milli seconds between scheduling (executing)" }
-  },
-  "connectorProperties": {
-  }
-}
+       "component":{
+               "kind":"component",
+               "baseScheme":"rest-swagger",
+               "scheme":"petstore",
+               "syntax":"petstore:specificationUri#operationId",
+               "title":"PetStore",
+               "description":"Pets in the store",
+               "label":"api,rest",
+               "deprecated":false,
+               "async":false,
+               "consumerOnly":true,
+               "lenientProperties":false,
+               "javaType":"org.foo.connector.PetStoreComponent",
+               "groupId":"org.foo",
+               "artifactId":"petstore-connector",
+               "version":"2.20.0-SNAPSHOT"
+       },
+       "componentProperties":{
+               "specificationUri":{
+                       "kind":"property",
+                       "displayName":"Specification Uri",
+                       "group":"producer",
+                       "label":"producer",
+                       "required":false,
+                       "type":"string",
+                       "javaType":"java.net.URI",
+                       "deprecated":false,
+                       "secret":false,
+                       
"defaultValue":"http:\/\/petstore.swagger.io\/v2\/swagger.json",
+                       "description":"Path to the Swagger specification file. 
The scheme host base path are taken from this specification but these can be 
overriden with properties on the component or endpoint level. If not given the 
component tries to load swagger.json resource. Note that the host defined on 
the component and endpoint of this Component should contain the scheme hostname 
and optionally the port in the URI syntax (i.e. 
https:\/\/api.example.com:8080). Can be overriden in endpoint configuration."
+               }
+       },
+       "properties":{
+               "operationId":{
+                       "kind":"path",
+                       "displayName":"Operation Id",
+                       "group":"producer",
+                       "label":"producer",
+                       "required":true,
+                       "type":"string",
+                       "javaType":"java.lang.String",
+                       "deprecated":false,
+                       "secret":false,
+                       "description":"ID of the operation from the Swagger 
specification."
+               },
+               "schedulerPeriod":{
+                       "kind":"parameter",
+                       "displayName":"Period",
+                       "group":"consumer",
+                       "required":false,
+                       "type":"integer",
+                       "javaType":"long",
+                       "deprecated":false,
+                       "secret":false,
+                       "defaultValue":5000,
+                       "description":"Delay in milli seconds between 
scheduling (executing)"
+               }
+       },
+       "connectorProperties":{
+               
+       }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/b15f7cfe/connectors/examples/petstore-connector/src/main/resources/camel-connector.json
----------------------------------------------------------------------
diff --git 
a/connectors/examples/petstore-connector/src/main/resources/camel-connector.json
 
b/connectors/examples/petstore-connector/src/main/resources/camel-connector.json
index f6c3298..f701a65 100644
--- 
a/connectors/examples/petstore-connector/src/main/resources/camel-connector.json
+++ 
b/connectors/examples/petstore-connector/src/main/resources/camel-connector.json
@@ -2,7 +2,7 @@
   "baseScheme" : "rest-swagger",
   "baseGroupId" : "org.apache.camel",
   "baseArtifactId" : "camel-rest-swagger",
-  "baseVersion" : "2.20.0-20170911.120853-191",
+  "baseVersion" : "2.20.0-SNAPSHOT",
   "baseJavaType" : 
"org.apache.camel.component.rest.swagger.RestSwaggerComponent",
   "name" : "PetStore",
   "scheme" : "petstore",

http://git-wip-us.apache.org/repos/asf/camel/blob/b15f7cfe/connectors/examples/salesforce-upsert-contact-connector/src/main/java/org/foo/salesforce/contact/springboot/SalesforceUpsertContactConnectorConfigurationCommon.java
----------------------------------------------------------------------
diff --git 
a/connectors/examples/salesforce-upsert-contact-connector/src/main/java/org/foo/salesforce/contact/springboot/SalesforceUpsertContactConnectorConfigurationCommon.java
 
b/connectors/examples/salesforce-upsert-contact-connector/src/main/java/org/foo/salesforce/contact/springboot/SalesforceUpsertContactConnectorConfigurationCommon.java
index 865dda6..f0de8b0 100644
--- 
a/connectors/examples/salesforce-upsert-contact-connector/src/main/java/org/foo/salesforce/contact/springboot/SalesforceUpsertContactConnectorConfigurationCommon.java
+++ 
b/connectors/examples/salesforce-upsert-contact-connector/src/main/java/org/foo/salesforce/contact/springboot/SalesforceUpsertContactConnectorConfigurationCommon.java
@@ -27,17 +27,17 @@ import javax.annotation.Generated;
 public class SalesforceUpsertContactConnectorConfigurationCommon {
 
     /**
-     * URL of the Salesforce instance used for authentication by default set to
-     * https://login.salesforce.com
-     */
-    private String loginUrl = "https://login.salesforce.com";;
-    /**
      * OAuth Consumer Key of the connected app configured in the Salesforce
      * instance setup. Typically a connected app needs to be configured but one
      * can be provided by installing a package.
      */
     private String clientId;
     /**
+     * URL of the Salesforce instance used for authentication by default set to
+     * https://login.salesforce.com
+     */
+    private String loginUrl = "https://login.salesforce.com";;
+    /**
      * OAuth Consumer Secret of the connected app configured in the Salesforce
      * instance setup.
      */
@@ -54,21 +54,13 @@ public class 
SalesforceUpsertContactConnectorConfigurationCommon {
      */
     private String refreshToken;
     /**
-     * SObject external ID field name
-     */
-    private String sObjectIdName;
-    /**
      * SObject external ID field value
      */
     private String sObjectIdValue;
-
-    public String getLoginUrl() {
-        return loginUrl;
-    }
-
-    public void setLoginUrl(String loginUrl) {
-        this.loginUrl = loginUrl;
-    }
+    /**
+     * SObject external ID field name
+     */
+    private String sObjectIdName;
 
     public String getClientId() {
         return clientId;
@@ -78,6 +70,14 @@ public class 
SalesforceUpsertContactConnectorConfigurationCommon {
         this.clientId = clientId;
     }
 
+    public String getLoginUrl() {
+        return loginUrl;
+    }
+
+    public void setLoginUrl(String loginUrl) {
+        this.loginUrl = loginUrl;
+    }
+
     public String getClientSecret() {
         return clientSecret;
     }
@@ -94,14 +94,6 @@ public class 
SalesforceUpsertContactConnectorConfigurationCommon {
         this.refreshToken = refreshToken;
     }
 
-    public String getSObjectIdName() {
-        return sObjectIdName;
-    }
-
-    public void setSObjectIdName(String sObjectIdName) {
-        this.sObjectIdName = sObjectIdName;
-    }
-
     public String getSObjectIdValue() {
         return sObjectIdValue;
     }
@@ -109,4 +101,12 @@ public class 
SalesforceUpsertContactConnectorConfigurationCommon {
     public void setSObjectIdValue(String sObjectIdValue) {
         this.sObjectIdValue = sObjectIdValue;
     }
+
+    public String getSObjectIdName() {
+        return sObjectIdName;
+    }
+
+    public void setSObjectIdName(String sObjectIdName) {
+        this.sObjectIdName = sObjectIdName;
+    }
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/b15f7cfe/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 966d32f..6ef54d0 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
@@ -1,31 +1,97 @@
 {
-  "component": {
-    "kind": "component",
-    "baseScheme": "salesforce",
-    "scheme": "salesforce-upsert-contact",
-    "syntax": "salesforce-upsert-contact:operationName:topicName",
-    "title": "SalesforceUpsertContact",
-    "description": "Create or update Salesforce Contact SObject",
-    "label": "salesforce",
-    "deprecated": false,
-    "async": false,
-    "producerOnly": true,
-    "lenientProperties": false,
-    "javaType": "org.foo.salesforce.contact.SalesforceUpsertContactComponent",
-    "groupId": "org.foo",
-    "artifactId": "salesforce-upsert-contact-connector",
-    "version": "2.20.0-SNAPSHOT"
-  },
-  "componentProperties": {
-    "loginUrl": { "kind": "property", "displayName": "Login Url", "group": 
"security", "label": "common,security", "required": true, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "secret": false, 
"defaultValue": "https://login.salesforce.com";, "description": "URL of the 
Salesforce instance used for authentication by default set to 
https://login.salesforce.com"; },
-    "clientId": { "kind": "property", "displayName": "Client Id", "group": 
"security", "label": "common,security", "required": true, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "secret": false, 
"description": "OAuth Consumer Key of the connected app configured in the 
Salesforce instance setup. Typically a connected app needs to be configured but 
one can be provided by installing a package." },
-    "clientSecret": { "kind": "property", "displayName": "Client Secret", 
"group": "security", "label": "common,security", "required": false, "type": 
"string", "javaType": "java.lang.String", "deprecated": false, "secret": true, 
"description": "OAuth Consumer Secret of the connected app configured in the 
Salesforce instance setup." },
-    "refreshToken": { "kind": "property", "displayName": "Refresh Token", 
"group": "security", "label": "common,security", "required": false, "type": 
"string", "javaType": "java.lang.String", "deprecated": false, "secret": true, 
"description": "Refresh token already obtained in the refresh token OAuth flow. 
One needs to setup a web application and configure a callback URL to receive 
the refresh token or configure using the builtin callback at 
https://login.salesforce.com/services/oauth2/success or 
https://test.salesforce.com/services/oauth2/success and then retrive the 
refresh_token from the URL at the end of the flow. Note that in development 
organizations Salesforce allows hosting the callback web application at 
localhost." }
-  },
-  "properties": {
-    "sObjectIdName": { "kind": "parameter", "displayName": "SObject Id Name", 
"group": "common", "required": true, "type": "string", "javaType": 
"java.lang.String", "deprecated": false, "secret": false, "description": 
"SObject external ID field name" },
-    "sObjectIdValue": { "kind": "parameter", "displayName": "SObject Id 
Value", "group": "common", "required": false, "type": "string", "javaType": 
"java.lang.String", "deprecated": false, "secret": false, "description": 
"SObject external ID field value" }
-  },
-  "connectorProperties": {
-  }
-}
+       "component":{
+               "kind":"component",
+               "baseScheme":"salesforce",
+               "scheme":"salesforce-upsert-contact",
+               "syntax":"salesforce-upsert-contact:operationName:topicName",
+               "title":"SalesforceUpsertContact",
+               "description":"Create or update Salesforce Contact SObject",
+               "label":"salesforce",
+               "deprecated":false,
+               "async":false,
+               "producerOnly":true,
+               "lenientProperties":false,
+               
"javaType":"org.foo.salesforce.contact.SalesforceUpsertContactComponent",
+               "groupId":"org.foo",
+               "artifactId":"salesforce-upsert-contact-connector",
+               "version":"2.20.0-SNAPSHOT"
+       },
+       "componentProperties":{
+               "loginUrl":{
+                       "kind":"property",
+                       "displayName":"Login Url",
+                       "group":"security",
+                       "label":"common,security",
+                       "required":true,
+                       "type":"string",
+                       "javaType":"java.lang.String",
+                       "deprecated":false,
+                       "secret":false,
+                       "defaultValue":"https:\/\/login.salesforce.com",
+                       "description":"URL of the Salesforce instance used for 
authentication by default set to https:\/\/login.salesforce.com"
+               },
+               "clientSecret":{
+                       "kind":"property",
+                       "displayName":"Client Secret",
+                       "group":"security",
+                       "label":"common,security",
+                       "required":false,
+                       "type":"string",
+                       "javaType":"java.lang.String",
+                       "deprecated":false,
+                       "secret":true,
+                       "description":"OAuth Consumer Secret of the connected 
app configured in the Salesforce instance setup."
+               },
+               "clientId":{
+                       "kind":"property",
+                       "displayName":"Client Id",
+                       "group":"security",
+                       "label":"common,security",
+                       "required":true,
+                       "type":"string",
+                       "javaType":"java.lang.String",
+                       "deprecated":false,
+                       "secret":false,
+                       "description":"OAuth Consumer Key of the connected app 
configured in the Salesforce instance setup. Typically a connected app needs to 
be configured but one can be provided by installing a package."
+               },
+               "refreshToken":{
+                       "kind":"property",
+                       "displayName":"Refresh Token",
+                       "group":"security",
+                       "label":"common,security",
+                       "required":false,
+                       "type":"string",
+                       "javaType":"java.lang.String",
+                       "deprecated":false,
+                       "secret":true,
+                       "description":"Refresh token already obtained in the 
refresh token OAuth flow. One needs to setup a web application and configure a 
callback URL to receive the refresh token or configure using the builtin 
callback at https:\/\/login.salesforce.com\/services\/oauth2\/success or 
https:\/\/test.salesforce.com\/services\/oauth2\/success and then retrive the 
refresh_token from the URL at the end of the flow. Note that in development 
organizations Salesforce allows hosting the callback web application at 
localhost."
+               }
+       },
+       "properties":{
+               "sObjectIdValue":{
+                       "kind":"parameter",
+                       "displayName":"SObject Id Value",
+                       "group":"common",
+                       "required":false,
+                       "type":"string",
+                       "javaType":"java.lang.String",
+                       "deprecated":false,
+                       "secret":false,
+                       "description":"SObject external ID field value"
+               },
+               "sObjectIdName":{
+                       "kind":"parameter",
+                       "displayName":"SObject Id Name",
+                       "group":"common",
+                       "required":true,
+                       "type":"string",
+                       "javaType":"java.lang.String",
+                       "deprecated":false,
+                       "secret":false,
+                       "description":"SObject external ID field name"
+               }
+       },
+       "connectorProperties":{
+               
+       }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/b15f7cfe/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 3ca957e..bad488c 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
@@ -2,7 +2,7 @@
   "baseScheme" : "salesforce",
   "baseGroupId" : "org.apache.camel",
   "baseArtifactId" : "camel-salesforce",
-  "baseVersion" : "2.20.0-20170910.172654-189",
+  "baseVersion" : "2.20.0-SNAPSHOT",
   "baseJavaType" : "org.apache.camel.component.salesforce.SalesforceComponent",
   "name" : "SalesforceUpsertContact",
   "scheme" : "salesforce-upsert-contact",

http://git-wip-us.apache.org/repos/asf/camel/blob/b15f7cfe/connectors/examples/twitter-find-connector/src/main/java/org/foo/find/springboot/TwitterFindConnectorConfigurationCommon.java
----------------------------------------------------------------------
diff --git 
a/connectors/examples/twitter-find-connector/src/main/java/org/foo/find/springboot/TwitterFindConnectorConfigurationCommon.java
 
b/connectors/examples/twitter-find-connector/src/main/java/org/foo/find/springboot/TwitterFindConnectorConfigurationCommon.java
index 9f28ef1..38d9403 100644
--- 
a/connectors/examples/twitter-find-connector/src/main/java/org/foo/find/springboot/TwitterFindConnectorConfigurationCommon.java
+++ 
b/connectors/examples/twitter-find-connector/src/main/java/org/foo/find/springboot/TwitterFindConnectorConfigurationCommon.java
@@ -27,54 +27,54 @@ import javax.annotation.Generated;
 public class TwitterFindConnectorConfigurationCommon {
 
     /**
-     * The access token
+     * The consumer secret
      */
-    private String accessToken;
+    private String consumerSecret;
     /**
-     * The access token secret
+     * The access token
      */
-    private String accessTokenSecret;
+    private String accessToken;
     /**
      * The consumer key
      */
     private String consumerKey;
     /**
-     * The consumer secret
+     * The access token secret
      */
-    private String consumerSecret;
+    private String accessTokenSecret;
     /**
-     * Filter out old tweets that has previously been polled. This state is
-     * stored in memory only and based on last tweet id.
+     * Milliseconds before the next poll.
      */
-    private boolean filterOld = true;
+    private long delay = 5000L;
     /**
      * Can be used for search and streaming/filter. Multiple values can be
      * separated with comma.
      */
     private String keywords;
     /**
-     * Milliseconds before the next poll.
+     * Filter out old tweets that has previously been polled. This state is
+     * stored in memory only and based on last tweet id.
      */
-    private long delay = 5000L;
+    private boolean filterOld = true;
     /**
      * A prefix
      */
     private String prefix;
 
-    public String getAccessToken() {
-        return accessToken;
+    public String getConsumerSecret() {
+        return consumerSecret;
     }
 
-    public void setAccessToken(String accessToken) {
-        this.accessToken = accessToken;
+    public void setConsumerSecret(String consumerSecret) {
+        this.consumerSecret = consumerSecret;
     }
 
-    public String getAccessTokenSecret() {
-        return accessTokenSecret;
+    public String getAccessToken() {
+        return accessToken;
     }
 
-    public void setAccessTokenSecret(String accessTokenSecret) {
-        this.accessTokenSecret = accessTokenSecret;
+    public void setAccessToken(String accessToken) {
+        this.accessToken = accessToken;
     }
 
     public String getConsumerKey() {
@@ -85,20 +85,20 @@ public class TwitterFindConnectorConfigurationCommon {
         this.consumerKey = consumerKey;
     }
 
-    public String getConsumerSecret() {
-        return consumerSecret;
+    public String getAccessTokenSecret() {
+        return accessTokenSecret;
     }
 
-    public void setConsumerSecret(String consumerSecret) {
-        this.consumerSecret = consumerSecret;
+    public void setAccessTokenSecret(String accessTokenSecret) {
+        this.accessTokenSecret = accessTokenSecret;
     }
 
-    public boolean isFilterOld() {
-        return filterOld;
+    public long getDelay() {
+        return delay;
     }
 
-    public void setFilterOld(boolean filterOld) {
-        this.filterOld = filterOld;
+    public void setDelay(long delay) {
+        this.delay = delay;
     }
 
     public String getKeywords() {
@@ -109,12 +109,12 @@ public class TwitterFindConnectorConfigurationCommon {
         this.keywords = keywords;
     }
 
-    public long getDelay() {
-        return delay;
+    public boolean isFilterOld() {
+        return filterOld;
     }
 
-    public void setDelay(long delay) {
-        this.delay = delay;
+    public void setFilterOld(boolean filterOld) {
+        this.filterOld = filterOld;
     }
 
     public String getPrefix() {

http://git-wip-us.apache.org/repos/asf/camel/blob/b15f7cfe/connectors/examples/twitter-find-connector/src/main/resources/camel-connector-schema.json
----------------------------------------------------------------------
diff --git 
a/connectors/examples/twitter-find-connector/src/main/resources/camel-connector-schema.json
 
b/connectors/examples/twitter-find-connector/src/main/resources/camel-connector-schema.json
index d5c6f6b..a1adff7 100644
--- 
a/connectors/examples/twitter-find-connector/src/main/resources/camel-connector-schema.json
+++ 
b/connectors/examples/twitter-find-connector/src/main/resources/camel-connector-schema.json
@@ -1,33 +1,124 @@
 {
-  "component": {
-    "kind": "component",
-    "baseScheme": "twitter",
-    "scheme": "twitter-find",
-    "syntax": "twitter-find:kind",
-    "title": "TwitterFind",
-    "description": "Find for twitter",
-    "label": "twitter",
-    "deprecated": true,
-    "async": false,
-    "consumerOnly": true,
-    "lenientProperties": false,
-    "javaType": "org.foo.find.TwitterFindComponent",
-    "groupId": "org.foo",
-    "artifactId": "twitter-find-connector",
-    "version": "2.20.0-SNAPSHOT"
-  },
-  "componentProperties": {
-    "accessToken": { "kind": "property", "displayName": "Access Token", 
"group": "security", "label": "security", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "secret": true, 
"description": "The access token" },
-    "accessTokenSecret": { "kind": "property", "displayName": "Access Token 
Secret", "group": "security", "label": "security", "required": false, "type": 
"string", "javaType": "java.lang.String", "deprecated": false, "secret": true, 
"description": "The access token secret" },
-    "consumerKey": { "kind": "property", "displayName": "Consumer Key", 
"group": "security", "label": "security", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "secret": true, 
"description": "The consumer key" },
-    "consumerSecret": { "kind": "property", "displayName": "Consumer Secret", 
"group": "security", "label": "security", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "secret": true, 
"description": "The consumer secret" }
-  },
-  "properties": {
-    "filterOld": { "kind": "parameter", "displayName": "Filter Old", "group": 
"filter", "label": "consumer,filter", "required": false, "type": "boolean", 
"javaType": "boolean", "deprecated": false, "secret": false, "defaultValue": 
true, "description": "Filter out old tweets that has previously been polled. 
This state is stored in memory only and based on last tweet id." },
-    "keywords": { "kind": "parameter", "displayName": "Keywords", "group": 
"filter", "label": "consumer,filter", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "secret": false, 
"description": "Can be used for search and streaming/filter. Multiple values 
can be separated with comma." },
-    "delay": { "kind": "parameter", "displayName": "Delay", "group": 
"scheduler", "label": "consumer,scheduler", "required": false, "type": 
"integer", "javaType": "long", "optionalPrefix": "consumer.", "deprecated": 
false, "secret": false, "defaultValue": 5000, "description": "Milliseconds 
before the next poll." }
-  },
-  "connectorProperties": {
-    "prefix": { "kind": "parameter", "displayName": "Keyword prefix", "group": 
"filter", "label": "consumer,filter", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "secret": false, 
"description": "A prefix" }
-  }
-}
+       "component":{
+               "kind":"component",
+               "baseScheme":"twitter",
+               "scheme":"twitter-find",
+               "syntax":"twitter-find:kind",
+               "title":"TwitterFind",
+               "description":"Find for twitter",
+               "label":"twitter",
+               "deprecated":true,
+               "async":false,
+               "consumerOnly":true,
+               "lenientProperties":false,
+               "javaType":"org.foo.find.TwitterFindComponent",
+               "groupId":"org.foo",
+               "artifactId":"twitter-find-connector",
+               "version":"2.20.0-SNAPSHOT"
+       },
+       "componentProperties":{
+               "consumerSecret":{
+                       "kind":"property",
+                       "displayName":"Consumer Secret",
+                       "group":"security",
+                       "label":"security",
+                       "required":false,
+                       "type":"string",
+                       "javaType":"java.lang.String",
+                       "deprecated":false,
+                       "secret":true,
+                       "description":"The consumer secret"
+               },
+               "accessToken":{
+                       "kind":"property",
+                       "displayName":"Access Token",
+                       "group":"security",
+                       "label":"security",
+                       "required":false,
+                       "type":"string",
+                       "javaType":"java.lang.String",
+                       "deprecated":false,
+                       "secret":true,
+                       "description":"The access token"
+               },
+               "consumerKey":{
+                       "kind":"property",
+                       "displayName":"Consumer Key",
+                       "group":"security",
+                       "label":"security",
+                       "required":false,
+                       "type":"string",
+                       "javaType":"java.lang.String",
+                       "deprecated":false,
+                       "secret":true,
+                       "description":"The consumer key"
+               },
+               "accessTokenSecret":{
+                       "kind":"property",
+                       "displayName":"Access Token Secret",
+                       "group":"security",
+                       "label":"security",
+                       "required":false,
+                       "type":"string",
+                       "javaType":"java.lang.String",
+                       "deprecated":false,
+                       "secret":true,
+                       "description":"The access token secret"
+               }
+       },
+       "properties":{
+               "keywords":{
+                       "kind":"parameter",
+                       "displayName":"Keywords",
+                       "group":"filter",
+                       "label":"consumer,filter",
+                       "required":false,
+                       "type":"string",
+                       "javaType":"java.lang.String",
+                       "deprecated":false,
+                       "secret":false,
+                       "description":"Can be used for search and 
streaming\/filter. Multiple values can be separated with comma."
+               },
+               "delay":{
+                       "kind":"parameter",
+                       "displayName":"Delay",
+                       "group":"scheduler",
+                       "label":"consumer,scheduler",
+                       "required":false,
+                       "type":"integer",
+                       "javaType":"long",
+                       "optionalPrefix":"consumer.",
+                       "deprecated":false,
+                       "secret":false,
+                       "defaultValue":5000,
+                       "description":"Milliseconds before the next poll."
+               },
+               "filterOld":{
+                       "kind":"parameter",
+                       "displayName":"Filter Old",
+                       "group":"filter",
+                       "label":"consumer,filter",
+                       "required":false,
+                       "type":"boolean",
+                       "javaType":"boolean",
+                       "deprecated":false,
+                       "secret":false,
+                       "defaultValue":true,
+                       "description":"Filter out old tweets that has 
previously been polled. This state is stored in memory only and based on last 
tweet id."
+               }
+       },
+       "connectorProperties":{
+               "prefix":{
+                       "kind":"parameter",
+                       "displayName":"Keyword prefix",
+                       "group":"filter",
+                       "label":"consumer,filter",
+                       "required":false,
+                       "type":"string",
+                       "javaType":"java.lang.String",
+                       "deprecated":false,
+                       "secret":false,
+                       "description":"A prefix"
+               }
+       }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/b15f7cfe/connectors/examples/twitter-mention-connector/src/main/java/org/foo/mention/springboot/TwitterMentionConnectorConfigurationCommon.java
----------------------------------------------------------------------
diff --git 
a/connectors/examples/twitter-mention-connector/src/main/java/org/foo/mention/springboot/TwitterMentionConnectorConfigurationCommon.java
 
b/connectors/examples/twitter-mention-connector/src/main/java/org/foo/mention/springboot/TwitterMentionConnectorConfigurationCommon.java
index 37d6efd..eb47ecc 100644
--- 
a/connectors/examples/twitter-mention-connector/src/main/java/org/foo/mention/springboot/TwitterMentionConnectorConfigurationCommon.java
+++ 
b/connectors/examples/twitter-mention-connector/src/main/java/org/foo/mention/springboot/TwitterMentionConnectorConfigurationCommon.java
@@ -27,36 +27,36 @@ import javax.annotation.Generated;
 public class TwitterMentionConnectorConfigurationCommon {
 
     /**
-     * The access token
+     * The consumer secret
      */
-    private String accessToken;
+    private String consumerSecret;
     /**
-     * The access token secret
+     * The access token
      */
-    private String accessTokenSecret;
+    private String accessToken;
     /**
      * The consumer key
      */
     private String consumerKey;
     /**
-     * The consumer secret
+     * The access token secret
      */
-    private String consumerSecret;
+    private String accessTokenSecret;
 
-    public String getAccessToken() {
-        return accessToken;
+    public String getConsumerSecret() {
+        return consumerSecret;
     }
 
-    public void setAccessToken(String accessToken) {
-        this.accessToken = accessToken;
+    public void setConsumerSecret(String consumerSecret) {
+        this.consumerSecret = consumerSecret;
     }
 
-    public String getAccessTokenSecret() {
-        return accessTokenSecret;
+    public String getAccessToken() {
+        return accessToken;
     }
 
-    public void setAccessTokenSecret(String accessTokenSecret) {
-        this.accessTokenSecret = accessTokenSecret;
+    public void setAccessToken(String accessToken) {
+        this.accessToken = accessToken;
     }
 
     public String getConsumerKey() {
@@ -67,11 +67,11 @@ public class TwitterMentionConnectorConfigurationCommon {
         this.consumerKey = consumerKey;
     }
 
-    public String getConsumerSecret() {
-        return consumerSecret;
+    public String getAccessTokenSecret() {
+        return accessTokenSecret;
     }
 
-    public void setConsumerSecret(String consumerSecret) {
-        this.consumerSecret = consumerSecret;
+    public void setAccessTokenSecret(String accessTokenSecret) {
+        this.accessTokenSecret = accessTokenSecret;
     }
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/b15f7cfe/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 4ab2632..9229037 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
@@ -1,29 +1,75 @@
 {
-  "component": {
-    "kind": "component",
-    "baseScheme": "twitter",
-    "scheme": "twitter-mention",
-    "syntax": "twitter-mention:kind",
-    "title": "TwitterMention",
-    "description": "Connection from twitter when anyone mention you",
-    "label": "twitter",
-    "deprecated": true,
-    "async": false,
-    "consumerOnly": true,
-    "lenientProperties": false,
-    "javaType": "org.foo.mention.TwitterMentionComponent",
-    "groupId": "org.foo",
-    "artifactId": "twitter-mention-connector",
-    "version": "2.20.0-SNAPSHOT"
-  },
-  "componentProperties": {
-    "accessToken": { "kind": "property", "displayName": "Access Token", 
"group": "security", "label": "security", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "secret": true, 
"description": "The access token" },
-    "accessTokenSecret": { "kind": "property", "displayName": "Access Token 
Secret", "group": "security", "label": "security", "required": false, "type": 
"string", "javaType": "java.lang.String", "deprecated": false, "secret": true, 
"description": "The access token secret" },
-    "consumerKey": { "kind": "property", "displayName": "Consumer Key", 
"group": "security", "label": "security", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "secret": true, 
"description": "The consumer key" },
-    "consumerSecret": { "kind": "property", "displayName": "Consumer Secret", 
"group": "security", "label": "security", "required": false, "type": "string", 
"javaType": "java.lang.String", "deprecated": false, "secret": true, 
"description": "The consumer secret" }
-  },
-  "properties": {
-  },
-  "connectorProperties": {
-  }
-}
+       "component":{
+               "kind":"component",
+               "baseScheme":"twitter",
+               "scheme":"twitter-mention",
+               "syntax":"twitter-mention:kind",
+               "title":"TwitterMention",
+               "description":"Connection from twitter when anyone mention you",
+               "label":"twitter",
+               "deprecated":true,
+               "async":false,
+               "consumerOnly":true,
+               "lenientProperties":false,
+               "javaType":"org.foo.mention.TwitterMentionComponent",
+               "groupId":"org.foo",
+               "artifactId":"twitter-mention-connector",
+               "version":"2.20.0-SNAPSHOT"
+       },
+       "componentProperties":{
+               "consumerSecret":{
+                       "kind":"property",
+                       "displayName":"Consumer Secret",
+                       "group":"security",
+                       "label":"security",
+                       "required":false,
+                       "type":"string",
+                       "javaType":"java.lang.String",
+                       "deprecated":false,
+                       "secret":true,
+                       "description":"The consumer secret"
+               },
+               "accessToken":{
+                       "kind":"property",
+                       "displayName":"Access Token",
+                       "group":"security",
+                       "label":"security",
+                       "required":false,
+                       "type":"string",
+                       "javaType":"java.lang.String",
+                       "deprecated":false,
+                       "secret":true,
+                       "description":"The access token"
+               },
+               "consumerKey":{
+                       "kind":"property",
+                       "displayName":"Consumer Key",
+                       "group":"security",
+                       "label":"security",
+                       "required":false,
+                       "type":"string",
+                       "javaType":"java.lang.String",
+                       "deprecated":false,
+                       "secret":true,
+                       "description":"The consumer key"
+               },
+               "accessTokenSecret":{
+                       "kind":"property",
+                       "displayName":"Access Token Secret",
+                       "group":"security",
+                       "label":"security",
+                       "required":false,
+                       "type":"string",
+                       "javaType":"java.lang.String",
+                       "deprecated":false,
+                       "secret":true,
+                       "description":"The access token secret"
+               }
+       },
+       "properties":{
+               
+       },
+       "connectorProperties":{
+               
+       }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/camel/blob/b15f7cfe/connectors/examples/wine-connector/src/main/resources/camel-connector-schema.json
----------------------------------------------------------------------
diff --git 
a/connectors/examples/wine-connector/src/main/resources/camel-connector-schema.json
 
b/connectors/examples/wine-connector/src/main/resources/camel-connector-schema.json
index ba7e908..a62fe80 100644
--- 
a/connectors/examples/wine-connector/src/main/resources/camel-connector-schema.json
+++ 
b/connectors/examples/wine-connector/src/main/resources/camel-connector-schema.json
@@ -1,27 +1,54 @@
 {
-  "component": {
-    "kind": "component",
-    "baseScheme": "beverage",
-    "scheme": "wine",
-    "syntax": "wine:drink",
-    "title": "Wine",
-    "description": "To order wine from the bar",
-    "label": "bar",
-    "deprecated": false,
-    "async": false,
-    "producerOnly": true,
-    "lenientProperties": false,
-    "javaType": "org.foo.connector.WineComponent",
-    "groupId": "org.foo",
-    "artifactId": "wine-connector",
-    "version": "2.20.0-SNAPSHOT"
-  },
-  "componentProperties": {
-  },
-  "properties": {
-    "drink": { "kind": "path", "displayName": "Wine Bottle", "group": 
"producer", "required": true, "type": "object", "javaType": 
"org.beverage.Beverages", "enum": [ "Wine" ], "deprecated": false, "secret": 
false, "defaultValue": "Wine", "description": "You can only order wine" },
-    "amount": { "kind": "parameter", "displayName": "Amount", "group": 
"producer", "required": false, "type": "integer", "javaType": "int", 
"deprecated": false, "secret": false, "defaultValue": 1, "description": "Number 
of drinks in the order" }
-  },
-  "connectorProperties": {
-  }
-}
+       "component":{
+               "kind":"component",
+               "baseScheme":"beverage",
+               "scheme":"wine",
+               "syntax":"wine:drink",
+               "title":"Wine",
+               "description":"To order wine from the bar",
+               "label":"bar",
+               "deprecated":false,
+               "async":false,
+               "producerOnly":true,
+               "lenientProperties":false,
+               "javaType":"org.foo.connector.WineComponent",
+               "groupId":"org.foo",
+               "artifactId":"wine-connector",
+               "version":"2.20.0-SNAPSHOT"
+       },
+       "componentProperties":{
+               
+       },
+       "properties":{
+               "amount":{
+                       "kind":"parameter",
+                       "displayName":"Amount",
+                       "group":"producer",
+                       "required":false,
+                       "type":"integer",
+                       "javaType":"int",
+                       "deprecated":false,
+                       "secret":false,
+                       "defaultValue":1,
+                       "description":"Number of drinks in the order"
+               },
+               "drink":{
+                       "kind":"path",
+                       "displayName":"Wine Bottle",
+                       "group":"producer",
+                       "required":true,
+                       "type":"object",
+                       "javaType":"org.beverage.Beverages",
+                       "enum":[
+                               "Wine"
+                       ],
+                       "deprecated":false,
+                       "secret":false,
+                       "defaultValue":"Wine",
+                       "description":"You can only order wine"
+               }
+       },
+       "connectorProperties":{
+               
+       }
+}
\ No newline at end of file

Reply via email to