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/12/21 14:18:06 UTC

[2/3] camel git commit: CAMEL-10629: Add more details to component level options

CAMEL-10629: Add more details to component level options


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

Branch: refs/heads/master
Commit: 1a3e4412f64a3e2ab1356e33998d6330bef156cf
Parents: 358f45f
Author: Claus Ibsen <da...@apache.org>
Authored: Wed Dec 21 14:49:58 2016 +0100
Committer: Claus Ibsen <da...@apache.org>
Committed: Wed Dec 21 14:49:58 2016 +0100

----------------------------------------------------------------------
 .../springboot/HBaseComponentConfiguration.java |  2 +-
 .../springboot/JpaComponentConfiguration.java   |  2 +-
 .../MyBatisComponentConfiguration.java          |  2 +-
 .../component/facebook/FacebookComponent.java   |  2 +
 .../camel/component/flink/FlinkComponent.java   | 16 ++---
 .../camel/component/flink/FlinkEndpoint.java    |  3 -
 .../freemarker/FreemarkerComponent.java         |  2 +
 .../component/ganglia/GangliaComponent.java     |  2 +
 .../calendar/GoogleCalendarComponent.java       |  3 +
 .../google/drive/GoogleDriveComponent.java      |  3 +
 .../google/mail/GoogleMailComponent.java        |  3 +
 .../google/pubsub/GooglePubsubComponent.java    |  4 --
 .../camel/component/grape/GrapeEndpoint.groovy  |  3 +
 .../component/hazelcast/HazelcastComponent.java |  2 +
 .../camel/component/hbase/HBaseComponent.java   |  6 +-
 .../camel/http/common/HttpCommonComponent.java  |  4 ++
 .../camel/component/http/HttpComponent.java     |  4 ++
 .../camel/component/http4/HttpComponent.java    | 10 ++++
 .../camel/component/ibatis/IBatisComponent.java |  4 ++
 .../src/main/docs/influxdb-component.adoc       |  6 +-
 .../component/influxdb/InfluxDbComponent.java   | 21 +------
 .../component/influxdb/InfluxDbEndpoint.java    | 63 ++++----------------
 .../camel/component/jcache/JCacheComponent.java |  2 +-
 .../src/main/docs/jdbc-component.adoc           |  4 +-
 .../camel/component/jdbc/JdbcEndpoint.java      |  4 +-
 .../component/jetty/JettyHttpComponent.java     | 62 +++++++++----------
 .../component/jgroups/JGroupsComponent.java     |  2 +
 .../camel/component/jms/JmsComponent.java       | 11 +++-
 .../camel/component/jolt/JoltComponent.java     |  2 +
 .../camel/component/jpa/JpaComponent.java       |  6 +-
 .../camel/component/scp/ScpComponent.java       |  2 +-
 .../src/main/docs/jt400-component.adoc          |  2 +-
 .../camel/component/jt400/Jt400Component.java   |  2 +
 .../component/jt400/Jt400Configuration.java     |  6 +-
 .../camel/component/kafka/KafkaComponent.java   |  2 +
 .../component/kafka/KafkaConfiguration.java     |  6 +-
 .../component/kestrel/KestrelComponent.java     |  5 +-
 .../camel/component/lucene/LuceneComponent.java |  3 +
 .../lumberjack/LumberjackComponent.java         |  2 +
 .../camel/component/mail/MailComponent.java     |  4 ++
 .../component/metrics/MetricsComponent.java     |  2 +
 .../camel/component/mina/MinaComponent.java     |  2 +
 .../camel/component/mina2/Mina2Component.java   |  2 +
 .../camel/component/mqtt/MQTTComponent.java     |  3 +
 .../component/validator/msv/MsvComponent.java   |  2 +
 .../component/mustache/MustacheComponent.java   |  2 +
 .../src/main/docs/mybatis-component.adoc        |  3 +-
 .../component/mybatis/MyBatisComponent.java     |  3 +
 .../component/mybatis/MyBatisEndpoint.java      |  6 +-
 49 files changed, 176 insertions(+), 143 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/1a3e4412/components-starter/camel-hbase-starter/src/main/java/org/apache/camel/component/hbase/springboot/HBaseComponentConfiguration.java
----------------------------------------------------------------------
diff --git a/components-starter/camel-hbase-starter/src/main/java/org/apache/camel/component/hbase/springboot/HBaseComponentConfiguration.java b/components-starter/camel-hbase-starter/src/main/java/org/apache/camel/component/hbase/springboot/HBaseComponentConfiguration.java
index a800e04..da720c7 100644
--- a/components-starter/camel-hbase-starter/src/main/java/org/apache/camel/component/hbase/springboot/HBaseComponentConfiguration.java
+++ b/components-starter/camel-hbase-starter/src/main/java/org/apache/camel/component/hbase/springboot/HBaseComponentConfiguration.java
@@ -37,7 +37,7 @@ public class HBaseComponentConfiguration {
      * Maximum number of references to keep for each table in the HTable pool.
      * The default value is 10.
      */
-    private Integer poolMaxSize;
+    private Integer poolMaxSize = 10;
 
     public Configuration getConfiguration() {
         return configuration;

http://git-wip-us.apache.org/repos/asf/camel/blob/1a3e4412/components-starter/camel-jpa-starter/src/main/java/org/apache/camel/component/jpa/springboot/JpaComponentConfiguration.java
----------------------------------------------------------------------
diff --git a/components-starter/camel-jpa-starter/src/main/java/org/apache/camel/component/jpa/springboot/JpaComponentConfiguration.java b/components-starter/camel-jpa-starter/src/main/java/org/apache/camel/component/jpa/springboot/JpaComponentConfiguration.java
index 4e26964..58eb3c9 100644
--- a/components-starter/camel-jpa-starter/src/main/java/org/apache/camel/component/jpa/springboot/JpaComponentConfiguration.java
+++ b/components-starter/camel-jpa-starter/src/main/java/org/apache/camel/component/jpa/springboot/JpaComponentConfiguration.java
@@ -47,7 +47,7 @@ public class JpaComponentConfiguration {
      * also be set globally on the JpaComponent instead of having to set it on
      * all endpoints.
      */
-    private Boolean joinTransaction;
+    private Boolean joinTransaction = true;
     /**
      * Whether to use Spring's SharedEntityManager for the consumer/producer.
      * Note in most cases joinTransaction should be set to false as this is not

http://git-wip-us.apache.org/repos/asf/camel/blob/1a3e4412/components-starter/camel-mybatis-starter/src/main/java/org/apache/camel/component/mybatis/springboot/MyBatisComponentConfiguration.java
----------------------------------------------------------------------
diff --git a/components-starter/camel-mybatis-starter/src/main/java/org/apache/camel/component/mybatis/springboot/MyBatisComponentConfiguration.java b/components-starter/camel-mybatis-starter/src/main/java/org/apache/camel/component/mybatis/springboot/MyBatisComponentConfiguration.java
index 2c37b8d..19422d8 100644
--- a/components-starter/camel-mybatis-starter/src/main/java/org/apache/camel/component/mybatis/springboot/MyBatisComponentConfiguration.java
+++ b/components-starter/camel-mybatis-starter/src/main/java/org/apache/camel/component/mybatis/springboot/MyBatisComponentConfiguration.java
@@ -38,7 +38,7 @@ public class MyBatisComponentConfiguration {
      * Location of MyBatis xml configuration file. The default value is:
      * SqlMapConfig.xml loaded from the classpath
      */
-    private String configurationUri;
+    private String configurationUri = "SqlMapConfig.xml";
 
     public SqlSessionFactory getSqlSessionFactory() {
         return sqlSessionFactory;

http://git-wip-us.apache.org/repos/asf/camel/blob/1a3e4412/components/camel-facebook/src/main/java/org/apache/camel/component/facebook/FacebookComponent.java
----------------------------------------------------------------------
diff --git a/components/camel-facebook/src/main/java/org/apache/camel/component/facebook/FacebookComponent.java b/components/camel-facebook/src/main/java/org/apache/camel/component/facebook/FacebookComponent.java
index 84094d8..10af568 100644
--- a/components/camel-facebook/src/main/java/org/apache/camel/component/facebook/FacebookComponent.java
+++ b/components/camel-facebook/src/main/java/org/apache/camel/component/facebook/FacebookComponent.java
@@ -24,6 +24,7 @@ import org.apache.camel.Endpoint;
 import org.apache.camel.component.facebook.config.FacebookConfiguration;
 import org.apache.camel.component.facebook.config.FacebookEndpointConfiguration;
 import org.apache.camel.impl.UriEndpointComponent;
+import org.apache.camel.spi.Metadata;
 import org.apache.camel.util.IntrospectionSupport;
 
 /**
@@ -31,6 +32,7 @@ import org.apache.camel.util.IntrospectionSupport;
  */
 public class FacebookComponent extends UriEndpointComponent {
 
+    @Metadata(label = "advanced")
     private FacebookConfiguration configuration;
 
     public FacebookComponent() {

http://git-wip-us.apache.org/repos/asf/camel/blob/1a3e4412/components/camel-flink/src/main/java/org/apache/camel/component/flink/FlinkComponent.java
----------------------------------------------------------------------
diff --git a/components/camel-flink/src/main/java/org/apache/camel/component/flink/FlinkComponent.java b/components/camel-flink/src/main/java/org/apache/camel/component/flink/FlinkComponent.java
index 811ab5c..0df05e5 100644
--- a/components/camel-flink/src/main/java/org/apache/camel/component/flink/FlinkComponent.java
+++ b/components/camel-flink/src/main/java/org/apache/camel/component/flink/FlinkComponent.java
@@ -47,10 +47,6 @@ public class FlinkComponent extends UriEndpointComponent {
         return ds;
     }
 
-    public DataStream getDataStream() {
-        return dataStream;
-    }
-
     /**
      * DataSet to compute against.
      */
@@ -58,6 +54,10 @@ public class FlinkComponent extends UriEndpointComponent {
         this.ds = ds;
     }
 
+    public DataStream getDataStream() {
+        return dataStream;
+    }
+
     /**
      * DataStream to compute against.
      */
@@ -69,10 +69,6 @@ public class FlinkComponent extends UriEndpointComponent {
         return dataSetCallback;
     }
 
-    public DataStreamCallback getDataStreamCallback() {
-        return dataStreamCallback;
-    }
-
     /**
      * Function performing action against a DataSet.
      */
@@ -80,6 +76,10 @@ public class FlinkComponent extends UriEndpointComponent {
         this.dataSetCallback = dataSetCallback;
     }
 
+    public DataStreamCallback getDataStreamCallback() {
+        return dataStreamCallback;
+    }
+
     /**
      * Function performing action against a DataStream.
      */

http://git-wip-us.apache.org/repos/asf/camel/blob/1a3e4412/components/camel-flink/src/main/java/org/apache/camel/component/flink/FlinkEndpoint.java
----------------------------------------------------------------------
diff --git a/components/camel-flink/src/main/java/org/apache/camel/component/flink/FlinkEndpoint.java b/components/camel-flink/src/main/java/org/apache/camel/component/flink/FlinkEndpoint.java
index d5bd872..5b66f93 100644
--- a/components/camel-flink/src/main/java/org/apache/camel/component/flink/FlinkEndpoint.java
+++ b/components/camel-flink/src/main/java/org/apache/camel/component/flink/FlinkEndpoint.java
@@ -40,13 +40,10 @@ public class FlinkEndpoint extends DefaultEndpoint {
     private DataSet dataSet;
     @UriParam
     private DataSetCallback dataSetCallback;
-
     @UriParam
     private DataStream dataStream;
-
     @UriParam
     private DataStreamCallback dataStreamCallback;
-
     @UriParam(defaultValue = "true")
     private boolean collect = true;
 

http://git-wip-us.apache.org/repos/asf/camel/blob/1a3e4412/components/camel-freemarker/src/main/java/org/apache/camel/component/freemarker/FreemarkerComponent.java
----------------------------------------------------------------------
diff --git a/components/camel-freemarker/src/main/java/org/apache/camel/component/freemarker/FreemarkerComponent.java b/components/camel-freemarker/src/main/java/org/apache/camel/component/freemarker/FreemarkerComponent.java
index 889e5e2..f584e39 100644
--- a/components/camel-freemarker/src/main/java/org/apache/camel/component/freemarker/FreemarkerComponent.java
+++ b/components/camel-freemarker/src/main/java/org/apache/camel/component/freemarker/FreemarkerComponent.java
@@ -24,6 +24,7 @@ import freemarker.cache.URLTemplateLoader;
 import freemarker.template.Configuration;
 import org.apache.camel.Endpoint;
 import org.apache.camel.impl.UriEndpointComponent;
+import org.apache.camel.spi.Metadata;
 import org.apache.camel.util.ObjectHelper;
 import org.apache.camel.util.ResourceHelper;
 
@@ -32,6 +33,7 @@ import org.apache.camel.util.ResourceHelper;
  */
 public class FreemarkerComponent extends UriEndpointComponent {
 
+    @Metadata(label = "advanced")
     private Configuration configuration;
     private Configuration noCacheConfiguration;
 

http://git-wip-us.apache.org/repos/asf/camel/blob/1a3e4412/components/camel-ganglia/src/main/java/org/apache/camel/component/ganglia/GangliaComponent.java
----------------------------------------------------------------------
diff --git a/components/camel-ganglia/src/main/java/org/apache/camel/component/ganglia/GangliaComponent.java b/components/camel-ganglia/src/main/java/org/apache/camel/component/ganglia/GangliaComponent.java
index fb2562f..0e2b958 100644
--- a/components/camel-ganglia/src/main/java/org/apache/camel/component/ganglia/GangliaComponent.java
+++ b/components/camel-ganglia/src/main/java/org/apache/camel/component/ganglia/GangliaComponent.java
@@ -21,10 +21,12 @@ import java.util.Map;
 
 import org.apache.camel.Endpoint;
 import org.apache.camel.impl.UriEndpointComponent;
+import org.apache.camel.spi.Metadata;
 import org.apache.camel.util.ObjectHelper;
 
 public class GangliaComponent extends UriEndpointComponent {
 
+    @Metadata(label = "advanced")
     private GangliaConfiguration configuration;
 
     public GangliaComponent() {

http://git-wip-us.apache.org/repos/asf/camel/blob/1a3e4412/components/camel-google-calendar/src/main/java/org/apache/camel/component/google/calendar/GoogleCalendarComponent.java
----------------------------------------------------------------------
diff --git a/components/camel-google-calendar/src/main/java/org/apache/camel/component/google/calendar/GoogleCalendarComponent.java b/components/camel-google-calendar/src/main/java/org/apache/camel/component/google/calendar/GoogleCalendarComponent.java
index 84e3092..109fdf5 100644
--- a/components/camel-google-calendar/src/main/java/org/apache/camel/component/google/calendar/GoogleCalendarComponent.java
+++ b/components/camel-google-calendar/src/main/java/org/apache/camel/component/google/calendar/GoogleCalendarComponent.java
@@ -21,6 +21,7 @@ import org.apache.camel.CamelContext;
 import org.apache.camel.Endpoint;
 import org.apache.camel.component.google.calendar.internal.GoogleCalendarApiCollection;
 import org.apache.camel.component.google.calendar.internal.GoogleCalendarApiName;
+import org.apache.camel.spi.Metadata;
 import org.apache.camel.util.component.AbstractApiComponent;
 
 /**
@@ -28,7 +29,9 @@ import org.apache.camel.util.component.AbstractApiComponent;
  */
 public class GoogleCalendarComponent extends AbstractApiComponent<GoogleCalendarApiName, GoogleCalendarConfiguration, GoogleCalendarApiCollection> {
 
+    @Metadata(label = "advanced")
     private Calendar client;
+    @Metadata(label = "advanced")
     private GoogleCalendarClientFactory clientFactory;
 
     public GoogleCalendarComponent() {

http://git-wip-us.apache.org/repos/asf/camel/blob/1a3e4412/components/camel-google-drive/src/main/java/org/apache/camel/component/google/drive/GoogleDriveComponent.java
----------------------------------------------------------------------
diff --git a/components/camel-google-drive/src/main/java/org/apache/camel/component/google/drive/GoogleDriveComponent.java b/components/camel-google-drive/src/main/java/org/apache/camel/component/google/drive/GoogleDriveComponent.java
index 84dc9e2..95b2bfe 100644
--- a/components/camel-google-drive/src/main/java/org/apache/camel/component/google/drive/GoogleDriveComponent.java
+++ b/components/camel-google-drive/src/main/java/org/apache/camel/component/google/drive/GoogleDriveComponent.java
@@ -21,6 +21,7 @@ import org.apache.camel.CamelContext;
 import org.apache.camel.Endpoint;
 import org.apache.camel.component.google.drive.internal.GoogleDriveApiCollection;
 import org.apache.camel.component.google.drive.internal.GoogleDriveApiName;
+import org.apache.camel.spi.Metadata;
 import org.apache.camel.util.component.AbstractApiComponent;
 
 /**
@@ -28,7 +29,9 @@ import org.apache.camel.util.component.AbstractApiComponent;
  */
 public class GoogleDriveComponent extends AbstractApiComponent<GoogleDriveApiName, GoogleDriveConfiguration, GoogleDriveApiCollection> {
 
+    @Metadata(label = "advanced")
     private Drive client;
+    @Metadata(label = "advanced")
     private GoogleDriveClientFactory clientFactory;
     
     public GoogleDriveComponent() {

http://git-wip-us.apache.org/repos/asf/camel/blob/1a3e4412/components/camel-google-mail/src/main/java/org/apache/camel/component/google/mail/GoogleMailComponent.java
----------------------------------------------------------------------
diff --git a/components/camel-google-mail/src/main/java/org/apache/camel/component/google/mail/GoogleMailComponent.java b/components/camel-google-mail/src/main/java/org/apache/camel/component/google/mail/GoogleMailComponent.java
index 7871a51..aafc974 100644
--- a/components/camel-google-mail/src/main/java/org/apache/camel/component/google/mail/GoogleMailComponent.java
+++ b/components/camel-google-mail/src/main/java/org/apache/camel/component/google/mail/GoogleMailComponent.java
@@ -22,6 +22,7 @@ import org.apache.camel.CamelContext;
 import org.apache.camel.Endpoint;
 import org.apache.camel.component.google.mail.internal.GoogleMailApiCollection;
 import org.apache.camel.component.google.mail.internal.GoogleMailApiName;
+import org.apache.camel.spi.Metadata;
 import org.apache.camel.util.component.AbstractApiComponent;
 
 /**
@@ -29,7 +30,9 @@ import org.apache.camel.util.component.AbstractApiComponent;
  */
 public class GoogleMailComponent extends AbstractApiComponent<GoogleMailApiName, GoogleMailConfiguration, GoogleMailApiCollection> {
 
+    @Metadata(label = "advanced")
     private Gmail client;
+    @Metadata(label = "advanced")
     private GoogleMailClientFactory clientFactory;
 
     public GoogleMailComponent() {

http://git-wip-us.apache.org/repos/asf/camel/blob/1a3e4412/components/camel-google-pubsub/src/main/java/org/apache/camel/component/google/pubsub/GooglePubsubComponent.java
----------------------------------------------------------------------
diff --git a/components/camel-google-pubsub/src/main/java/org/apache/camel/component/google/pubsub/GooglePubsubComponent.java b/components/camel-google-pubsub/src/main/java/org/apache/camel/component/google/pubsub/GooglePubsubComponent.java
index a79c67e..bc90df1 100644
--- a/components/camel-google-pubsub/src/main/java/org/apache/camel/component/google/pubsub/GooglePubsubComponent.java
+++ b/components/camel-google-pubsub/src/main/java/org/apache/camel/component/google/pubsub/GooglePubsubComponent.java
@@ -21,9 +21,6 @@ import java.util.Map;
 import org.apache.camel.CamelContext;
 import org.apache.camel.Endpoint;
 import org.apache.camel.impl.UriEndpointComponent;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
 
 /**
  * Represents the component that manages {@link GooglePubsubEndpoint}.
@@ -31,7 +28,6 @@ import org.slf4j.LoggerFactory;
 public class GooglePubsubComponent extends UriEndpointComponent {
 
     private GooglePubsubConnectionFactory connectionFactory;
-    private final Logger log = LoggerFactory.getLogger(this.getClass());
 
     public GooglePubsubComponent() {
         super(GooglePubsubEndpoint.class);

http://git-wip-us.apache.org/repos/asf/camel/blob/1a3e4412/components/camel-grape/src/main/groovy/org/apache/camel/component/grape/GrapeEndpoint.groovy
----------------------------------------------------------------------
diff --git a/components/camel-grape/src/main/groovy/org/apache/camel/component/grape/GrapeEndpoint.groovy b/components/camel-grape/src/main/groovy/org/apache/camel/component/grape/GrapeEndpoint.groovy
index 4ab600f..3f15ae3 100644
--- a/components/camel-grape/src/main/groovy/org/apache/camel/component/grape/GrapeEndpoint.groovy
+++ b/components/camel-grape/src/main/groovy/org/apache/camel/component/grape/GrapeEndpoint.groovy
@@ -21,7 +21,9 @@ import org.apache.camel.Consumer
 import org.apache.camel.Processor
 import org.apache.camel.Producer
 import org.apache.camel.impl.DefaultEndpoint
+import org.apache.camel.spi.Metadata
 import org.apache.camel.spi.UriEndpoint
+import org.apache.camel.spi.UriPath
 
 import static groovy.grape.Grape.grab
 import static org.apache.camel.component.grape.MavenCoordinates.parseMavenCoordinates
@@ -32,6 +34,7 @@ import static org.apache.camel.component.grape.MavenCoordinates.parseMavenCoordi
 @UriEndpoint(scheme = "grape", syntax = "grape:defaultCoordinates", title = "Grape", producerOnly = true, label = "management,deployment")
 class GrapeEndpoint extends DefaultEndpoint {
 
+    @UriPath @Metadata(required = "true")
     private final String defaultCoordinates
 
     GrapeEndpoint(String endpointUri, String defaultCoordinates, GrapeComponent component) {

http://git-wip-us.apache.org/repos/asf/camel/blob/1a3e4412/components/camel-hazelcast/src/main/java/org/apache/camel/component/hazelcast/HazelcastComponent.java
----------------------------------------------------------------------
diff --git a/components/camel-hazelcast/src/main/java/org/apache/camel/component/hazelcast/HazelcastComponent.java b/components/camel-hazelcast/src/main/java/org/apache/camel/component/hazelcast/HazelcastComponent.java
index ad901a9..5feaf7d 100644
--- a/components/camel-hazelcast/src/main/java/org/apache/camel/component/hazelcast/HazelcastComponent.java
+++ b/components/camel-hazelcast/src/main/java/org/apache/camel/component/hazelcast/HazelcastComponent.java
@@ -40,6 +40,7 @@ import org.apache.camel.component.hazelcast.seda.HazelcastSedaEndpoint;
 import org.apache.camel.component.hazelcast.set.HazelcastSetEndpoint;
 import org.apache.camel.component.hazelcast.topic.HazelcastTopicEndpoint;
 import org.apache.camel.impl.UriEndpointComponent;
+import org.apache.camel.spi.Metadata;
 import org.apache.camel.util.ObjectHelper;
 import org.apache.camel.util.ResourceHelper;
 import org.slf4j.Logger;
@@ -55,6 +56,7 @@ public class HazelcastComponent extends UriEndpointComponent {
     private static final Logger LOGGER = LoggerFactory.getLogger(HazelcastComponent.class);
 
     private final Set<HazelcastInstance> customHazelcastInstances;
+    @Metadata(label = "advanced")
     private HazelcastInstance hazelcastInstance;
 
     public HazelcastComponent() {

http://git-wip-us.apache.org/repos/asf/camel/blob/1a3e4412/components/camel-hbase/src/main/java/org/apache/camel/component/hbase/HBaseComponent.java
----------------------------------------------------------------------
diff --git a/components/camel-hbase/src/main/java/org/apache/camel/component/hbase/HBaseComponent.java b/components/camel-hbase/src/main/java/org/apache/camel/component/hbase/HBaseComponent.java
index 731b288..82244a3 100644
--- a/components/camel-hbase/src/main/java/org/apache/camel/component/hbase/HBaseComponent.java
+++ b/components/camel-hbase/src/main/java/org/apache/camel/component/hbase/HBaseComponent.java
@@ -21,6 +21,7 @@ import java.util.concurrent.Executors;
 
 import org.apache.camel.Endpoint;
 import org.apache.camel.impl.UriEndpointComponent;
+import org.apache.camel.spi.Metadata;
 import org.apache.camel.util.IntrospectionSupport;
 import org.apache.hadoop.conf.Configuration;
 import org.apache.hadoop.hbase.HBaseConfiguration;
@@ -32,8 +33,11 @@ import org.apache.hadoop.hbase.client.ConnectionFactory;
  */
 public class HBaseComponent extends UriEndpointComponent {
 
-    private Configuration configuration;
     private Connection connection;
+
+    @Metadata(label = "advanced")
+    private Configuration configuration;
+    @Metadata(defaultValue = "10")
     private int poolMaxSize = 10;
 
     public HBaseComponent() {

http://git-wip-us.apache.org/repos/asf/camel/blob/1a3e4412/components/camel-http-common/src/main/java/org/apache/camel/http/common/HttpCommonComponent.java
----------------------------------------------------------------------
diff --git a/components/camel-http-common/src/main/java/org/apache/camel/http/common/HttpCommonComponent.java b/components/camel-http-common/src/main/java/org/apache/camel/http/common/HttpCommonComponent.java
index 189c269..0b25b24 100644
--- a/components/camel-http-common/src/main/java/org/apache/camel/http/common/HttpCommonComponent.java
+++ b/components/camel-http-common/src/main/java/org/apache/camel/http/common/HttpCommonComponent.java
@@ -17,11 +17,15 @@
 package org.apache.camel.http.common;
 
 import org.apache.camel.impl.HeaderFilterStrategyComponent;
+import org.apache.camel.spi.Metadata;
 
 public abstract class HttpCommonComponent extends HeaderFilterStrategyComponent {
 
+    @Metadata(label = "advanced")
     protected HttpBinding httpBinding;
+    @Metadata(label = "advanced")
     protected HttpConfiguration httpConfiguration;
+    @Metadata(label = "advanced")
     protected boolean allowJavaSerializedObject;
 
     public HttpCommonComponent(Class<? extends HttpCommonEndpoint> endpointClass) {

http://git-wip-us.apache.org/repos/asf/camel/blob/1a3e4412/components/camel-http/src/main/java/org/apache/camel/component/http/HttpComponent.java
----------------------------------------------------------------------
diff --git a/components/camel-http/src/main/java/org/apache/camel/component/http/HttpComponent.java b/components/camel-http/src/main/java/org/apache/camel/component/http/HttpComponent.java
index c6a37b1..7082d66 100644
--- a/components/camel-http/src/main/java/org/apache/camel/component/http/HttpComponent.java
+++ b/components/camel-http/src/main/java/org/apache/camel/component/http/HttpComponent.java
@@ -33,6 +33,7 @@ import org.apache.camel.http.common.HttpConfiguration;
 import org.apache.camel.http.common.HttpRestHeaderFilterStrategy;
 import org.apache.camel.http.common.UrlRewrite;
 import org.apache.camel.spi.HeaderFilterStrategy;
+import org.apache.camel.spi.Metadata;
 import org.apache.camel.spi.RestProducerFactory;
 import org.apache.camel.util.CollectionHelper;
 import org.apache.camel.util.FileUtil;
@@ -52,7 +53,10 @@ import org.apache.commons.httpclient.params.HttpConnectionManagerParams;
  * @version 
  */
 public class HttpComponent extends HttpCommonComponent implements RestProducerFactory {
+
+    @Metadata(label = "advanced")
     protected HttpClientConfigurer httpClientConfigurer;
+    @Metadata(label = "advanced")
     protected HttpConnectionManager httpConnectionManager;
 
     public HttpComponent() {

http://git-wip-us.apache.org/repos/asf/camel/blob/1a3e4412/components/camel-http4/src/main/java/org/apache/camel/component/http4/HttpComponent.java
----------------------------------------------------------------------
diff --git a/components/camel-http4/src/main/java/org/apache/camel/component/http4/HttpComponent.java b/components/camel-http4/src/main/java/org/apache/camel/component/http4/HttpComponent.java
index b8468d0..632a0f0 100644
--- a/components/camel-http4/src/main/java/org/apache/camel/component/http4/HttpComponent.java
+++ b/components/camel-http4/src/main/java/org/apache/camel/component/http4/HttpComponent.java
@@ -34,6 +34,7 @@ import org.apache.camel.http.common.HttpHelper;
 import org.apache.camel.http.common.HttpRestHeaderFilterStrategy;
 import org.apache.camel.http.common.UrlRewrite;
 import org.apache.camel.spi.HeaderFilterStrategy;
+import org.apache.camel.spi.Metadata;
 import org.apache.camel.spi.RestProducerFactory;
 import org.apache.camel.util.FileUtil;
 import org.apache.camel.util.IntrospectionSupport;
@@ -69,17 +70,26 @@ public class HttpComponent extends HttpCommonComponent implements RestProducerFa
 
     private static final Logger LOG = LoggerFactory.getLogger(HttpComponent.class);
 
+    @Metadata(label = "advanced")
     protected HttpClientConfigurer httpClientConfigurer;
+    @Metadata(label = "advanced")
     protected HttpClientConnectionManager clientConnectionManager;
+    @Metadata(label = "advanced")
     protected HttpContext httpContext;
+    @Metadata(label = "security")
     protected SSLContextParameters sslContextParameters;
+    @Metadata(label = "security")
     protected X509HostnameVerifier x509HostnameVerifier = new BrowserCompatHostnameVerifier();
+    @Metadata(label = "producer")
     protected CookieStore cookieStore;
 
     // options to the default created http connection manager
+    @Metadata(label = "advanced", defaultValue = "200")
     protected int maxTotalConnections = 200;
+    @Metadata(label = "advanced", defaultValue = "20")
     protected int connectionsPerRoute = 20;
     // It's MILLISECONDS, the default value is always keep alive
+    @Metadata(label = "advanced")
     protected long connectionTimeToLive = -1;
 
     public HttpComponent() {

http://git-wip-us.apache.org/repos/asf/camel/blob/1a3e4412/components/camel-ibatis/src/main/java/org/apache/camel/component/ibatis/IBatisComponent.java
----------------------------------------------------------------------
diff --git a/components/camel-ibatis/src/main/java/org/apache/camel/component/ibatis/IBatisComponent.java b/components/camel-ibatis/src/main/java/org/apache/camel/component/ibatis/IBatisComponent.java
index 378cba0..2d93d2a 100644
--- a/components/camel-ibatis/src/main/java/org/apache/camel/component/ibatis/IBatisComponent.java
+++ b/components/camel-ibatis/src/main/java/org/apache/camel/component/ibatis/IBatisComponent.java
@@ -23,6 +23,7 @@ import java.util.Map;
 import com.ibatis.sqlmap.client.SqlMapClient;
 import com.ibatis.sqlmap.client.SqlMapClientBuilder;
 import org.apache.camel.impl.UriEndpointComponent;
+import org.apache.camel.spi.Metadata;
 import org.apache.camel.util.ResourceHelper;
 
 /**
@@ -59,8 +60,11 @@ import org.apache.camel.util.ResourceHelper;
  */
 public class IBatisComponent extends UriEndpointComponent {
     private static final String DEFAULT_CONFIG_URI = "classpath:SqlMapConfig.xml";
+    @Metadata(label = "advanced")
     private SqlMapClient sqlMapClient;
+    @Metadata(defaultValue = DEFAULT_CONFIG_URI)
     private String sqlMapConfig = DEFAULT_CONFIG_URI;
+    @Metadata(defaultValue = "true")
     private boolean useTransactions = true;
 
     public IBatisComponent() {

http://git-wip-us.apache.org/repos/asf/camel/blob/1a3e4412/components/camel-influxdb/src/main/docs/influxdb-component.adoc
----------------------------------------------------------------------
diff --git a/components/camel-influxdb/src/main/docs/influxdb-component.adoc b/components/camel-influxdb/src/main/docs/influxdb-component.adoc
index a5ceea9..d82c81d 100644
--- a/components/camel-influxdb/src/main/docs/influxdb-component.adoc
+++ b/components/camel-influxdb/src/main/docs/influxdb-component.adoc
@@ -60,9 +60,9 @@ The InfluxDB component supports 4 endpoint options which are listed below:
 [width="100%",cols="2,1,1m,1m,5",options="header"]
 |=======================================================================
 | Name | Group | Default | Java Type | Description
-| connectionBean | producer |  | String | *Required* Name of org.influxdb.InfluxDB to use.
-| databaseName | producer |  | String | Setter for databaseName
-| retentionPolicy | producer | default | String | Setter for retentionPolicy
+| connectionBean | producer |  | String | *Required* Connection to the influx database of class InfluxDB.class
+| databaseName | producer |  | String | The name of the database where the time series will be stored
+| retentionPolicy | producer | default | String | The string that defines the retention policy to the data created by the endpoint
 | synchronous | advanced | false | boolean | Sets whether synchronous processing should be strictly used or Camel is allowed to use asynchronous processing (if supported).
 |=======================================================================
 {% endraw %}

http://git-wip-us.apache.org/repos/asf/camel/blob/1a3e4412/components/camel-influxdb/src/main/java/org/apache/camel/component/influxdb/InfluxDbComponent.java
----------------------------------------------------------------------
diff --git a/components/camel-influxdb/src/main/java/org/apache/camel/component/influxdb/InfluxDbComponent.java b/components/camel-influxdb/src/main/java/org/apache/camel/component/influxdb/InfluxDbComponent.java
index 2a6e5a1..9101a3f 100644
--- a/components/camel-influxdb/src/main/java/org/apache/camel/component/influxdb/InfluxDbComponent.java
+++ b/components/camel-influxdb/src/main/java/org/apache/camel/component/influxdb/InfluxDbComponent.java
@@ -25,36 +25,17 @@ import org.influxdb.InfluxDB;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-
 public class InfluxDbComponent extends UriEndpointComponent {
 
     private static final Logger LOG = LoggerFactory.getLogger(InfluxDbComponent.class);
 
-    InfluxDB influxDbConnection;
-
-
     public InfluxDbComponent() {
         super(InfluxDbEndpoint.class);
-        this.influxDbConnection = null;
     }
 
-
-
-
     @Override
     protected Endpoint createEndpoint(String uri, String remaining, Map<String, Object> parameters) throws Exception {
-        if (LOG.isDebugEnabled()) {
-            LOG.debug("Creating influx db endpoint");
-        }
-
-        if (LOG.isDebugEnabled()) {
-            LOG.debug("Looking for influxDb connection bean, remaining {}", remaining);
-        }
-
-        if (influxDbConnection == null) {
-            influxDbConnection = CamelContextHelper.mandatoryLookup(getCamelContext(), remaining, InfluxDB.class);
-        }
-
+        InfluxDB influxDbConnection = CamelContextHelper.mandatoryLookup(getCamelContext(), remaining, InfluxDB.class);
         return new InfluxDbEndpoint(uri, this, influxDbConnection);
     }
 }

http://git-wip-us.apache.org/repos/asf/camel/blob/1a3e4412/components/camel-influxdb/src/main/java/org/apache/camel/component/influxdb/InfluxDbEndpoint.java
----------------------------------------------------------------------
diff --git a/components/camel-influxdb/src/main/java/org/apache/camel/component/influxdb/InfluxDbEndpoint.java b/components/camel-influxdb/src/main/java/org/apache/camel/component/influxdb/InfluxDbEndpoint.java
index cbac656..1300469 100644
--- a/components/camel-influxdb/src/main/java/org/apache/camel/component/influxdb/InfluxDbEndpoint.java
+++ b/components/camel-influxdb/src/main/java/org/apache/camel/component/influxdb/InfluxDbEndpoint.java
@@ -39,19 +39,13 @@ public class InfluxDbEndpoint extends DefaultEndpoint {
     private InfluxDB influxDB;
 
     @UriPath
-    @Metadata(required = "true", description = "Connection to the influx database, of class InfluxDB.class")
+    @Metadata(required = "true")
     private String connectionBean;
-
-    @UriParam(description = "the name of the series where the points will be created, name can be modified dynamically by headers")
+    @UriParam
     private String databaseName;
-
-    @UriParam(defaultValue = "default", description = "defines the retention policy for the points created in influxdb")
+    @UriParam(defaultValue = "default")
     private String retentionPolicy = "default";
 
-    /**
-     * @param uri
-     * @param influxDbComponent
-     */
     public InfluxDbEndpoint(String uri, InfluxDbComponent influxDbComponent, InfluxDB dbConn) {
         super(uri, influxDbComponent);
 
@@ -61,97 +55,64 @@ public class InfluxDbEndpoint extends DefaultEndpoint {
 
         this.influxDB = dbConn;
 
-        if (LOG.isDebugEnabled()) {
-            LOG.debug("Prepairing influxdb enpoint with uri {}", uri);
-        }
-
-        if (LOG.isDebugEnabled()) {
-            LOG.debug("Creating influx db producer connectionBean:{}, databaseName:{}, retentionPolicy:{}", connectionBean, databaseName, retentionPolicy);
-        }
-
+        LOG.debug("Prepairing influxdb enpoint with uri {}", uri);
+        LOG.debug("Creating influx db producer connectionBean:{}, databaseName:{}, retentionPolicy:{}", connectionBean, databaseName, retentionPolicy);
     }
 
     @Override
     public Producer createProducer() throws Exception {
-
-        if (LOG.isDebugEnabled()) {
-            LOG.debug("Creating influx db producer");
-        }
         return new InfluxDbProducer(this);
     }
 
     @Override
     public Consumer createConsumer(Processor processor) throws Exception {
-        if (LOG.isDebugEnabled()) {
-            LOG.debug("Creating influx db consumer");
-        }
         throw new UnsupportedOperationException("You cannot receive messages from this endpoint");
     }
 
     @Override
     public boolean isSingleton() {
-        return false;
+        return true;
     }
 
-
-
     public InfluxDB getInfluxDB() {
         return influxDB;
     }
 
+    /**
+     * The Influx DB to use
+     */
     public void setInfluxDB(InfluxDB influxDB) {
         this.influxDB = influxDB;
     }
 
-    /**
-     * Getter for databaseName
-     * 
-     * @return the name of the database where the time series will be stored
-     */
     public String getDatabaseName() {
         return databaseName;
     }
 
     /**
-     * Setter for databaseName
-     * 
-     * @param databaseName
+     * The name of the database where the time series will be stored
      */
     public void setDatabaseName(String databaseName) {
         this.databaseName = databaseName;
     }
 
-    /**
-     * Getter for retentionPolicy
-     * 
-     * @return the string that defines the retention policy to the data created
-     *         by the endpoint
-     */
     public String getRetentionPolicy() {
         return retentionPolicy;
     }
 
     /**
-     * Setter for retentionPolicy
-     * 
-     * @param retentionPolicy
+     * The string that defines the retention policy to the data created by the endpoint
      */
     public void setRetentionPolicy(String retentionPolicy) {
         this.retentionPolicy = retentionPolicy;
     }
 
-    /**
-     * Getter for connectionBean
-     * 
-     * @return the name of the bean for the {@link org.influxdb.InfluxDB}
-     *         connection
-     */
     public String getConnectionBean() {
         return connectionBean;
     }
 
     /**
-     * Name of {@link org.influxdb.InfluxDB} to use.
+     * Connection to the influx database, of class InfluxDB.class
      */
     public void setConnectionBean(String connectionBean) {
         this.connectionBean = connectionBean;

http://git-wip-us.apache.org/repos/asf/camel/blob/1a3e4412/components/camel-jcache/src/main/java/org/apache/camel/component/jcache/JCacheComponent.java
----------------------------------------------------------------------
diff --git a/components/camel-jcache/src/main/java/org/apache/camel/component/jcache/JCacheComponent.java b/components/camel-jcache/src/main/java/org/apache/camel/component/jcache/JCacheComponent.java
index 8ee5052..4e76170 100644
--- a/components/camel-jcache/src/main/java/org/apache/camel/component/jcache/JCacheComponent.java
+++ b/components/camel-jcache/src/main/java/org/apache/camel/component/jcache/JCacheComponent.java
@@ -26,6 +26,7 @@ import org.apache.camel.impl.UriEndpointComponent;
  * Represents the component that manages {@link JCacheEndpoint}.
  */
 public class JCacheComponent extends UriEndpointComponent {
+
     public JCacheComponent() {
         super(JCacheEndpoint.class);
     }
@@ -38,7 +39,6 @@ public class JCacheComponent extends UriEndpointComponent {
     protected Endpoint createEndpoint(String uri, String remaining, Map<String, Object> parameters) throws Exception {
         JCacheConfiguration configuration = new JCacheConfiguration(getCamelContext(), remaining);
         setProperties(configuration, parameters);
-
         return new JCacheEndpoint(uri, this, configuration);
     }
 }

http://git-wip-us.apache.org/repos/asf/camel/blob/1a3e4412/components/camel-jdbc/src/main/docs/jdbc-component.adoc
----------------------------------------------------------------------
diff --git a/components/camel-jdbc/src/main/docs/jdbc-component.adoc b/components/camel-jdbc/src/main/docs/jdbc-component.adoc
index b052fa2..1490dde 100644
--- a/components/camel-jdbc/src/main/docs/jdbc-component.adoc
+++ b/components/camel-jdbc/src/main/docs/jdbc-component.adoc
@@ -73,17 +73,17 @@ The JDBC component supports 14 endpoint options which are listed below:
 | Name | Group | Default | Java Type | Description
 | dataSourceName | producer |  | String | *Required* Name of DataSource to lookup in the Registry.
 | allowNamedParameters | producer | true | boolean | Whether to allow using named parameters in the queries.
-| beanRowMapper | producer |  | BeanRowMapper | To use a custom org.apache.camel.component.jdbc.BeanRowMapper when using outputClass. The default implementation will lower case the row names and skip underscores and dashes. For example CUST_ID is mapped as custId.
 | outputClass | producer |  | String | Specify the full package and class name to use as conversion when outputType=SelectOne or SelectList.
 | outputType | producer | SelectList | JdbcOutputType | Determines the output the producer should use.
 | parameters | producer |  | Map | Optional parameters to the java.sql.Statement. For example to set maxRows fetchSize etc.
-| prepareStatementStrategy | producer |  | JdbcPrepareStatementStrategy | Allows to plugin to use a custom org.apache.camel.component.jdbc.JdbcPrepareStatementStrategy to control preparation of the query and prepared statement.
 | readSize | producer |  | int | The default maximum number of rows that can be read by a polling query. The default value is 0.
 | resetAutoCommit | producer | true | boolean | Camel will set the autoCommit on the JDBC connection to be false commit the change after executed the statement and reset the autoCommit flag of the connection at the end if the resetAutoCommit is true. If the JDBC connection doesn't support to reset the autoCommit flag you can set the resetAutoCommit flag to be false and Camel will not try to reset the autoCommit flag. When used with XA transactions you most likely need to set it to false so that the transaction manager is in charge of committing this tx.
 | transacted | producer | false | boolean | Whether transactions are in use.
 | useGetBytesForBlob | producer | false | boolean | To read BLOB columns as bytes instead of string data. This may be needed for certain databases such as Oracle where you must read BLOB columns as bytes.
 | useHeadersAsParameters | producer | false | boolean | Set this option to true to use the prepareStatementStrategy with named parameters. This allows to define queries with named placeholders and use headers with the dynamic values for the query placeholders.
 | useJDBC4ColumnNameAndLabelSemantics | producer | true | boolean | Sets whether to use JDBC 4 or JDBC 3.0 or older semantic when retrieving column name. JDBC 4.0 uses columnLabel to get the column name where as JDBC 3.0 uses both columnName or columnLabel. Unfortunately JDBC drivers behave differently so you can use this option to work out issues around your JDBC driver if you get problem using this component This option is default true.
+| beanRowMapper | advanced |  | BeanRowMapper | To use a custom org.apache.camel.component.jdbc.BeanRowMapper when using outputClass. The default implementation will lower case the row names and skip underscores and dashes. For example CUST_ID is mapped as custId.
+| prepareStatementStrategy | advanced |  | JdbcPrepareStatementStrategy | Allows to plugin to use a custom org.apache.camel.component.jdbc.JdbcPrepareStatementStrategy to control preparation of the query and prepared statement.
 | synchronous | advanced | false | boolean | Sets whether synchronous processing should be strictly used or Camel is allowed to use asynchronous processing (if supported).
 |=======================================================================
 {% endraw %}

http://git-wip-us.apache.org/repos/asf/camel/blob/1a3e4412/components/camel-jdbc/src/main/java/org/apache/camel/component/jdbc/JdbcEndpoint.java
----------------------------------------------------------------------
diff --git a/components/camel-jdbc/src/main/java/org/apache/camel/component/jdbc/JdbcEndpoint.java b/components/camel-jdbc/src/main/java/org/apache/camel/component/jdbc/JdbcEndpoint.java
index 6144e8a..ae1d1ab 100755
--- a/components/camel-jdbc/src/main/java/org/apache/camel/component/jdbc/JdbcEndpoint.java
+++ b/components/camel-jdbc/src/main/java/org/apache/camel/component/jdbc/JdbcEndpoint.java
@@ -52,7 +52,7 @@ public class JdbcEndpoint extends DefaultEndpoint {
     private boolean useJDBC4ColumnNameAndLabelSemantics = true;
     @UriParam
     private boolean useGetBytesForBlob;
-    @UriParam
+    @UriParam(label = "advanced")
     private JdbcPrepareStatementStrategy prepareStatementStrategy = new DefaultJdbcPrepareStatementStrategy();
     @UriParam(defaultValue = "true")
     private boolean allowNamedParameters = true;
@@ -62,7 +62,7 @@ public class JdbcEndpoint extends DefaultEndpoint {
     private JdbcOutputType outputType = JdbcOutputType.SelectList;
     @UriParam
     private String outputClass;
-    @UriParam
+    @UriParam(label = "advanced")
     private BeanRowMapper beanRowMapper = new DefaultBeanRowMapper();
 
     public JdbcEndpoint() {

http://git-wip-us.apache.org/repos/asf/camel/blob/1a3e4412/components/camel-jetty-common/src/main/java/org/apache/camel/component/jetty/JettyHttpComponent.java
----------------------------------------------------------------------
diff --git a/components/camel-jetty-common/src/main/java/org/apache/camel/component/jetty/JettyHttpComponent.java b/components/camel-jetty-common/src/main/java/org/apache/camel/component/jetty/JettyHttpComponent.java
index 260e2bb..a9fc5e2 100644
--- a/components/camel-jetty-common/src/main/java/org/apache/camel/component/jetty/JettyHttpComponent.java
+++ b/components/camel-jetty-common/src/main/java/org/apache/camel/component/jetty/JettyHttpComponent.java
@@ -492,7 +492,8 @@ public abstract class JettyHttpComponent extends HttpCommonComponent implements
      * The key password, which is used to access the certificate's key entry in the keystore (this is the same password that is supplied to the keystore command's -keypass option).
      */
     @Metadata(description = "The key password, which is used to access the certificate's key entry in the keystore "
-            + "(this is the same password that is supplied to the keystore command's -keypass option).")
+            + "(this is the same password that is supplied to the keystore command's -keypass option).",
+            label = "security", secret = true)
     public void setSslKeyPassword(String sslKeyPassword) {
         this.sslKeyPassword = sslKeyPassword;
     }
@@ -504,7 +505,8 @@ public abstract class JettyHttpComponent extends HttpCommonComponent implements
     /**
      * The ssl password, which is required to access the keystore file (this is the same password that is supplied to the keystore command's -storepass option).
      */
-    @Metadata(description = "The ssl password, which is required to access the keystore file (this is the same password that is supplied to the keystore command's -storepass option).")
+    @Metadata(description = "The ssl password, which is required to access the keystore file (this is the same password that is supplied to the keystore command's -storepass option).",
+            label = "security", secret = true)
     public void setSslPassword(String sslPassword) {
         this.sslPassword = sslPassword;
     }
@@ -512,7 +514,8 @@ public abstract class JettyHttpComponent extends HttpCommonComponent implements
     /**
      * Specifies the location of the Java keystore file, which contains the Jetty server's own X.509 certificate in a key entry.
      */
-    @Metadata(description = "Specifies the location of the Java keystore file, which contains the Jetty server's own X.509 certificate in a key entry.")
+    @Metadata(description = "Specifies the location of the Java keystore file, which contains the Jetty server's own X.509 certificate in a key entry.",
+            label = "security", secret = true)
     public void setKeystore(String sslKeystore) {
         this.sslKeystore = sslKeystore;
     }
@@ -528,7 +531,7 @@ public abstract class JettyHttpComponent extends HttpCommonComponent implements
     /**
      * This option is used to set the ErrorHandler that Jetty server uses.
      */
-    @Metadata(description = "This option is used to set the ErrorHandler that Jetty server uses.")
+    @Metadata(description = "This option is used to set the ErrorHandler that Jetty server uses.", label = "advanced")
     public void setErrorHandler(ErrorHandler errorHandler) {
         this.errorHandler = errorHandler;
     }
@@ -641,7 +644,7 @@ public abstract class JettyHttpComponent extends HttpCommonComponent implements
     /**
      * A map which contains per port number specific SSL connectors.
      */
-    @Metadata(description = "A map which contains per port number specific SSL connectors.")
+    @Metadata(description = "A map which contains per port number specific SSL connectors.", label = "security")
     public void setSslSocketConnectors(Map <Integer, Connector> connectors) {
         sslSocketConnectors = connectors;
     }
@@ -649,7 +652,7 @@ public abstract class JettyHttpComponent extends HttpCommonComponent implements
     /**
      * A map which contains per port number specific HTTP connectors. Uses the same principle as sslSocketConnectors.
      */
-    @Metadata(description = "A map which contains per port number specific HTTP connectors. Uses the same principle as sslSocketConnectors.")
+    @Metadata(description = "A map which contains per port number specific HTTP connectors. Uses the same principle as sslSocketConnectors.", label = "security")
     public void setSocketConnectors(Map<Integer, Connector> socketConnectors) {
         this.socketConnectors = socketConnectors;
     }
@@ -739,7 +742,7 @@ public abstract class JettyHttpComponent extends HttpCommonComponent implements
     /**
      * To set a value for minimum number of threads in HttpClient thread pool. Notice that both a min and max size must be configured.
      */
-    @Metadata(description = "To set a value for minimum number of threads in HttpClient thread pool. Notice that both a min and max size must be configured.")
+    @Metadata(description = "To set a value for minimum number of threads in HttpClient thread pool. Notice that both a min and max size must be configured.", label = "producer")
     public void setHttpClientMinThreads(Integer httpClientMinThreads) {
         this.httpClientMinThreads = httpClientMinThreads;
     }
@@ -751,7 +754,7 @@ public abstract class JettyHttpComponent extends HttpCommonComponent implements
     /**
      * To set a value for maximum number of threads in HttpClient thread pool. Notice that both a min and max size must be configured.
      */
-    @Metadata(description = "To set a value for maximum number of threads in HttpClient thread pool. Notice that both a min and max size must be configured.")
+    @Metadata(description = "To set a value for maximum number of threads in HttpClient thread pool. Notice that both a min and max size must be configured.", label = "producer")
     public void setHttpClientMaxThreads(Integer httpClientMaxThreads) {
         this.httpClientMaxThreads = httpClientMaxThreads;
     }
@@ -763,7 +766,7 @@ public abstract class JettyHttpComponent extends HttpCommonComponent implements
     /**
      * To set a value for minimum number of threads in server thread pool. Notice that both a min and max size must be configured.
      */
-    @Metadata(description = "To set a value for minimum number of threads in server thread pool. Notice that both a min and max size must be configured.")
+    @Metadata(description = "To set a value for minimum number of threads in server thread pool. Notice that both a min and max size must be configured.", label = "consumer")
     public void setMinThreads(Integer minThreads) {
         this.minThreads = minThreads;
     }
@@ -775,7 +778,7 @@ public abstract class JettyHttpComponent extends HttpCommonComponent implements
     /**
      * To set a value for maximum number of threads in server thread pool. Notice that both a min and max size must be configured.
      */
-    @Metadata(description = "To set a value for maximum number of threads in server thread pool. Notice that both a min and max size must be configured.")
+    @Metadata(description = "To set a value for maximum number of threads in server thread pool. Notice that both a min and max size must be configured.", label = "consumer")
     public void setMaxThreads(Integer maxThreads) {
         this.maxThreads = maxThreads;
     }
@@ -787,7 +790,7 @@ public abstract class JettyHttpComponent extends HttpCommonComponent implements
     /**
      * To use a custom thread pool for the server. This option should only be used in special circumstances.
      */
-    @Metadata(description = "To use a custom thread pool for the server. This option should only be used in special circumstances.")
+    @Metadata(description = "To use a custom thread pool for the server. This option should only be used in special circumstances.", label = "consumer,advanced")
     public void setThreadPool(ThreadPool threadPool) {
         this.threadPool = threadPool;
     }
@@ -811,7 +814,7 @@ public abstract class JettyHttpComponent extends HttpCommonComponent implements
     /**
      * To use a custom org.apache.camel.component.jetty.JettyHttpBinding, which are used to customize how a response should be written for the producer.
      */
-    @Metadata(description = "To use a custom org.apache.camel.component.jetty.JettyHttpBinding, which are used to customize how a response should be written for the producer.")
+    @Metadata(description = "To use a custom org.apache.camel.component.jetty.JettyHttpBinding, which are used to customize how a response should be written for the producer.", label = "advanced")
     public void setJettyHttpBinding(JettyHttpBinding jettyHttpBinding) {
         this.jettyHttpBinding = jettyHttpBinding;
     }
@@ -820,7 +823,7 @@ public abstract class JettyHttpComponent extends HttpCommonComponent implements
      * Not to be used - use JettyHttpBinding instead.
      */
     @Override
-    @Metadata(description = "Not to be used - use JettyHttpBinding instead.")
+    @Metadata(description = "Not to be used - use JettyHttpBinding instead.", label = "advanced")
     public void setHttpBinding(HttpBinding httpBinding) {
         throw new IllegalArgumentException("Not to be used - use JettyHttpBinding instead.");
     }
@@ -829,7 +832,7 @@ public abstract class JettyHttpComponent extends HttpCommonComponent implements
      * Jetty component does not use HttpConfiguration.
      */
     @Override
-    @Metadata(description = "Jetty component does not use HttpConfiguration.")
+    @Metadata(description = "Jetty component does not use HttpConfiguration.", label = "advanced")
     public void setHttpConfiguration(HttpConfiguration httpConfiguration) {
         throw new IllegalArgumentException("Jetty component does not use HttpConfiguration.");
     }
@@ -859,7 +862,7 @@ public abstract class JettyHttpComponent extends HttpCommonComponent implements
     /**
      * To use a existing configured org.eclipse.jetty.jmx.MBeanContainer if JMX is enabled that Jetty uses for registering mbeans.
      */
-    @Metadata(description = "To use a existing configured org.eclipse.jetty.jmx.MBeanContainer if JMX is enabled that Jetty uses for registering mbeans.")
+    @Metadata(description = "To use a existing configured org.eclipse.jetty.jmx.MBeanContainer if JMX is enabled that Jetty uses for registering mbeans.", label = "advanced")
     public void setMbContainer(MBeanContainer mbContainer) {
         this.mbContainer = mbContainer;
     }
@@ -871,7 +874,7 @@ public abstract class JettyHttpComponent extends HttpCommonComponent implements
     /**
      * A map which contains general SSL connector properties.
      */
-    @Metadata(description = "A map which contains general SSL connector properties.")
+    @Metadata(description = "A map which contains general SSL connector properties.", label = "security")
     public void setSslSocketConnectorProperties(Map<String, Object> sslSocketConnectorProperties) {
         this.sslSocketConnectorProperties = sslSocketConnectorProperties;
     }
@@ -883,7 +886,7 @@ public abstract class JettyHttpComponent extends HttpCommonComponent implements
     /**
      * A map which contains general HTTP connector properties. Uses the same principle as sslSocketConnectorProperties.
      */
-    @Metadata(description = "A map which contains general HTTP connector properties. Uses the same principle as sslSocketConnectorProperties.")
+    @Metadata(description = "A map which contains general HTTP connector properties. Uses the same principle as sslSocketConnectorProperties.", label = "security")
     public void setSocketConnectorProperties(Map<String, Object> socketConnectorProperties) {
         this.socketConnectorProperties = socketConnectorProperties;
     }
@@ -915,7 +918,7 @@ public abstract class JettyHttpComponent extends HttpCommonComponent implements
     @Metadata(description = "Allows to set a timeout in millis when using Jetty as consumer (server)."
             + " By default Jetty uses 30000. You can use a value of <= 0 to never expire."
             + " If a timeout occurs then the request will be expired and Jetty will return back a http error 503 to the client."
-            + " This option is only in use when using Jetty with the Asynchronous Routing Engine.")
+            + " This option is only in use when using Jetty with the Asynchronous Routing Engine.", defaultValue = "30000", label = "consumer")
     public void setContinuationTimeout(Long continuationTimeout) {
         this.continuationTimeout = continuationTimeout;
     }
@@ -927,7 +930,7 @@ public abstract class JettyHttpComponent extends HttpCommonComponent implements
     /**
      * Whether or not to use Jetty continuations for the Jetty Server.
      */
-    @Metadata(description = "Whether or not to use Jetty continuations for the Jetty Server.")
+    @Metadata(description = "Whether or not to use Jetty continuations for the Jetty Server.", defaultValue = "true", label = "consumer")
     public void setUseContinuation(boolean useContinuation) {
         this.useContinuation = useContinuation;
     }
@@ -939,7 +942,7 @@ public abstract class JettyHttpComponent extends HttpCommonComponent implements
     /**
      * To configure security using SSLContextParameters
      */
-    @Metadata(description = "To configure security using SSLContextParameters")
+    @Metadata(description = "To configure security using SSLContextParameters", label = "security")
     public void setSslContextParameters(SSLContextParameters sslContextParameters) {
         this.sslContextParameters = sslContextParameters;
     }
@@ -999,7 +1002,7 @@ public abstract class JettyHttpComponent extends HttpCommonComponent implements
     /**
      * To use a http proxy to configure the hostname.
      */
-    @Metadata(description = "To use a http proxy to configure the hostname.")
+    @Metadata(description = "To use a http proxy to configure the hostname.", label = "proxy")
     public void setProxyHost(String proxyHost) {
         this.proxyHost = proxyHost;
     }
@@ -1011,19 +1014,11 @@ public abstract class JettyHttpComponent extends HttpCommonComponent implements
     /**
      * To use a http proxy to configure the port number.
      */
-    @Metadata(description = "To use a http proxy to configure the port number.")
+    @Metadata(description = "To use a http proxy to configure the port number.", label = "proxy")
     public void setProxyPort(Integer proxyPort) {
         this.proxyPort = proxyPort;
     }
 
-    public boolean isSendServerVersion() {
-        return sendServerVersion;
-    }
-    
-    /**
-     * To use the X-Forwarded-For header in HttpServletRequest.getRemoteAddr.
-     */
-    @Metadata(description = "To use the X-Forwarded-For header in HttpServletRequest.getRemoteAddr.")
     public boolean isUseXForwardedForHeader() {
         return useXForwardedForHeader;
     }
@@ -1036,12 +1031,17 @@ public abstract class JettyHttpComponent extends HttpCommonComponent implements
         this.useXForwardedForHeader = useXForwardedForHeader;
     }
 
+    public boolean isSendServerVersion() {
+        return sendServerVersion;
+    }
+
     /**
      * If the option is true, jetty will send the server header with the jetty version information to the client which sends the request.
      * NOTE please make sure there is no any other camel-jetty endpoint is share the same port, otherwise this option may not work as expected.
      */
     @Metadata(description = "If the option is true, jetty server will send the date header to the client which sends the request."
-            + " NOTE please make sure there is no any other camel-jetty endpoint is share the same port, otherwise this option may not work as expected.")
+            + " NOTE please make sure there is no any other camel-jetty endpoint is share the same port, otherwise this option may not work as expected.",
+            defaultValue = "true", label = "consumer")
     public void setSendServerVersion(boolean sendServerVersion) {
         this.sendServerVersion = sendServerVersion;
     }

http://git-wip-us.apache.org/repos/asf/camel/blob/1a3e4412/components/camel-jgroups/src/main/java/org/apache/camel/component/jgroups/JGroupsComponent.java
----------------------------------------------------------------------
diff --git a/components/camel-jgroups/src/main/java/org/apache/camel/component/jgroups/JGroupsComponent.java b/components/camel-jgroups/src/main/java/org/apache/camel/component/jgroups/JGroupsComponent.java
index 9096094..436487d 100644
--- a/components/camel-jgroups/src/main/java/org/apache/camel/component/jgroups/JGroupsComponent.java
+++ b/components/camel-jgroups/src/main/java/org/apache/camel/component/jgroups/JGroupsComponent.java
@@ -20,6 +20,7 @@ import java.util.Map;
 
 import org.apache.camel.Endpoint;
 import org.apache.camel.impl.UriEndpointComponent;
+import org.apache.camel.spi.Metadata;
 import org.jgroups.Channel;
 
 /**
@@ -29,6 +30,7 @@ public class JGroupsComponent extends UriEndpointComponent {
 
     private Channel channel;
     private String channelProperties;
+    @Metadata(label = "consumer")
     private boolean enableViewMessages;
 
     public JGroupsComponent() {

http://git-wip-us.apache.org/repos/asf/camel/blob/1a3e4412/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsComponent.java
----------------------------------------------------------------------
diff --git a/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsComponent.java b/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsComponent.java
index 2290e2e..b303b30 100644
--- a/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsComponent.java
+++ b/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsComponent.java
@@ -56,11 +56,18 @@ public class JmsComponent extends UriEndpointComponent implements ApplicationCon
     private static final Logger LOG = LoggerFactory.getLogger(JmsComponent.class);
 
     private static final String KEY_FORMAT_STRATEGY_PARAM = "jmsKeyFormatStrategy";
-    private JmsConfiguration configuration;
+
+    private ExecutorService asyncStartStopExecutorService;
     private ApplicationContext applicationContext;
+
+    @Metadata(label = "advanced", description = "To use a shared JMS configuration")
+    private JmsConfiguration configuration;
+    @Metadata(label = "advanced", description = "To use a custom QueueBrowseStrategy when browsing queues")
     private QueueBrowseStrategy queueBrowseStrategy;
+    @Metadata(label = "advanced", description = "To use a custom HeaderFilterStrategy to filter header to and from Camel message.")
     private HeaderFilterStrategy headerFilterStrategy;
-    private ExecutorService asyncStartStopExecutorService;
+    @Metadata(label = "advanced", description = "To use the given MessageCreatedStrategy which are invoked when Camel creates new instances"
+            + " of javax.jms.Message objects when Camel is sending a JMS message.")
     private MessageCreatedStrategy messageCreatedStrategy;
 
     public JmsComponent() {

http://git-wip-us.apache.org/repos/asf/camel/blob/1a3e4412/components/camel-jolt/src/main/java/org/apache/camel/component/jolt/JoltComponent.java
----------------------------------------------------------------------
diff --git a/components/camel-jolt/src/main/java/org/apache/camel/component/jolt/JoltComponent.java b/components/camel-jolt/src/main/java/org/apache/camel/component/jolt/JoltComponent.java
index 9cde912..9579f1f 100644
--- a/components/camel-jolt/src/main/java/org/apache/camel/component/jolt/JoltComponent.java
+++ b/components/camel-jolt/src/main/java/org/apache/camel/component/jolt/JoltComponent.java
@@ -21,9 +21,11 @@ import java.util.Map;
 import com.bazaarvoice.jolt.Transform;
 import org.apache.camel.Endpoint;
 import org.apache.camel.impl.UriEndpointComponent;
+import org.apache.camel.spi.Metadata;
 import org.apache.camel.util.ResourceHelper;
 
 public class JoltComponent extends UriEndpointComponent {
+    @Metadata(label = "advanced")
     private Transform transform;
 
     public JoltComponent() {

http://git-wip-us.apache.org/repos/asf/camel/blob/1a3e4412/components/camel-jpa/src/main/java/org/apache/camel/component/jpa/JpaComponent.java
----------------------------------------------------------------------
diff --git a/components/camel-jpa/src/main/java/org/apache/camel/component/jpa/JpaComponent.java b/components/camel-jpa/src/main/java/org/apache/camel/component/jpa/JpaComponent.java
index 5427e9a..48970b4 100644
--- a/components/camel-jpa/src/main/java/org/apache/camel/component/jpa/JpaComponent.java
+++ b/components/camel-jpa/src/main/java/org/apache/camel/component/jpa/JpaComponent.java
@@ -22,6 +22,7 @@ import javax.persistence.EntityManagerFactory;
 
 import org.apache.camel.Endpoint;
 import org.apache.camel.impl.UriEndpointComponent;
+import org.apache.camel.spi.Metadata;
 import org.apache.camel.util.ObjectHelper;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -35,11 +36,14 @@ import org.springframework.transaction.support.TransactionTemplate;
  */
 public class JpaComponent extends UriEndpointComponent {
     private static final Logger LOG = LoggerFactory.getLogger(JpaComponent.class);
+
+    private ExecutorService pollingConsumerExecutorService;
+
     private EntityManagerFactory entityManagerFactory;
     private PlatformTransactionManager transactionManager;
+    @Metadata(defaultValue = "true")
     private boolean joinTransaction = true;
     private boolean sharedEntityManager;
-    private ExecutorService pollingConsumerExecutorService;
 
     public JpaComponent() {
         super(JpaEndpoint.class);

http://git-wip-us.apache.org/repos/asf/camel/blob/1a3e4412/components/camel-jsch/src/main/java/org/apache/camel/component/scp/ScpComponent.java
----------------------------------------------------------------------
diff --git a/components/camel-jsch/src/main/java/org/apache/camel/component/scp/ScpComponent.java b/components/camel-jsch/src/main/java/org/apache/camel/component/scp/ScpComponent.java
index 29c801e..62b5b48 100644
--- a/components/camel-jsch/src/main/java/org/apache/camel/component/scp/ScpComponent.java
+++ b/components/camel-jsch/src/main/java/org/apache/camel/component/scp/ScpComponent.java
@@ -27,7 +27,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 /**
- *  Component providing secure messaging using JSch
+ * Component providing secure messaging using JSch
  */
 public class ScpComponent extends RemoteFileComponent<ScpFile> {
 

http://git-wip-us.apache.org/repos/asf/camel/blob/1a3e4412/components/camel-jt400/src/main/docs/jt400-component.adoc
----------------------------------------------------------------------
diff --git a/components/camel-jt400/src/main/docs/jt400-component.adoc b/components/camel-jt400/src/main/docs/jt400-component.adoc
index ea1f7a1..9994714 100644
--- a/components/camel-jt400/src/main/docs/jt400-component.adoc
+++ b/components/camel-jt400/src/main/docs/jt400-component.adoc
@@ -76,7 +76,6 @@ The JT400 component supports 34 endpoint options which are listed below:
 | outputFieldsLengthArray | common |  | Integer[] | Specifies the fields (program parameters) length as in the AS/400 program definition.
 | searchKey | common |  | String | Search key for keyed data queues.
 | searchType | common | EQ | SearchType | Search type such as EQ for equal etc.
-| secured | common | false | boolean | Whether connections to AS/400 are secured with SSL.
 | bridgeErrorHandler | consumer | false | boolean | Allows for bridging the consumer to the Camel routing Error Handler which mean any exceptions occurred while the consumer is trying to pickup incoming messages or the likes will now be processed as a message and handled by the routing Error Handler. By default the consumer will use the org.apache.camel.spi.ExceptionHandler to deal with exceptions that will be logged at WARN/ERROR level and ignored.
 | readTimeout | consumer | 30000 | int | Timeout in millis the consumer will wait while trying to read a new message of the data queue.
 | sendEmptyMessageWhenIdle | consumer | false | boolean | If the polling consumer did not poll any files you can enable this option to send an empty message (no body) instead.
@@ -97,6 +96,7 @@ The JT400 component supports 34 endpoint options which are listed below:
 | startScheduler | scheduler | true | boolean | Whether the scheduler should be auto started.
 | timeUnit | scheduler | MILLISECONDS | TimeUnit | Time unit for initialDelay and delay options.
 | useFixedDelay | scheduler | true | boolean | Controls if fixed delay or fixed rate is used. See ScheduledExecutorService in JDK for details.
+| secured | security | false | boolean | Whether connections to AS/400 are secured with SSL.
 |=======================================================================
 {% endraw %}
 // endpoint options: END

http://git-wip-us.apache.org/repos/asf/camel/blob/1a3e4412/components/camel-jt400/src/main/java/org/apache/camel/component/jt400/Jt400Component.java
----------------------------------------------------------------------
diff --git a/components/camel-jt400/src/main/java/org/apache/camel/component/jt400/Jt400Component.java b/components/camel-jt400/src/main/java/org/apache/camel/component/jt400/Jt400Component.java
index 045449c..df83b90 100644
--- a/components/camel-jt400/src/main/java/org/apache/camel/component/jt400/Jt400Component.java
+++ b/components/camel-jt400/src/main/java/org/apache/camel/component/jt400/Jt400Component.java
@@ -21,6 +21,7 @@ import java.util.Map;
 import com.ibm.as400.access.AS400ConnectionPool;
 import org.apache.camel.Endpoint;
 import org.apache.camel.impl.UriEndpointComponent;
+import org.apache.camel.spi.Metadata;
 import org.apache.camel.util.EndpointHelper;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -48,6 +49,7 @@ public class Jt400Component extends UriEndpointComponent {
      * provides a pool, it would be wasteful for Camel to initialize and keep an
      * idle pool.
      */
+    @Metadata(label = "advanced")
     private AS400ConnectionPool connectionPool;
 
     public Jt400Component() {

http://git-wip-us.apache.org/repos/asf/camel/blob/1a3e4412/components/camel-jt400/src/main/java/org/apache/camel/component/jt400/Jt400Configuration.java
----------------------------------------------------------------------
diff --git a/components/camel-jt400/src/main/java/org/apache/camel/component/jt400/Jt400Configuration.java b/components/camel-jt400/src/main/java/org/apache/camel/component/jt400/Jt400Configuration.java
index 9a2383f..8bd2ad1 100644
--- a/components/camel-jt400/src/main/java/org/apache/camel/component/jt400/Jt400Configuration.java
+++ b/components/camel-jt400/src/main/java/org/apache/camel/component/jt400/Jt400Configuration.java
@@ -71,10 +71,10 @@ public class Jt400Configuration {
 
     private final AS400ConnectionPool connectionPool;
 
-    @UriPath @Metadata(required = "true")
+    @UriPath @Metadata(required = "true", secret = true)
     private String userID;
 
-    @UriPath @Metadata(required = "true")
+    @UriPath @Metadata(required = "true", secret = true)
     private String password;
 
     @UriPath @Metadata(required = "true")
@@ -104,7 +104,7 @@ public class Jt400Configuration {
     @UriParam(defaultValue = "EQ")
     private SearchType searchType = SearchType.EQ;
 
-    @UriParam
+    @UriParam(label = "security")
     private boolean secured;
 
     @UriParam

http://git-wip-us.apache.org/repos/asf/camel/blob/1a3e4412/components/camel-kafka/src/main/java/org/apache/camel/component/kafka/KafkaComponent.java
----------------------------------------------------------------------
diff --git a/components/camel-kafka/src/main/java/org/apache/camel/component/kafka/KafkaComponent.java b/components/camel-kafka/src/main/java/org/apache/camel/component/kafka/KafkaComponent.java
index 4fb90e0..36baf3c 100644
--- a/components/camel-kafka/src/main/java/org/apache/camel/component/kafka/KafkaComponent.java
+++ b/components/camel-kafka/src/main/java/org/apache/camel/component/kafka/KafkaComponent.java
@@ -22,9 +22,11 @@ import java.util.concurrent.ExecutorService;
 import org.apache.camel.CamelContext;
 import org.apache.camel.Exchange;
 import org.apache.camel.impl.UriEndpointComponent;
+import org.apache.camel.spi.Metadata;
 
 public class KafkaComponent extends UriEndpointComponent {
 
+    @Metadata(label = "advanced")
     private ExecutorService workerPool;
 
     public KafkaComponent() {

http://git-wip-us.apache.org/repos/asf/camel/blob/1a3e4412/components/camel-kafka/src/main/java/org/apache/camel/component/kafka/KafkaConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-kafka/src/main/java/org/apache/camel/component/kafka/KafkaConfiguration.java b/components/camel-kafka/src/main/java/org/apache/camel/component/kafka/KafkaConfiguration.java
index 7fd5e4c..98758c5 100644
--- a/components/camel-kafka/src/main/java/org/apache/camel/component/kafka/KafkaConfiguration.java
+++ b/components/camel-kafka/src/main/java/org/apache/camel/component/kafka/KafkaConfiguration.java
@@ -179,19 +179,19 @@ public class KafkaConfiguration {
     private Integer reconnectBackoffMs = 50;
     // SSL
     // ssl.key.password
-    @UriParam(label = "producer,security")
+    @UriParam(label = "producer,security", secret = true)
     private String sslKeyPassword;
     // ssl.keystore.location
     @UriParam(label = "producer,security")
     private String sslKeystoreLocation;
     // ssl.keystore.password
-    @UriParam(label = "producer,security")
+    @UriParam(label = "producer,security", secret = true)
     private String sslKeystorePassword;
     //ssl.truststore.location
     @UriParam(label = "producer,security")
     private String sslTruststoreLocation;
     //ssl.truststore.password
-    @UriParam(label = "producer,security")
+    @UriParam(label = "producer,security", secret = true)
     private String sslTruststorePassword;
     //SSL
     //ssl.enabled.protocols

http://git-wip-us.apache.org/repos/asf/camel/blob/1a3e4412/components/camel-kestrel/src/main/java/org/apache/camel/component/kestrel/KestrelComponent.java
----------------------------------------------------------------------
diff --git a/components/camel-kestrel/src/main/java/org/apache/camel/component/kestrel/KestrelComponent.java b/components/camel-kestrel/src/main/java/org/apache/camel/component/kestrel/KestrelComponent.java
index 3430af9..3a6629e 100644
--- a/components/camel-kestrel/src/main/java/org/apache/camel/component/kestrel/KestrelComponent.java
+++ b/components/camel-kestrel/src/main/java/org/apache/camel/component/kestrel/KestrelComponent.java
@@ -27,6 +27,7 @@ import net.spy.memcached.MemcachedClient;
 import org.apache.camel.CamelContext;
 import org.apache.camel.RuntimeCamelException;
 import org.apache.camel.impl.UriEndpointComponent;
+import org.apache.camel.spi.Metadata;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -37,7 +38,6 @@ import org.slf4j.LoggerFactory;
 public class KestrelComponent extends UriEndpointComponent {
     private static final Logger LOG = LoggerFactory.getLogger(KestrelComponent.class);
 
-    private KestrelConfiguration configuration;
     private ConnectionFactory memcachedConnectionFactory;
 
     /**
@@ -45,6 +45,9 @@ public class KestrelComponent extends UriEndpointComponent {
      */
     private final Map<String, MemcachedClient> memcachedClientCache = new HashMap<String, MemcachedClient>();
 
+    @Metadata(label = "advanced")
+    private KestrelConfiguration configuration;
+
     public KestrelComponent() {
         this(new KestrelConfiguration());
     }

http://git-wip-us.apache.org/repos/asf/camel/blob/1a3e4412/components/camel-lucene/src/main/java/org/apache/camel/component/lucene/LuceneComponent.java
----------------------------------------------------------------------
diff --git a/components/camel-lucene/src/main/java/org/apache/camel/component/lucene/LuceneComponent.java b/components/camel-lucene/src/main/java/org/apache/camel/component/lucene/LuceneComponent.java
index 805d6da..a24b853 100644
--- a/components/camel-lucene/src/main/java/org/apache/camel/component/lucene/LuceneComponent.java
+++ b/components/camel-lucene/src/main/java/org/apache/camel/component/lucene/LuceneComponent.java
@@ -22,8 +22,11 @@ import java.util.Map;
 import org.apache.camel.CamelContext;
 import org.apache.camel.Endpoint;
 import org.apache.camel.impl.UriEndpointComponent;
+import org.apache.camel.spi.Metadata;
 
 public class LuceneComponent extends UriEndpointComponent {
+
+    @Metadata(label = "advanced")
     private LuceneConfiguration config;
     
     public LuceneComponent() {

http://git-wip-us.apache.org/repos/asf/camel/blob/1a3e4412/components/camel-lumberjack/src/main/java/org/apache/camel/component/lumberjack/LumberjackComponent.java
----------------------------------------------------------------------
diff --git a/components/camel-lumberjack/src/main/java/org/apache/camel/component/lumberjack/LumberjackComponent.java b/components/camel-lumberjack/src/main/java/org/apache/camel/component/lumberjack/LumberjackComponent.java
index 96fbb3d..6f01ea8 100644
--- a/components/camel-lumberjack/src/main/java/org/apache/camel/component/lumberjack/LumberjackComponent.java
+++ b/components/camel-lumberjack/src/main/java/org/apache/camel/component/lumberjack/LumberjackComponent.java
@@ -20,6 +20,7 @@ import java.util.Map;
 
 import org.apache.camel.Endpoint;
 import org.apache.camel.impl.UriEndpointComponent;
+import org.apache.camel.spi.Metadata;
 import org.apache.camel.util.jsse.SSLContextParameters;
 
 /**
@@ -28,6 +29,7 @@ import org.apache.camel.util.jsse.SSLContextParameters;
 public class LumberjackComponent extends UriEndpointComponent {
     static final int DEFAULT_PORT = 5044;
 
+    @Metadata(label = "security")
     private SSLContextParameters sslContextParameters;
 
     public LumberjackComponent() {

http://git-wip-us.apache.org/repos/asf/camel/blob/1a3e4412/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailComponent.java
----------------------------------------------------------------------
diff --git a/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailComponent.java b/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailComponent.java
index 0cd8ff9..f0dce34 100644
--- a/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailComponent.java
+++ b/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailComponent.java
@@ -25,6 +25,7 @@ import javax.mail.search.SearchTerm;
 import org.apache.camel.CamelContext;
 import org.apache.camel.Endpoint;
 import org.apache.camel.impl.UriEndpointComponent;
+import org.apache.camel.spi.Metadata;
 import org.apache.camel.util.IntrospectionSupport;
 import org.apache.camel.util.ObjectHelper;
 
@@ -34,7 +35,10 @@ import org.apache.camel.util.ObjectHelper;
  * @version
  */
 public class MailComponent extends UriEndpointComponent {
+
+    @Metadata(label = "advanced")
     private MailConfiguration configuration;
+    @Metadata(label = "advanced")
     private ContentTypeResolver contentTypeResolver;
 
     public MailComponent() {

http://git-wip-us.apache.org/repos/asf/camel/blob/1a3e4412/components/camel-metrics/src/main/java/org/apache/camel/component/metrics/MetricsComponent.java
----------------------------------------------------------------------
diff --git a/components/camel-metrics/src/main/java/org/apache/camel/component/metrics/MetricsComponent.java b/components/camel-metrics/src/main/java/org/apache/camel/component/metrics/MetricsComponent.java
index 5e544ac..9470edb 100644
--- a/components/camel-metrics/src/main/java/org/apache/camel/component/metrics/MetricsComponent.java
+++ b/components/camel-metrics/src/main/java/org/apache/camel/component/metrics/MetricsComponent.java
@@ -25,6 +25,7 @@ import com.codahale.metrics.Slf4jReporter;
 import org.apache.camel.Endpoint;
 import org.apache.camel.RuntimeCamelException;
 import org.apache.camel.impl.UriEndpointComponent;
+import org.apache.camel.spi.Metadata;
 import org.apache.camel.spi.Registry;
 import org.apache.camel.util.ObjectHelper;
 import org.slf4j.Logger;
@@ -41,6 +42,7 @@ public class MetricsComponent extends UriEndpointComponent {
 
     private static final Logger LOG = LoggerFactory.getLogger(MetricsComponent.class);
 
+    @Metadata(label = "advanced")
     private MetricRegistry metricRegistry;
 
     public MetricsComponent() {

http://git-wip-us.apache.org/repos/asf/camel/blob/1a3e4412/components/camel-mina/src/main/java/org/apache/camel/component/mina/MinaComponent.java
----------------------------------------------------------------------
diff --git a/components/camel-mina/src/main/java/org/apache/camel/component/mina/MinaComponent.java b/components/camel-mina/src/main/java/org/apache/camel/component/mina/MinaComponent.java
index aad0415..1fd7ce4 100644
--- a/components/camel-mina/src/main/java/org/apache/camel/component/mina/MinaComponent.java
+++ b/components/camel-mina/src/main/java/org/apache/camel/component/mina/MinaComponent.java
@@ -28,6 +28,7 @@ import org.apache.camel.CamelContext;
 import org.apache.camel.Endpoint;
 import org.apache.camel.ExchangePattern;
 import org.apache.camel.impl.UriEndpointComponent;
+import org.apache.camel.spi.Metadata;
 import org.apache.camel.util.ObjectHelper;
 import org.apache.mina.common.DefaultIoFilterChainBuilder;
 import org.apache.mina.common.IoAcceptor;
@@ -62,6 +63,7 @@ import org.slf4j.LoggerFactory;
  */
 public class MinaComponent extends UriEndpointComponent {
     private static final Logger LOG = LoggerFactory.getLogger(MinaComponent.class);
+    @Metadata(label = "advanced")
     private MinaConfiguration configuration;
 
     public MinaComponent() {

http://git-wip-us.apache.org/repos/asf/camel/blob/1a3e4412/components/camel-mina2/src/main/java/org/apache/camel/component/mina2/Mina2Component.java
----------------------------------------------------------------------
diff --git a/components/camel-mina2/src/main/java/org/apache/camel/component/mina2/Mina2Component.java b/components/camel-mina2/src/main/java/org/apache/camel/component/mina2/Mina2Component.java
index 349b59a..6413c26 100644
--- a/components/camel-mina2/src/main/java/org/apache/camel/component/mina2/Mina2Component.java
+++ b/components/camel-mina2/src/main/java/org/apache/camel/component/mina2/Mina2Component.java
@@ -23,6 +23,7 @@ import org.apache.camel.CamelContext;
 import org.apache.camel.Endpoint;
 import org.apache.camel.ExchangePattern;
 import org.apache.camel.impl.UriEndpointComponent;
+import org.apache.camel.spi.Metadata;
 import org.apache.camel.util.ObjectHelper;
 import org.apache.mina.core.filterchain.IoFilter;
 
@@ -33,6 +34,7 @@ import org.apache.mina.core.filterchain.IoFilter;
  */
 public class Mina2Component extends UriEndpointComponent {
 
+    @Metadata(label = "advanced")
     private Mina2Configuration configuration;
 
     public Mina2Component() {

http://git-wip-us.apache.org/repos/asf/camel/blob/1a3e4412/components/camel-mqtt/src/main/java/org/apache/camel/component/mqtt/MQTTComponent.java
----------------------------------------------------------------------
diff --git a/components/camel-mqtt/src/main/java/org/apache/camel/component/mqtt/MQTTComponent.java b/components/camel-mqtt/src/main/java/org/apache/camel/component/mqtt/MQTTComponent.java
index 9a287ea..d84b3e3 100644
--- a/components/camel-mqtt/src/main/java/org/apache/camel/component/mqtt/MQTTComponent.java
+++ b/components/camel-mqtt/src/main/java/org/apache/camel/component/mqtt/MQTTComponent.java
@@ -20,13 +20,16 @@ import java.util.Map;
 
 import org.apache.camel.Endpoint;
 import org.apache.camel.impl.UriEndpointComponent;
+import org.apache.camel.spi.Metadata;
 
 /**
  * MQTT Component
  */
 public class MQTTComponent extends UriEndpointComponent {
     private String host;
+    @Metadata(label = "security", secret = true)
     private String userName;
+    @Metadata(label = "security", secret = true)
     private String password;
 
     public MQTTComponent() {

http://git-wip-us.apache.org/repos/asf/camel/blob/1a3e4412/components/camel-msv/src/main/java/org/apache/camel/component/validator/msv/MsvComponent.java
----------------------------------------------------------------------
diff --git a/components/camel-msv/src/main/java/org/apache/camel/component/validator/msv/MsvComponent.java b/components/camel-msv/src/main/java/org/apache/camel/component/validator/msv/MsvComponent.java
index 3539d09..d525d79 100644
--- a/components/camel-msv/src/main/java/org/apache/camel/component/validator/msv/MsvComponent.java
+++ b/components/camel-msv/src/main/java/org/apache/camel/component/validator/msv/MsvComponent.java
@@ -21,6 +21,7 @@ import javax.xml.validation.SchemaFactory;
 
 import org.apache.camel.Endpoint;
 import org.apache.camel.component.validator.ValidatorComponent;
+import org.apache.camel.spi.Metadata;
 
 /**
  * The <a href="http://camel.apache.org/msv.html">MSV Component</a> uses the
@@ -29,6 +30,7 @@ import org.apache.camel.component.validator.ValidatorComponent;
  * @version 
  */
 public class MsvComponent extends ValidatorComponent {
+    @Metadata(label = "advanced")
     private SchemaFactory schemaFactory;
 
     public MsvComponent() {

http://git-wip-us.apache.org/repos/asf/camel/blob/1a3e4412/components/camel-mustache/src/main/java/org/apache/camel/component/mustache/MustacheComponent.java
----------------------------------------------------------------------
diff --git a/components/camel-mustache/src/main/java/org/apache/camel/component/mustache/MustacheComponent.java b/components/camel-mustache/src/main/java/org/apache/camel/component/mustache/MustacheComponent.java
index 5fcc4c9..bbcf6dc 100644
--- a/components/camel-mustache/src/main/java/org/apache/camel/component/mustache/MustacheComponent.java
+++ b/components/camel-mustache/src/main/java/org/apache/camel/component/mustache/MustacheComponent.java
@@ -22,6 +22,7 @@ import com.github.mustachejava.DefaultMustacheFactory;
 import com.github.mustachejava.MustacheFactory;
 import org.apache.camel.Endpoint;
 import org.apache.camel.impl.UriEndpointComponent;
+import org.apache.camel.spi.Metadata;
 
 /**
  * Represents the component that manages {@link MustacheEndpoint}.
@@ -35,6 +36,7 @@ import org.apache.camel.impl.UriEndpointComponent;
  */
 public class MustacheComponent extends UriEndpointComponent {
 
+    @Metadata(label = "advanced")
     private MustacheFactory mustacheFactory = new DefaultMustacheFactory();
 
     public MustacheComponent() {