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 2015/03/01 08:42:32 UTC

[05/11] camel git commit: CAMEL-8320: Component doc to include endpoint syntax.

CAMEL-8320: Component doc to include endpoint syntax.


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

Branch: refs/heads/master
Commit: caf545fa259b944c504123a955761381d56b3435
Parents: cde884b
Author: Claus Ibsen <da...@apache.org>
Authored: Sat Feb 28 18:27:21 2015 +0100
Committer: Claus Ibsen <da...@apache.org>
Committed: Sat Feb 28 18:27:21 2015 +0100

----------------------------------------------------------------------
 .../component/google/mail/GoogleMailComponent.java |  2 --
 .../apache/camel/component/http/HttpEndpoint.java  |  2 +-
 .../apache/camel/component/jmx/JMXEndpoint.java    | 14 +++++++-------
 .../apache/camel/component/jpa/JpaEndpoint.java    | 12 +++++++-----
 .../apache/camel/component/scp/ScpEndpoint.java    |  2 +-
 .../camel/component/jt400/Jt400Configuration.java  | 15 ++++++++-------
 .../camel/component/jt400/Jt400Endpoint.java       |  2 +-
 .../camel/component/kafka/KafkaEndpoint.java       |  5 +++--
 .../component/kestrel/KestrelConfiguration.java    |  2 +-
 .../camel/component/kestrel/KestrelEndpoint.java   |  5 +++--
 .../camel/component/krati/KratiEndpoint.java       |  5 +++--
 .../apache/camel/component/ldap/LdapEndpoint.java  |  5 +++--
 .../component/linkedin/LinkedInComponent.java      |  1 -
 .../component/linkedin/LinkedInConfiguration.java  | 16 ++++++++++------
 .../camel/component/linkedin/LinkedInEndpoint.java |  2 +-
 .../component/lucene/LuceneConfiguration.java      |  5 +++--
 .../camel/component/lucene/LuceneEndpoint.java     |  2 +-
 .../camel/component/mail/MailConfiguration.java    | 17 +++++++++--------
 .../apache/camel/component/mail/MailEndpoint.java  |  2 +-
 .../camel/component/metrics/MetricsEndpoint.java   |  7 ++++---
 .../camel/component/mina/MinaConfiguration.java    | 17 +++++++++--------
 .../apache/camel/component/mina/MinaEndpoint.java  |  2 +-
 .../camel/component/mina2/Mina2Configuration.java  | 17 +++++++++--------
 .../camel/component/mina2/Mina2Endpoint.java       |  2 +-
 .../camel/component/mongodb/MongoDbEndpoint.java   | 13 +++++++------
 .../apache/camel/component/mqtt/MQTTEndpoint.java  |  5 +++--
 .../camel/component/validator/msv/MsvEndpoint.java |  2 +-
 .../camel/component/mustache/MustacheEndpoint.java |  2 +-
 .../apache/camel/component/mvel/MvelEndpoint.java  |  2 +-
 .../camel/component/mybatis/MyBatisEndpoint.java   |  5 +++--
 .../component/nagios/NagiosConfiguration.java      |  5 +++--
 .../camel/component/nagios/NagiosEndpoint.java     |  2 +-
 .../netty/http/NettyHttpConfiguration.java         | 15 ++++++++-------
 .../component/netty/http/NettyHttpEndpoint.java    |  4 ++--
 .../camel/component/netty/NettyConfiguration.java  |  8 ++++----
 .../camel/component/netty/NettyEndpoint.java       |  2 +-
 .../netty/NettyServerBootstrapConfiguration.java   | 15 ++++++++-------
 .../netty4/http/NettyHttpConfiguration.java        | 13 +++++++------
 .../component/netty4/http/NettyHttpEndpoint.java   |  2 +-
 .../camel/component/netty4/NettyConfiguration.java |  8 ++++----
 .../camel/component/netty4/NettyEndpoint.java      |  2 +-
 .../netty4/NettyServerBootstrapConfiguration.java  | 15 ++++++++-------
 .../camel/component/ssh/SshConfiguration.java      |  5 +++--
 .../apache/camel/component/ssh/SshEndpoint.java    |  2 +-
 .../camel/component/stream/StreamEndpoint.java     | 13 +++++++------
 45 files changed, 162 insertions(+), 139 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/caf545fa/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 2f5631b..ba78eba 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,13 +22,11 @@ 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.UriEndpoint;
 import org.apache.camel.util.component.AbstractApiComponent;
 
 /**
  * Represents the component that manages {@link GoogleMailEndpoint}.
  */
-@UriEndpoint(scheme = "google-mail", consumerClass = GoogleMailConsumer.class, consumerPrefix = "consumer")
 public class GoogleMailComponent extends AbstractApiComponent<GoogleMailApiName, GoogleMailConfiguration, GoogleMailApiCollection> {
 
     private Gmail client;

http://git-wip-us.apache.org/repos/asf/camel/blob/caf545fa/components/camel-http/src/main/java/org/apache/camel/component/http/HttpEndpoint.java
----------------------------------------------------------------------
diff --git a/components/camel-http/src/main/java/org/apache/camel/component/http/HttpEndpoint.java b/components/camel-http/src/main/java/org/apache/camel/component/http/HttpEndpoint.java
index f8a87b5..67ccc49 100644
--- a/components/camel-http/src/main/java/org/apache/camel/component/http/HttpEndpoint.java
+++ b/components/camel-http/src/main/java/org/apache/camel/component/http/HttpEndpoint.java
@@ -53,7 +53,7 @@ public class HttpEndpoint extends DefaultEndpoint implements HeaderFilterStrateg
     private HeaderFilterStrategy headerFilterStrategy = new HttpHeaderFilterStrategy();
     private HttpBinding binding;
     private HttpComponent component;
-    @UriPath @Metadata(required = "true")
+    @UriPath @Metadata(required = "true", label = "producer")
     private URI httpUri;
     private HttpClientParams clientParams;
     private HttpClientConfigurer httpClientConfigurer;

http://git-wip-us.apache.org/repos/asf/camel/blob/caf545fa/components/camel-jmx/src/main/java/org/apache/camel/component/jmx/JMXEndpoint.java
----------------------------------------------------------------------
diff --git a/components/camel-jmx/src/main/java/org/apache/camel/component/jmx/JMXEndpoint.java b/components/camel-jmx/src/main/java/org/apache/camel/component/jmx/JMXEndpoint.java
index 9d31521..3d90379 100644
--- a/components/camel-jmx/src/main/java/org/apache/camel/component/jmx/JMXEndpoint.java
+++ b/components/camel-jmx/src/main/java/org/apache/camel/component/jmx/JMXEndpoint.java
@@ -43,7 +43,7 @@ import org.apache.camel.util.ObjectHelper;
  * <p/>
  * You can append query options to the URI in the following format, ?options=value&option2=value&...
  */
-@UriEndpoint(scheme = "jmx", consumerOnly = true, consumerClass = JMXConsumer.class, label = "monitoring")
+@UriEndpoint(scheme = "jmx", syntax = "jmx:serverURL", consumerOnly = true, consumerClass = JMXConsumer.class, label = "monitoring")
 public class JMXEndpoint extends DefaultEndpoint {
 
     // error messages as constants so they can be asserted on from unit tests
@@ -100,19 +100,19 @@ public class JMXEndpoint extends DefaultEndpoint {
     /**
      * URI Property: [counter + gauge monitor only] If true, then the value reported in the notification is the difference from the threshold as opposed to the value itself.  
      */
-    @UriParam(defaultValue = "false")
+    @UriParam
     private boolean differenceMode;
 
     /**
      * URI Property: [gauge monitor only] If true, the gauge will fire a notification when the high threshold is exceeded  
      */
-    @UriParam(defaultValue = "false")
+    @UriParam
     private boolean notifyHigh;
 
     /**
      * URI Property: [gauge monitor only] If true, the gauge will fire a notification when the low threshold is exceeded  
      */
-    @UriParam(defaultValue = "false")
+    @UriParam
     private boolean notifyLow;
 
     /**
@@ -130,13 +130,13 @@ public class JMXEndpoint extends DefaultEndpoint {
     /**
      * URI Property: [string monitor only] If true, the string monitor will fire a notification when the string attribute differs from the string to compare.  
      */
-    @UriParam(defaultValue = "false")
+    @UriParam
     private boolean notifyDiffer;
 
     /**
      * URI Property: [string monitor only] If true, the string monitor will fire a notification when the string attribute matches the string to compare.  
      */
-    @UriParam(defaultValue = "false")
+    @UriParam
     private boolean notifyMatch;
 
     /**
@@ -199,7 +199,7 @@ public class JMXEndpoint extends DefaultEndpoint {
      * URI Property:  If true the consumer will attempt to reconnect to the JMX server when any connection failure occurs.  The consumer will attempt
      *                to re-establish the JMX connection every 'x' seconds until the connection is made-- where 'x' is the configured  reconnectionDelay
      */
-    @UriParam(defaultValue = "false")
+    @UriParam
     private boolean reconnectOnConnectionFailure;
      
      /**

http://git-wip-us.apache.org/repos/asf/camel/blob/caf545fa/components/camel-jpa/src/main/java/org/apache/camel/component/jpa/JpaEndpoint.java
----------------------------------------------------------------------
diff --git a/components/camel-jpa/src/main/java/org/apache/camel/component/jpa/JpaEndpoint.java b/components/camel-jpa/src/main/java/org/apache/camel/component/jpa/JpaEndpoint.java
index fbae1b8..e15a2a0 100644
--- a/components/camel-jpa/src/main/java/org/apache/camel/component/jpa/JpaEndpoint.java
+++ b/components/camel-jpa/src/main/java/org/apache/camel/component/jpa/JpaEndpoint.java
@@ -28,6 +28,7 @@ import org.apache.camel.InvalidPayloadRuntimeException;
 import org.apache.camel.Processor;
 import org.apache.camel.Producer;
 import org.apache.camel.impl.ScheduledPollEndpoint;
+import org.apache.camel.spi.Metadata;
 import org.apache.camel.spi.UriEndpoint;
 import org.apache.camel.spi.UriParam;
 import org.apache.camel.spi.UriPath;
@@ -41,13 +42,14 @@ import org.springframework.transaction.PlatformTransactionManager;
 import org.springframework.transaction.TransactionDefinition;
 import org.springframework.transaction.support.TransactionTemplate;
 
-@UriEndpoint(scheme = "jpa", consumerClass = JpaConsumer.class, label = "database")
+@UriEndpoint(scheme = "jpa", syntax = "jpa:entityType", consumerClass = JpaConsumer.class, label = "database")
 public class JpaEndpoint extends ScheduledPollEndpoint {
 
-    @UriPath(description = "Entity class name")
-    private Class<?> entityType;
     private EntityManagerFactory entityManagerFactory;
     private PlatformTransactionManager transactionManager;
+
+    @UriPath(description = "Entity class name") @Metadata(required = "true")
+    private Class<?> entityType;
     @UriParam(defaultValue = "camel")
     private String persistenceUnit = "camel";
     private Expression producerExpression;
@@ -62,11 +64,11 @@ public class JpaEndpoint extends ScheduledPollEndpoint {
     private boolean flushOnSend = true;
     @UriParam
     private int maxMessagesPerPoll;
-    @UriParam(defaultValue = "false")
+    @UriParam
     private boolean usePersist;
     @UriParam(defaultValue = "true")
     private boolean joinTransaction = true;
-    @UriParam(defaultValue = "false")
+    @UriParam
     private boolean usePassedInEntityManager;
 
     public JpaEndpoint() {

http://git-wip-us.apache.org/repos/asf/camel/blob/caf545fa/components/camel-jsch/src/main/java/org/apache/camel/component/scp/ScpEndpoint.java
----------------------------------------------------------------------
diff --git a/components/camel-jsch/src/main/java/org/apache/camel/component/scp/ScpEndpoint.java b/components/camel-jsch/src/main/java/org/apache/camel/component/scp/ScpEndpoint.java
index 5777021..5c8a1de 100644
--- a/components/camel-jsch/src/main/java/org/apache/camel/component/scp/ScpEndpoint.java
+++ b/components/camel-jsch/src/main/java/org/apache/camel/component/scp/ScpEndpoint.java
@@ -28,7 +28,7 @@ import org.apache.camel.spi.UriParam;
 /**
  * Secure Copy Endpoint
  */
-@UriEndpoint(scheme = "scp", producerOnly = true, label = "file")
+@UriEndpoint(scheme = "scp", syntax = "scp:host:port/directoryName", producerOnly = true, label = "file")
 public class ScpEndpoint extends RemoteFileEndpoint<ScpFile> {
 
     @UriParam

http://git-wip-us.apache.org/repos/asf/camel/blob/caf545fa/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 2b4ef5e..598f422 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
@@ -24,6 +24,7 @@ import com.ibm.as400.access.AS400;
 import com.ibm.as400.access.AS400ConnectionPool;
 import com.ibm.as400.access.ConnectionPoolException;
 import org.apache.camel.RuntimeCamelException;
+import org.apache.camel.spi.Metadata;
 import org.apache.camel.spi.UriParam;
 import org.apache.camel.spi.UriParams;
 import org.apache.camel.spi.UriPath;
@@ -75,29 +76,29 @@ public class Jt400Configuration {
     /**
      * ID of the AS/400 user.
      */
-    @UriPath
+    @UriPath @Metadata(required = "true")
     private String userID;
 
     /**
      * Password of the AS/400 user.
      */
-    @UriPath
+    @UriPath @Metadata(required = "true")
     private String password;
 
     /**
      * Name of the AS/400 system.
      */
-    @UriPath
+    @UriPath @Metadata(required = "true")
     private String systemName;
 
     /**
      * Fully qualified integrated file system path name of the target object of
      * this endpoint (either data queue or program).
      */
-    @UriPath
+    @UriPath @Metadata(required = "true")
     private String objectPath;
 
-    @UriPath
+    @UriPath @Metadata(required = "true")
     private Jt400Type type;
 
     /**
@@ -109,7 +110,7 @@ public class Jt400Configuration {
     /**
      * Data format for sending messages.
      */
-    @UriParam
+    @UriParam(defaultValue = "text")
     private Format format = Format.text;
     
     /**
@@ -124,7 +125,7 @@ public class Jt400Configuration {
     @UriParam
     private String searchKey;
 
-    @UriParam
+    @UriParam(defaultValue = "EQ")
     private SearchType searchType = SearchType.EQ;
 
     @UriParam

http://git-wip-us.apache.org/repos/asf/camel/blob/caf545fa/components/camel-jt400/src/main/java/org/apache/camel/component/jt400/Jt400Endpoint.java
----------------------------------------------------------------------
diff --git a/components/camel-jt400/src/main/java/org/apache/camel/component/jt400/Jt400Endpoint.java b/components/camel-jt400/src/main/java/org/apache/camel/component/jt400/Jt400Endpoint.java
index c9b522d..1ef1c09 100644
--- a/components/camel-jt400/src/main/java/org/apache/camel/component/jt400/Jt400Endpoint.java
+++ b/components/camel-jt400/src/main/java/org/apache/camel/component/jt400/Jt400Endpoint.java
@@ -33,7 +33,7 @@ import org.apache.camel.spi.UriParam;
 import org.apache.camel.util.ObjectHelper;
 import org.apache.camel.util.URISupport;
 
-@UriEndpoint(scheme = "jt400", consumerClass = Jt400DataQueueConsumer.class, label = "messaging")
+@UriEndpoint(scheme = "jt400", syntax = "jt400:userID:password/systemName/objectPath.type", consumerClass = Jt400DataQueueConsumer.class, label = "messaging")
 public class Jt400Endpoint extends DefaultPollingEndpoint {
 
     public static final String KEY = "KEY";

http://git-wip-us.apache.org/repos/asf/camel/blob/caf545fa/components/camel-kafka/src/main/java/org/apache/camel/component/kafka/KafkaEndpoint.java
----------------------------------------------------------------------
diff --git a/components/camel-kafka/src/main/java/org/apache/camel/component/kafka/KafkaEndpoint.java b/components/camel-kafka/src/main/java/org/apache/camel/component/kafka/KafkaEndpoint.java
index aa33d4b..8009174 100644
--- a/components/camel-kafka/src/main/java/org/apache/camel/component/kafka/KafkaEndpoint.java
+++ b/components/camel-kafka/src/main/java/org/apache/camel/component/kafka/KafkaEndpoint.java
@@ -29,14 +29,15 @@ import org.apache.camel.Producer;
 import org.apache.camel.impl.DefaultEndpoint;
 import org.apache.camel.impl.DefaultExchange;
 import org.apache.camel.impl.DefaultMessage;
+import org.apache.camel.spi.Metadata;
 import org.apache.camel.spi.UriEndpoint;
 import org.apache.camel.spi.UriParam;
 import org.apache.camel.spi.UriPath;
 
-@UriEndpoint(scheme = "kafka", consumerClass = KafkaConsumer.class, label = "messaging")
+@UriEndpoint(scheme = "kafka", syntax = "kafka:brokers", consumerClass = KafkaConsumer.class, label = "messaging")
 public class KafkaEndpoint extends DefaultEndpoint implements MultipleConsumersSupport {
 
-    @UriPath
+    @UriPath @Metadata(required = "true")
     private String brokers;
     @UriParam
     private KafkaConfiguration configuration = new KafkaConfiguration();

http://git-wip-us.apache.org/repos/asf/camel/blob/caf545fa/components/camel-kestrel/src/main/java/org/apache/camel/component/kestrel/KestrelConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-kestrel/src/main/java/org/apache/camel/component/kestrel/KestrelConfiguration.java b/components/camel-kestrel/src/main/java/org/apache/camel/component/kestrel/KestrelConfiguration.java
index b8f09ac..b697eaa 100644
--- a/components/camel-kestrel/src/main/java/org/apache/camel/component/kestrel/KestrelConfiguration.java
+++ b/components/camel-kestrel/src/main/java/org/apache/camel/component/kestrel/KestrelConfiguration.java
@@ -38,7 +38,7 @@ public class KestrelConfiguration implements Cloneable {
     /**
      * The address(es) on which kestrel is running
      */
-    @UriPath
+    @UriPath(defaultValue = "localhost:22133")
     private String[] addresses = new String[]{"localhost:" + DEFAULT_KESTREL_PORT};
 
     /**

http://git-wip-us.apache.org/repos/asf/camel/blob/caf545fa/components/camel-kestrel/src/main/java/org/apache/camel/component/kestrel/KestrelEndpoint.java
----------------------------------------------------------------------
diff --git a/components/camel-kestrel/src/main/java/org/apache/camel/component/kestrel/KestrelEndpoint.java b/components/camel-kestrel/src/main/java/org/apache/camel/component/kestrel/KestrelEndpoint.java
index 4aa23c8..4bebc1f 100644
--- a/components/camel-kestrel/src/main/java/org/apache/camel/component/kestrel/KestrelEndpoint.java
+++ b/components/camel-kestrel/src/main/java/org/apache/camel/component/kestrel/KestrelEndpoint.java
@@ -21,6 +21,7 @@ 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.UriParam;
 import org.apache.camel.spi.UriPath;
@@ -28,7 +29,7 @@ import org.apache.camel.spi.UriPath;
 /**
  * Camel endpoint for communication with a kestrel based queue.
  */
-@UriEndpoint(scheme = "kestrel", consumerClass = KestrelConsumer.class, label = "messaging")
+@UriEndpoint(scheme = "kestrel", syntax = "kestrel:addresses/queue", consumerClass = KestrelConsumer.class, label = "messaging")
 public class KestrelEndpoint extends DefaultEndpoint {
 
     /**
@@ -40,7 +41,7 @@ public class KestrelEndpoint extends DefaultEndpoint {
     /**
      * The queue we are polling
      */
-    @UriPath
+    @UriPath @Metadata(required = "true")
     private String queue;
 
     /**

http://git-wip-us.apache.org/repos/asf/camel/blob/caf545fa/components/camel-krati/src/main/java/org/apache/camel/component/krati/KratiEndpoint.java
----------------------------------------------------------------------
diff --git a/components/camel-krati/src/main/java/org/apache/camel/component/krati/KratiEndpoint.java b/components/camel-krati/src/main/java/org/apache/camel/component/krati/KratiEndpoint.java
index e7124c6..b6ab61f 100644
--- a/components/camel-krati/src/main/java/org/apache/camel/component/krati/KratiEndpoint.java
+++ b/components/camel-krati/src/main/java/org/apache/camel/component/krati/KratiEndpoint.java
@@ -32,6 +32,7 @@ import org.apache.camel.Processor;
 import org.apache.camel.Producer;
 import org.apache.camel.component.krati.serializer.KratiDefaultSerializer;
 import org.apache.camel.impl.ScheduledPollEndpoint;
+import org.apache.camel.spi.Metadata;
 import org.apache.camel.spi.UriEndpoint;
 import org.apache.camel.spi.UriParam;
 import org.apache.camel.spi.UriPath;
@@ -39,12 +40,12 @@ import org.apache.camel.spi.UriPath;
 /**
  * Represents a Krati endpoint.
  */
-@UriEndpoint(scheme = "krati", consumerClass = KratiConsumer.class, label = "database,nosql")
+@UriEndpoint(scheme = "krati", syntax = "krati:path", consumerClass = KratiConsumer.class, label = "database,nosql")
 public class KratiEndpoint extends ScheduledPollEndpoint {
 
     protected static Map<String, KratiDataStoreRegistration> dataStoreRegistry = new HashMap<String, KratiDataStoreRegistration>();
 
-    @UriPath
+    @UriPath @Metadata(required = "true")
     protected String path;
     @UriParam
     protected String key;

http://git-wip-us.apache.org/repos/asf/camel/blob/caf545fa/components/camel-ldap/src/main/java/org/apache/camel/component/ldap/LdapEndpoint.java
----------------------------------------------------------------------
diff --git a/components/camel-ldap/src/main/java/org/apache/camel/component/ldap/LdapEndpoint.java b/components/camel-ldap/src/main/java/org/apache/camel/component/ldap/LdapEndpoint.java
index 05dacb8..47bfe9c 100644
--- a/components/camel-ldap/src/main/java/org/apache/camel/component/ldap/LdapEndpoint.java
+++ b/components/camel-ldap/src/main/java/org/apache/camel/component/ldap/LdapEndpoint.java
@@ -24,6 +24,7 @@ import org.apache.camel.Processor;
 import org.apache.camel.Producer;
 import org.apache.camel.RuntimeCamelException;
 import org.apache.camel.impl.DefaultEndpoint;
+import org.apache.camel.spi.Metadata;
 import org.apache.camel.spi.UriEndpoint;
 import org.apache.camel.spi.UriParam;
 import org.apache.camel.spi.UriPath;
@@ -31,14 +32,14 @@ import org.apache.camel.spi.UriPath;
 /**
  * Represents an endpoint that synchronously invokes an LDAP server when a producer sends a message to it.
  */
-@UriEndpoint(scheme = "ldap", producerOnly = true, label = "ldap")
+@UriEndpoint(scheme = "ldap", syntax = "ldap:dirContextName", producerOnly = true, label = "ldap")
 public class LdapEndpoint extends DefaultEndpoint {
     public static final String SYSTEM_DN = "ou=system";
     public static final String OBJECT_SCOPE = "object";
     public static final String ONELEVEL_SCOPE = "onelevel";
     public static final String SUBTREE_SCOPE = "subtree";
 
-    @UriPath
+    @UriPath @Metadata(required = "true")
     private String dirContextName;
     @UriParam(defaultValue = SYSTEM_DN)
     private String base = SYSTEM_DN;

http://git-wip-us.apache.org/repos/asf/camel/blob/caf545fa/components/camel-linkedin/camel-linkedin-component/src/main/java/org/apache/camel/component/linkedin/LinkedInComponent.java
----------------------------------------------------------------------
diff --git a/components/camel-linkedin/camel-linkedin-component/src/main/java/org/apache/camel/component/linkedin/LinkedInComponent.java b/components/camel-linkedin/camel-linkedin-component/src/main/java/org/apache/camel/component/linkedin/LinkedInComponent.java
index a45a300..c815161 100644
--- a/components/camel-linkedin/camel-linkedin-component/src/main/java/org/apache/camel/component/linkedin/LinkedInComponent.java
+++ b/components/camel-linkedin/camel-linkedin-component/src/main/java/org/apache/camel/component/linkedin/LinkedInComponent.java
@@ -37,7 +37,6 @@ import org.slf4j.LoggerFactory;
 /**
  * Represents the component that manages {@link LinkedInEndpoint}.
  */
-@UriEndpoint(scheme = "linkedin", consumerClass = LinkedInConsumer.class, consumerPrefix = "consumer")
 public class LinkedInComponent extends AbstractApiComponent<LinkedInApiName, LinkedInConfiguration, LinkedInApiCollection> {
 
     private static final Logger LOG = LoggerFactory.getLogger(LinkedInComponent.class);

http://git-wip-us.apache.org/repos/asf/camel/blob/caf545fa/components/camel-linkedin/camel-linkedin-component/src/main/java/org/apache/camel/component/linkedin/LinkedInConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-linkedin/camel-linkedin-component/src/main/java/org/apache/camel/component/linkedin/LinkedInConfiguration.java b/components/camel-linkedin/camel-linkedin-component/src/main/java/org/apache/camel/component/linkedin/LinkedInConfiguration.java
index 8dd9fa1..3a043bd 100644
--- a/components/camel-linkedin/camel-linkedin-component/src/main/java/org/apache/camel/component/linkedin/LinkedInConfiguration.java
+++ b/components/camel-linkedin/camel-linkedin-component/src/main/java/org/apache/camel/component/linkedin/LinkedInConfiguration.java
@@ -21,6 +21,7 @@ import java.util.Map;
 
 import org.apache.camel.component.linkedin.api.OAuthScope;
 import org.apache.camel.component.linkedin.api.OAuthSecureStorage;
+import org.apache.camel.spi.UriParam;
 import org.apache.camel.spi.UriParams;
 import org.apache.camel.util.ObjectHelper;
 import org.apache.commons.lang3.builder.HashCodeBuilder;
@@ -31,20 +32,23 @@ import org.apache.commons.lang3.builder.HashCodeBuilder;
 @UriParams
 public class LinkedInConfiguration {
 
+    @UriParam
     private String userName;
+    @UriParam
     private String userPassword;
-
+    @UriParam
     private OAuthSecureStorage secureStorage;
-
+    @UriParam
     private String clientId;
+    @UriParam
     private String clientSecret;
-
+    @UriParam
     private OAuthScope[] scopes;
+    @UriParam
     private String redirectUri;
-
-
+    @UriParam
     private Map<String, Object> httpParams;
-
+    @UriParam(defaultValue = "true")
     private boolean lazyAuth = true;
 
     public String getUserName() {

http://git-wip-us.apache.org/repos/asf/camel/blob/caf545fa/components/camel-linkedin/camel-linkedin-component/src/main/java/org/apache/camel/component/linkedin/LinkedInEndpoint.java
----------------------------------------------------------------------
diff --git a/components/camel-linkedin/camel-linkedin-component/src/main/java/org/apache/camel/component/linkedin/LinkedInEndpoint.java b/components/camel-linkedin/camel-linkedin-component/src/main/java/org/apache/camel/component/linkedin/LinkedInEndpoint.java
index 381fb2a..b0e7a75 100644
--- a/components/camel-linkedin/camel-linkedin-component/src/main/java/org/apache/camel/component/linkedin/LinkedInEndpoint.java
+++ b/components/camel-linkedin/camel-linkedin-component/src/main/java/org/apache/camel/component/linkedin/LinkedInEndpoint.java
@@ -44,7 +44,7 @@ import org.apache.cxf.jaxrs.client.WebClient;
 /**
  * Represents a LinkedIn endpoint.
  */
-@UriEndpoint(scheme = "linkedin", consumerClass = LinkedInConsumer.class, consumerPrefix = "consumer")
+@UriEndpoint(scheme = "linkedin", syntax = "linkedin:apiName/methodName", consumerClass = LinkedInConsumer.class, consumerPrefix = "consumer")
 public class LinkedInEndpoint extends AbstractApiEndpoint<LinkedInApiName, LinkedInConfiguration> {
 
     protected static final String FIELDS_OPTION = "fields";

http://git-wip-us.apache.org/repos/asf/camel/blob/caf545fa/components/camel-lucene/src/main/java/org/apache/camel/component/lucene/LuceneConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-lucene/src/main/java/org/apache/camel/component/lucene/LuceneConfiguration.java b/components/camel-lucene/src/main/java/org/apache/camel/component/lucene/LuceneConfiguration.java
index 85c1f7d..92accd1 100644
--- a/components/camel-lucene/src/main/java/org/apache/camel/component/lucene/LuceneConfiguration.java
+++ b/components/camel-lucene/src/main/java/org/apache/camel/component/lucene/LuceneConfiguration.java
@@ -21,6 +21,7 @@ import java.net.URI;
 import java.net.URISyntaxException;
 import java.util.Map;
 
+import org.apache.camel.spi.Metadata;
 import org.apache.camel.spi.UriParam;
 import org.apache.camel.spi.UriParams;
 import org.apache.camel.spi.UriPath;
@@ -31,9 +32,9 @@ import org.apache.lucene.util.Version;
 @UriParams
 public class LuceneConfiguration {
     private URI uri;
-    @UriPath
+    @UriPath @Metadata(required = "true")
     private String host;
-    @UriPath
+    @UriPath @Metadata(required = "true")
     private String operation;
     @UriParam
     private String protocolType;

http://git-wip-us.apache.org/repos/asf/camel/blob/caf545fa/components/camel-lucene/src/main/java/org/apache/camel/component/lucene/LuceneEndpoint.java
----------------------------------------------------------------------
diff --git a/components/camel-lucene/src/main/java/org/apache/camel/component/lucene/LuceneEndpoint.java b/components/camel-lucene/src/main/java/org/apache/camel/component/lucene/LuceneEndpoint.java
index 3826f33..86c2f4f 100644
--- a/components/camel-lucene/src/main/java/org/apache/camel/component/lucene/LuceneEndpoint.java
+++ b/components/camel-lucene/src/main/java/org/apache/camel/component/lucene/LuceneEndpoint.java
@@ -25,7 +25,7 @@ import org.apache.camel.impl.DefaultEndpoint;
 import org.apache.camel.spi.UriEndpoint;
 import org.apache.camel.spi.UriParam;
 
-@UriEndpoint(scheme = "lucene", producerOnly = true, label = "database,search")
+@UriEndpoint(scheme = "lucene", syntax = "lucene:host:operation", producerOnly = true, label = "database,search")
 public class LuceneEndpoint extends DefaultEndpoint {
     @UriParam
     LuceneConfiguration config;

http://git-wip-us.apache.org/repos/asf/camel/blob/caf545fa/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailConfiguration.java b/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailConfiguration.java
index 917f9c2..d9cc01f 100644
--- a/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailConfiguration.java
+++ b/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailConfiguration.java
@@ -27,6 +27,7 @@ import javax.net.ssl.SSLContext;
 
 import org.apache.camel.CamelContext;
 import org.apache.camel.RuntimeCamelException;
+import org.apache.camel.spi.Metadata;
 import org.apache.camel.spi.UriParam;
 import org.apache.camel.spi.UriParams;
 import org.apache.camel.spi.UriPath;
@@ -45,7 +46,7 @@ public class MailConfiguration implements Cloneable {
     private Properties additionalJavaMailProperties;
     // protocol is implied by component name so it should not be in UriPath
     private String protocol;
-    @UriPath
+    @UriPath @Metadata(required = "true")
     private String host;
     @UriPath
     private int port = -1;
@@ -62,34 +63,34 @@ public class MailConfiguration implements Cloneable {
     private String from = MailConstants.MAIL_DEFAULT_FROM;
     @UriParam(defaultValue = MailConstants.MAIL_DEFAULT_FOLDER)
     private String folderName = MailConstants.MAIL_DEFAULT_FOLDER;
-    @UriParam(defaultValue = "false")
+    @UriParam
     private boolean delete;
     @UriParam
     private String copyTo;
     @UriParam(defaultValue = "true")
     private boolean unseen = true;
-    @UriParam(defaultValue = "false")
+    @UriParam
     private boolean ignoreUriScheme;
     private Map<Message.RecipientType, String> recipients = new HashMap<Message.RecipientType, String>();
     @UriParam
     private String replyTo;
     @UriParam(defaultValue = "-1")
     private int fetchSize = -1;
-    @UriParam(defaultValue = "false")
+    @UriParam
     private boolean debugMode;
     @UriParam(defaultValue = "" + MailConstants.MAIL_DEFAULT_CONNECTION_TIMEOUT)
     private int connectionTimeout = MailConstants.MAIL_DEFAULT_CONNECTION_TIMEOUT;
-    @UriParam(defaultValue = "false")
+    @UriParam
     private boolean dummyTrustManager;
     @UriParam(defaultValue = "text/plain")
     private String contentType = "text/plain";
     @UriParam(defaultValue = MailConstants.MAIL_ALTERNATIVE_BODY)
     private String alternativeBodyHeader = MailConstants.MAIL_ALTERNATIVE_BODY;
-    @UriParam(defaultValue = "false")
+    @UriParam
     private boolean useInlineAttachments;
-    @UriParam(defaultValue = "false")
+    @UriParam
     private boolean ignoreUnsupportedCharset;
-    @UriParam(defaultValue = "false")
+    @UriParam
     private boolean disconnect;
     @UriParam(defaultValue = "true")
     private boolean closeFolder = true;

http://git-wip-us.apache.org/repos/asf/camel/blob/caf545fa/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailEndpoint.java
----------------------------------------------------------------------
diff --git a/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailEndpoint.java b/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailEndpoint.java
index 6fe665a..f2e0080 100644
--- a/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailEndpoint.java
+++ b/components/camel-mail/src/main/java/org/apache/camel/component/mail/MailEndpoint.java
@@ -35,7 +35,7 @@ import org.apache.camel.spi.UriParam;
 /**
  * Endpoint for Camel Mail.
  */
-@UriEndpoint(scheme = "imap,imaps,pop3,pop3s,smtp,smtps", consumerClass = MailConsumer.class, label = "mail")
+@UriEndpoint(scheme = "imap,imaps,pop3,pop3s,smtp,smtps", syntax = "imap:host:port", consumerClass = MailConsumer.class, label = "mail")
 public class MailEndpoint extends ScheduledPollEndpoint {
     private MailBinding binding;
     @UriParam

http://git-wip-us.apache.org/repos/asf/camel/blob/caf545fa/components/camel-metrics/src/main/java/org/apache/camel/component/metrics/MetricsEndpoint.java
----------------------------------------------------------------------
diff --git a/components/camel-metrics/src/main/java/org/apache/camel/component/metrics/MetricsEndpoint.java b/components/camel-metrics/src/main/java/org/apache/camel/component/metrics/MetricsEndpoint.java
index 652ee4d..29cfb8f 100644
--- a/components/camel-metrics/src/main/java/org/apache/camel/component/metrics/MetricsEndpoint.java
+++ b/components/camel-metrics/src/main/java/org/apache/camel/component/metrics/MetricsEndpoint.java
@@ -23,18 +23,19 @@ import org.apache.camel.Processor;
 import org.apache.camel.Producer;
 import org.apache.camel.RuntimeCamelException;
 import org.apache.camel.impl.DefaultEndpoint;
+import org.apache.camel.spi.Metadata;
 import org.apache.camel.spi.UriEndpoint;
 import org.apache.camel.spi.UriParam;
 import org.apache.camel.spi.UriPath;
 
-@UriEndpoint(scheme = "metrics", producerOnly = true, label = "monitoring")
+@UriEndpoint(scheme = "metrics", syntax = "metrics:metricsType:metricsName", producerOnly = true, label = "monitoring")
 public class MetricsEndpoint extends DefaultEndpoint {
 
     protected final MetricRegistry registry;
 
-    @UriPath(description = "Type of metrics")
+    @UriPath(description = "Type of metrics") @Metadata(required = "true")
     protected final MetricsType metricsType;
-    @UriPath(description = "Name of metrics")
+    @UriPath(description = "Name of metrics") @Metadata(required = "true")
     protected final String metricsName;
     @UriParam(description = "Action when using timer type")
     private MetricsTimerAction action;

http://git-wip-us.apache.org/repos/asf/camel/blob/caf545fa/components/camel-mina/src/main/java/org/apache/camel/component/mina/MinaConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-mina/src/main/java/org/apache/camel/component/mina/MinaConfiguration.java b/components/camel-mina/src/main/java/org/apache/camel/component/mina/MinaConfiguration.java
index 9663637..1fedd2a 100644
--- a/components/camel-mina/src/main/java/org/apache/camel/component/mina/MinaConfiguration.java
+++ b/components/camel-mina/src/main/java/org/apache/camel/component/mina/MinaConfiguration.java
@@ -21,6 +21,7 @@ import java.util.List;
 
 import org.apache.camel.LoggingLevel;
 import org.apache.camel.RuntimeCamelException;
+import org.apache.camel.spi.Metadata;
 import org.apache.camel.spi.UriParam;
 import org.apache.camel.spi.UriParams;
 import org.apache.camel.spi.UriPath;
@@ -32,15 +33,15 @@ import org.apache.mina.filter.codec.ProtocolCodecFactory;
  */
 @UriParams
 public class MinaConfiguration implements Cloneable {
-    @UriPath
+    @UriPath @Metadata(required = "true")
     private String protocol;
-    @UriPath
+    @UriPath @Metadata(required = "true")
     private String host;
-    @UriPath
+    @UriPath @Metadata(required = "true")
     private int port;
     @UriParam(defaultValue = "true")
     private boolean sync = true;
-    @UriParam(defaultValue = "false")
+    @UriParam
     private boolean textline;
     @UriParam
     private TextLineDelimiter textlineDelimiter;
@@ -52,9 +53,9 @@ public class MinaConfiguration implements Cloneable {
     private long timeout = 30000;
     @UriParam(defaultValue = "true")
     private boolean lazySessionCreation = true;
-    @UriParam(defaultValue = "false")
+    @UriParam
     private boolean transferExchange;
-    @UriParam(defaultValue = "false")
+    @UriParam
     private boolean minaLogger;
     @UriParam(defaultValue = "-1")
     private int encoderMaxLineLength = -1;
@@ -64,13 +65,13 @@ public class MinaConfiguration implements Cloneable {
     private List<IoFilter> filters;
     @UriParam(defaultValue = "true")
     private boolean allowDefaultCodec = true;
-    @UriParam(defaultValue = "false")
+    @UriParam
     private boolean disconnect;
     @UriParam(defaultValue = "true")
     private boolean disconnectOnNoReply = true;
     @UriParam(defaultValue = "WARN")
     private LoggingLevel noReplyLogLevel = LoggingLevel.WARN;
-    @UriParam(defaultValue = "false")
+    @UriParam
     private boolean clientMode;
 
     /**

http://git-wip-us.apache.org/repos/asf/camel/blob/caf545fa/components/camel-mina/src/main/java/org/apache/camel/component/mina/MinaEndpoint.java
----------------------------------------------------------------------
diff --git a/components/camel-mina/src/main/java/org/apache/camel/component/mina/MinaEndpoint.java b/components/camel-mina/src/main/java/org/apache/camel/component/mina/MinaEndpoint.java
index 78c9f30..b0c5484 100644
--- a/components/camel-mina/src/main/java/org/apache/camel/component/mina/MinaEndpoint.java
+++ b/components/camel-mina/src/main/java/org/apache/camel/component/mina/MinaEndpoint.java
@@ -41,7 +41,7 @@ import org.apache.mina.common.IoSession;
  *
  * @version 
  */
-@UriEndpoint(scheme = "mina", consumerClass = MinaConsumer.class, label = "networking,tcp,udp")
+@UriEndpoint(scheme = "mina", syntax = "mina:protocol:host:port", consumerClass = MinaConsumer.class, label = "networking,tcp,udp")
 public class MinaEndpoint extends DefaultEndpoint implements MultipleConsumersSupport {
 
     /** The key of the IoSession which is stored in the message header*/

http://git-wip-us.apache.org/repos/asf/camel/blob/caf545fa/components/camel-mina2/src/main/java/org/apache/camel/component/mina2/Mina2Configuration.java
----------------------------------------------------------------------
diff --git a/components/camel-mina2/src/main/java/org/apache/camel/component/mina2/Mina2Configuration.java b/components/camel-mina2/src/main/java/org/apache/camel/component/mina2/Mina2Configuration.java
index e5de9f3..c1041af 100644
--- a/components/camel-mina2/src/main/java/org/apache/camel/component/mina2/Mina2Configuration.java
+++ b/components/camel-mina2/src/main/java/org/apache/camel/component/mina2/Mina2Configuration.java
@@ -21,6 +21,7 @@ import java.util.List;
 
 import org.apache.camel.LoggingLevel;
 import org.apache.camel.RuntimeCamelException;
+import org.apache.camel.spi.Metadata;
 import org.apache.camel.spi.UriParam;
 import org.apache.camel.spi.UriParams;
 import org.apache.camel.spi.UriPath;
@@ -34,15 +35,15 @@ import org.apache.mina.filter.codec.ProtocolCodecFactory;
 @UriParams
 public class Mina2Configuration implements Cloneable {
 
-    @UriPath
+    @UriPath @Metadata(required = "true")
     private String protocol;
-    @UriPath
+    @UriPath @Metadata(required = "true")
     private String host;
-    @UriPath
+    @UriPath @Metadata(required = "true")
     private int port;
     @UriParam(defaultValue = "true")
     private boolean sync = true;
-    @UriParam(defaultValue = "false")
+    @UriParam
     private boolean textline;
     @UriParam
     private Mina2TextLineDelimiter textlineDelimiter;
@@ -54,9 +55,9 @@ public class Mina2Configuration implements Cloneable {
     private long timeout = 30000;
     @UriParam(defaultValue = "true")
     private boolean lazySessionCreation = true;
-    @UriParam(defaultValue = "false")
+    @UriParam
     private boolean transferExchange;
-    @UriParam(defaultValue = "false")
+    @UriParam
     private boolean minaLogger;
     @UriParam(defaultValue = "-1")
     private int encoderMaxLineLength = -1;
@@ -66,7 +67,7 @@ public class Mina2Configuration implements Cloneable {
     private List<IoFilter> filters;
     @UriParam(defaultValue = "true")
     private boolean allowDefaultCodec = true;
-    @UriParam(defaultValue = "false")
+    @UriParam
     private boolean disconnect;
     @UriParam(defaultValue = "true")
     private boolean disconnectOnNoReply = true;
@@ -82,7 +83,7 @@ public class Mina2Configuration implements Cloneable {
     private boolean orderedThreadPoolExecutor = true;
     @UriParam(defaultValue = "true")
     private boolean cachedAddress = true;
-    @UriParam(defaultValue = "false")
+    @UriParam
     private boolean clientMode;
 
     /**

http://git-wip-us.apache.org/repos/asf/camel/blob/caf545fa/components/camel-mina2/src/main/java/org/apache/camel/component/mina2/Mina2Endpoint.java
----------------------------------------------------------------------
diff --git a/components/camel-mina2/src/main/java/org/apache/camel/component/mina2/Mina2Endpoint.java b/components/camel-mina2/src/main/java/org/apache/camel/component/mina2/Mina2Endpoint.java
index 8f1456f..efb80b6 100644
--- a/components/camel-mina2/src/main/java/org/apache/camel/component/mina2/Mina2Endpoint.java
+++ b/components/camel-mina2/src/main/java/org/apache/camel/component/mina2/Mina2Endpoint.java
@@ -33,7 +33,7 @@ import org.apache.mina.core.session.IoSession;
  *
  * @version 
  */
-@UriEndpoint(scheme = "mina2", consumerClass = Mina2Consumer.class, label = "networking,tcp,udp")
+@UriEndpoint(scheme = "mina2", syntax = "mina2:protocol:host:port", consumerClass = Mina2Consumer.class, label = "networking,tcp,udp")
 public class Mina2Endpoint extends DefaultEndpoint implements MultipleConsumersSupport {
 
     @UriParam

http://git-wip-us.apache.org/repos/asf/camel/blob/caf545fa/components/camel-mongodb/src/main/java/org/apache/camel/component/mongodb/MongoDbEndpoint.java
----------------------------------------------------------------------
diff --git a/components/camel-mongodb/src/main/java/org/apache/camel/component/mongodb/MongoDbEndpoint.java b/components/camel-mongodb/src/main/java/org/apache/camel/component/mongodb/MongoDbEndpoint.java
index aba61fd..e2eb6df 100644
--- a/components/camel-mongodb/src/main/java/org/apache/camel/component/mongodb/MongoDbEndpoint.java
+++ b/components/camel-mongodb/src/main/java/org/apache/camel/component/mongodb/MongoDbEndpoint.java
@@ -38,6 +38,7 @@ import org.apache.camel.Producer;
 import org.apache.camel.impl.DefaultEndpoint;
 import org.apache.camel.impl.DefaultExchange;
 import org.apache.camel.impl.DefaultMessage;
+import org.apache.camel.spi.Metadata;
 import org.apache.camel.spi.UriEndpoint;
 import org.apache.camel.spi.UriParam;
 import org.apache.camel.spi.UriPath;
@@ -45,14 +46,14 @@ import org.apache.camel.util.ObjectHelper;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-@UriEndpoint(scheme = "mongodb", consumerClass = MongoDbTailableCursorConsumer.class, label = "database,nosql")
+@UriEndpoint(scheme = "mongodb", syntax = "mongodb:connectionBean", consumerClass = MongoDbTailableCursorConsumer.class, label = "database,nosql")
 public class MongoDbEndpoint extends DefaultEndpoint {
 
     private static final Logger LOG = LoggerFactory.getLogger(MongoDbEndpoint.class);
 
     private Mongo mongoConnection;
 
-    @UriPath
+    @UriPath @Metadata(required = "true")
     private String connectionBean;
     @UriParam
     private String database;
@@ -64,16 +65,16 @@ public class MongoDbEndpoint extends DefaultEndpoint {
     private MongoDbOperation operation;
     @UriParam(defaultValue = "true")
     private boolean createCollection = true;
-    @UriParam(defaultValue = "false")
+    @UriParam
     private boolean invokeGetLastError;
     @UriParam
     private WriteConcern writeConcern;
     private WriteConcern writeConcernRef;
     @UriParam
     private ReadPreference readPreference;
-    @UriParam(defaultValue = "false")
+    @UriParam
     private boolean dynamicity;
-    @UriParam(defaultValue = "false")
+    @UriParam
     private boolean writeResultAsHeader;
     // tailable cursor consumer by default
     private MongoDbConsumerType consumerType;
@@ -83,7 +84,7 @@ public class MongoDbEndpoint extends DefaultEndpoint {
     private String tailTrackIncreasingField;
 
     // persitent tail tracking
-    @UriParam(defaultValue = "false")
+    @UriParam
     private boolean persistentTailTracking;
     @UriParam
     private String persistentId;

http://git-wip-us.apache.org/repos/asf/camel/blob/caf545fa/components/camel-mqtt/src/main/java/org/apache/camel/component/mqtt/MQTTEndpoint.java
----------------------------------------------------------------------
diff --git a/components/camel-mqtt/src/main/java/org/apache/camel/component/mqtt/MQTTEndpoint.java b/components/camel-mqtt/src/main/java/org/apache/camel/component/mqtt/MQTTEndpoint.java
index 3955240..d5dbfca 100644
--- a/components/camel-mqtt/src/main/java/org/apache/camel/component/mqtt/MQTTEndpoint.java
+++ b/components/camel-mqtt/src/main/java/org/apache/camel/component/mqtt/MQTTEndpoint.java
@@ -26,6 +26,7 @@ import org.apache.camel.Exchange;
 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.UriParam;
 import org.apache.camel.spi.UriPath;
@@ -44,14 +45,14 @@ import org.slf4j.LoggerFactory;
 /**
  * MQTT endpoint
  */
-@UriEndpoint(scheme = "mqtt", consumerClass = MQTTConsumer.class, label = "messaging")
+@UriEndpoint(scheme = "mqtt", syntax = "mqtt:name", consumerClass = MQTTConsumer.class, label = "messaging")
 public class MQTTEndpoint extends DefaultEndpoint {
     private static final Logger LOG = LoggerFactory.getLogger(MQTTEndpoint.class);
 
     private static final int PUBLISH_MAX_RECONNECT_ATTEMPTS = 3;
 
     private CallbackConnection connection;
-    @UriPath
+    @UriPath @Metadata(required = "true")
     private String name;
     @UriParam
     private final MQTTConfiguration configuration;

http://git-wip-us.apache.org/repos/asf/camel/blob/caf545fa/components/camel-msv/src/main/java/org/apache/camel/component/validator/msv/MsvEndpoint.java
----------------------------------------------------------------------
diff --git a/components/camel-msv/src/main/java/org/apache/camel/component/validator/msv/MsvEndpoint.java b/components/camel-msv/src/main/java/org/apache/camel/component/validator/msv/MsvEndpoint.java
index 3ab3037..d61e2d5 100644
--- a/components/camel-msv/src/main/java/org/apache/camel/component/validator/msv/MsvEndpoint.java
+++ b/components/camel-msv/src/main/java/org/apache/camel/component/validator/msv/MsvEndpoint.java
@@ -24,7 +24,7 @@ import org.apache.camel.processor.validation.ValidatingProcessor;
 import org.apache.camel.spi.UriEndpoint;
 import org.iso_relax.verifier.jaxp.validation.RELAXNGSchemaFactoryImpl;
 
-@UriEndpoint(scheme = "msv", producerOnly = true, label = "validation")
+@UriEndpoint(scheme = "msv", syntax = "msv:resourceUri", producerOnly = true, label = "validation")
 public class MsvEndpoint extends ValidatorEndpoint {
 
     public MsvEndpoint(String endpointUri, Component component, String resourceUri) {

http://git-wip-us.apache.org/repos/asf/camel/blob/caf545fa/components/camel-mustache/src/main/java/org/apache/camel/component/mustache/MustacheEndpoint.java
----------------------------------------------------------------------
diff --git a/components/camel-mustache/src/main/java/org/apache/camel/component/mustache/MustacheEndpoint.java b/components/camel-mustache/src/main/java/org/apache/camel/component/mustache/MustacheEndpoint.java
index 19a7b37..d0b4fac 100644
--- a/components/camel-mustache/src/main/java/org/apache/camel/component/mustache/MustacheEndpoint.java
+++ b/components/camel-mustache/src/main/java/org/apache/camel/component/mustache/MustacheEndpoint.java
@@ -42,7 +42,7 @@ import static org.apache.camel.component.mustache.MustacheConstants.MUSTACHE_TEM
 /**
  * Represents a Camel Mustache endpoint.
  */
-@UriEndpoint(scheme = "mustache", producerOnly = true, label = "transformation")
+@UriEndpoint(scheme = "mustache", syntax = "mustache:resourceUri", producerOnly = true, label = "transformation")
 public class MustacheEndpoint extends ResourceEndpoint {
 
     private MustacheFactory mustacheFactory;

http://git-wip-us.apache.org/repos/asf/camel/blob/caf545fa/components/camel-mvel/src/main/java/org/apache/camel/component/mvel/MvelEndpoint.java
----------------------------------------------------------------------
diff --git a/components/camel-mvel/src/main/java/org/apache/camel/component/mvel/MvelEndpoint.java b/components/camel-mvel/src/main/java/org/apache/camel/component/mvel/MvelEndpoint.java
index a32f065..5a959fc 100644
--- a/components/camel-mvel/src/main/java/org/apache/camel/component/mvel/MvelEndpoint.java
+++ b/components/camel-mvel/src/main/java/org/apache/camel/component/mvel/MvelEndpoint.java
@@ -34,7 +34,7 @@ import org.mvel2.templates.CompiledTemplate;
 import org.mvel2.templates.TemplateCompiler;
 import org.mvel2.templates.TemplateRuntime;
 
-@UriEndpoint(scheme = "mvel", producerOnly = true, label = "transformation,script")
+@UriEndpoint(scheme = "mvel", syntax = "mvel:resourceUri", producerOnly = true, label = "transformation,script")
 public class MvelEndpoint extends ResourceEndpoint {
 
     @UriParam

http://git-wip-us.apache.org/repos/asf/camel/blob/caf545fa/components/camel-mybatis/src/main/java/org/apache/camel/component/mybatis/MyBatisEndpoint.java
----------------------------------------------------------------------
diff --git a/components/camel-mybatis/src/main/java/org/apache/camel/component/mybatis/MyBatisEndpoint.java b/components/camel-mybatis/src/main/java/org/apache/camel/component/mybatis/MyBatisEndpoint.java
index ea77ec2..7ac6378 100644
--- a/components/camel-mybatis/src/main/java/org/apache/camel/component/mybatis/MyBatisEndpoint.java
+++ b/components/camel-mybatis/src/main/java/org/apache/camel/component/mybatis/MyBatisEndpoint.java
@@ -23,6 +23,7 @@ import org.apache.camel.Consumer;
 import org.apache.camel.Processor;
 import org.apache.camel.Producer;
 import org.apache.camel.impl.DefaultPollingEndpoint;
+import org.apache.camel.spi.Metadata;
 import org.apache.camel.spi.UriEndpoint;
 import org.apache.camel.spi.UriParam;
 import org.apache.camel.spi.UriPath;
@@ -33,12 +34,12 @@ import org.apache.ibatis.session.SqlSessionFactory;
 /**
  * @version 
  */
-@UriEndpoint(scheme = "mybatis", consumerClass =  MyBatisConsumer.class, label = "database")
+@UriEndpoint(scheme = "mybatis", syntax = "mybatis:statement", consumerClass =  MyBatisConsumer.class, label = "database")
 public class MyBatisEndpoint extends DefaultPollingEndpoint {
 
     private MyBatisProcessingStrategy processingStrategy = new DefaultMyBatisProcessingStrategy();
     private ExecutorType executorType;
-    @UriPath
+    @UriPath @Metadata(required = "true")
     private String statement;
     @UriParam
     private StatementType statementType;

http://git-wip-us.apache.org/repos/asf/camel/blob/caf545fa/components/camel-nagios/src/main/java/org/apache/camel/component/nagios/NagiosConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-nagios/src/main/java/org/apache/camel/component/nagios/NagiosConfiguration.java b/components/camel-nagios/src/main/java/org/apache/camel/component/nagios/NagiosConfiguration.java
index 9d3460e..319ab3d 100644
--- a/components/camel-nagios/src/main/java/org/apache/camel/component/nagios/NagiosConfiguration.java
+++ b/components/camel-nagios/src/main/java/org/apache/camel/component/nagios/NagiosConfiguration.java
@@ -21,6 +21,7 @@ import java.net.URI;
 import com.googlecode.jsendnsca.core.Encryption;
 import com.googlecode.jsendnsca.core.NagiosSettings;
 import org.apache.camel.RuntimeCamelException;
+import org.apache.camel.spi.Metadata;
 import org.apache.camel.spi.UriParam;
 import org.apache.camel.spi.UriParams;
 import org.apache.camel.spi.UriPath;
@@ -34,9 +35,9 @@ public class NagiosConfiguration implements Cloneable {
 
     private transient NagiosSettings nagiosSettings;
 
-    @UriPath
+    @UriPath @Metadata(required = "true")
     private String host;
-    @UriPath
+    @UriPath @Metadata(required = "true")
     private int port;
     @UriParam(defaultValue = "5000")
     private int connectionTimeout = 5000;

http://git-wip-us.apache.org/repos/asf/camel/blob/caf545fa/components/camel-nagios/src/main/java/org/apache/camel/component/nagios/NagiosEndpoint.java
----------------------------------------------------------------------
diff --git a/components/camel-nagios/src/main/java/org/apache/camel/component/nagios/NagiosEndpoint.java b/components/camel-nagios/src/main/java/org/apache/camel/component/nagios/NagiosEndpoint.java
index 97499a4..2f5f5f3 100644
--- a/components/camel-nagios/src/main/java/org/apache/camel/component/nagios/NagiosEndpoint.java
+++ b/components/camel-nagios/src/main/java/org/apache/camel/component/nagios/NagiosEndpoint.java
@@ -31,7 +31,7 @@ import org.apache.camel.util.ObjectHelper;
 /**
  * @version 
  */
-@UriEndpoint(scheme = "nagios", producerOnly = true, label = "monitoring")
+@UriEndpoint(scheme = "nagios", syntax = "nagios:host:port", producerOnly = true, label = "monitoring")
 public class NagiosEndpoint extends DefaultEndpoint {
 
     private INagiosPassiveCheckSender sender;

http://git-wip-us.apache.org/repos/asf/camel/blob/caf545fa/components/camel-netty-http/src/main/java/org/apache/camel/component/netty/http/NettyHttpConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-netty-http/src/main/java/org/apache/camel/component/netty/http/NettyHttpConfiguration.java b/components/camel-netty-http/src/main/java/org/apache/camel/component/netty/http/NettyHttpConfiguration.java
index adfad5c..28c314d 100644
--- a/components/camel-netty-http/src/main/java/org/apache/camel/component/netty/http/NettyHttpConfiguration.java
+++ b/components/camel-netty-http/src/main/java/org/apache/camel/component/netty/http/NettyHttpConfiguration.java
@@ -23,6 +23,7 @@ import org.apache.camel.RuntimeCamelException;
 import org.apache.camel.component.netty.NettyConfiguration;
 import org.apache.camel.spi.UriParam;
 import org.apache.camel.spi.UriParams;
+import org.apache.camel.spi.UriPath;
 import org.jboss.netty.channel.ChannelHandler;
 
 /**
@@ -31,23 +32,23 @@ import org.jboss.netty.channel.ChannelHandler;
 @UriParams
 public class NettyHttpConfiguration extends NettyConfiguration {
 
-    @UriParam(defaultValue = "false")
+    @UriPath
+    private String path;
+    @UriParam
     private boolean urlDecodeHeaders;
     @UriParam(defaultValue = "true")
     private boolean mapHeaders = true;
-    @UriParam(defaultValue = "false")
+    @UriParam
     private boolean compression;
     @UriParam(defaultValue = "true")
     private boolean throwExceptionOnFailure = true;
-    @UriParam(defaultValue = "false")
+    @UriParam
     private boolean transferException;
-    @UriParam(defaultValue = "false")
+    @UriParam
     private boolean matchOnUriPrefix;
-    @UriParam(defaultValue = "false")
+    @UriParam
     private boolean bridgeEndpoint;
     @UriParam
-    private String path;
-    @UriParam(defaultValue = "false")
     private boolean disableStreamCache;
     @UriParam(defaultValue = "true")
     private boolean send503whenSuspended = true;

http://git-wip-us.apache.org/repos/asf/camel/blob/caf545fa/components/camel-netty-http/src/main/java/org/apache/camel/component/netty/http/NettyHttpEndpoint.java
----------------------------------------------------------------------
diff --git a/components/camel-netty-http/src/main/java/org/apache/camel/component/netty/http/NettyHttpEndpoint.java b/components/camel-netty-http/src/main/java/org/apache/camel/component/netty/http/NettyHttpEndpoint.java
index 4609b7c..1443d1a 100644
--- a/components/camel-netty-http/src/main/java/org/apache/camel/component/netty/http/NettyHttpEndpoint.java
+++ b/components/camel-netty-http/src/main/java/org/apache/camel/component/netty/http/NettyHttpEndpoint.java
@@ -39,7 +39,7 @@ import org.slf4j.LoggerFactory;
 /**
  * HTTP based {@link NettyEndpoint}
  */
-@UriEndpoint(scheme = "netty-http", consumerClass = NettyHttpConsumer.class, label = "http")
+@UriEndpoint(scheme = "netty-http", syntax = "netty-http:host:port/path", consumerClass = NettyHttpConsumer.class, label = "http")
 public class NettyHttpEndpoint extends NettyEndpoint implements HeaderFilterStrategyAware {
 
     private static final Logger LOG = LoggerFactory.getLogger(NettyHttpEndpoint.class);
@@ -47,7 +47,7 @@ public class NettyHttpEndpoint extends NettyEndpoint implements HeaderFilterStra
     private HeaderFilterStrategy headerFilterStrategy;
     @UriParam
     private NettyHttpConfiguration configuration;
-    @UriParam(defaultValue = "false")
+    @UriParam
     private boolean traceEnabled;
     @UriParam
     private String httpMethodRestrict;

http://git-wip-us.apache.org/repos/asf/camel/blob/caf545fa/components/camel-netty/src/main/java/org/apache/camel/component/netty/NettyConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-netty/src/main/java/org/apache/camel/component/netty/NettyConfiguration.java b/components/camel-netty/src/main/java/org/apache/camel/component/netty/NettyConfiguration.java
index 9f0973e..ccbbef9 100644
--- a/components/camel-netty/src/main/java/org/apache/camel/component/netty/NettyConfiguration.java
+++ b/components/camel-netty/src/main/java/org/apache/camel/component/netty/NettyConfiguration.java
@@ -46,7 +46,7 @@ public class NettyConfiguration extends NettyServerBootstrapConfiguration implem
     private long requestTimeout;
     @UriParam(defaultValue = "true")
     private boolean sync = true;
-    @UriParam(defaultValue = "false")
+    @UriParam
     private boolean textline;
     @UriParam(defaultValue = "LINE")
     private TextLineDelimiter delimiter = TextLineDelimiter.LINE;
@@ -58,7 +58,7 @@ public class NettyConfiguration extends NettyServerBootstrapConfiguration implem
     private String encoding;
     private List<ChannelHandler> encoders = new ArrayList<ChannelHandler>();
     private List<ChannelHandler> decoders = new ArrayList<ChannelHandler>();
-    @UriParam(defaultValue = "false")
+    @UriParam
     private boolean disconnect;
     @UriParam(defaultValue = "true")
     private boolean lazyChannelCreation = true;
@@ -90,9 +90,9 @@ public class NettyConfiguration extends NettyServerBootstrapConfiguration implem
     private long producerPoolMinEvictableIdle = 5 * 60 * 1000L;
     @UriParam(defaultValue = "true")
     private boolean producerPoolEnabled = true;
-    @UriParam(defaultValue = "false")
+    @UriParam
     private boolean udpConnectionlessSending;
-    @UriParam(defaultValue = "false") 
+    @UriParam
     private boolean clientMode;
 
     /**

http://git-wip-us.apache.org/repos/asf/camel/blob/caf545fa/components/camel-netty/src/main/java/org/apache/camel/component/netty/NettyEndpoint.java
----------------------------------------------------------------------
diff --git a/components/camel-netty/src/main/java/org/apache/camel/component/netty/NettyEndpoint.java b/components/camel-netty/src/main/java/org/apache/camel/component/netty/NettyEndpoint.java
index 816c7bc..73211d2 100644
--- a/components/camel-netty/src/main/java/org/apache/camel/component/netty/NettyEndpoint.java
+++ b/components/camel-netty/src/main/java/org/apache/camel/component/netty/NettyEndpoint.java
@@ -37,7 +37,7 @@ import org.jboss.netty.channel.MessageEvent;
 import org.jboss.netty.handler.ssl.SslHandler;
 import org.jboss.netty.util.Timer;
 
-@UriEndpoint(scheme = "netty", consumerClass = NettyConsumer.class, label = "networking,tcp,udp")
+@UriEndpoint(scheme = "netty", syntax = "netty:protocol:host:port", consumerClass = NettyConsumer.class, label = "networking,tcp,udp")
 public class NettyEndpoint extends DefaultEndpoint {
     @UriParam
     private NettyConfiguration configuration;

http://git-wip-us.apache.org/repos/asf/camel/blob/caf545fa/components/camel-netty/src/main/java/org/apache/camel/component/netty/NettyServerBootstrapConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-netty/src/main/java/org/apache/camel/component/netty/NettyServerBootstrapConfiguration.java b/components/camel-netty/src/main/java/org/apache/camel/component/netty/NettyServerBootstrapConfiguration.java
index e06d856..20683b8 100644
--- a/components/camel-netty/src/main/java/org/apache/camel/component/netty/NettyServerBootstrapConfiguration.java
+++ b/components/camel-netty/src/main/java/org/apache/camel/component/netty/NettyServerBootstrapConfiguration.java
@@ -19,6 +19,7 @@ package org.apache.camel.component.netty;
 import java.io.File;
 import java.util.Map;
 
+import org.apache.camel.spi.Metadata;
 import org.apache.camel.spi.UriParam;
 import org.apache.camel.spi.UriParams;
 import org.apache.camel.spi.UriPath;
@@ -32,13 +33,13 @@ public class NettyServerBootstrapConfiguration implements Cloneable {
 
     public static final String DEFAULT_ENABLED_PROTOCOLS = "TLSv1,TLSv1.1,TLSv1.2";
 
-    @UriPath
+    @UriPath @Metadata(required = "true")
     protected String protocol;
-    @UriPath
+    @UriPath @Metadata(required = "true")
     protected String host;
-    @UriPath
+    @UriPath @Metadata(required = "true")
     protected int port;
-    @UriParam(defaultValue = "false")
+    @UriParam
     protected boolean broadcast;
     @UriParam(defaultValue = "65536")
     protected long sendBufferSize = 65536;
@@ -66,15 +67,15 @@ public class NettyServerBootstrapConfiguration implements Cloneable {
     protected NettyServerBootstrapFactory nettyServerBootstrapFactory;
     protected Map<String, Object> options;
     // SSL options is also part of the server bootstrap as the server listener on port X is either plain or SSL
-    @UriParam(defaultValue = "false")
+    @UriParam
     protected boolean ssl;
-    @UriParam(defaultValue = "false")
+    @UriParam
     protected boolean sslClientCertHeaders;
     @UriParam
     protected SslHandler sslHandler;
     @UriParam
     protected SSLContextParameters sslContextParameters;
-    @UriParam(defaultValue = "false")
+    @UriParam
     protected boolean needClientAuth;
     @UriParam
     protected File keyStoreFile;

http://git-wip-us.apache.org/repos/asf/camel/blob/caf545fa/components/camel-netty4-http/src/main/java/org/apache/camel/component/netty4/http/NettyHttpConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-netty4-http/src/main/java/org/apache/camel/component/netty4/http/NettyHttpConfiguration.java b/components/camel-netty4-http/src/main/java/org/apache/camel/component/netty4/http/NettyHttpConfiguration.java
index 39fe135..50a4ffb 100644
--- a/components/camel-netty4-http/src/main/java/org/apache/camel/component/netty4/http/NettyHttpConfiguration.java
+++ b/components/camel-netty4-http/src/main/java/org/apache/camel/component/netty4/http/NettyHttpConfiguration.java
@@ -24,6 +24,7 @@ import org.apache.camel.RuntimeCamelException;
 import org.apache.camel.component.netty4.NettyConfiguration;
 import org.apache.camel.spi.UriParam;
 import org.apache.camel.spi.UriParams;
+import org.apache.camel.spi.UriPath;
 
 /**
  * Extended configuration for using HTTP with Netty.
@@ -31,23 +32,23 @@ import org.apache.camel.spi.UriParams;
 @UriParams
 public class NettyHttpConfiguration extends NettyConfiguration {
 
+    @UriPath
+    private String path;
     @UriParam
     private boolean urlDecodeHeaders;
     @UriParam(defaultValue = "true")
     private boolean mapHeaders = true;
-    @UriParam(defaultValue = "false")
+    @UriParam
     private boolean compression;
     @UriParam(defaultValue = "true")
     private boolean throwExceptionOnFailure = true;
-    @UriParam(defaultValue = "false")
+    @UriParam
     private boolean transferException;
-    @UriParam(defaultValue = "false")
+    @UriParam
     private boolean matchOnUriPrefix;
-    @UriParam(defaultValue = "false")
+    @UriParam
     private boolean bridgeEndpoint;
     @UriParam
-    private String path;
-    @UriParam(defaultValue = "false")
     private boolean disableStreamCache;
     @UriParam(defaultValue = "true")
     private boolean send503whenSuspended = true;

http://git-wip-us.apache.org/repos/asf/camel/blob/caf545fa/components/camel-netty4-http/src/main/java/org/apache/camel/component/netty4/http/NettyHttpEndpoint.java
----------------------------------------------------------------------
diff --git a/components/camel-netty4-http/src/main/java/org/apache/camel/component/netty4/http/NettyHttpEndpoint.java b/components/camel-netty4-http/src/main/java/org/apache/camel/component/netty4/http/NettyHttpEndpoint.java
index 194ba7a..b748904 100644
--- a/components/camel-netty4-http/src/main/java/org/apache/camel/component/netty4/http/NettyHttpEndpoint.java
+++ b/components/camel-netty4-http/src/main/java/org/apache/camel/component/netty4/http/NettyHttpEndpoint.java
@@ -38,7 +38,7 @@ import org.slf4j.LoggerFactory;
 /**
  * HTTP based {@link NettyEndpoint}
  */
-@UriEndpoint(scheme = "netty4-http", consumerClass = NettyHttpConsumer.class, label = "http")
+@UriEndpoint(scheme = "netty4-http", syntax = "netty4-http:host:port/path", consumerClass = NettyHttpConsumer.class, label = "http")
 public class NettyHttpEndpoint extends NettyEndpoint implements HeaderFilterStrategyAware {
 
     private static final Logger LOG = LoggerFactory.getLogger(NettyHttpEndpoint.class);

http://git-wip-us.apache.org/repos/asf/camel/blob/caf545fa/components/camel-netty4/src/main/java/org/apache/camel/component/netty4/NettyConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-netty4/src/main/java/org/apache/camel/component/netty4/NettyConfiguration.java b/components/camel-netty4/src/main/java/org/apache/camel/component/netty4/NettyConfiguration.java
index 2567d42..2e2244d 100644
--- a/components/camel-netty4/src/main/java/org/apache/camel/component/netty4/NettyConfiguration.java
+++ b/components/camel-netty4/src/main/java/org/apache/camel/component/netty4/NettyConfiguration.java
@@ -46,7 +46,7 @@ public class NettyConfiguration extends NettyServerBootstrapConfiguration implem
     private long requestTimeout;
     @UriParam(defaultValue = "true")
     private boolean sync = true;
-    @UriParam(defaultValue = "false")
+    @UriParam
     private boolean textline;
     @UriParam(defaultValue = "LINE")
     private TextLineDelimiter delimiter = TextLineDelimiter.LINE;
@@ -62,7 +62,7 @@ public class NettyConfiguration extends NettyServerBootstrapConfiguration implem
     private boolean disconnect;
     @UriParam(defaultValue = "true")
     private boolean lazyChannelCreation = true;
-    @UriParam(defaultValue = "false")
+    @UriParam
     private boolean transferExchange;
     @UriParam(defaultValue = "true")
     private boolean disconnectOnNoReply = true;
@@ -90,9 +90,9 @@ public class NettyConfiguration extends NettyServerBootstrapConfiguration implem
     private long producerPoolMinEvictableIdle = 5 * 60 * 1000L;
     @UriParam(defaultValue = "true")
     private boolean producerPoolEnabled = true;
-    @UriParam(defaultValue = "false")
+    @UriParam
     private boolean udpConnectionlessSending;
-    @UriParam(defaultValue = "false")
+    @UriParam
     private boolean clientMode;
 
     /**

http://git-wip-us.apache.org/repos/asf/camel/blob/caf545fa/components/camel-netty4/src/main/java/org/apache/camel/component/netty4/NettyEndpoint.java
----------------------------------------------------------------------
diff --git a/components/camel-netty4/src/main/java/org/apache/camel/component/netty4/NettyEndpoint.java b/components/camel-netty4/src/main/java/org/apache/camel/component/netty4/NettyEndpoint.java
index d5eb692..b570b54 100644
--- a/components/camel-netty4/src/main/java/org/apache/camel/component/netty4/NettyEndpoint.java
+++ b/components/camel-netty4/src/main/java/org/apache/camel/component/netty4/NettyEndpoint.java
@@ -37,7 +37,7 @@ import org.apache.camel.spi.UriEndpoint;
 import org.apache.camel.spi.UriParam;
 import org.apache.camel.util.ObjectHelper;
 
-@UriEndpoint(scheme = "netty4", consumerClass = NettyConsumer.class, label = "networking,tcp,udp")
+@UriEndpoint(scheme = "netty4", syntax = "netty4:protocol:host:port", consumerClass = NettyConsumer.class, label = "networking,tcp,udp")
 public class NettyEndpoint extends DefaultEndpoint {
     @UriParam
     private NettyConfiguration configuration;

http://git-wip-us.apache.org/repos/asf/camel/blob/caf545fa/components/camel-netty4/src/main/java/org/apache/camel/component/netty4/NettyServerBootstrapConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-netty4/src/main/java/org/apache/camel/component/netty4/NettyServerBootstrapConfiguration.java b/components/camel-netty4/src/main/java/org/apache/camel/component/netty4/NettyServerBootstrapConfiguration.java
index 16b3152..ce1403d 100644
--- a/components/camel-netty4/src/main/java/org/apache/camel/component/netty4/NettyServerBootstrapConfiguration.java
+++ b/components/camel-netty4/src/main/java/org/apache/camel/component/netty4/NettyServerBootstrapConfiguration.java
@@ -21,6 +21,7 @@ import java.util.Map;
 
 import io.netty.channel.EventLoopGroup;
 import io.netty.handler.ssl.SslHandler;
+import org.apache.camel.spi.Metadata;
 import org.apache.camel.spi.UriParam;
 import org.apache.camel.spi.UriParams;
 import org.apache.camel.spi.UriPath;
@@ -30,13 +31,13 @@ import org.apache.camel.util.jsse.SSLContextParameters;
 public class NettyServerBootstrapConfiguration implements Cloneable {
     public static final String DEFAULT_ENABLED_PROTOCOLS = "TLSv1,TLSv1.1,TLSv1.2";
 
-    @UriPath
+    @UriPath @Metadata(required = "true")
     protected String protocol;
-    @UriPath
+    @UriPath @Metadata(required = "true")
     protected String host;
-    @UriPath
+    @UriPath @Metadata(required = "true")
     protected int port;
-    @UriParam(defaultValue = "false")
+    @UriParam
     protected boolean broadcast;
     @UriParam(defaultValue = "65536")
     protected int sendBufferSize = 65536;
@@ -64,15 +65,15 @@ public class NettyServerBootstrapConfiguration implements Cloneable {
     protected NettyServerBootstrapFactory nettyServerBootstrapFactory;
     protected Map<String, Object> options;
     // SSL options is also part of the server bootstrap as the server listener on port X is either plain or SSL
-    @UriParam(defaultValue = "false")
+    @UriParam
     protected boolean ssl;
-    @UriParam(defaultValue = "false")
+    @UriParam
     protected boolean sslClientCertHeaders;
     @UriParam
     protected SslHandler sslHandler;
     @UriParam
     protected SSLContextParameters sslContextParameters;
-    @UriParam(defaultValue = "false")
+    @UriParam
     protected boolean needClientAuth;
     @UriParam
     protected File keyStoreFile;

http://git-wip-us.apache.org/repos/asf/camel/blob/caf545fa/components/camel-ssh/src/main/java/org/apache/camel/component/ssh/SshConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-ssh/src/main/java/org/apache/camel/component/ssh/SshConfiguration.java b/components/camel-ssh/src/main/java/org/apache/camel/component/ssh/SshConfiguration.java
index 13fce73..b172519 100644
--- a/components/camel-ssh/src/main/java/org/apache/camel/component/ssh/SshConfiguration.java
+++ b/components/camel-ssh/src/main/java/org/apache/camel/component/ssh/SshConfiguration.java
@@ -19,6 +19,7 @@ package org.apache.camel.component.ssh;
 import java.net.URI;
 
 import org.apache.camel.RuntimeCamelException;
+import org.apache.camel.spi.Metadata;
 import org.apache.camel.spi.UriParam;
 import org.apache.camel.spi.UriParams;
 import org.apache.camel.spi.UriPath;
@@ -29,9 +30,9 @@ import org.apache.sshd.common.KeyPairProvider;
 public class SshConfiguration implements Cloneable {
     public static final int DEFAULT_SSH_PORT = 22;
 
-    @UriPath
+    @UriPath @Metadata(required = "true")
     private String host;
-    @UriPath
+    @UriPath(defaultValue = "" + DEFAULT_SSH_PORT)
     private int port = DEFAULT_SSH_PORT;
     @UriParam
     private String username;

http://git-wip-us.apache.org/repos/asf/camel/blob/caf545fa/components/camel-ssh/src/main/java/org/apache/camel/component/ssh/SshEndpoint.java
----------------------------------------------------------------------
diff --git a/components/camel-ssh/src/main/java/org/apache/camel/component/ssh/SshEndpoint.java b/components/camel-ssh/src/main/java/org/apache/camel/component/ssh/SshEndpoint.java
index af001a6..cecc4dd 100644
--- a/components/camel-ssh/src/main/java/org/apache/camel/component/ssh/SshEndpoint.java
+++ b/components/camel-ssh/src/main/java/org/apache/camel/component/ssh/SshEndpoint.java
@@ -40,7 +40,7 @@ import org.slf4j.LoggerFactory;
 /**
  * Represents an SSH endpoint.
  */
-@UriEndpoint(scheme = "ssh", consumerClass = SshConsumer.class, label = "file")
+@UriEndpoint(scheme = "ssh", syntax = "ssh:host:port", consumerClass = SshConsumer.class, label = "file")
 public class SshEndpoint extends ScheduledPollEndpoint {
     protected final Logger log = LoggerFactory.getLogger(getClass());
 

http://git-wip-us.apache.org/repos/asf/camel/blob/caf545fa/components/camel-stream/src/main/java/org/apache/camel/component/stream/StreamEndpoint.java
----------------------------------------------------------------------
diff --git a/components/camel-stream/src/main/java/org/apache/camel/component/stream/StreamEndpoint.java b/components/camel-stream/src/main/java/org/apache/camel/component/stream/StreamEndpoint.java
index cff9cfc..b636391 100644
--- a/components/camel-stream/src/main/java/org/apache/camel/component/stream/StreamEndpoint.java
+++ b/components/camel-stream/src/main/java/org/apache/camel/component/stream/StreamEndpoint.java
@@ -24,29 +24,30 @@ import org.apache.camel.Exchange;
 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.UriParam;
 import org.apache.camel.spi.UriPath;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-@UriEndpoint(scheme = "stream", consumerClass = StreamConsumer.class, label = "file,system")
+@UriEndpoint(scheme = "stream", syntax = "stream:url", consumerClass = StreamConsumer.class, label = "file,system")
 public class StreamEndpoint extends DefaultEndpoint {
     private static final Logger LOG = LoggerFactory.getLogger(StreamEndpoint.class);
 
-    @UriPath
+    @UriPath @Metadata(required = "true")
     private String url;
     @UriParam
     private String fileName;
-    @UriParam(defaultValue = "false")
+    @UriParam
     private boolean scanStream;
-    @UriParam(defaultValue = "false")
+    @UriParam
     private boolean retry;
-    @UriParam(defaultValue = "false")
+    @UriParam
     private boolean closeOnDone;
     @UriParam
     private long scanStreamDelay;
-    @UriParam(defaultValue = "false")
+    @UriParam
     private long delay;
     @UriParam
     private String encoding;