Repository: camel
Updated Branches:
  refs/heads/master 9fa8d71aa -> 358f45fd7


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/358f45fd
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/358f45fd
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/358f45fd

Branch: refs/heads/master
Commit: 358f45fd7514ca40bed0bb191de7ef6ff34f1eb0
Parents: 9fa8d71
Author: Claus Ibsen <davscl...@apache.org>
Authored: Wed Dec 21 13:17:05 2016 +0100
Committer: Claus Ibsen <davscl...@apache.org>
Committed: Wed Dec 21 13:17:05 2016 +0100

----------------------------------------------------------------------
 .../camel/util/component/AbstractApiComponent.java  |  2 ++
 .../apns/springboot/ApnsComponentConfiguration.java |  4 +++-
 .../springboot/CacheComponentConfiguration.java     |  2 +-
 .../springboot/DisruptorComponentConfiguration.java | 11 ++++++-----
 .../DisruptorVmComponentConfiguration.java          | 11 ++++++-----
 .../src/main/docs/ahc-ws-component.adoc             |  2 +-
 .../camel-ahc/src/main/docs/ahc-component.adoc      |  2 +-
 .../apache/camel/component/ahc/AhcComponent.java    |  6 ++++++
 .../org/apache/camel/component/ahc/AhcEndpoint.java |  2 +-
 .../camel-apns/src/main/docs/apns-component.adoc    |  2 +-
 .../apache/camel/component/apns/ApnsComponent.java  |  6 +++++-
 .../apache/camel/component/avro/AvroComponent.java  |  5 ++++-
 .../apache/camel/component/box/BoxComponent.java    |  2 ++
 .../camel/component/cache/CacheComponent.java       |  3 +++
 .../camel/component/cometd/CometdComponent.java     | 11 +++++++++--
 .../component/context/LocalContextComponent.java    |  2 ++
 .../component/crypto/DigitalSignatureComponent.java |  2 ++
 .../apache/camel/component/cxf/CxfComponent.java    |  2 ++
 .../component/disruptor/DisruptorComponent.java     |  7 +++++++
 .../camel/component/docker/DockerComponent.java     |  2 ++
 .../elasticsearch/ElasticsearchComponent.java       |  2 ++
 .../camel-elsql/src/main/docs/elsql-component.adoc  |  2 +-
 .../camel/component/elsql/ElsqlComponent.java       |  3 +++
 .../apache/camel/component/elsql/ElsqlEndpoint.java | 16 ++++++++++++++--
 .../apache/camel/component/etcd/EtcdComponent.java  |  1 +
 25 files changed, 87 insertions(+), 23 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/358f45fd/camel-core/src/main/java/org/apache/camel/util/component/AbstractApiComponent.java
----------------------------------------------------------------------
diff --git 
a/camel-core/src/main/java/org/apache/camel/util/component/AbstractApiComponent.java
 
b/camel-core/src/main/java/org/apache/camel/util/component/AbstractApiComponent.java
index 6b39d95..4f3e4e7 100644
--- 
a/camel-core/src/main/java/org/apache/camel/util/component/AbstractApiComponent.java
+++ 
b/camel-core/src/main/java/org/apache/camel/util/component/AbstractApiComponent.java
@@ -30,6 +30,7 @@ import org.apache.camel.ComponentConfiguration;
 import org.apache.camel.Endpoint;
 import org.apache.camel.impl.UriEndpointComponent;
 import org.apache.camel.spi.EndpointCompleter;
+import org.apache.camel.spi.Metadata;
 import org.apache.camel.util.IntrospectionSupport;
 import org.apache.camel.util.ObjectHelper;
 
@@ -39,6 +40,7 @@ import org.apache.camel.util.ObjectHelper;
 public abstract class AbstractApiComponent<E extends Enum<E> & ApiName, T, S 
extends ApiCollection<E, T>>
         extends UriEndpointComponent implements EndpointCompleter {
 
+    @Metadata(label = "advanced")
     protected T configuration;
 
     // API collection

http://git-wip-us.apache.org/repos/asf/camel/blob/358f45fd/components-starter/camel-apns-starter/src/main/java/org/apache/camel/component/apns/springboot/ApnsComponentConfiguration.java
----------------------------------------------------------------------
diff --git 
a/components-starter/camel-apns-starter/src/main/java/org/apache/camel/component/apns/springboot/ApnsComponentConfiguration.java
 
b/components-starter/camel-apns-starter/src/main/java/org/apache/camel/component/apns/springboot/ApnsComponentConfiguration.java
index f20f20f..14dc37c 100644
--- 
a/components-starter/camel-apns-starter/src/main/java/org/apache/camel/component/apns/springboot/ApnsComponentConfiguration.java
+++ 
b/components-starter/camel-apns-starter/src/main/java/org/apache/camel/component/apns/springboot/ApnsComponentConfiguration.java
@@ -29,7 +29,9 @@ import 
org.springframework.boot.context.properties.NestedConfigurationProperty;
 public class ApnsComponentConfiguration {
 
     /**
-     * To use a custom link ApnsService
+     * The ApnsService to use. The
+     * org.apache.camel.component.apns.factory.ApnsServiceFactory can be used 
to
+     * build a ApnsService
      */
     @NestedConfigurationProperty
     private ApnsService apnsService;

http://git-wip-us.apache.org/repos/asf/camel/blob/358f45fd/components-starter/camel-cache-starter/src/main/java/org/apache/camel/component/cache/springboot/CacheComponentConfiguration.java
----------------------------------------------------------------------
diff --git 
a/components-starter/camel-cache-starter/src/main/java/org/apache/camel/component/cache/springboot/CacheComponentConfiguration.java
 
b/components-starter/camel-cache-starter/src/main/java/org/apache/camel/component/cache/springboot/CacheComponentConfiguration.java
index 609fd2b..4c18a75 100644
--- 
a/components-starter/camel-cache-starter/src/main/java/org/apache/camel/component/cache/springboot/CacheComponentConfiguration.java
+++ 
b/components-starter/camel-cache-starter/src/main/java/org/apache/camel/component/cache/springboot/CacheComponentConfiguration.java
@@ -46,7 +46,7 @@ public class CacheComponentConfiguration {
      * Sets the location of the ehcache.xml file to load from classpath or file
      * system. By default the file is loaded from classpath:ehcache.xml
      */
-    private String configurationFile;
+    private String configurationFile = "classpath:ehcache.xml";
 
     public CacheManagerFactory getCacheManagerFactory() {
         return cacheManagerFactory;

http://git-wip-us.apache.org/repos/asf/camel/blob/358f45fd/components-starter/camel-disruptor-starter/src/main/java/org/apache/camel/component/disruptor/springboot/DisruptorComponentConfiguration.java
----------------------------------------------------------------------
diff --git 
a/components-starter/camel-disruptor-starter/src/main/java/org/apache/camel/component/disruptor/springboot/DisruptorComponentConfiguration.java
 
b/components-starter/camel-disruptor-starter/src/main/java/org/apache/camel/component/disruptor/springboot/DisruptorComponentConfiguration.java
index 4e9e813..444a93a 100644
--- 
a/components-starter/camel-disruptor-starter/src/main/java/org/apache/camel/component/disruptor/springboot/DisruptorComponentConfiguration.java
+++ 
b/components-starter/camel-disruptor-starter/src/main/java/org/apache/camel/component/disruptor/springboot/DisruptorComponentConfiguration.java
@@ -16,6 +16,7 @@
  */
 package org.apache.camel.component.disruptor.springboot;
 
+import org.apache.camel.component.disruptor.DisruptorComponent;
 import org.apache.camel.component.disruptor.DisruptorProducerType;
 import org.apache.camel.component.disruptor.DisruptorWaitStrategy;
 import org.springframework.boot.context.properties.ConfigurationProperties;
@@ -33,7 +34,7 @@ public class DisruptorComponentConfiguration {
     /**
      * To configure the default number of concurrent consumers
      */
-    private Integer defaultConcurrentConsumers;
+    private Integer defaultConcurrentConsumers = 1;
     /**
      * To configure the default value for multiple consumers
      */
@@ -42,17 +43,17 @@ public class DisruptorComponentConfiguration {
      * To configure the default value for DisruptorProducerType The default
      * value is Multi.
      */
-    private DisruptorProducerType defaultProducerType;
+    private DisruptorProducerType defaultProducerType = 
DisruptorProducerType.Multi;
     /**
      * To configure the default value for DisruptorWaitStrategy The default
      * value is Blocking.
      */
-    private DisruptorWaitStrategy defaultWaitStrategy;
+    private DisruptorWaitStrategy defaultWaitStrategy = 
DisruptorWaitStrategy.Blocking;
     /**
      * To configure the default value for block when full The default value is
      * true.
      */
-    private Boolean defaultBlockWhenFull;
+    private Boolean defaultBlockWhenFull = true;
     /**
      * To configure the ring buffer size
      */
@@ -61,7 +62,7 @@ public class DisruptorComponentConfiguration {
     /**
      * To configure the ring buffer size
      */
-    private Integer bufferSize;
+    private Integer bufferSize = 1024;
 
     public Integer getDefaultConcurrentConsumers() {
         return defaultConcurrentConsumers;

http://git-wip-us.apache.org/repos/asf/camel/blob/358f45fd/components-starter/camel-disruptor-starter/src/main/java/org/apache/camel/component/disruptor/vm/springboot/DisruptorVmComponentConfiguration.java
----------------------------------------------------------------------
diff --git 
a/components-starter/camel-disruptor-starter/src/main/java/org/apache/camel/component/disruptor/vm/springboot/DisruptorVmComponentConfiguration.java
 
b/components-starter/camel-disruptor-starter/src/main/java/org/apache/camel/component/disruptor/vm/springboot/DisruptorVmComponentConfiguration.java
index 986acc9..b6d99f4 100644
--- 
a/components-starter/camel-disruptor-starter/src/main/java/org/apache/camel/component/disruptor/vm/springboot/DisruptorVmComponentConfiguration.java
+++ 
b/components-starter/camel-disruptor-starter/src/main/java/org/apache/camel/component/disruptor/vm/springboot/DisruptorVmComponentConfiguration.java
@@ -18,6 +18,7 @@ package org.apache.camel.component.disruptor.vm.springboot;
 
 import org.apache.camel.component.disruptor.DisruptorProducerType;
 import org.apache.camel.component.disruptor.DisruptorWaitStrategy;
+import org.apache.camel.component.disruptor.vm.DisruptorVmComponent;
 import org.springframework.boot.context.properties.ConfigurationProperties;
 import 
org.springframework.boot.context.properties.DeprecatedConfigurationProperty;
 
@@ -33,7 +34,7 @@ public class DisruptorVmComponentConfiguration {
     /**
      * To configure the default number of concurrent consumers
      */
-    private Integer defaultConcurrentConsumers;
+    private Integer defaultConcurrentConsumers = 1;
     /**
      * To configure the default value for multiple consumers
      */
@@ -42,17 +43,17 @@ public class DisruptorVmComponentConfiguration {
      * To configure the default value for DisruptorProducerType The default
      * value is Multi.
      */
-    private DisruptorProducerType defaultProducerType;
+    private DisruptorProducerType defaultProducerType = 
DisruptorProducerType.Multi;
     /**
      * To configure the default value for DisruptorWaitStrategy The default
      * value is Blocking.
      */
-    private DisruptorWaitStrategy defaultWaitStrategy;
+    private DisruptorWaitStrategy defaultWaitStrategy = 
DisruptorWaitStrategy.Blocking;
     /**
      * To configure the default value for block when full The default value is
      * true.
      */
-    private Boolean defaultBlockWhenFull;
+    private Boolean defaultBlockWhenFull = true;
     /**
      * To configure the ring buffer size
      */
@@ -61,7 +62,7 @@ public class DisruptorVmComponentConfiguration {
     /**
      * To configure the ring buffer size
      */
-    private Integer bufferSize;
+    private Integer bufferSize = 1024;
 
     public Integer getDefaultConcurrentConsumers() {
         return defaultConcurrentConsumers;

http://git-wip-us.apache.org/repos/asf/camel/blob/358f45fd/components/camel-ahc-ws/src/main/docs/ahc-ws-component.adoc
----------------------------------------------------------------------
diff --git a/components/camel-ahc-ws/src/main/docs/ahc-ws-component.adoc 
b/components/camel-ahc-ws/src/main/docs/ahc-ws-component.adoc
index 6bba319..c857ed0 100644
--- a/components/camel-ahc-ws/src/main/docs/ahc-ws-component.adoc
+++ b/components/camel-ahc-ws/src/main/docs/ahc-ws-component.adoc
@@ -76,7 +76,6 @@ The AHC Websocket component supports 19 endpoint options 
which are listed below:
 |=======================================================================
 | Name | Group | Default | Java Type | Description
 | httpUri | common |  | URI | *Required* The URI to use such as 
http://hostname:port/path
-| binding | common |  | AhcBinding | To use a custom AhcBinding which allows 
to control how to bind between AHC and Camel.
 | bridgeEndpoint | common | false | boolean | If the option is true then the 
Exchange.HTTP_URI header is ignored and use the endpoint's URI for request. You 
may also set the throwExceptionOnFailure to be false to let the AhcProducer 
send all the fault response back.
 | bufferSize | common | 4096 | int | The initial in-memory buffer size used 
when transferring data between Camel and AHC Client.
 | headerFilterStrategy | common |  | HeaderFilterStrategy | To use a custom 
HeaderFilterStrategy to filter header to and from Camel message.
@@ -89,6 +88,7 @@ The AHC Websocket component supports 19 endpoint options 
which are listed below:
 | connectionClose | producer | false | boolean | Define if the Connection 
Close header has to be added to HTTP Request. This parameter is false by default
 | cookieHandler | producer |  | CookieHandler | Configure a cookie handler to 
maintain a HTTP session
 | useStreaming | producer | false | boolean | To enable streaming to send data 
as multiple text fragments.
+| binding | advanced |  | AhcBinding | To use a custom AhcBinding which allows 
to control how to bind between AHC and Camel.
 | clientConfig | advanced |  | AsyncHttpClientConfig | To configure the 
AsyncHttpClient to use a custom com.ning.http.client.AsyncHttpClientConfig 
instance.
 | clientConfigOptions | advanced |  | Map | To configure the 
AsyncHttpClientConfig using the key/values from the Map.
 | synchronous | advanced | false | boolean | Sets whether synchronous 
processing should be strictly used or Camel is allowed to use asynchronous 
processing (if supported).

http://git-wip-us.apache.org/repos/asf/camel/blob/358f45fd/components/camel-ahc/src/main/docs/ahc-component.adoc
----------------------------------------------------------------------
diff --git a/components/camel-ahc/src/main/docs/ahc-component.adoc 
b/components/camel-ahc/src/main/docs/ahc-component.adoc
index 2c9311d..c9fab73 100644
--- a/components/camel-ahc/src/main/docs/ahc-component.adoc
+++ b/components/camel-ahc/src/main/docs/ahc-component.adoc
@@ -57,7 +57,6 @@ The AHC component supports 14 endpoint options which are 
listed below:
 |=======================================================================
 | Name | Group | Default | Java Type | Description
 | httpUri | producer |  | URI | *Required* The URI to use such as 
http://hostname:port/path
-| binding | producer |  | AhcBinding | To use a custom AhcBinding which allows 
to control how to bind between AHC and Camel.
 | bridgeEndpoint | producer | false | boolean | If the option is true then the 
Exchange.HTTP_URI header is ignored and use the endpoint's URI for request. You 
may also set the throwExceptionOnFailure to be false to let the AhcProducer 
send all the fault response back.
 | bufferSize | producer | 4096 | int | The initial in-memory buffer size used 
when transferring data between Camel and AHC Client.
 | connectionClose | producer | false | boolean | Define if the Connection 
Close header has to be added to HTTP Request. This parameter is false by default
@@ -65,6 +64,7 @@ The AHC component supports 14 endpoint options which are 
listed below:
 | headerFilterStrategy | producer |  | HeaderFilterStrategy | To use a custom 
HeaderFilterStrategy to filter header to and from Camel message.
 | throwExceptionOnFailure | producer | true | boolean | Option to disable 
throwing the AhcOperationFailedException in case of failed responses from the 
remote server. This allows you to get all responses regardless of the HTTP 
status code.
 | transferException | producer | false | boolean | If enabled and an Exchange 
failed processing on the consumer side and if the caused Exception was send 
back serialized in the response as a application/x-java-serialized-object 
content type (for example using Jetty or Servlet Camel components). On the 
producer side the exception will be deserialized and thrown as is instead of 
the AhcOperationFailedException. The caused exception is required to be 
serialized. This is by default turned off. If you enable this then be aware 
that Java will deserialize the incoming data from the request to Java and that 
can be a potential security risk.
+| binding | advanced |  | AhcBinding | To use a custom AhcBinding which allows 
to control how to bind between AHC and Camel.
 | clientConfig | advanced |  | AsyncHttpClientConfig | To configure the 
AsyncHttpClient to use a custom com.ning.http.client.AsyncHttpClientConfig 
instance.
 | clientConfigOptions | advanced |  | Map | To configure the 
AsyncHttpClientConfig using the key/values from the Map.
 | synchronous | advanced | false | boolean | Sets whether synchronous 
processing should be strictly used or Camel is allowed to use asynchronous 
processing (if supported).

http://git-wip-us.apache.org/repos/asf/camel/blob/358f45fd/components/camel-ahc/src/main/java/org/apache/camel/component/ahc/AhcComponent.java
----------------------------------------------------------------------
diff --git 
a/components/camel-ahc/src/main/java/org/apache/camel/component/ahc/AhcComponent.java
 
b/components/camel-ahc/src/main/java/org/apache/camel/component/ahc/AhcComponent.java
index 2103070..b59268b 100644
--- 
a/components/camel-ahc/src/main/java/org/apache/camel/component/ahc/AhcComponent.java
+++ 
b/components/camel-ahc/src/main/java/org/apache/camel/component/ahc/AhcComponent.java
@@ -22,6 +22,7 @@ import java.util.Map;
 
 import org.apache.camel.Endpoint;
 import org.apache.camel.impl.HeaderFilterStrategyComponent;
+import org.apache.camel.spi.Metadata;
 import org.apache.camel.util.IntrospectionSupport;
 import org.apache.camel.util.ObjectHelper;
 import org.apache.camel.util.URISupport;
@@ -45,10 +46,15 @@ public class AhcComponent extends 
HeaderFilterStrategyComponent {
     private static final String CLIENT_CONFIG_PREFIX = "clientConfig.";
     private static final String CLIENT_REALM_CONFIG_PREFIX = 
"clientConfig.realm.";
 
+    @Metadata(label = "advanced")
     private AsyncHttpClient client;
+    @Metadata(label = "advanced")
     private AsyncHttpClientConfig clientConfig;
+    @Metadata(label = "advanced")
     private AhcBinding binding;
+    @Metadata(label = "security")
     private SSLContextParameters sslContextParameters;
+    @Metadata(label = "advanced")
     private boolean allowJavaSerializedObject;
 
     public AhcComponent() {

http://git-wip-us.apache.org/repos/asf/camel/blob/358f45fd/components/camel-ahc/src/main/java/org/apache/camel/component/ahc/AhcEndpoint.java
----------------------------------------------------------------------
diff --git 
a/components/camel-ahc/src/main/java/org/apache/camel/component/ahc/AhcEndpoint.java
 
b/components/camel-ahc/src/main/java/org/apache/camel/component/ahc/AhcEndpoint.java
index 6f93890..2435240 100644
--- 
a/components/camel-ahc/src/main/java/org/apache/camel/component/ahc/AhcEndpoint.java
+++ 
b/components/camel-ahc/src/main/java/org/apache/camel/component/ahc/AhcEndpoint.java
@@ -61,7 +61,7 @@ public class AhcEndpoint extends DefaultEndpoint implements 
AsyncEndpoint, Heade
     private int bufferSize = 4 * 1024;
     @UriParam
     private HeaderFilterStrategy headerFilterStrategy = new 
HttpHeaderFilterStrategy();
-    @UriParam
+    @UriParam(label = "advanced")
     private AhcBinding binding;
     @UriParam(label = "security")
     private SSLContextParameters sslContextParameters;

http://git-wip-us.apache.org/repos/asf/camel/blob/358f45fd/components/camel-apns/src/main/docs/apns-component.adoc
----------------------------------------------------------------------
diff --git a/components/camel-apns/src/main/docs/apns-component.adoc 
b/components/camel-apns/src/main/docs/apns-component.adoc
index f3c9834..3a7232c 100644
--- a/components/camel-apns/src/main/docs/apns-component.adoc
+++ b/components/camel-apns/src/main/docs/apns-component.adoc
@@ -65,7 +65,7 @@ The APNS component supports 1 options which are listed below.
 [width="100%",cols="2,1m,7",options="header"]
 |=======================================================================
 | Name | Java Type | Description
-| apnsService | ApnsService | To use a custom link ApnsService
+| apnsService | ApnsService | The ApnsService to use. The 
org.apache.camel.component.apns.factory.ApnsServiceFactory can be used to build 
a ApnsService
 |=======================================================================
 {% endraw %}
 // component options: END

http://git-wip-us.apache.org/repos/asf/camel/blob/358f45fd/components/camel-apns/src/main/java/org/apache/camel/component/apns/ApnsComponent.java
----------------------------------------------------------------------
diff --git 
a/components/camel-apns/src/main/java/org/apache/camel/component/apns/ApnsComponent.java
 
b/components/camel-apns/src/main/java/org/apache/camel/component/apns/ApnsComponent.java
index 6426c11..7c923db 100644
--- 
a/components/camel-apns/src/main/java/org/apache/camel/component/apns/ApnsComponent.java
+++ 
b/components/camel-apns/src/main/java/org/apache/camel/component/apns/ApnsComponent.java
@@ -21,12 +21,14 @@ import java.util.Map;
 import com.notnoop.apns.ApnsService;
 import org.apache.camel.Endpoint;
 import org.apache.camel.impl.UriEndpointComponent;
+import org.apache.camel.spi.Metadata;
 
 /**
  * For sending notifications to Apple iOS devices
  */
 public class ApnsComponent extends UriEndpointComponent {
 
+    @Metadata(required = "true")
     private ApnsService apnsService;
 
     public ApnsComponent() {
@@ -50,7 +52,9 @@ public class ApnsComponent extends UriEndpointComponent {
     }
 
     /**
-     * To use a custom @{link ApnsService}
+     * The ApnsService to use.
+     * <p/>
+     * The {@link org.apache.camel.component.apns.factory.ApnsServiceFactory} 
can be used to build a {@link ApnsService}
      */
     public void setApnsService(ApnsService apnsService) {
         this.apnsService = apnsService;

http://git-wip-us.apache.org/repos/asf/camel/blob/358f45fd/components/camel-avro/src/main/java/org/apache/camel/component/avro/AvroComponent.java
----------------------------------------------------------------------
diff --git 
a/components/camel-avro/src/main/java/org/apache/camel/component/avro/AvroComponent.java
 
b/components/camel-avro/src/main/java/org/apache/camel/component/avro/AvroComponent.java
index 108348b..da76a0e 100644
--- 
a/components/camel-avro/src/main/java/org/apache/camel/component/avro/AvroComponent.java
+++ 
b/components/camel-avro/src/main/java/org/apache/camel/component/avro/AvroComponent.java
@@ -28,13 +28,16 @@ import org.apache.avro.reflect.ReflectData;
 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.URISupport;
 
 public class AvroComponent extends UriEndpointComponent {
 
-    private AvroConfiguration configuration;
     private ConcurrentMap<String, AvroListener> listenerRegistry = new 
ConcurrentHashMap<String, AvroListener>();
 
+    @Metadata(label = "advanced")
+    private AvroConfiguration configuration;
+
     public AvroComponent() {
         super(AvroEndpoint.class);
     }

http://git-wip-us.apache.org/repos/asf/camel/blob/358f45fd/components/camel-box/src/main/java/org/apache/camel/component/box/BoxComponent.java
----------------------------------------------------------------------
diff --git 
a/components/camel-box/src/main/java/org/apache/camel/component/box/BoxComponent.java
 
b/components/camel-box/src/main/java/org/apache/camel/component/box/BoxComponent.java
index c770d8f..ac20424 100644
--- 
a/components/camel-box/src/main/java/org/apache/camel/component/box/BoxComponent.java
+++ 
b/components/camel-box/src/main/java/org/apache/camel/component/box/BoxComponent.java
@@ -22,6 +22,7 @@ import 
org.apache.camel.component.box.internal.BoxApiCollection;
 import org.apache.camel.component.box.internal.BoxApiName;
 import org.apache.camel.component.box.internal.BoxClientHelper;
 import org.apache.camel.component.box.internal.CachedBoxClient;
+import org.apache.camel.spi.Metadata;
 import org.apache.camel.util.component.AbstractApiComponent;
 
 /**
@@ -29,6 +30,7 @@ import org.apache.camel.util.component.AbstractApiComponent;
  */
 public class BoxComponent extends AbstractApiComponent<BoxApiName, 
BoxConfiguration, BoxApiCollection> {
 
+    @Metadata(label = "advanced")
     private CachedBoxClient cachedBoxClient;
 
     public BoxComponent() {

http://git-wip-us.apache.org/repos/asf/camel/blob/358f45fd/components/camel-cache/src/main/java/org/apache/camel/component/cache/CacheComponent.java
----------------------------------------------------------------------
diff --git 
a/components/camel-cache/src/main/java/org/apache/camel/component/cache/CacheComponent.java
 
b/components/camel-cache/src/main/java/org/apache/camel/component/cache/CacheComponent.java
index 3b6fad9..4eeab3a 100755
--- 
a/components/camel-cache/src/main/java/org/apache/camel/component/cache/CacheComponent.java
+++ 
b/components/camel-cache/src/main/java/org/apache/camel/component/cache/CacheComponent.java
@@ -22,13 +22,16 @@ 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;
 import org.apache.camel.util.ObjectHelper;
 import org.apache.camel.util.ResourceHelper;
 import org.apache.camel.util.ServiceHelper;
 
 public class CacheComponent extends UriEndpointComponent {
     private CacheConfiguration configuration;
+    @Metadata(label = "advanced")
     private CacheManagerFactory cacheManagerFactory;
+    @Metadata(defaultValue = "classpath:ehcache.xml")
     private String configurationFile;
 
     public CacheComponent() {

http://git-wip-us.apache.org/repos/asf/camel/blob/358f45fd/components/camel-cometd/src/main/java/org/apache/camel/component/cometd/CometdComponent.java
----------------------------------------------------------------------
diff --git 
a/components/camel-cometd/src/main/java/org/apache/camel/component/cometd/CometdComponent.java
 
b/components/camel-cometd/src/main/java/org/apache/camel/component/cometd/CometdComponent.java
index b1a1b55..5559d32 100644
--- 
a/components/camel-cometd/src/main/java/org/apache/camel/component/cometd/CometdComponent.java
+++ 
b/components/camel-cometd/src/main/java/org/apache/camel/component/cometd/CometdComponent.java
@@ -27,6 +27,7 @@ import javax.servlet.DispatcherType;
 
 import org.apache.camel.Endpoint;
 import org.apache.camel.impl.UriEndpointComponent;
+import org.apache.camel.spi.Metadata;
 import org.apache.camel.util.jsse.SSLContextParameters;
 import org.cometd.bayeux.server.BayeuxServer;
 import org.cometd.bayeux.server.SecurityPolicy;
@@ -54,13 +55,19 @@ public class CometdComponent extends UriEndpointComponent {
     private static final Logger LOG = 
LoggerFactory.getLogger(CometdComponent.class);
 
     private final Map<String, ConnectorRef> connectors = new 
LinkedHashMap<String, ConnectorRef>();
-   
+
+    private List<BayeuxServer.BayeuxServerListener> serverListeners;
+
+    @Metadata(label = "security", secret = true)
     private String sslKeyPassword;
+    @Metadata(label = "security", secret = true)
     private String sslPassword;
+    @Metadata(label = "security", secret = true)
     private String sslKeystore;
+    @Metadata(label = "security")
     private SecurityPolicy securityPolicy;
     private List<BayeuxServer.Extension> extensions;
-    private List<BayeuxServer.BayeuxServerListener> serverListeners;
+    @Metadata(label = "security")
     private SSLContextParameters sslContextParameters;
 
     class ConnectorRef {

http://git-wip-us.apache.org/repos/asf/camel/blob/358f45fd/components/camel-context/src/main/java/org/apache/camel/component/context/LocalContextComponent.java
----------------------------------------------------------------------
diff --git 
a/components/camel-context/src/main/java/org/apache/camel/component/context/LocalContextComponent.java
 
b/components/camel-context/src/main/java/org/apache/camel/component/context/LocalContextComponent.java
index 9ae64a7..2a930f6 100644
--- 
a/components/camel-context/src/main/java/org/apache/camel/component/context/LocalContextComponent.java
+++ 
b/components/camel-context/src/main/java/org/apache/camel/component/context/LocalContextComponent.java
@@ -25,6 +25,7 @@ import org.apache.camel.CamelContext;
 import org.apache.camel.Endpoint;
 import org.apache.camel.ResolveEndpointFailedException;
 import org.apache.camel.impl.DefaultComponent;
+import org.apache.camel.spi.Metadata;
 import org.apache.camel.util.ObjectHelper;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -36,6 +37,7 @@ public class LocalContextComponent extends DefaultComponent {
     private static final Logger LOG = 
LoggerFactory.getLogger(LocalContextComponent.class);
 
     private CamelContext localCamelContext;
+    @Metadata(label = "advanced", defaultValue = "direct,seda,mock")
     private List<String> localProtocolSchemes = new 
ArrayList<String>(Arrays.asList("direct", "seda", "mock"));
 
     public LocalContextComponent(CamelContext localCamelContext) {

http://git-wip-us.apache.org/repos/asf/camel/blob/358f45fd/components/camel-crypto/src/main/java/org/apache/camel/component/crypto/DigitalSignatureComponent.java
----------------------------------------------------------------------
diff --git 
a/components/camel-crypto/src/main/java/org/apache/camel/component/crypto/DigitalSignatureComponent.java
 
b/components/camel-crypto/src/main/java/org/apache/camel/component/crypto/DigitalSignatureComponent.java
index 72a14e8..06bf368 100644
--- 
a/components/camel-crypto/src/main/java/org/apache/camel/component/crypto/DigitalSignatureComponent.java
+++ 
b/components/camel-crypto/src/main/java/org/apache/camel/component/crypto/DigitalSignatureComponent.java
@@ -23,10 +23,12 @@ 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;
 import org.apache.camel.util.ObjectHelper;
 
 public class DigitalSignatureComponent extends UriEndpointComponent {
 
+    @Metadata(label = "advanced")
     private DigitalSignatureConfiguration configuration;
 
     public DigitalSignatureComponent() {

http://git-wip-us.apache.org/repos/asf/camel/blob/358f45fd/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CxfComponent.java
----------------------------------------------------------------------
diff --git 
a/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CxfComponent.java
 
b/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CxfComponent.java
index b5567e1..ceadd41 100644
--- 
a/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CxfComponent.java
+++ 
b/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CxfComponent.java
@@ -22,6 +22,7 @@ import org.apache.camel.CamelContext;
 import org.apache.camel.Endpoint;
 import org.apache.camel.component.cxf.common.message.CxfConstants;
 import org.apache.camel.impl.HeaderFilterStrategyComponent;
+import org.apache.camel.spi.Metadata;
 import org.apache.camel.util.CamelContextHelper;
 import org.apache.camel.util.IntrospectionSupport;
 import org.apache.cxf.message.Message;
@@ -35,6 +36,7 @@ public class CxfComponent extends 
HeaderFilterStrategyComponent {
 
     private static final Logger LOG = 
LoggerFactory.getLogger(CxfComponent.class);
 
+    @Metadata(label = "advanced")
     private Boolean allowStreaming;
 
     public CxfComponent() {

http://git-wip-us.apache.org/repos/asf/camel/blob/358f45fd/components/camel-disruptor/src/main/java/org/apache/camel/component/disruptor/DisruptorComponent.java
----------------------------------------------------------------------
diff --git 
a/components/camel-disruptor/src/main/java/org/apache/camel/component/disruptor/DisruptorComponent.java
 
b/components/camel-disruptor/src/main/java/org/apache/camel/component/disruptor/DisruptorComponent.java
index 3ce8c17..2295768 100644
--- 
a/components/camel-disruptor/src/main/java/org/apache/camel/component/disruptor/DisruptorComponent.java
+++ 
b/components/camel-disruptor/src/main/java/org/apache/camel/component/disruptor/DisruptorComponent.java
@@ -21,6 +21,7 @@ import java.util.Map;
 
 import org.apache.camel.Endpoint;
 import org.apache.camel.impl.UriEndpointComponent;
+import org.apache.camel.spi.Metadata;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -36,14 +37,20 @@ public class DisruptorComponent extends 
UriEndpointComponent {
 
     private static final Logger LOGGER = 
LoggerFactory.getLogger(DisruptorComponent.class);
 
+    @Metadata(defaultValue = "" + DEFAULT_BUFFER_SIZE)
     private int bufferSize = -1;
     //for SEDA compatibility only
     private int queueSize = -1;
 
+    @Metadata(label = "consumer", defaultValue = "1")
     private int defaultConcurrentConsumers = 1;
+    @Metadata(label = "consumer")
     private boolean defaultMultipleConsumers;
+    @Metadata(label = "producer", defaultValue = "Multi")
     private DisruptorProducerType defaultProducerType = 
DisruptorProducerType.Multi;
+    @Metadata(label = "consumer", defaultValue = "Blocking")
     private DisruptorWaitStrategy defaultWaitStrategy = 
DisruptorWaitStrategy.Blocking;
+    @Metadata(label = "producer", defaultValue = "true")
     private boolean defaultBlockWhenFull = true;
 
     //synchronized access guarded by this

http://git-wip-us.apache.org/repos/asf/camel/blob/358f45fd/components/camel-docker/src/main/java/org/apache/camel/component/docker/DockerComponent.java
----------------------------------------------------------------------
diff --git 
a/components/camel-docker/src/main/java/org/apache/camel/component/docker/DockerComponent.java
 
b/components/camel-docker/src/main/java/org/apache/camel/component/docker/DockerComponent.java
index ffc74a1..cfcc08b 100644
--- 
a/components/camel-docker/src/main/java/org/apache/camel/component/docker/DockerComponent.java
+++ 
b/components/camel-docker/src/main/java/org/apache/camel/component/docker/DockerComponent.java
@@ -23,6 +23,7 @@ import com.github.dockerjava.api.DockerClient;
 import org.apache.camel.Endpoint;
 import org.apache.camel.component.docker.exception.DockerException;
 import org.apache.camel.impl.DefaultComponent;
+import org.apache.camel.spi.Metadata;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -32,6 +33,7 @@ import org.slf4j.LoggerFactory;
 public class DockerComponent extends DefaultComponent {
     private static final Logger LOG = 
LoggerFactory.getLogger(DockerComponent.class);
 
+    @Metadata(label = "advanced")
     private DockerConfiguration configuration = new DockerConfiguration();
     private Map<DockerClientProfile, DockerClient> clients = new 
HashMap<DockerClientProfile, DockerClient>();
 

http://git-wip-us.apache.org/repos/asf/camel/blob/358f45fd/components/camel-elasticsearch/src/main/java/org/apache/camel/component/elasticsearch/ElasticsearchComponent.java
----------------------------------------------------------------------
diff --git 
a/components/camel-elasticsearch/src/main/java/org/apache/camel/component/elasticsearch/ElasticsearchComponent.java
 
b/components/camel-elasticsearch/src/main/java/org/apache/camel/component/elasticsearch/ElasticsearchComponent.java
index 5249270..4bfbae1 100644
--- 
a/components/camel-elasticsearch/src/main/java/org/apache/camel/component/elasticsearch/ElasticsearchComponent.java
+++ 
b/components/camel-elasticsearch/src/main/java/org/apache/camel/component/elasticsearch/ElasticsearchComponent.java
@@ -26,6 +26,7 @@ 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;
 import org.elasticsearch.client.Client;
 import org.elasticsearch.common.transport.InetSocketTransportAddress;
 
@@ -34,6 +35,7 @@ import 
org.elasticsearch.common.transport.InetSocketTransportAddress;
  */
 public class ElasticsearchComponent extends UriEndpointComponent {
 
+    @Metadata(label = "advanced")
     private Client client;
 
     public ElasticsearchComponent() {

http://git-wip-us.apache.org/repos/asf/camel/blob/358f45fd/components/camel-elsql/src/main/docs/elsql-component.adoc
----------------------------------------------------------------------
diff --git a/components/camel-elsql/src/main/docs/elsql-component.adoc 
b/components/camel-elsql/src/main/docs/elsql-component.adoc
index 58f52ee..647fd00 100644
--- a/components/camel-elsql/src/main/docs/elsql-component.adoc
+++ b/components/camel-elsql/src/main/docs/elsql-component.adoc
@@ -85,7 +85,6 @@ The ElSQL component supports 48 endpoint options which are 
listed below:
 | databaseVendor | common |  | ElSqlDatabaseVendor | To use a vendor specific 
com.opengamma.elsql.ElSqlConfig
 | dataSource | common |  | DataSource | Sets the DataSource to use to 
communicate with the database.
 | dataSourceRef | common |  | String | Sets the reference to a DataSource to 
lookup from the registry to use for communicating with the database.
-| elSqlConfig | common |  | ElSqlConfig | To use a specific configured 
ElSqlConfig. It may be better to use the databaseVendor option instead.
 | outputClass | common |  | String | Specify the full package and class name 
to use as conversion when outputType=SelectOne.
 | outputHeader | common |  | String | Store the query result in a header 
instead of the message body. By default outputHeader == null and the query 
result is stored in the message body any existing content in the message body 
is discarded. If outputHeader is set the value is used as the name of the 
header to store the query result and the original message body is preserved.
 | outputType | common | SelectList | SqlOutputType | Make the output of 
consumer or producer to SelectList as List of Map or SelectOne as single Java 
object in the following way:a) If the query has only single column then that 
JDBC Column object is returned. (such as SELECT COUNT( ) FROM PROJECT will 
return a Long object.b) If the query has more than one column then it will 
return a Map of that result.c) If the outputClass is set then it will convert 
the query result into an Java bean object by calling all the setters that match 
the column names.It will assume your class has a default constructor to create 
instance with.d) If the query resulted in more than one rows it throws an 
non-unique result exception.StreamList streams the result of the query using an 
Iterator. This can be used with the Splitter EIP in streaming mode to process 
the ResultSet in streaming fashion.
@@ -109,6 +108,7 @@ The ElSQL component supports 48 endpoint options which are 
listed below:
 | useMessageBodyForSql | producer | false | boolean | Whether to use the 
message body as the SQL and then headers for parameters. If this option is 
enabled then the SQL in the uri is not used.
 | alwaysPopulateStatement | producer (advanced) | false | boolean | If enabled 
then the populateStatement method from 
org.apache.camel.component.sql.SqlPrepareStatementStrategy is always invoked 
also if there is no expected parameters to be prepared. When this is false then 
the populateStatement is only invoked if there is 1 or more expected parameters 
to be set; for example this avoids reading the message body/headers for SQL 
queries with no parameters.
 | parametersCount | producer (advanced) |  | int | If set greater than zero 
then Camel will use this count value of parameters to replace instead of 
querying via JDBC metadata API. This is useful if the JDBC vendor could not 
return correct parameters count then user may override instead.
+| elSqlConfig | advanced |  | ElSqlConfig | To use a specific configured 
ElSqlConfig. It may be better to use the databaseVendor option instead.
 | placeholder | advanced | # | String | Specifies a character that will be 
replaced to in SQL query. Notice that it is simple String.replaceAll() 
operation and no SQL parsing is involved (quoted strings will also change).
 | prepareStatementStrategy | advanced |  | SqlPrepareStatementStrategy | 
Allows to plugin to use a custom 
org.apache.camel.component.sql.SqlPrepareStatementStrategy 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).

http://git-wip-us.apache.org/repos/asf/camel/blob/358f45fd/components/camel-elsql/src/main/java/org/apache/camel/component/elsql/ElsqlComponent.java
----------------------------------------------------------------------
diff --git 
a/components/camel-elsql/src/main/java/org/apache/camel/component/elsql/ElsqlComponent.java
 
b/components/camel-elsql/src/main/java/org/apache/camel/component/elsql/ElsqlComponent.java
index b328a72..3fbcfaa 100644
--- 
a/components/camel-elsql/src/main/java/org/apache/camel/component/elsql/ElsqlComponent.java
+++ 
b/components/camel-elsql/src/main/java/org/apache/camel/component/elsql/ElsqlComponent.java
@@ -22,6 +22,8 @@ import javax.sql.DataSource;
 import com.opengamma.elsql.ElSqlConfig;
 import org.apache.camel.Endpoint;
 import org.apache.camel.impl.UriEndpointComponent;
+import org.apache.camel.spi.Metadata;
+import org.apache.camel.spi.UriParam;
 import org.apache.camel.util.CamelContextHelper;
 import org.apache.camel.util.IntrospectionSupport;
 import org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate;
@@ -30,6 +32,7 @@ public class ElsqlComponent extends UriEndpointComponent {
 
     private ElSqlDatabaseVendor databaseVendor;
     private DataSource dataSource;
+    @Metadata(label = "advanced")
     private ElSqlConfig elSqlConfig;
     private String resourceUri;
 

http://git-wip-us.apache.org/repos/asf/camel/blob/358f45fd/components/camel-elsql/src/main/java/org/apache/camel/component/elsql/ElsqlEndpoint.java
----------------------------------------------------------------------
diff --git 
a/components/camel-elsql/src/main/java/org/apache/camel/component/elsql/ElsqlEndpoint.java
 
b/components/camel-elsql/src/main/java/org/apache/camel/component/elsql/ElsqlEndpoint.java
index ce2f47c..62afbd0 100644
--- 
a/components/camel-elsql/src/main/java/org/apache/camel/component/elsql/ElsqlEndpoint.java
+++ 
b/components/camel-elsql/src/main/java/org/apache/camel/component/elsql/ElsqlEndpoint.java
@@ -54,7 +54,6 @@ public class ElsqlEndpoint extends DefaultSqlEndpoint {
 
     private ElSql elSql;
     private NamedParameterJdbcTemplate namedJdbcTemplate;
-    private DataSource dataSource;
 
     @UriPath
     @Metadata(required = "true")
@@ -62,8 +61,10 @@ public class ElsqlEndpoint extends DefaultSqlEndpoint {
     @UriPath
     private String resourceUri;
     @UriParam
-    private ElSqlDatabaseVendor databaseVendor;
+    private DataSource dataSource;
     @UriParam
+    private ElSqlDatabaseVendor databaseVendor;
+    @UriParam(label = "advanced")
     private ElSqlConfig elSqlConfig;
 
     public ElsqlEndpoint(String uri, Component component, 
NamedParameterJdbcTemplate namedJdbcTemplate, DataSource dataSource,
@@ -168,4 +169,15 @@ public class ElsqlEndpoint extends DefaultSqlEndpoint {
     public void setResourceUri(String resourceUri) {
         this.resourceUri = resourceUri;
     }
+
+    public DataSource getDataSource() {
+        return dataSource;
+    }
+
+    /**
+     * Sets the DataSource to use to communicate with the database.
+     */
+    public void setDataSource(DataSource dataSource) {
+        this.dataSource = dataSource;
+    }
 }

http://git-wip-us.apache.org/repos/asf/camel/blob/358f45fd/components/camel-etcd/src/main/java/org/apache/camel/component/etcd/EtcdComponent.java
----------------------------------------------------------------------
diff --git 
a/components/camel-etcd/src/main/java/org/apache/camel/component/etcd/EtcdComponent.java
 
b/components/camel-etcd/src/main/java/org/apache/camel/component/etcd/EtcdComponent.java
index 9c07b2a..35ff2e5 100644
--- 
a/components/camel-etcd/src/main/java/org/apache/camel/component/etcd/EtcdComponent.java
+++ 
b/components/camel-etcd/src/main/java/org/apache/camel/component/etcd/EtcdComponent.java
@@ -27,6 +27,7 @@ import org.apache.camel.util.ObjectHelper;
  * Represents the component that manages {@link AbstractEtcdEndpoint}.
  */
 public class EtcdComponent extends UriEndpointComponent {
+
     public EtcdComponent() {
         super(AbstractEtcdEndpoint.class);
     }

Reply via email to