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:28 UTC

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

Repository: camel
Updated Branches:
  refs/heads/master 6cb8f8155 -> 6560d5bbf


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

Branch: refs/heads/master
Commit: e1736f393bde11ebeaf695d61edc8408e9e79b99
Parents: 6cb8f81
Author: Claus Ibsen <da...@apache.org>
Authored: Sat Feb 28 16:20:45 2015 +0100
Committer: Claus Ibsen <da...@apache.org>
Committed: Sat Feb 28 16:20:45 2015 +0100

----------------------------------------------------------------------
 .../org/apache/camel/component/bean/BeanEndpoint.java |  2 +-
 .../camel/component/beanclass/ClassEndpoint.java      |  2 +-
 .../camel/component/binding/BindingEndpoint.java      |  2 +-
 .../apache/camel/component/browse/BrowseEndpoint.java |  2 +-
 .../component/controlbus/ControlBusEndpoint.java      |  4 ++--
 .../component/dataformat/DataFormatEndpoint.java      |  2 +-
 .../camel/component/dataset/DataSetEndpoint.java      |  2 +-
 .../apache/camel/component/direct/DirectEndpoint.java |  2 +-
 .../camel/component/directvm/DirectVmEndpoint.java    |  2 +-
 .../org/apache/camel/component/file/FileEndpoint.java |  2 +-
 .../camel/component/language/LanguageEndpoint.java    |  4 ++--
 .../org/apache/camel/component/log/LogEndpoint.java   |  2 +-
 .../org/apache/camel/component/mock/MockEndpoint.java |  2 +-
 .../org/apache/camel/component/ref/RefEndpoint.java   |  2 +-
 .../org/apache/camel/component/rest/RestEndpoint.java |  2 +-
 .../camel/component/scheduler/SchedulerEndpoint.java  |  2 +-
 .../org/apache/camel/component/seda/SedaEndpoint.java |  2 +-
 .../org/apache/camel/component/stub/StubEndpoint.java |  2 +-
 .../org/apache/camel/component/test/TestEndpoint.java |  2 +-
 .../apache/camel/component/timer/TimerEndpoint.java   |  2 +-
 .../camel/component/validator/ValidatorEndpoint.java  |  2 +-
 .../org/apache/camel/component/vm/VmEndpoint.java     |  2 +-
 .../org/apache/camel/component/xslt/XsltEndpoint.java |  2 +-
 .../camel/tools/apt/EndpointAnnotationProcessor.java  | 11 +++++++++++
 .../main/java/org/apache/camel/spi/UriEndpoint.java   | 14 ++++++++++++++
 25 files changed, 50 insertions(+), 25 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/e1736f39/camel-core/src/main/java/org/apache/camel/component/bean/BeanEndpoint.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/component/bean/BeanEndpoint.java b/camel-core/src/main/java/org/apache/camel/component/bean/BeanEndpoint.java
index 6da99c1..3d14299 100644
--- a/camel-core/src/main/java/org/apache/camel/component/bean/BeanEndpoint.java
+++ b/camel-core/src/main/java/org/apache/camel/component/bean/BeanEndpoint.java
@@ -34,7 +34,7 @@ import org.apache.camel.spi.UriPath;
  *
  * @version 
  */
-@UriEndpoint(scheme = "bean", producerOnly = true, label = "core,java")
+@UriEndpoint(scheme = "bean", syntax = "bean:beanName", producerOnly = true, label = "core,java")
 public class BeanEndpoint extends DefaultEndpoint {
     private transient BeanHolder beanHolder;
     private transient BeanProcessor processor;

http://git-wip-us.apache.org/repos/asf/camel/blob/e1736f39/camel-core/src/main/java/org/apache/camel/component/beanclass/ClassEndpoint.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/component/beanclass/ClassEndpoint.java b/camel-core/src/main/java/org/apache/camel/component/beanclass/ClassEndpoint.java
index 3607192..9106406 100644
--- a/camel-core/src/main/java/org/apache/camel/component/beanclass/ClassEndpoint.java
+++ b/camel-core/src/main/java/org/apache/camel/component/beanclass/ClassEndpoint.java
@@ -23,7 +23,7 @@ import org.apache.camel.spi.UriEndpoint;
 /**
  * Endpoint for the class component.
  */
-@UriEndpoint(scheme = "class", label = "core,java")
+@UriEndpoint(scheme = "class", syntax = "class:beanName", label = "core,java")
 public class ClassEndpoint extends BeanEndpoint {
 
     public ClassEndpoint(String endpointUri, Component component) {

http://git-wip-us.apache.org/repos/asf/camel/blob/e1736f39/camel-core/src/main/java/org/apache/camel/component/binding/BindingEndpoint.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/component/binding/BindingEndpoint.java b/camel-core/src/main/java/org/apache/camel/component/binding/BindingEndpoint.java
index e9a1ad6..de2b1fe 100644
--- a/camel-core/src/main/java/org/apache/camel/component/binding/BindingEndpoint.java
+++ b/camel-core/src/main/java/org/apache/camel/component/binding/BindingEndpoint.java
@@ -40,7 +40,7 @@ import static org.apache.camel.util.CamelContextHelper.getMandatoryEndpoint;
  * before its sent to the endpoint and processes messages received by the endpoint consumer before its passed
  * to the real consumer.
  */
-@UriEndpoint(scheme = "binding", consumerClass = BindingConsumerProcessor.class, label = "core,transformation")
+@UriEndpoint(scheme = "binding", syntax = "binding:bindingName:delegateUri", consumerClass = BindingConsumerProcessor.class, label = "core,transformation")
 public class BindingEndpoint extends DefaultEndpoint implements HasBinding {
 
     @UriPath @Metadata(required = "true")

http://git-wip-us.apache.org/repos/asf/camel/blob/e1736f39/camel-core/src/main/java/org/apache/camel/component/browse/BrowseEndpoint.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/component/browse/BrowseEndpoint.java b/camel-core/src/main/java/org/apache/camel/component/browse/BrowseEndpoint.java
index 3cfac6f..0a063ee 100644
--- a/camel-core/src/main/java/org/apache/camel/component/browse/BrowseEndpoint.java
+++ b/camel-core/src/main/java/org/apache/camel/component/browse/BrowseEndpoint.java
@@ -40,7 +40,7 @@ import org.apache.camel.spi.UriPath;
  *
  * @version 
  */
-@UriEndpoint(scheme = "browse", label = "core,monitoring")
+@UriEndpoint(scheme = "browse", syntax = "browse:name", label = "core,monitoring")
 public class BrowseEndpoint extends DefaultEndpoint implements BrowsableEndpoint {
 
     @UriPath(description = "A name which can be any string to uniquely identify the endpoint") @Metadata(required = "true")

http://git-wip-us.apache.org/repos/asf/camel/blob/e1736f39/camel-core/src/main/java/org/apache/camel/component/controlbus/ControlBusEndpoint.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/component/controlbus/ControlBusEndpoint.java b/camel-core/src/main/java/org/apache/camel/component/controlbus/ControlBusEndpoint.java
index d90c2c0..d8bc0b9 100644
--- a/camel-core/src/main/java/org/apache/camel/component/controlbus/ControlBusEndpoint.java
+++ b/camel-core/src/main/java/org/apache/camel/component/controlbus/ControlBusEndpoint.java
@@ -33,12 +33,12 @@ import org.apache.camel.util.CamelLogger;
 /**
  * The control bus endpoint.
  */
-@UriEndpoint(scheme = "controlbus", producerOnly = true, label = "core,monitoring")
+@UriEndpoint(scheme = "controlbus", syntax = "controlbus:command:language", producerOnly = true, label = "core,monitoring")
 public class ControlBusEndpoint extends DefaultEndpoint {
 
     @UriPath(description = "Command can be either route or language", enums = "route,language") @Metadata(required = "true")
     private String command;
-    @UriPath
+    @UriPath(enums = "bean,constant,el,exchangeProperty,file,groovy,header,jsonpath,jxpath,mvel,ognl,ref,simple,spel,sql,terser,tokenize,xpath,xquery,xtokenize")
     private Language language;
     @UriParam
     private String routeId;

http://git-wip-us.apache.org/repos/asf/camel/blob/e1736f39/camel-core/src/main/java/org/apache/camel/component/dataformat/DataFormatEndpoint.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/component/dataformat/DataFormatEndpoint.java b/camel-core/src/main/java/org/apache/camel/component/dataformat/DataFormatEndpoint.java
index 0fb1d02..2679b85 100644
--- a/camel-core/src/main/java/org/apache/camel/component/dataformat/DataFormatEndpoint.java
+++ b/camel-core/src/main/java/org/apache/camel/component/dataformat/DataFormatEndpoint.java
@@ -32,7 +32,7 @@ import org.apache.camel.spi.UriEndpoint;
 import org.apache.camel.spi.UriPath;
 import org.apache.camel.util.ServiceHelper;
 
-@UriEndpoint(scheme = "dataformat", producerOnly = true, label = "core,transformation")
+@UriEndpoint(scheme = "dataformat", syntax = "dataformat:name:operation", producerOnly = true, label = "core,transformation")
 public class DataFormatEndpoint extends DefaultEndpoint {
 
     private MarshalProcessor marshal;

http://git-wip-us.apache.org/repos/asf/camel/blob/e1736f39/camel-core/src/main/java/org/apache/camel/component/dataset/DataSetEndpoint.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/component/dataset/DataSetEndpoint.java b/camel-core/src/main/java/org/apache/camel/component/dataset/DataSetEndpoint.java
index 0aca20c..734dbdb 100644
--- a/camel-core/src/main/java/org/apache/camel/component/dataset/DataSetEndpoint.java
+++ b/camel-core/src/main/java/org/apache/camel/component/dataset/DataSetEndpoint.java
@@ -42,7 +42,7 @@ import org.slf4j.LoggerFactory;
  *
  * @version 
  */
-@UriEndpoint(scheme = "dataset", consumerClass = DataSetConsumer.class, label = "core,testing")
+@UriEndpoint(scheme = "dataset", syntax = "dataset:name", consumerClass = DataSetConsumer.class, label = "core,testing")
 public class DataSetEndpoint extends MockEndpoint implements Service {
     private final transient Logger log;
     private final AtomicInteger receivedCounter = new AtomicInteger();

http://git-wip-us.apache.org/repos/asf/camel/blob/e1736f39/camel-core/src/main/java/org/apache/camel/component/direct/DirectEndpoint.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/component/direct/DirectEndpoint.java b/camel-core/src/main/java/org/apache/camel/component/direct/DirectEndpoint.java
index c2c4af7..eed6830 100644
--- a/camel-core/src/main/java/org/apache/camel/component/direct/DirectEndpoint.java
+++ b/camel-core/src/main/java/org/apache/camel/component/direct/DirectEndpoint.java
@@ -36,7 +36,7 @@ import org.apache.camel.util.ObjectHelper;
  *
  * @version 
  */
-@UriEndpoint(scheme = "direct", consumerClass = DirectConsumer.class, label = "core,endpoint")
+@UriEndpoint(scheme = "direct", syntax = "direct:name", consumerClass = DirectConsumer.class, label = "core,endpoint")
 public class DirectEndpoint extends DefaultEndpoint {
 
     private volatile Map<String, DirectConsumer> consumers;

http://git-wip-us.apache.org/repos/asf/camel/blob/e1736f39/camel-core/src/main/java/org/apache/camel/component/directvm/DirectVmEndpoint.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/component/directvm/DirectVmEndpoint.java b/camel-core/src/main/java/org/apache/camel/component/directvm/DirectVmEndpoint.java
index 332989d..d2c0c36 100644
--- a/camel-core/src/main/java/org/apache/camel/component/directvm/DirectVmEndpoint.java
+++ b/camel-core/src/main/java/org/apache/camel/component/directvm/DirectVmEndpoint.java
@@ -29,7 +29,7 @@ import org.apache.camel.spi.UriPath;
 /**
  * The direct-vm endpoint.
  */
-@UriEndpoint(scheme = "direct-vm", consumerClass = DirectConsumer.class, label = "core,endpoint")
+@UriEndpoint(scheme = "direct-vm", syntax = "direct-vm:name", consumerClass = DirectConsumer.class, label = "core,endpoint")
 public class DirectVmEndpoint extends DefaultEndpoint {
 
     @UriPath(description = "Name of direct-vm endpoint") @Metadata(required = "true")

http://git-wip-us.apache.org/repos/asf/camel/blob/e1736f39/camel-core/src/main/java/org/apache/camel/component/file/FileEndpoint.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/component/file/FileEndpoint.java b/camel-core/src/main/java/org/apache/camel/component/file/FileEndpoint.java
index 0137864..5b659ab 100644
--- a/camel-core/src/main/java/org/apache/camel/component/file/FileEndpoint.java
+++ b/camel-core/src/main/java/org/apache/camel/component/file/FileEndpoint.java
@@ -33,7 +33,7 @@ import org.apache.camel.util.ObjectHelper;
 /**
  * File endpoint.
  */
-@UriEndpoint(scheme = "file", consumerClass = FileConsumer.class, label = "core,file")
+@UriEndpoint(scheme = "file", syntax = "file:directoryName", consumerClass = FileConsumer.class, label = "core,file")
 public class FileEndpoint extends GenericFileEndpoint<File> {
 
     private final FileOperations operations = new FileOperations(this);

http://git-wip-us.apache.org/repos/asf/camel/blob/e1736f39/camel-core/src/main/java/org/apache/camel/component/language/LanguageEndpoint.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/component/language/LanguageEndpoint.java b/camel-core/src/main/java/org/apache/camel/component/language/LanguageEndpoint.java
index 6346873..77a64cb 100644
--- a/camel-core/src/main/java/org/apache/camel/component/language/LanguageEndpoint.java
+++ b/camel-core/src/main/java/org/apache/camel/component/language/LanguageEndpoint.java
@@ -42,12 +42,12 @@ import org.apache.camel.util.ResourceHelper;
  *
  * @version 
  */
-@UriEndpoint(scheme = "language", producerOnly = true, label = "core,script")
+@UriEndpoint(scheme = "language", syntax = "language:languageName", producerOnly = true, label = "core,script")
 public class LanguageEndpoint extends ResourceEndpoint {
     private Language language;
     private Expression expression;
     private boolean contentResolvedFromResource;
-    @UriPath @Metadata(required = "true")
+    @UriPath(enums = "bean,constant,el,exchangeProperty,file,groovy,header,jsonpath,jxpath,mvel,ognl,ref,simple,spel,sql,terser,tokenize,xpath,xquery,xtokenize") @Metadata(required = "true")
     private String languageName;
     @UriParam
     private String script;

http://git-wip-us.apache.org/repos/asf/camel/blob/e1736f39/camel-core/src/main/java/org/apache/camel/component/log/LogEndpoint.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/component/log/LogEndpoint.java b/camel-core/src/main/java/org/apache/camel/component/log/LogEndpoint.java
index dd2de3c..60b3344 100644
--- a/camel-core/src/main/java/org/apache/camel/component/log/LogEndpoint.java
+++ b/camel-core/src/main/java/org/apache/camel/component/log/LogEndpoint.java
@@ -35,7 +35,7 @@ import org.slf4j.Logger;
 /**
  * Logger endpoint.
  */
-@UriEndpoint(scheme = "log", producerOnly = true, label = "core,monitoring")
+@UriEndpoint(scheme = "log", syntax = "log:loggerName", producerOnly = true, label = "core,monitoring")
 public class LogEndpoint extends ProcessorEndpoint {
 
     private volatile Processor logger;

http://git-wip-us.apache.org/repos/asf/camel/blob/e1736f39/camel-core/src/main/java/org/apache/camel/component/mock/MockEndpoint.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/component/mock/MockEndpoint.java b/camel-core/src/main/java/org/apache/camel/component/mock/MockEndpoint.java
index de3dcb2..363a1f1 100644
--- a/camel-core/src/main/java/org/apache/camel/component/mock/MockEndpoint.java
+++ b/camel-core/src/main/java/org/apache/camel/component/mock/MockEndpoint.java
@@ -88,7 +88,7 @@ import org.slf4j.LoggerFactory;
  *
  * @version 
  */
-@UriEndpoint(scheme = "mock", producerOnly = true, label = "core,testing")
+@UriEndpoint(scheme = "mock", syntax = "mock:name", producerOnly = true, label = "core,testing")
 public class MockEndpoint extends DefaultEndpoint implements BrowsableEndpoint {
     private static final Logger LOG = LoggerFactory.getLogger(MockEndpoint.class);
     // must be volatile so changes is visible between the thread which performs the assertions

http://git-wip-us.apache.org/repos/asf/camel/blob/e1736f39/camel-core/src/main/java/org/apache/camel/component/ref/RefEndpoint.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/component/ref/RefEndpoint.java b/camel-core/src/main/java/org/apache/camel/component/ref/RefEndpoint.java
index 5aef973..c164a77 100644
--- a/camel-core/src/main/java/org/apache/camel/component/ref/RefEndpoint.java
+++ b/camel-core/src/main/java/org/apache/camel/component/ref/RefEndpoint.java
@@ -28,7 +28,7 @@ import org.apache.camel.spi.UriEndpoint;
 import org.apache.camel.spi.UriPath;
 import org.apache.camel.util.CamelContextHelper;
 
-@UriEndpoint(scheme = "ref", label = "core,endpoint")
+@UriEndpoint(scheme = "ref", syntax = "ref:name", label = "core,endpoint")
 public class RefEndpoint extends DefaultEndpoint implements DelegateEndpoint {
 
     private volatile Endpoint endpoint;

http://git-wip-us.apache.org/repos/asf/camel/blob/e1736f39/camel-core/src/main/java/org/apache/camel/component/rest/RestEndpoint.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/component/rest/RestEndpoint.java b/camel-core/src/main/java/org/apache/camel/component/rest/RestEndpoint.java
index f845452..8bafb23 100644
--- a/camel-core/src/main/java/org/apache/camel/component/rest/RestEndpoint.java
+++ b/camel-core/src/main/java/org/apache/camel/component/rest/RestEndpoint.java
@@ -34,7 +34,7 @@ import org.apache.camel.spi.UriPath;
 import org.apache.camel.util.HostUtils;
 import org.apache.camel.util.ObjectHelper;
 
-@UriEndpoint(scheme = "rest", consumerOnly = true, label = "core,http,rest")
+@UriEndpoint(scheme = "rest", syntax = "rest:method:path:uriTemplate", consumerOnly = true, label = "core,http,rest")
 public class RestEndpoint extends DefaultEndpoint {
 
     @UriPath(enums = "get,post,put,delete,patch,head,trace,connect,options") @Metadata(required = "true")

http://git-wip-us.apache.org/repos/asf/camel/blob/e1736f39/camel-core/src/main/java/org/apache/camel/component/scheduler/SchedulerEndpoint.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/component/scheduler/SchedulerEndpoint.java b/camel-core/src/main/java/org/apache/camel/component/scheduler/SchedulerEndpoint.java
index 18a40a7..c39a53f 100644
--- a/camel-core/src/main/java/org/apache/camel/component/scheduler/SchedulerEndpoint.java
+++ b/camel-core/src/main/java/org/apache/camel/component/scheduler/SchedulerEndpoint.java
@@ -27,7 +27,7 @@ import org.apache.camel.spi.UriEndpoint;
 import org.apache.camel.spi.UriParam;
 import org.apache.camel.spi.UriPath;
 
-@UriEndpoint(scheme = "scheduler", consumerOnly = true, consumerClass = SchedulerConsumer.class, label = "core,scheduling")
+@UriEndpoint(scheme = "scheduler", syntax = "scheduler:name", consumerOnly = true, consumerClass = SchedulerConsumer.class, label = "core,scheduling")
 public class SchedulerEndpoint extends ScheduledPollEndpoint {
 
     @UriPath @Metadata(required = "true")

http://git-wip-us.apache.org/repos/asf/camel/blob/e1736f39/camel-core/src/main/java/org/apache/camel/component/seda/SedaEndpoint.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/component/seda/SedaEndpoint.java b/camel-core/src/main/java/org/apache/camel/component/seda/SedaEndpoint.java
index f21242f..86b71ca 100644
--- a/camel-core/src/main/java/org/apache/camel/component/seda/SedaEndpoint.java
+++ b/camel-core/src/main/java/org/apache/camel/component/seda/SedaEndpoint.java
@@ -56,7 +56,7 @@ import org.slf4j.LoggerFactory;
  * asynchronous SEDA exchanges on a {@link BlockingQueue} within a CamelContext
  */
 @ManagedResource(description = "Managed SedaEndpoint")
-@UriEndpoint(scheme = "seda", consumerClass = SedaConsumer.class, label = "core,endpoint")
+@UriEndpoint(scheme = "seda", syntax = "seda:name", consumerClass = SedaConsumer.class, label = "core,endpoint")
 public class SedaEndpoint extends DefaultEndpoint implements BrowsableEndpoint, MultipleConsumersSupport {
     private static final Logger LOG = LoggerFactory.getLogger(SedaEndpoint.class);
     private volatile BlockingQueue<Exchange> queue;

http://git-wip-us.apache.org/repos/asf/camel/blob/e1736f39/camel-core/src/main/java/org/apache/camel/component/stub/StubEndpoint.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/component/stub/StubEndpoint.java b/camel-core/src/main/java/org/apache/camel/component/stub/StubEndpoint.java
index db159c6..50890f8 100644
--- a/camel-core/src/main/java/org/apache/camel/component/stub/StubEndpoint.java
+++ b/camel-core/src/main/java/org/apache/camel/component/stub/StubEndpoint.java
@@ -26,7 +26,7 @@ import org.apache.camel.component.vm.VmConsumer;
 import org.apache.camel.component.vm.VmEndpoint;
 import org.apache.camel.spi.UriEndpoint;
 
-@UriEndpoint(scheme = "stub", consumerClass = VmConsumer.class, label = "core,testing")
+@UriEndpoint(scheme = "stub", syntax = "stub:name", consumerClass = VmConsumer.class, label = "core,testing")
 public class StubEndpoint extends VmEndpoint {
 
     public StubEndpoint(String endpointUri, Component component, BlockingQueue<Exchange> queue) {

http://git-wip-us.apache.org/repos/asf/camel/blob/e1736f39/camel-core/src/main/java/org/apache/camel/component/test/TestEndpoint.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/component/test/TestEndpoint.java b/camel-core/src/main/java/org/apache/camel/component/test/TestEndpoint.java
index 0619550..b7eeae5 100644
--- a/camel-core/src/main/java/org/apache/camel/component/test/TestEndpoint.java
+++ b/camel-core/src/main/java/org/apache/camel/component/test/TestEndpoint.java
@@ -39,7 +39,7 @@ import org.slf4j.LoggerFactory;
  *
  * @version 
  */
-@UriEndpoint(scheme = "test", producerOnly = true, label = "core,testing")
+@UriEndpoint(scheme = "test", syntax = "test:name", producerOnly = true, label = "core,testing")
 public class TestEndpoint extends MockEndpoint {
     private static final Logger LOG = LoggerFactory.getLogger(TestEndpoint.class);
     private final Endpoint expectedMessageEndpoint;

http://git-wip-us.apache.org/repos/asf/camel/blob/e1736f39/camel-core/src/main/java/org/apache/camel/component/timer/TimerEndpoint.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/component/timer/TimerEndpoint.java b/camel-core/src/main/java/org/apache/camel/component/timer/TimerEndpoint.java
index b900c0d..ab8cf62 100644
--- a/camel-core/src/main/java/org/apache/camel/component/timer/TimerEndpoint.java
+++ b/camel-core/src/main/java/org/apache/camel/component/timer/TimerEndpoint.java
@@ -39,7 +39,7 @@ import org.apache.camel.spi.UriPath;
  * @version 
  */
 @ManagedResource(description = "Managed TimerEndpoint")
-@UriEndpoint(scheme = "timer", consumerOnly = true, consumerClass = TimerConsumer.class, label = "core,scheduling")
+@UriEndpoint(scheme = "timer", syntax = "timer:timerName", consumerOnly = true, consumerClass = TimerConsumer.class, label = "core,scheduling")
 public class TimerEndpoint extends DefaultEndpoint implements MultipleConsumersSupport {
     @UriPath @Metadata(required = "true")
     private String timerName;

http://git-wip-us.apache.org/repos/asf/camel/blob/e1736f39/camel-core/src/main/java/org/apache/camel/component/validator/ValidatorEndpoint.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/component/validator/ValidatorEndpoint.java b/camel-core/src/main/java/org/apache/camel/component/validator/ValidatorEndpoint.java
index 24957fd..f6fe766 100644
--- a/camel-core/src/main/java/org/apache/camel/component/validator/ValidatorEndpoint.java
+++ b/camel-core/src/main/java/org/apache/camel/component/validator/ValidatorEndpoint.java
@@ -40,7 +40,7 @@ import org.apache.camel.util.ResourceHelper;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-@UriEndpoint(scheme = "validator", producerOnly = true, label = "core,validation")
+@UriEndpoint(scheme = "validator", syntax = "validator:resourceUri", producerOnly = true, label = "core,validation")
 public class ValidatorEndpoint extends DefaultEndpoint {
 
     private static final Logger LOG = LoggerFactory.getLogger(ValidatorEndpoint.class);

http://git-wip-us.apache.org/repos/asf/camel/blob/e1736f39/camel-core/src/main/java/org/apache/camel/component/vm/VmEndpoint.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/component/vm/VmEndpoint.java b/camel-core/src/main/java/org/apache/camel/component/vm/VmEndpoint.java
index 13681e0..7c9e34b 100644
--- a/camel-core/src/main/java/org/apache/camel/component/vm/VmEndpoint.java
+++ b/camel-core/src/main/java/org/apache/camel/component/vm/VmEndpoint.java
@@ -25,7 +25,7 @@ import org.apache.camel.component.seda.BlockingQueueFactory;
 import org.apache.camel.component.seda.SedaEndpoint;
 import org.apache.camel.spi.UriEndpoint;
 
-@UriEndpoint(scheme = "vm", consumerClass = VmConsumer.class, label = "core,endpoint")
+@UriEndpoint(scheme = "vm", syntax = "vm:name", consumerClass = VmConsumer.class, label = "core,endpoint")
 public class VmEndpoint extends SedaEndpoint {
 
     public VmEndpoint(String endpointUri, Component component, BlockingQueue<Exchange> queue) {

http://git-wip-us.apache.org/repos/asf/camel/blob/e1736f39/camel-core/src/main/java/org/apache/camel/component/xslt/XsltEndpoint.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/component/xslt/XsltEndpoint.java b/camel-core/src/main/java/org/apache/camel/component/xslt/XsltEndpoint.java
index da89bad..9ddfe9a 100644
--- a/camel-core/src/main/java/org/apache/camel/component/xslt/XsltEndpoint.java
+++ b/camel-core/src/main/java/org/apache/camel/component/xslt/XsltEndpoint.java
@@ -44,7 +44,7 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 @ManagedResource(description = "Managed XsltEndpoint")
-@UriEndpoint(scheme = "xslt", producerOnly = true, label = "core,transformation")
+@UriEndpoint(scheme = "xslt", syntax = "xslt:resourceUri", producerOnly = true, label = "core,transformation")
 public class XsltEndpoint extends ProcessorEndpoint {
 
     private static final Logger LOG = LoggerFactory.getLogger(XsltEndpoint.class);

http://git-wip-us.apache.org/repos/asf/camel/blob/e1736f39/tooling/apt/src/main/java/org/apache/camel/tools/apt/EndpointAnnotationProcessor.java
----------------------------------------------------------------------
diff --git a/tooling/apt/src/main/java/org/apache/camel/tools/apt/EndpointAnnotationProcessor.java b/tooling/apt/src/main/java/org/apache/camel/tools/apt/EndpointAnnotationProcessor.java
index 4dd6bdb..f9f2e0f 100644
--- a/tooling/apt/src/main/java/org/apache/camel/tools/apt/EndpointAnnotationProcessor.java
+++ b/tooling/apt/src/main/java/org/apache/camel/tools/apt/EndpointAnnotationProcessor.java
@@ -180,6 +180,7 @@ public class EndpointAnnotationProcessor extends AbstractAnnotationProcessor {
         buffer.append("\n \"component\": {");
         buffer.append("\n    \"kind\": \"").append("component").append("\",");
         buffer.append("\n    \"scheme\": \"").append(componentModel.getScheme()).append("\",");
+        buffer.append("\n    \"syntax\": \"").append(componentModel.getSyntax()).append("\",");
         buffer.append("\n    \"description\": \"").append(componentModel.getDescription()).append("\",");
         buffer.append("\n    \"label\": \"").append(getOrElse(componentModel.getLabel(), "")).append("\",");
         if (componentModel.isConsumerOnly()) {
@@ -330,6 +331,7 @@ public class EndpointAnnotationProcessor extends AbstractAnnotationProcessor {
 
     protected ComponentModel findComponentProperties(RoundEnvironment roundEnv, UriEndpoint uriEndpoint, String scheme, String label) {
         ComponentModel model = new ComponentModel(scheme);
+        model.setSyntax(uriEndpoint.syntax());
         model.setLabel(label);
         model.setConsumerOnly(uriEndpoint.consumerOnly());
         model.setProducerOnly(uriEndpoint.producerOnly());
@@ -627,6 +629,7 @@ public class EndpointAnnotationProcessor extends AbstractAnnotationProcessor {
     private static final class ComponentModel {
 
         private String scheme;
+        private String syntax;
         private String javaType;
         private String description;
         private String groupId;
@@ -644,6 +647,14 @@ public class EndpointAnnotationProcessor extends AbstractAnnotationProcessor {
             return scheme;
         }
 
+        public String getSyntax() {
+            return syntax;
+        }
+
+        public void setSyntax(String syntax) {
+            this.syntax = syntax;
+        }
+
         public String getJavaType() {
             return javaType;
         }

http://git-wip-us.apache.org/repos/asf/camel/blob/e1736f39/tooling/spi-annotations/src/main/java/org/apache/camel/spi/UriEndpoint.java
----------------------------------------------------------------------
diff --git a/tooling/spi-annotations/src/main/java/org/apache/camel/spi/UriEndpoint.java b/tooling/spi-annotations/src/main/java/org/apache/camel/spi/UriEndpoint.java
index 5bad0bd..e3b3bb2 100644
--- a/tooling/spi-annotations/src/main/java/org/apache/camel/spi/UriEndpoint.java
+++ b/tooling/spi-annotations/src/main/java/org/apache/camel/spi/UriEndpoint.java
@@ -41,6 +41,20 @@ public @interface UriEndpoint {
     String scheme();
 
     /**
+     * Represent the URI syntax the endpoint must use.
+     * <p/>
+     * The syntax follows the patterns such as:
+     * <ul>
+     *     <li>scheme:path[?options]</li>
+     *     <li>scheme:path:path[?options]</li>
+     *     <li>scheme:path:path/path[?options]</li>
+     *     <li>scheme:path:path/path/path[?options]</li>
+     * </ul>
+     * Where each path maps to the name of the endpoint {@link org.apache.camel.spi.UriPath} option.
+     */
+    String syntax();
+
+    /**
      * Represents the consumer class which is injected and created by consumers
      */
     Class<?> consumerClass() default Object.class;


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

Posted by da...@apache.org.
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/fc6f5ff1
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/fc6f5ff1
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/fc6f5ff1

Branch: refs/heads/master
Commit: fc6f5ff13f10c35c57951deddb31908c6e74c84a
Parents: 5c38e8b
Author: Claus Ibsen <da...@apache.org>
Authored: Sat Feb 28 19:33:07 2015 +0100
Committer: Claus Ibsen <da...@apache.org>
Committed: Sat Feb 28 19:33:07 2015 +0100

----------------------------------------------------------------------
 .../camel/component/solr/SolrEndpoint.java      |  5 ++--
 .../component/sparkrest/SparkConfiguration.java |  6 ++---
 .../component/sparkrest/SparkEndpoint.java      | 11 +++++----
 .../component/splunk/SplunkConfiguration.java   |  5 ++--
 .../camel/component/splunk/SplunkEndpoint.java  |  2 +-
 .../spring/batch/SpringBatchEndpoint.java       |  5 ++--
 .../integration/SpringIntegrationEndpoint.java  |  7 +++---
 .../springldap/SpringLdapEndpoint.java          |  5 ++--
 .../component/redis/RedisConfiguration.java     |  9 +++----
 .../camel/component/redis/RedisEndpoint.java    |  2 +-
 .../spring/ws/SpringWebserviceEndpoint.java     |  2 +-
 .../spring/ws/type/EndpointMappingKey.java      |  5 ++--
 .../apache/camel/component/sql/SqlEndpoint.java |  5 ++--
 .../camel/component/stax/StAXEndpoint.java      |  5 ++--
 .../camel/component/stomp/StompEndpoint.java    |  5 ++--
 .../stringtemplate/StringTemplateEndpoint.java  |  2 +-
 .../component/twitter/TwitterConfiguration.java |  3 ++-
 .../twitter/TwitterEndpointDirect.java          |  2 +-
 .../component/twitter/TwitterEndpointEvent.java |  2 +-
 .../twitter/TwitterEndpointPolling.java         |  2 +-
 .../camel/component/vertx/VertxEndpoint.java    |  7 +++---
 .../component/weather/WeatherConfiguration.java |  3 ++-
 .../component/weather/WeatherEndpoint.java      |  2 +-
 .../component/websocket/WebsocketEndpoint.java  | 25 ++++++++++----------
 .../camel/component/xmlrpc/XmlRpcEndpoint.java  |  5 ++--
 .../xmlsecurity/XmlSignatureEndpoint.java       |  7 +++---
 .../camel/component/xmpp/XmppEndpoint.java      | 11 +++++----
 .../component/yammer/YammerConfiguration.java   |  3 ++-
 .../camel/component/yammer/YammerEndpoint.java  |  2 +-
 .../zookeeper/ZooKeeperConfiguration.java       |  5 ++--
 .../component/zookeeper/ZooKeeperEndpoint.java  |  2 +-
 31 files changed, 91 insertions(+), 71 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/fc6f5ff1/components/camel-solr/src/main/java/org/apache/camel/component/solr/SolrEndpoint.java
----------------------------------------------------------------------
diff --git a/components/camel-solr/src/main/java/org/apache/camel/component/solr/SolrEndpoint.java b/components/camel-solr/src/main/java/org/apache/camel/component/solr/SolrEndpoint.java
index 4853d7e..6c69ae1 100644
--- a/components/camel-solr/src/main/java/org/apache/camel/component/solr/SolrEndpoint.java
+++ b/components/camel-solr/src/main/java/org/apache/camel/component/solr/SolrEndpoint.java
@@ -24,6 +24,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;
@@ -34,10 +35,10 @@ import org.apache.solr.client.solrj.impl.HttpSolrServer;
 /**
  * Represents a Solr endpoint.
  */
-@UriEndpoint(scheme = "solr", producerOnly = true, label = "monitoring,search")
+@UriEndpoint(scheme = "solr", syntax = "solr:url", producerOnly = true, label = "monitoring,search")
 public class SolrEndpoint extends DefaultEndpoint {
 
-    @UriPath
+    @UriPath @Metadata(required = "true")
     private String url;
     private String scheme = "http://";
     @UriParam(defaultValue = "" + SolrConstants.DEFUALT_STREAMING_QUEUE_SIZE)

http://git-wip-us.apache.org/repos/asf/camel/blob/fc6f5ff1/components/camel-spark-rest/src/main/java/org/apache/camel/component/sparkrest/SparkConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-spark-rest/src/main/java/org/apache/camel/component/sparkrest/SparkConfiguration.java b/components/camel-spark-rest/src/main/java/org/apache/camel/component/sparkrest/SparkConfiguration.java
index 1367645..cae1e7b 100644
--- a/components/camel-spark-rest/src/main/java/org/apache/camel/component/sparkrest/SparkConfiguration.java
+++ b/components/camel-spark-rest/src/main/java/org/apache/camel/component/sparkrest/SparkConfiguration.java
@@ -24,11 +24,11 @@ public class SparkConfiguration {
 
     @UriParam(defaultValue = "true")
     private boolean mapHeaders = true;
-    @UriParam(defaultValue = "false")
+    @UriParam
     private boolean disableStreamCache;
-    @UriParam(defaultValue = "false")
+    @UriParam
     private boolean urlDecodeHeaders;
-    @UriParam(defaultValue = "false")
+    @UriParam
     private boolean transferException;
 
     public boolean isMapHeaders() {

http://git-wip-us.apache.org/repos/asf/camel/blob/fc6f5ff1/components/camel-spark-rest/src/main/java/org/apache/camel/component/sparkrest/SparkEndpoint.java
----------------------------------------------------------------------
diff --git a/components/camel-spark-rest/src/main/java/org/apache/camel/component/sparkrest/SparkEndpoint.java b/components/camel-spark-rest/src/main/java/org/apache/camel/component/sparkrest/SparkEndpoint.java
index 8a7ae69..b91c2b3 100644
--- a/components/camel-spark-rest/src/main/java/org/apache/camel/component/sparkrest/SparkEndpoint.java
+++ b/components/camel-spark-rest/src/main/java/org/apache/camel/component/sparkrest/SparkEndpoint.java
@@ -21,21 +21,22 @@ 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;
 import org.apache.camel.util.ObjectHelper;
 import spark.route.HttpMethod;
 
-@UriEndpoint(scheme = "spark-rest", consumerOnly = true, consumerClass =  SparkConsumer.class, label = "rest")
+@UriEndpoint(scheme = "spark-rest", syntax = "spark-rest:verb:path", consumerOnly = true, consumerClass =  SparkConsumer.class, label = "rest")
 public class SparkEndpoint extends DefaultEndpoint {
-    @UriParam
-    SparkConfiguration sparkConfiguration;
-    @UriPath
+    @UriPath @Metadata(required = "true")
     private String verb;
-    @UriPath
+    @UriPath @Metadata(required = "true")
     private String path;
     @UriParam
+    SparkConfiguration sparkConfiguration;
+    @UriParam
     private SparkBinding sparkBinding;
     @UriParam
     private String accept;

http://git-wip-us.apache.org/repos/asf/camel/blob/fc6f5ff1/components/camel-splunk/src/main/java/org/apache/camel/component/splunk/SplunkConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-splunk/src/main/java/org/apache/camel/component/splunk/SplunkConfiguration.java b/components/camel-splunk/src/main/java/org/apache/camel/component/splunk/SplunkConfiguration.java
index 49a1ed2..2864310 100644
--- a/components/camel-splunk/src/main/java/org/apache/camel/component/splunk/SplunkConfiguration.java
+++ b/components/camel-splunk/src/main/java/org/apache/camel/component/splunk/SplunkConfiguration.java
@@ -17,6 +17,7 @@
 package org.apache.camel.component.splunk;
 
 import com.splunk.Service;
+import org.apache.camel.spi.Metadata;
 import org.apache.camel.spi.UriParam;
 import org.apache.camel.spi.UriParams;
 import org.apache.camel.spi.UriPath;
@@ -25,7 +26,7 @@ import org.apache.camel.util.ObjectHelper;
 @UriParams
 public class SplunkConfiguration {
 
-    @UriPath(description = "Name has no purpose")
+    @UriPath(description = "Name has no purpose") @Metadata(required = "true")
     private String name;
     @UriParam
     private String scheme = Service.DEFAULT_SCHEME;
@@ -43,7 +44,7 @@ public class SplunkConfiguration {
     private String password;
     @UriParam(defaultValue = "5000")
     private int connectionTimeout = 5000;
-    @UriParam(defaultValue = "false")
+    @UriParam
     private boolean useSunHttpsHandler;
     @UriParam
     private String index;

http://git-wip-us.apache.org/repos/asf/camel/blob/fc6f5ff1/components/camel-splunk/src/main/java/org/apache/camel/component/splunk/SplunkEndpoint.java
----------------------------------------------------------------------
diff --git a/components/camel-splunk/src/main/java/org/apache/camel/component/splunk/SplunkEndpoint.java b/components/camel-splunk/src/main/java/org/apache/camel/component/splunk/SplunkEndpoint.java
index 52ec4da..8693802 100644
--- a/components/camel-splunk/src/main/java/org/apache/camel/component/splunk/SplunkEndpoint.java
+++ b/components/camel-splunk/src/main/java/org/apache/camel/component/splunk/SplunkEndpoint.java
@@ -34,7 +34,7 @@ import org.slf4j.LoggerFactory;
 /**
  * Represents a Splunk endpoint.
  */
-@UriEndpoint(scheme = "splunk", consumerClass = SplunkConsumer.class, label = "monitoring")
+@UriEndpoint(scheme = "splunk", syntax = "splunk:name", consumerClass = SplunkConsumer.class, label = "monitoring")
 public class SplunkEndpoint extends ScheduledPollEndpoint {
     private static final Logger LOG = LoggerFactory.getLogger(SplunkEndpoint.class);
 

http://git-wip-us.apache.org/repos/asf/camel/blob/fc6f5ff1/components/camel-spring-batch/src/main/java/org/apache/camel/component/spring/batch/SpringBatchEndpoint.java
----------------------------------------------------------------------
diff --git a/components/camel-spring-batch/src/main/java/org/apache/camel/component/spring/batch/SpringBatchEndpoint.java b/components/camel-spring-batch/src/main/java/org/apache/camel/component/spring/batch/SpringBatchEndpoint.java
index 7f20bec..cabebe1 100644
--- a/components/camel-spring-batch/src/main/java/org/apache/camel/component/spring/batch/SpringBatchEndpoint.java
+++ b/components/camel-spring-batch/src/main/java/org/apache/camel/component/spring/batch/SpringBatchEndpoint.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.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;
@@ -30,10 +31,10 @@ import org.apache.camel.util.CamelContextHelper;
 import org.springframework.batch.core.Job;
 import org.springframework.batch.core.launch.JobLauncher;
 
-@UriEndpoint(scheme = "spring-batch", producerOnly = true, label = "spring,batch,scheduling")
+@UriEndpoint(scheme = "spring-batch", syntax = "spring-batch:jobName", producerOnly = true, label = "spring,batch,scheduling")
 public class SpringBatchEndpoint extends DefaultEndpoint {
 
-    @UriPath
+    @UriPath @Metadata(required = "true")
     private String jobName;
 
     /**

http://git-wip-us.apache.org/repos/asf/camel/blob/fc6f5ff1/components/camel-spring-integration/src/main/java/org/apache/camel/component/spring/integration/SpringIntegrationEndpoint.java
----------------------------------------------------------------------
diff --git a/components/camel-spring-integration/src/main/java/org/apache/camel/component/spring/integration/SpringIntegrationEndpoint.java b/components/camel-spring-integration/src/main/java/org/apache/camel/component/spring/integration/SpringIntegrationEndpoint.java
index fc687c0..97b05d0 100644
--- a/components/camel-spring-integration/src/main/java/org/apache/camel/component/spring/integration/SpringIntegrationEndpoint.java
+++ b/components/camel-spring-integration/src/main/java/org/apache/camel/component/spring/integration/SpringIntegrationEndpoint.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;
@@ -32,16 +33,16 @@ import org.springframework.integration.MessageChannel;
  *
  * @version 
  */
-@UriEndpoint(scheme = "spring-integration", consumerClass = SpringIntegrationConsumer.class, label = "spring,eventbus")
+@UriEndpoint(scheme = "spring-integration", syntax = "spring-integration:defaultChannel", consumerClass = SpringIntegrationConsumer.class, label = "spring,eventbus")
 public class SpringIntegrationEndpoint extends DefaultEndpoint {
-    @UriPath
+    @UriPath @Metadata(required = "true")
     private String defaultChannel;
     @UriParam
     private String inputChannel;
     @UriParam
     private String outputChannel;
     private MessageChannel messageChannel;
-    @UriParam(defaultValue = "false")
+    @UriParam
     private boolean inOut;
 
     public SpringIntegrationEndpoint(String uri, String channel, SpringIntegrationComponent component) {

http://git-wip-us.apache.org/repos/asf/camel/blob/fc6f5ff1/components/camel-spring-ldap/src/main/java/org/apache/camel/component/springldap/SpringLdapEndpoint.java
----------------------------------------------------------------------
diff --git a/components/camel-spring-ldap/src/main/java/org/apache/camel/component/springldap/SpringLdapEndpoint.java b/components/camel-spring-ldap/src/main/java/org/apache/camel/component/springldap/SpringLdapEndpoint.java
index 0e9ea44..cbd4ee0 100644
--- a/components/camel-spring-ldap/src/main/java/org/apache/camel/component/springldap/SpringLdapEndpoint.java
+++ b/components/camel-spring-ldap/src/main/java/org/apache/camel/component/springldap/SpringLdapEndpoint.java
@@ -25,12 +25,13 @@ 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;
 import org.springframework.ldap.core.LdapTemplate;
 
-@UriEndpoint(scheme = "spring-ldap", producerOnly = true, label = "spring,ldap")
+@UriEndpoint(scheme = "spring-ldap", syntax = "spring-ldap:templateName", producerOnly = true, label = "spring,ldap")
 public class SpringLdapEndpoint extends DefaultEndpoint {
 
     private static final String OBJECT_SCOPE_NAME = "object";
@@ -41,7 +42,7 @@ public class SpringLdapEndpoint extends DefaultEndpoint {
     private static Map<String, Integer> scopeMap;
 
     private LdapTemplate ldapTemplate;
-    @UriPath
+    @UriPath @Metadata(required = "true")
     private String templateName;
     @UriParam
     private LdapOperation operation;

http://git-wip-us.apache.org/repos/asf/camel/blob/fc6f5ff1/components/camel-spring-redis/src/main/java/org/apache/camel/component/redis/RedisConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-spring-redis/src/main/java/org/apache/camel/component/redis/RedisConfiguration.java b/components/camel-spring-redis/src/main/java/org/apache/camel/component/redis/RedisConfiguration.java
index 4576a82..0c48845 100755
--- a/components/camel-spring-redis/src/main/java/org/apache/camel/component/redis/RedisConfiguration.java
+++ b/components/camel-spring-redis/src/main/java/org/apache/camel/component/redis/RedisConfiguration.java
@@ -16,6 +16,7 @@
  */
 package org.apache.camel.component.redis;
 
+import org.apache.camel.spi.Metadata;
 import org.apache.camel.spi.UriParam;
 import org.apache.camel.spi.UriParams;
 import org.apache.camel.spi.UriPath;
@@ -28,9 +29,9 @@ import org.springframework.data.redis.serializer.RedisSerializer;
 
 @UriParams
 public class RedisConfiguration {
-    @UriPath
+    @UriPath @Metadata(required = "true")
     private String host;
-    @UriPath
+    @UriPath @Metadata(required = "true")
     private Integer port;
     @UriParam
     private String command;
@@ -44,9 +45,9 @@ public class RedisConfiguration {
     private RedisConnectionFactory connectionFactory;
     @UriParam
     private RedisSerializer serializer;
-    @UriParam(defaultValue = "false")
+    @UriParam
     private boolean managedListenerContainer;
-    @UriParam(defaultValue = "false")
+    @UriParam
     private boolean managedConnectionFactory;
 
     public String getCommand() {

http://git-wip-us.apache.org/repos/asf/camel/blob/fc6f5ff1/components/camel-spring-redis/src/main/java/org/apache/camel/component/redis/RedisEndpoint.java
----------------------------------------------------------------------
diff --git a/components/camel-spring-redis/src/main/java/org/apache/camel/component/redis/RedisEndpoint.java b/components/camel-spring-redis/src/main/java/org/apache/camel/component/redis/RedisEndpoint.java
index 67ed9ec..a387186 100755
--- a/components/camel-spring-redis/src/main/java/org/apache/camel/component/redis/RedisEndpoint.java
+++ b/components/camel-spring-redis/src/main/java/org/apache/camel/component/redis/RedisEndpoint.java
@@ -26,7 +26,7 @@ import org.apache.camel.spi.UriParam;
 /**
  * Represents a Redis endpoint.
  */
-@UriEndpoint(scheme = "spring-redis", consumerClass = RedisConsumer.class, label = "spring,nosql")
+@UriEndpoint(scheme = "spring-redis", syntax = "spring-redist:host:port", consumerClass = RedisConsumer.class, label = "spring,nosql")
 public class RedisEndpoint extends DirectEndpoint {
 
     @UriParam

http://git-wip-us.apache.org/repos/asf/camel/blob/fc6f5ff1/components/camel-spring-ws/src/main/java/org/apache/camel/component/spring/ws/SpringWebserviceEndpoint.java
----------------------------------------------------------------------
diff --git a/components/camel-spring-ws/src/main/java/org/apache/camel/component/spring/ws/SpringWebserviceEndpoint.java b/components/camel-spring-ws/src/main/java/org/apache/camel/component/spring/ws/SpringWebserviceEndpoint.java
index 1084cd3..5ee09e2 100644
--- a/components/camel-spring-ws/src/main/java/org/apache/camel/component/spring/ws/SpringWebserviceEndpoint.java
+++ b/components/camel-spring-ws/src/main/java/org/apache/camel/component/spring/ws/SpringWebserviceEndpoint.java
@@ -24,7 +24,7 @@ import org.apache.camel.impl.DefaultEndpoint;
 import org.apache.camel.spi.UriEndpoint;
 import org.apache.camel.spi.UriParam;
 
-@UriEndpoint(scheme = "spring-ws", consumerClass = SpringWebserviceConsumer.class, label = "http,soap,webservice")
+@UriEndpoint(scheme = "spring-ws", syntax = "spring-ws:type:lookupKey", consumerClass = SpringWebserviceConsumer.class, label = "http,soap,webservice")
 public class SpringWebserviceEndpoint extends DefaultEndpoint {
 
     @UriParam

http://git-wip-us.apache.org/repos/asf/camel/blob/fc6f5ff1/components/camel-spring-ws/src/main/java/org/apache/camel/component/spring/ws/type/EndpointMappingKey.java
----------------------------------------------------------------------
diff --git a/components/camel-spring-ws/src/main/java/org/apache/camel/component/spring/ws/type/EndpointMappingKey.java b/components/camel-spring-ws/src/main/java/org/apache/camel/component/spring/ws/type/EndpointMappingKey.java
index 7c8391c..158d39e 100644
--- a/components/camel-spring-ws/src/main/java/org/apache/camel/component/spring/ws/type/EndpointMappingKey.java
+++ b/components/camel-spring-ws/src/main/java/org/apache/camel/component/spring/ws/type/EndpointMappingKey.java
@@ -16,15 +16,16 @@
  */
 package org.apache.camel.component.spring.ws.type;
 
+import org.apache.camel.spi.Metadata;
 import org.apache.camel.spi.UriParams;
 import org.apache.camel.spi.UriPath;
 import org.springframework.xml.xpath.XPathExpression;
 
 @UriParams
 public class EndpointMappingKey {
-    @UriPath
+    @UriPath @Metadata(required = "true")
     private EndpointMappingType type;
-    @UriPath
+    @UriPath @Metadata(required = "true")
     private String lookupKey;
 
     /* expression in case type is 'xpath' */

http://git-wip-us.apache.org/repos/asf/camel/blob/fc6f5ff1/components/camel-sql/src/main/java/org/apache/camel/component/sql/SqlEndpoint.java
----------------------------------------------------------------------
diff --git a/components/camel-sql/src/main/java/org/apache/camel/component/sql/SqlEndpoint.java b/components/camel-sql/src/main/java/org/apache/camel/component/sql/SqlEndpoint.java
index b95351e..21837eb 100644
--- a/components/camel-sql/src/main/java/org/apache/camel/component/sql/SqlEndpoint.java
+++ b/components/camel-sql/src/main/java/org/apache/camel/component/sql/SqlEndpoint.java
@@ -29,6 +29,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;
@@ -44,11 +45,11 @@ import org.springframework.jdbc.core.RowMapperResultSetExtractor;
  * question marks (that are parameter placeholders), sharp signs should be used.
  * This is because in camel question mark has other meaning.
  */
-@UriEndpoint(scheme = "sql", consumerClass = SqlConsumer.class, label = "database")
+@UriEndpoint(scheme = "sql", syntax = "sql:query", consumerClass = SqlConsumer.class, label = "database")
 public class SqlEndpoint extends DefaultPollingEndpoint {
     private JdbcTemplate jdbcTemplate;
 
-    @UriPath
+    @UriPath @Metadata(required = "true")
     private String query;
     @UriParam
     @Deprecated

http://git-wip-us.apache.org/repos/asf/camel/blob/fc6f5ff1/components/camel-stax/src/main/java/org/apache/camel/component/stax/StAXEndpoint.java
----------------------------------------------------------------------
diff --git a/components/camel-stax/src/main/java/org/apache/camel/component/stax/StAXEndpoint.java b/components/camel-stax/src/main/java/org/apache/camel/component/stax/StAXEndpoint.java
index 425fd3b..6cd0cb8 100644
--- a/components/camel-stax/src/main/java/org/apache/camel/component/stax/StAXEndpoint.java
+++ b/components/camel-stax/src/main/java/org/apache/camel/component/stax/StAXEndpoint.java
@@ -16,6 +16,7 @@
  */
 package org.apache.camel.component.stax;
 
+import org.apache.camel.spi.Metadata;
 import org.xml.sax.ContentHandler;
 
 import org.apache.camel.CamelContext;
@@ -25,10 +26,10 @@ import org.apache.camel.spi.UriEndpoint;
 import org.apache.camel.spi.UriPath;
 import org.apache.camel.util.EndpointHelper;
 
-@UriEndpoint(scheme = "stax", producerOnly = true, label = "transformation")
+@UriEndpoint(scheme = "stax", syntax = "stax:contentHandlerClass", producerOnly = true, label = "transformation")
 public class StAXEndpoint extends ProcessorEndpoint {
 
-    @UriPath
+    @UriPath @Metadata(required = "true")
     private String contentHandlerClass;
 
     public StAXEndpoint(String endpointUri, CamelContext context) {

http://git-wip-us.apache.org/repos/asf/camel/blob/fc6f5ff1/components/camel-stomp/src/main/java/org/apache/camel/component/stomp/StompEndpoint.java
----------------------------------------------------------------------
diff --git a/components/camel-stomp/src/main/java/org/apache/camel/component/stomp/StompEndpoint.java b/components/camel-stomp/src/main/java/org/apache/camel/component/stomp/StompEndpoint.java
index b7a426b..ca8c72c 100644
--- a/components/camel-stomp/src/main/java/org/apache/camel/component/stomp/StompEndpoint.java
+++ b/components/camel-stomp/src/main/java/org/apache/camel/component/stomp/StompEndpoint.java
@@ -25,6 +25,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,10 +45,10 @@ import static org.fusesource.stomp.client.Constants.SEND;
 import static org.fusesource.stomp.client.Constants.SUBSCRIBE;
 import static org.fusesource.stomp.client.Constants.UNSUBSCRIBE;
 
-@UriEndpoint(scheme = "stomp", consumerClass = StompConsumer.class, label = "messaging")
+@UriEndpoint(scheme = "stomp", syntax = "stomp:destination", consumerClass = StompConsumer.class, label = "messaging")
 public class StompEndpoint extends DefaultEndpoint {
 
-    @UriPath
+    @UriPath @Metadata(required = "true")
     private String destination;
     @UriParam
     private StompConfiguration configuration;

http://git-wip-us.apache.org/repos/asf/camel/blob/fc6f5ff1/components/camel-stringtemplate/src/main/java/org/apache/camel/component/stringtemplate/StringTemplateEndpoint.java
----------------------------------------------------------------------
diff --git a/components/camel-stringtemplate/src/main/java/org/apache/camel/component/stringtemplate/StringTemplateEndpoint.java b/components/camel-stringtemplate/src/main/java/org/apache/camel/component/stringtemplate/StringTemplateEndpoint.java
index c29e7a1..1f31a6b 100644
--- a/components/camel-stringtemplate/src/main/java/org/apache/camel/component/stringtemplate/StringTemplateEndpoint.java
+++ b/components/camel-stringtemplate/src/main/java/org/apache/camel/component/stringtemplate/StringTemplateEndpoint.java
@@ -34,7 +34,7 @@ import org.stringtemplate.v4.STGroup;
 /**
  * @version
  */
-@UriEndpoint(scheme = "stringtemplate", producerOnly = true, label = "transformation")
+@UriEndpoint(scheme = "stringtemplate", syntax = "stringtemplate:resourceUri", producerOnly = true, label = "transformation")
 public class StringTemplateEndpoint extends ResourceEndpoint {
 
     @UriParam

http://git-wip-us.apache.org/repos/asf/camel/blob/fc6f5ff1/components/camel-twitter/src/main/java/org/apache/camel/component/twitter/TwitterConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-twitter/src/main/java/org/apache/camel/component/twitter/TwitterConfiguration.java b/components/camel-twitter/src/main/java/org/apache/camel/component/twitter/TwitterConfiguration.java
index 8de58c8..1a7a621 100644
--- a/components/camel-twitter/src/main/java/org/apache/camel/component/twitter/TwitterConfiguration.java
+++ b/components/camel-twitter/src/main/java/org/apache/camel/component/twitter/TwitterConfiguration.java
@@ -21,6 +21,7 @@ import java.text.SimpleDateFormat;
 import java.util.Date;
 
 import org.apache.camel.component.twitter.data.EndpointType;
+import org.apache.camel.spi.Metadata;
 import org.apache.camel.spi.UriParam;
 import org.apache.camel.spi.UriParams;
 import org.apache.camel.spi.UriPath;
@@ -37,7 +38,7 @@ public class TwitterConfiguration {
     /**
      * Defines the Twitter API endpoint.
      */
-    @UriPath(description = "What kind of type to use")
+    @UriPath(description = "What kind of type to use") @Metadata(required = "true")
     private EndpointType type = EndpointType.DIRECT;
 
     /**

http://git-wip-us.apache.org/repos/asf/camel/blob/fc6f5ff1/components/camel-twitter/src/main/java/org/apache/camel/component/twitter/TwitterEndpointDirect.java
----------------------------------------------------------------------
diff --git a/components/camel-twitter/src/main/java/org/apache/camel/component/twitter/TwitterEndpointDirect.java b/components/camel-twitter/src/main/java/org/apache/camel/component/twitter/TwitterEndpointDirect.java
index 59791af..b3e4353 100644
--- a/components/camel-twitter/src/main/java/org/apache/camel/component/twitter/TwitterEndpointDirect.java
+++ b/components/camel-twitter/src/main/java/org/apache/camel/component/twitter/TwitterEndpointDirect.java
@@ -32,7 +32,7 @@ import org.apache.camel.spi.UriParam;
 /**
  * Twitter direct endpoint
  */
-@UriEndpoint(scheme = "twitter", consumerClass = Twitter4JConsumer.class, label = "api,social")
+@UriEndpoint(scheme = "twitter", syntax = "twitter:type", consumerClass = Twitter4JConsumer.class, label = "api,social")
 public class TwitterEndpointDirect extends DirectEndpoint implements TwitterEndpoint {
 
     @UriParam

http://git-wip-us.apache.org/repos/asf/camel/blob/fc6f5ff1/components/camel-twitter/src/main/java/org/apache/camel/component/twitter/TwitterEndpointEvent.java
----------------------------------------------------------------------
diff --git a/components/camel-twitter/src/main/java/org/apache/camel/component/twitter/TwitterEndpointEvent.java b/components/camel-twitter/src/main/java/org/apache/camel/component/twitter/TwitterEndpointEvent.java
index fefbf44..38d171a 100644
--- a/components/camel-twitter/src/main/java/org/apache/camel/component/twitter/TwitterEndpointEvent.java
+++ b/components/camel-twitter/src/main/java/org/apache/camel/component/twitter/TwitterEndpointEvent.java
@@ -26,7 +26,7 @@ import org.apache.camel.component.twitter.data.EndpointType;
 import org.apache.camel.spi.UriEndpoint;
 import org.apache.camel.spi.UriParam;
 
-@UriEndpoint(scheme = "twitter", consumerClass = Twitter4JConsumer.class, label = "api,social")
+@UriEndpoint(scheme = "twitter", syntax = "twitter:type", consumerClass = Twitter4JConsumer.class, label = "api,social")
 public class TwitterEndpointEvent extends DirectEndpoint implements TwitterEndpoint {
 
     @UriParam

http://git-wip-us.apache.org/repos/asf/camel/blob/fc6f5ff1/components/camel-twitter/src/main/java/org/apache/camel/component/twitter/TwitterEndpointPolling.java
----------------------------------------------------------------------
diff --git a/components/camel-twitter/src/main/java/org/apache/camel/component/twitter/TwitterEndpointPolling.java b/components/camel-twitter/src/main/java/org/apache/camel/component/twitter/TwitterEndpointPolling.java
index 9c70773..4e201b8 100644
--- a/components/camel-twitter/src/main/java/org/apache/camel/component/twitter/TwitterEndpointPolling.java
+++ b/components/camel-twitter/src/main/java/org/apache/camel/component/twitter/TwitterEndpointPolling.java
@@ -33,7 +33,7 @@ import org.apache.camel.spi.UriParam;
  * Twitter polling endpoint
  */
 @ManagedResource(description = "Managed Twitter Endpoint")
-@UriEndpoint(scheme = "twitter", consumerClass = Twitter4JConsumer.class, label = "api,social")
+@UriEndpoint(scheme = "twitter", syntax = "twitter:type", consumerClass = Twitter4JConsumer.class, label = "api,social")
 public class TwitterEndpointPolling extends DefaultPollingEndpoint implements TwitterEndpoint {
 
     @UriParam

http://git-wip-us.apache.org/repos/asf/camel/blob/fc6f5ff1/components/camel-vertx/src/main/java/org/apache/camel/component/vertx/VertxEndpoint.java
----------------------------------------------------------------------
diff --git a/components/camel-vertx/src/main/java/org/apache/camel/component/vertx/VertxEndpoint.java b/components/camel-vertx/src/main/java/org/apache/camel/component/vertx/VertxEndpoint.java
index b46711e..3d4a882 100644
--- a/components/camel-vertx/src/main/java/org/apache/camel/component/vertx/VertxEndpoint.java
+++ b/components/camel-vertx/src/main/java/org/apache/camel/component/vertx/VertxEndpoint.java
@@ -20,6 +20,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;
@@ -29,12 +30,12 @@ import org.vertx.java.core.eventbus.EventBus;
 /**
  * A Camel Endpoint for working with <a href="http://vertx.io/">vert.x</a> event bus endpoints
  */
-@UriEndpoint(scheme = "vertx", consumerClass = VertxConsumer.class, label = "eventbus")
+@UriEndpoint(scheme = "vertx", syntax = "vertx:address", consumerClass = VertxConsumer.class, label = "eventbus")
 public class VertxEndpoint extends DefaultEndpoint {
 
-    @UriPath
+    @UriPath @Metadata(required = "true")
     private String address;
-    @UriParam(defaultValue = "false")
+    @UriParam
     private Boolean pubSub;
 
     public VertxEndpoint(String uri, VertxComponent component, String address) {

http://git-wip-us.apache.org/repos/asf/camel/blob/fc6f5ff1/components/camel-weather/src/main/java/org/apache/camel/component/weather/WeatherConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-weather/src/main/java/org/apache/camel/component/weather/WeatherConfiguration.java b/components/camel-weather/src/main/java/org/apache/camel/component/weather/WeatherConfiguration.java
index a47b7d3..2c9d3ef 100644
--- a/components/camel-weather/src/main/java/org/apache/camel/component/weather/WeatherConfiguration.java
+++ b/components/camel-weather/src/main/java/org/apache/camel/component/weather/WeatherConfiguration.java
@@ -19,6 +19,7 @@ package org.apache.camel.component.weather;
 import java.net.URL;
 import java.util.Scanner;
 
+import org.apache.camel.spi.Metadata;
 import org.apache.camel.spi.UriParam;
 import org.apache.camel.spi.UriParams;
 import org.apache.camel.spi.UriPath;
@@ -35,7 +36,7 @@ public class WeatherConfiguration {
 
     private final WeatherComponent component;
 
-    @UriPath(description = "The name value is not used.")
+    @UriPath(description = "The name value is not used.") @Metadata(required = "true")
     private String name;
     @UriParam
     private String location = "";

http://git-wip-us.apache.org/repos/asf/camel/blob/fc6f5ff1/components/camel-weather/src/main/java/org/apache/camel/component/weather/WeatherEndpoint.java
----------------------------------------------------------------------
diff --git a/components/camel-weather/src/main/java/org/apache/camel/component/weather/WeatherEndpoint.java b/components/camel-weather/src/main/java/org/apache/camel/component/weather/WeatherEndpoint.java
index d7a7e10..4055cdf 100644
--- a/components/camel-weather/src/main/java/org/apache/camel/component/weather/WeatherEndpoint.java
+++ b/components/camel-weather/src/main/java/org/apache/camel/component/weather/WeatherEndpoint.java
@@ -26,7 +26,7 @@ import org.apache.camel.spi.UriParam;
 /**
  * Weather Endpoint
  */
-@UriEndpoint(scheme = "weather", consumerClass = WeatherConsumer.class, label = "api")
+@UriEndpoint(scheme = "weather", syntax = "weather:name", consumerClass = WeatherConsumer.class, label = "api")
 public class WeatherEndpoint extends DefaultPollingEndpoint {
 
     @UriParam

http://git-wip-us.apache.org/repos/asf/camel/blob/fc6f5ff1/components/camel-websocket/src/main/java/org/apache/camel/component/websocket/WebsocketEndpoint.java
----------------------------------------------------------------------
diff --git a/components/camel-websocket/src/main/java/org/apache/camel/component/websocket/WebsocketEndpoint.java b/components/camel-websocket/src/main/java/org/apache/camel/component/websocket/WebsocketEndpoint.java
index e9c0815..4ffc293 100644
--- a/components/camel-websocket/src/main/java/org/apache/camel/component/websocket/WebsocketEndpoint.java
+++ b/components/camel-websocket/src/main/java/org/apache/camel/component/websocket/WebsocketEndpoint.java
@@ -25,6 +25,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;
@@ -33,7 +34,7 @@ import org.apache.camel.util.ServiceHelper;
 import org.apache.camel.util.jsse.SSLContextParameters;
 import org.eclipse.jetty.server.Handler;
 
-@UriEndpoint(scheme = "websocket", consumerClass = WebsocketConsumer.class, label = "http,websocket")
+@UriEndpoint(scheme = "websocket", syntax = "websocket:host:port/resourceUri", consumerClass = WebsocketConsumer.class, label = "http,websocket")
 public class WebsocketEndpoint extends DefaultEndpoint {
 
     private NodeSynchronization sync;
@@ -42,21 +43,21 @@ public class WebsocketEndpoint extends DefaultEndpoint {
     private URI uri;
     private List<Handler> handlers;
 
-    @UriParam(defaultValue = "false")
+    @UriPath @Metadata(required = "true")
+    private String host;
+    @UriPath @Metadata(required = "true")
+    private Integer port;
+    @UriPath @Metadata(required = "true")
+    private String resourceUri;
+
+    @UriParam
     private Boolean sendToAll;
-    @UriParam(defaultValue = "false")
+    @UriParam
     private boolean enableJmx;
-    @UriParam(defaultValue = "false")
+    @UriParam
     private boolean sessionSupport;
-    @UriParam(defaultValue = "false")
+    @UriParam
     private boolean crossOriginFilterOn;
-
-    @UriPath
-    private String host;
-    @UriPath
-    private Integer port;
-    @UriPath
-    private String resourceUri;
     @UriParam
     private SSLContextParameters sslContextParameters;
     @UriParam

http://git-wip-us.apache.org/repos/asf/camel/blob/fc6f5ff1/components/camel-xmlrpc/src/main/java/org/apache/camel/component/xmlrpc/XmlRpcEndpoint.java
----------------------------------------------------------------------
diff --git a/components/camel-xmlrpc/src/main/java/org/apache/camel/component/xmlrpc/XmlRpcEndpoint.java b/components/camel-xmlrpc/src/main/java/org/apache/camel/component/xmlrpc/XmlRpcEndpoint.java
index ce916eb..f86e336 100644
--- a/components/camel-xmlrpc/src/main/java/org/apache/camel/component/xmlrpc/XmlRpcEndpoint.java
+++ b/components/camel-xmlrpc/src/main/java/org/apache/camel/component/xmlrpc/XmlRpcEndpoint.java
@@ -26,6 +26,7 @@ import org.apache.camel.Processor;
 import org.apache.camel.Producer;
 import org.apache.camel.impl.DefaultEndpoint;
 import org.apache.camel.impl.SynchronousDelegateProducer;
+import org.apache.camel.spi.Metadata;
 import org.apache.camel.spi.UriEndpoint;
 import org.apache.camel.spi.UriParam;
 import org.apache.camel.spi.UriPath;
@@ -36,9 +37,9 @@ import org.apache.xmlrpc.client.XmlRpcClientConfigImpl;
 /**
  * Represents a xmlrpc endpoint.
  */
-@UriEndpoint(scheme = "xmlrpc", producerOnly = true, label = "transformation")
+@UriEndpoint(scheme = "xmlrpc", syntax = "xmlrpc:address", producerOnly = true, label = "transformation")
 public class XmlRpcEndpoint extends DefaultEndpoint {
-    @UriPath
+    @UriPath @Metadata(required = "true")
     private String address;
     @UriParam
     private XmlRpcConfiguration configuration;

http://git-wip-us.apache.org/repos/asf/camel/blob/fc6f5ff1/components/camel-xmlsecurity/src/main/java/org/apache/camel/component/xmlsecurity/XmlSignatureEndpoint.java
----------------------------------------------------------------------
diff --git a/components/camel-xmlsecurity/src/main/java/org/apache/camel/component/xmlsecurity/XmlSignatureEndpoint.java b/components/camel-xmlsecurity/src/main/java/org/apache/camel/component/xmlsecurity/XmlSignatureEndpoint.java
index 4727183..9a11575 100644
--- a/components/camel-xmlsecurity/src/main/java/org/apache/camel/component/xmlsecurity/XmlSignatureEndpoint.java
+++ b/components/camel-xmlsecurity/src/main/java/org/apache/camel/component/xmlsecurity/XmlSignatureEndpoint.java
@@ -26,16 +26,17 @@ import org.apache.camel.component.xmlsecurity.processor.XmlSignatureConfiguratio
 import org.apache.camel.component.xmlsecurity.processor.XmlSignerConfiguration;
 import org.apache.camel.component.xmlsecurity.processor.XmlVerifierConfiguration;
 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 = "xmlsecurity", producerOnly = true, label = "security,transformation")
+@UriEndpoint(scheme = "xmlsecurity", syntax = "xmlsecurity:command/name", producerOnly = true, label = "security,transformation")
 public abstract class XmlSignatureEndpoint extends DefaultEndpoint {
 
-    @UriPath
+    @UriPath @Metadata(required = "true")
     private XmlCommand command;
-    @UriPath
+    @UriPath @Metadata(required = "true")
     private String name;
     // to include both kind of configuration params
     @UriParam

http://git-wip-us.apache.org/repos/asf/camel/blob/fc6f5ff1/components/camel-xmpp/src/main/java/org/apache/camel/component/xmpp/XmppEndpoint.java
----------------------------------------------------------------------
diff --git a/components/camel-xmpp/src/main/java/org/apache/camel/component/xmpp/XmppEndpoint.java b/components/camel-xmpp/src/main/java/org/apache/camel/component/xmpp/XmppEndpoint.java
index ad26724..cbbff28 100644
--- a/components/camel-xmpp/src/main/java/org/apache/camel/component/xmpp/XmppEndpoint.java
+++ b/components/camel-xmpp/src/main/java/org/apache/camel/component/xmpp/XmppEndpoint.java
@@ -29,6 +29,7 @@ import org.apache.camel.impl.DefaultExchange;
 import org.apache.camel.impl.DefaultHeaderFilterStrategy;
 import org.apache.camel.spi.HeaderFilterStrategy;
 import org.apache.camel.spi.HeaderFilterStrategyAware;
+import org.apache.camel.spi.Metadata;
 import org.apache.camel.spi.UriEndpoint;
 import org.apache.camel.spi.UriParam;
 import org.apache.camel.spi.UriPath;
@@ -50,7 +51,7 @@ import org.slf4j.LoggerFactory;
 /**
  * A XMPP Endpoint
  */
-@UriEndpoint(scheme = "xmpp", consumerClass = XmppConsumer.class, label = "chat,messaging")
+@UriEndpoint(scheme = "xmpp", syntax = "xmpp:host:port/participant", consumerClass = XmppConsumer.class, label = "chat,messaging")
 public class XmppEndpoint extends DefaultEndpoint implements HeaderFilterStrategyAware {
     private static final Logger LOG = LoggerFactory.getLogger(XmppEndpoint.class);
 
@@ -59,9 +60,9 @@ public class XmppEndpoint extends DefaultEndpoint implements HeaderFilterStrateg
     private XmppBinding binding;
     private HeaderFilterStrategy headerFilterStrategy = new DefaultHeaderFilterStrategy();
 
-    @UriPath
+    @UriPath @Metadata(required = "true")
     private String host;
-    @UriPath
+    @UriPath @Metadata(required = "true")
     private int port;
     @UriPath
     private String participant;
@@ -81,11 +82,11 @@ public class XmppEndpoint extends DefaultEndpoint implements HeaderFilterStrateg
     private String nickname;
     @UriParam
     private String serviceName;
-    @UriParam(defaultValue = "false")
+    @UriParam
     private boolean pubsub;
     //Set a doc header on the IN message containing a Document form of the incoming packet; 
     //default is true if pubsub is true, otherwise false
-    @UriParam(defaultValue = "false")
+    @UriParam
     private boolean doc;
     @UriParam(defaultValue = "true")
     private boolean testConnectionOnStartup = true;

http://git-wip-us.apache.org/repos/asf/camel/blob/fc6f5ff1/components/camel-yammer/src/main/java/org/apache/camel/component/yammer/YammerConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-yammer/src/main/java/org/apache/camel/component/yammer/YammerConfiguration.java b/components/camel-yammer/src/main/java/org/apache/camel/component/yammer/YammerConfiguration.java
index d679d72..deee282 100644
--- a/components/camel-yammer/src/main/java/org/apache/camel/component/yammer/YammerConfiguration.java
+++ b/components/camel-yammer/src/main/java/org/apache/camel/component/yammer/YammerConfiguration.java
@@ -16,6 +16,7 @@
  */
 package org.apache.camel.component.yammer;
 
+import org.apache.camel.spi.Metadata;
 import org.apache.camel.spi.UriParam;
 import org.apache.camel.spi.UriParams;
 import org.apache.camel.spi.UriPath;
@@ -23,7 +24,7 @@ import org.apache.camel.spi.UriPath;
 @UriParams
 public class YammerConfiguration {
 
-    @UriPath(name = "function")
+    @UriPath(name = "function") @Metadata(required = "true")
     private YammerFunctionType functionType;
     private String function;
     @UriParam

http://git-wip-us.apache.org/repos/asf/camel/blob/fc6f5ff1/components/camel-yammer/src/main/java/org/apache/camel/component/yammer/YammerEndpoint.java
----------------------------------------------------------------------
diff --git a/components/camel-yammer/src/main/java/org/apache/camel/component/yammer/YammerEndpoint.java b/components/camel-yammer/src/main/java/org/apache/camel/component/yammer/YammerEndpoint.java
index 95be167..4461842 100644
--- a/components/camel-yammer/src/main/java/org/apache/camel/component/yammer/YammerEndpoint.java
+++ b/components/camel-yammer/src/main/java/org/apache/camel/component/yammer/YammerEndpoint.java
@@ -26,7 +26,7 @@ import org.apache.camel.spi.UriParam;
 /**
  * Represents a Yammer endpoint.
  */
-@UriEndpoint(scheme = "yammer", consumerClass = YammerMessagePollingConsumer.class, label = "social")
+@UriEndpoint(scheme = "yammer", syntax = "yammer:function", consumerClass = YammerMessagePollingConsumer.class, label = "social")
 public class YammerEndpoint extends ScheduledPollEndpoint {
 
     @UriParam

http://git-wip-us.apache.org/repos/asf/camel/blob/fc6f5ff1/components/camel-zookeeper/src/main/java/org/apache/camel/component/zookeeper/ZooKeeperConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-zookeeper/src/main/java/org/apache/camel/component/zookeeper/ZooKeeperConfiguration.java b/components/camel-zookeeper/src/main/java/org/apache/camel/component/zookeeper/ZooKeeperConfiguration.java
index 65b1cab..315166f 100644
--- a/components/camel-zookeeper/src/main/java/org/apache/camel/component/zookeeper/ZooKeeperConfiguration.java
+++ b/components/camel-zookeeper/src/main/java/org/apache/camel/component/zookeeper/ZooKeeperConfiguration.java
@@ -20,6 +20,7 @@ import java.util.ArrayList;
 import java.util.List;
 
 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;
@@ -37,10 +38,10 @@ public class ZooKeeperConfiguration implements Cloneable {
 
     private transient boolean changed;
 
-    @UriPath
+    @UriPath @Metadata(required = "true")
     private String serverUrls;
     private List<String> servers;
-    @UriPath
+    @UriPath @Metadata(required = "true")
     private String path;
     @UriParam(defaultValue = "5000")
     private int timeout = 5000;

http://git-wip-us.apache.org/repos/asf/camel/blob/fc6f5ff1/components/camel-zookeeper/src/main/java/org/apache/camel/component/zookeeper/ZooKeeperEndpoint.java
----------------------------------------------------------------------
diff --git a/components/camel-zookeeper/src/main/java/org/apache/camel/component/zookeeper/ZooKeeperEndpoint.java b/components/camel-zookeeper/src/main/java/org/apache/camel/component/zookeeper/ZooKeeperEndpoint.java
index 5086736..d9fc34d 100644
--- a/components/camel-zookeeper/src/main/java/org/apache/camel/component/zookeeper/ZooKeeperEndpoint.java
+++ b/components/camel-zookeeper/src/main/java/org/apache/camel/component/zookeeper/ZooKeeperEndpoint.java
@@ -33,7 +33,7 @@ import org.apache.camel.spi.UriParam;
  * <code>ZooKeeperEndpoint</code>
  */
 @ManagedResource(description = "ZooKeeper Endpoint")
-@UriEndpoint(scheme = "zookeeper", consumerClass = ZooKeeperConsumer.class, label = "clustering")
+@UriEndpoint(scheme = "zookeeper", syntax = "zookeeper:serverUrls/path", consumerClass = ZooKeeperConsumer.class, label = "clustering")
 public class ZooKeeperEndpoint extends DefaultEndpoint {
     @UriParam
     private ZooKeeperConfiguration configuration;


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

Posted by da...@apache.org.
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/f511c452
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/f511c452
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/f511c452

Branch: refs/heads/master
Commit: f511c452fc2930028d5a9173d2b7f5eb7dcc07a0
Parents: caf545f
Author: Claus Ibsen <da...@apache.org>
Authored: Sat Feb 28 18:49:36 2015 +0100
Committer: Claus Ibsen <da...@apache.org>
Committed: Sat Feb 28 18:49:36 2015 +0100

----------------------------------------------------------------------
 .../component/olingo2/Olingo2Component.java      |  2 --
 .../camel/component/olingo2/Olingo2Endpoint.java |  2 +-
 .../component/openshift/OpenShiftEndpoint.java   | 11 ++++++-----
 .../optaplanner/OptaPlannerEndpoint.java         |  2 +-
 .../component/paxlogging/PaxLoggingEndpoint.java |  5 +++--
 .../camel/component/pgevent/PgEventEndpoint.java | 11 ++++++-----
 .../camel/component/printer/PrinterEndpoint.java |  2 +-
 .../camel/component/quartz/QuartzEndpoint.java   | 11 ++++++-----
 .../camel/component/quartz2/QuartzEndpoint.java  | 19 ++++++++++---------
 .../component/quickfixj/QuickfixjEndpoint.java   |  5 +++--
 .../component/rabbitmq/RabbitMQEndpoint.java     | 17 +++++++++--------
 .../camel/component/restlet/RestletEndpoint.java | 13 +++++++------
 .../apache/camel/component/rmi/RmiEndpoint.java  | 12 +++++++++---
 13 files changed, 62 insertions(+), 50 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/f511c452/components/camel-olingo2/camel-olingo2-component/src/main/java/org/apache/camel/component/olingo2/Olingo2Component.java
----------------------------------------------------------------------
diff --git a/components/camel-olingo2/camel-olingo2-component/src/main/java/org/apache/camel/component/olingo2/Olingo2Component.java b/components/camel-olingo2/camel-olingo2-component/src/main/java/org/apache/camel/component/olingo2/Olingo2Component.java
index 69faa56..2cbfd2b 100644
--- a/components/camel-olingo2/camel-olingo2-component/src/main/java/org/apache/camel/component/olingo2/Olingo2Component.java
+++ b/components/camel-olingo2/camel-olingo2-component/src/main/java/org/apache/camel/component/olingo2/Olingo2Component.java
@@ -25,7 +25,6 @@ import org.apache.camel.Endpoint;
 import org.apache.camel.component.olingo2.api.impl.Olingo2AppImpl;
 import org.apache.camel.component.olingo2.internal.Olingo2ApiCollection;
 import org.apache.camel.component.olingo2.internal.Olingo2ApiName;
-import org.apache.camel.spi.UriEndpoint;
 import org.apache.camel.util.ObjectHelper;
 import org.apache.camel.util.component.AbstractApiComponent;
 import org.apache.camel.util.jsse.SSLContextParameters;
@@ -36,7 +35,6 @@ import org.apache.http.impl.nio.client.HttpAsyncClientBuilder;
 /**
  * Represents the component that manages {@link Olingo2Endpoint}.
  */
-@UriEndpoint(scheme = "olingo2", consumerClass = Olingo2Consumer.class, consumerPrefix = "consumer")
 public class Olingo2Component extends AbstractApiComponent<Olingo2ApiName, Olingo2Configuration, Olingo2ApiCollection> {
 
     // component level shared proxy

http://git-wip-us.apache.org/repos/asf/camel/blob/f511c452/components/camel-olingo2/camel-olingo2-component/src/main/java/org/apache/camel/component/olingo2/Olingo2Endpoint.java
----------------------------------------------------------------------
diff --git a/components/camel-olingo2/camel-olingo2-component/src/main/java/org/apache/camel/component/olingo2/Olingo2Endpoint.java b/components/camel-olingo2/camel-olingo2-component/src/main/java/org/apache/camel/component/olingo2/Olingo2Endpoint.java
index f77f764..c5007bb 100644
--- a/components/camel-olingo2/camel-olingo2-component/src/main/java/org/apache/camel/component/olingo2/Olingo2Endpoint.java
+++ b/components/camel-olingo2/camel-olingo2-component/src/main/java/org/apache/camel/component/olingo2/Olingo2Endpoint.java
@@ -37,7 +37,7 @@ import org.apache.camel.util.component.ApiMethodPropertiesHelper;
 /**
  * Represents a Olingo2 endpoint.
  */
-@UriEndpoint(scheme = "olingo2", consumerClass = Olingo2Consumer.class, consumerPrefix = "consumer")
+@UriEndpoint(scheme = "olingo2", syntax = "olingo2:apiName/methodName", consumerClass = Olingo2Consumer.class, consumerPrefix = "consumer")
 public class Olingo2Endpoint extends AbstractApiEndpoint<Olingo2ApiName, Olingo2Configuration> {
 
     protected static final String RESOURCE_PATH_PROPERTY = "resourcePath";

http://git-wip-us.apache.org/repos/asf/camel/blob/f511c452/components/camel-openshift/src/main/java/org/apache/camel/component/openshift/OpenShiftEndpoint.java
----------------------------------------------------------------------
diff --git a/components/camel-openshift/src/main/java/org/apache/camel/component/openshift/OpenShiftEndpoint.java b/components/camel-openshift/src/main/java/org/apache/camel/component/openshift/OpenShiftEndpoint.java
index 489d0d0..356b3e4 100644
--- a/components/camel-openshift/src/main/java/org/apache/camel/component/openshift/OpenShiftEndpoint.java
+++ b/components/camel-openshift/src/main/java/org/apache/camel/component/openshift/OpenShiftEndpoint.java
@@ -24,25 +24,26 @@ import org.apache.camel.Processor;
 import org.apache.camel.Producer;
 import org.apache.camel.impl.DefaultExchange;
 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;
 import org.apache.camel.util.ObjectHelper;
 
-@UriEndpoint(scheme = "openshift", consumerClass = OpenShiftConsumer.class, label = "cloud")
+@UriEndpoint(scheme = "openshift", syntax = "openshift:clientId", consumerClass = OpenShiftConsumer.class, label = "cloud")
 public class OpenShiftEndpoint extends ScheduledPollEndpoint {
 
-    @UriPath
+    @UriPath @Metadata(required = "true")
     private String clientId;
-    @UriParam
+    @UriPath @Metadata(required = "true")
     private String username;
-    @UriParam
+    @UriPath @Metadata(required = "true")
     private String password;
     @UriParam
     private String domain;
     @UriParam
     private String server;
-    @UriParam
+    @UriParam(enums = "list,start,stop,restart,state")
     private String operation;
     @UriParam
     private String application;

http://git-wip-us.apache.org/repos/asf/camel/blob/f511c452/components/camel-optaplanner/src/main/java/org/apache/camel/component/optaplanner/OptaPlannerEndpoint.java
----------------------------------------------------------------------
diff --git a/components/camel-optaplanner/src/main/java/org/apache/camel/component/optaplanner/OptaPlannerEndpoint.java b/components/camel-optaplanner/src/main/java/org/apache/camel/component/optaplanner/OptaPlannerEndpoint.java
index 715e64b..452685a 100644
--- a/components/camel-optaplanner/src/main/java/org/apache/camel/component/optaplanner/OptaPlannerEndpoint.java
+++ b/components/camel-optaplanner/src/main/java/org/apache/camel/component/optaplanner/OptaPlannerEndpoint.java
@@ -29,7 +29,7 @@ import org.optaplanner.core.api.solver.SolverFactory;
 /**
  * OptaPlanner endpoint for Camel
  */
-@UriEndpoint(scheme = "optaplanner", producerOnly = true, label = "engine,planning")
+@UriEndpoint(scheme = "optaplanner", syntax = "optaplanner:resourceUri", producerOnly = true, label = "engine,planning")
 public class OptaPlannerEndpoint extends ResourceEndpoint {
 
     private SolverFactory solverFactory;

http://git-wip-us.apache.org/repos/asf/camel/blob/f511c452/components/camel-paxlogging/src/main/java/org/apache/camel/component/paxlogging/PaxLoggingEndpoint.java
----------------------------------------------------------------------
diff --git a/components/camel-paxlogging/src/main/java/org/apache/camel/component/paxlogging/PaxLoggingEndpoint.java b/components/camel-paxlogging/src/main/java/org/apache/camel/component/paxlogging/PaxLoggingEndpoint.java
index e0e60e3..d9fd526 100644
--- a/components/camel-paxlogging/src/main/java/org/apache/camel/component/paxlogging/PaxLoggingEndpoint.java
+++ b/components/camel-paxlogging/src/main/java/org/apache/camel/component/paxlogging/PaxLoggingEndpoint.java
@@ -21,16 +21,17 @@ 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.UriPath;
 
 /**
  * Paxlogging endpoint.
  */
-@UriEndpoint(scheme = "paxlogging", consumerOnly = true, consumerClass = PaxLoggingConsumer.class, label = "monitoring")
+@UriEndpoint(scheme = "paxlogging", syntax = "paxlogging:appender", consumerOnly = true, consumerClass = PaxLoggingConsumer.class, label = "monitoring")
 public class PaxLoggingEndpoint extends DefaultEndpoint {
 
-    @UriPath
+    @UriPath @Metadata(required = "true")
     private final String appender;
 
     public PaxLoggingEndpoint(String uri, PaxLoggingComponent component, String appender) {

http://git-wip-us.apache.org/repos/asf/camel/blob/f511c452/components/camel-pgevent/src/main/java/org/apache/camel/component/pgevent/PgEventEndpoint.java
----------------------------------------------------------------------
diff --git a/components/camel-pgevent/src/main/java/org/apache/camel/component/pgevent/PgEventEndpoint.java b/components/camel-pgevent/src/main/java/org/apache/camel/component/pgevent/PgEventEndpoint.java
index ba8e368..38cc196 100644
--- a/components/camel-pgevent/src/main/java/org/apache/camel/component/pgevent/PgEventEndpoint.java
+++ b/components/camel-pgevent/src/main/java/org/apache/camel/component/pgevent/PgEventEndpoint.java
@@ -28,6 +28,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;
@@ -38,7 +39,7 @@ import org.slf4j.LoggerFactory;
 /**
  * Represents a PgEvent endpoint.
  */
-@UriEndpoint(scheme = "pgevent", consumerClass = PgEventConsumer.class, label = "database,sql")
+@UriEndpoint(scheme = "pgevent", syntax = "pgevent:host:port/database/channel", consumerClass = PgEventConsumer.class, label = "database,sql")
 public class PgEventEndpoint extends DefaultEndpoint {
     private static final Logger LOG = LoggerFactory.getLogger(PgEventEndpoint.class);
 
@@ -47,13 +48,13 @@ public class PgEventEndpoint extends DefaultEndpoint {
     private static final String FORMAT3 = "^pgevent:///(\\w+)/(\\w+).*$";
     private static final String FORMAT4 = "^pgevent:(\\w+)/(\\w+)/(\\w+).*$";
 
-    @UriPath
+    @UriPath(defaultValue = "localhost")
     private String host = "localhost";
-    @UriPath
+    @UriPath(defaultValue = "5432")
     private Integer port = 5432;
-    @UriPath
+    @UriPath @Metadata(required = "true")
     private String database;
-    @UriPath
+    @UriPath @Metadata(required = "true")
     private String channel;
 
     @UriParam(defaultValue = "postgres")

http://git-wip-us.apache.org/repos/asf/camel/blob/f511c452/components/camel-printer/src/main/java/org/apache/camel/component/printer/PrinterEndpoint.java
----------------------------------------------------------------------
diff --git a/components/camel-printer/src/main/java/org/apache/camel/component/printer/PrinterEndpoint.java b/components/camel-printer/src/main/java/org/apache/camel/component/printer/PrinterEndpoint.java
index d48dc61..651d19d 100644
--- a/components/camel-printer/src/main/java/org/apache/camel/component/printer/PrinterEndpoint.java
+++ b/components/camel-printer/src/main/java/org/apache/camel/component/printer/PrinterEndpoint.java
@@ -24,7 +24,7 @@ import org.apache.camel.impl.DefaultEndpoint;
 import org.apache.camel.spi.UriEndpoint;
 import org.apache.camel.spi.UriParam;
 
-@UriEndpoint(scheme = "printer", producerOnly = true, label = "printing")
+@UriEndpoint(scheme = "lpr", syntax = "lpr:hostname:port/printername", producerOnly = true, label = "printing")
 public class PrinterEndpoint extends DefaultEndpoint {
     
     public static final String JOB_NAME = "PrinterJobName";

http://git-wip-us.apache.org/repos/asf/camel/blob/f511c452/components/camel-quartz/src/main/java/org/apache/camel/component/quartz/QuartzEndpoint.java
----------------------------------------------------------------------
diff --git a/components/camel-quartz/src/main/java/org/apache/camel/component/quartz/QuartzEndpoint.java b/components/camel-quartz/src/main/java/org/apache/camel/component/quartz/QuartzEndpoint.java
index 1f569c2..a4decec 100644
--- a/components/camel-quartz/src/main/java/org/apache/camel/component/quartz/QuartzEndpoint.java
+++ b/components/camel-quartz/src/main/java/org/apache/camel/component/quartz/QuartzEndpoint.java
@@ -26,6 +26,7 @@ import org.apache.camel.ShutdownableService;
 import org.apache.camel.impl.DefaultEndpoint;
 import org.apache.camel.processor.loadbalancer.LoadBalancer;
 import org.apache.camel.processor.loadbalancer.RoundRobinLoadBalancer;
+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,7 +46,7 @@ import org.slf4j.LoggerFactory;
  *
  * @version 
  */
-@UriEndpoint(scheme = "quartz", consumerOnly = true, consumerClass = QuartzConsumer.class, label = "scheduling")
+@UriEndpoint(scheme = "quartz", syntax = "quartz:groupName/timerName", consumerOnly = true, consumerClass = QuartzConsumer.class, label = "scheduling")
 public class QuartzEndpoint extends DefaultEndpoint implements ShutdownableService {
     private static final Logger LOG = LoggerFactory.getLogger(QuartzEndpoint.class);
 
@@ -53,15 +54,15 @@ public class QuartzEndpoint extends DefaultEndpoint implements ShutdownableServi
     private Trigger trigger;
     private JobDetail jobDetail = new JobDetail();
     private volatile boolean started;
-    @UriPath
+    @UriPath(defaultValue = "Camel")
     private String groupName;
-    @UriPath
+    @UriPath @Metadata(required = "true")
     private String timerName;
-    @UriParam(defaultValue = "false")
+    @UriParam
     private boolean stateful;
     @UriParam(defaultValue = "true")
     private boolean deleteJob = true;
-    @UriParam(defaultValue = "false")
+    @UriParam
     private boolean pauseJob;
     /** If it is true, the CamelContext name is used,
      *  if it is false, use the CamelContext management name which could be changed during the deploy time 

http://git-wip-us.apache.org/repos/asf/camel/blob/f511c452/components/camel-quartz2/src/main/java/org/apache/camel/component/quartz2/QuartzEndpoint.java
----------------------------------------------------------------------
diff --git a/components/camel-quartz2/src/main/java/org/apache/camel/component/quartz2/QuartzEndpoint.java b/components/camel-quartz2/src/main/java/org/apache/camel/component/quartz2/QuartzEndpoint.java
index a124d20..1fd9d62 100644
--- a/components/camel-quartz2/src/main/java/org/apache/camel/component/quartz2/QuartzEndpoint.java
+++ b/components/camel-quartz2/src/main/java/org/apache/camel/component/quartz2/QuartzEndpoint.java
@@ -29,6 +29,7 @@ import org.apache.camel.Route;
 import org.apache.camel.impl.DefaultEndpoint;
 import org.apache.camel.processor.loadbalancer.LoadBalancer;
 import org.apache.camel.processor.loadbalancer.RoundRobinLoadBalancer;
+import org.apache.camel.spi.Metadata;
 import org.apache.camel.spi.UriEndpoint;
 import org.apache.camel.spi.UriParam;
 import org.apache.camel.spi.UriPath;
@@ -54,30 +55,30 @@ import static org.quartz.SimpleScheduleBuilder.simpleSchedule;
  * call back into {@link #onConsumerStart(QuartzConsumer)} to add/resume or {@link #onConsumerStop(QuartzConsumer)}
  * to pause the scheduler trigger.
  */
-@UriEndpoint(scheme = "quartz2", consumerOnly = true, consumerClass = QuartzComponent.class, label = "scheduling")
+@UriEndpoint(scheme = "quartz2", syntax = "quartz2:groupName/triggerName", consumerOnly = true, consumerClass = QuartzComponent.class, label = "scheduling")
 public class QuartzEndpoint extends DefaultEndpoint {
     private static final Logger LOG = LoggerFactory.getLogger(QuartzEndpoint.class);
     private TriggerKey triggerKey;
-    @UriPath
+    @UriPath(defaultValue = "Camel")
     private String groupName;
-    @UriPath
+    @UriPath @Metadata(required = "true")
     private String triggerName;
     @UriParam
     private String cron;
     private LoadBalancer consumerLoadBalancer;
     private Map<String, Object> triggerParameters;
     private Map<String, Object> jobParameters;
-    @UriParam(defaultValue = "false")
+    @UriParam
     private boolean stateful;
-    @UriParam(defaultValue = "false")
+    @UriParam
     private boolean fireNow;
     @UriParam(defaultValue = "true")
     private boolean deleteJob = true;
-    @UriParam(defaultValue = "false")
+    @UriParam
     private boolean pauseJob;
-    @UriParam(defaultValue = "false")
+    @UriParam
     private boolean durableJob;
-    @UriParam(defaultValue = "false")
+    @UriParam
     private boolean recoverableJob;
     /** In case of scheduler has already started, we want the trigger start slightly after current time to
      * ensure endpoint is fully started before the job kicks in. */
@@ -86,7 +87,7 @@ public class QuartzEndpoint extends DefaultEndpoint {
     /** If it is true, the CamelContext name is used,
      *  if it is false, use the CamelContext management name which could be changed during the deploy time 
      **/
-    @UriParam(defaultValue = "false")
+    @UriParam
     private boolean usingFixedCamelContextName;
 
     // An internal variables to track whether a job has been in scheduler or not, and has it paused or not.

http://git-wip-us.apache.org/repos/asf/camel/blob/f511c452/components/camel-quickfix/src/main/java/org/apache/camel/component/quickfixj/QuickfixjEndpoint.java
----------------------------------------------------------------------
diff --git a/components/camel-quickfix/src/main/java/org/apache/camel/component/quickfixj/QuickfixjEndpoint.java b/components/camel-quickfix/src/main/java/org/apache/camel/component/quickfixj/QuickfixjEndpoint.java
index 9c6cc1e..1b38c7c 100644
--- a/components/camel-quickfix/src/main/java/org/apache/camel/component/quickfixj/QuickfixjEndpoint.java
+++ b/components/camel-quickfix/src/main/java/org/apache/camel/component/quickfixj/QuickfixjEndpoint.java
@@ -29,6 +29,7 @@ import org.apache.camel.Producer;
 import org.apache.camel.ResolveEndpointFailedException;
 import org.apache.camel.component.quickfixj.converter.QuickfixjConverters;
 import org.apache.camel.impl.DefaultEndpoint;
+import org.apache.camel.spi.Metadata;
 import org.apache.camel.spi.UriEndpoint;
 import org.apache.camel.spi.UriPath;
 import org.slf4j.Logger;
@@ -36,7 +37,7 @@ import org.slf4j.LoggerFactory;
 import quickfix.Message;
 import quickfix.SessionID;
 
-@UriEndpoint(scheme = "quickfix", consumerClass = QuickfixjConsumer.class, label = "engine,messaging")
+@UriEndpoint(scheme = "quickfix", syntax = "quickfix:configurationName", consumerClass = QuickfixjConsumer.class, label = "engine,messaging")
 public class QuickfixjEndpoint extends DefaultEndpoint implements QuickfixjEventListener, MultipleConsumersSupport {
     public static final String EVENT_CATEGORY_KEY = "EventCategory";
     public static final String SESSION_ID_KEY = "SessionID";
@@ -48,7 +49,7 @@ public class QuickfixjEndpoint extends DefaultEndpoint implements QuickfixjEvent
     private SessionID sessionID;
     private final List<QuickfixjConsumer> consumers = new CopyOnWriteArrayList<QuickfixjConsumer>();
 
-    @UriPath
+    @UriPath @Metadata(required = "true")
     private String configurationName;
 
     private final QuickfixjEngine engine;

http://git-wip-us.apache.org/repos/asf/camel/blob/f511c452/components/camel-rabbitmq/src/main/java/org/apache/camel/component/rabbitmq/RabbitMQEndpoint.java
----------------------------------------------------------------------
diff --git a/components/camel-rabbitmq/src/main/java/org/apache/camel/component/rabbitmq/RabbitMQEndpoint.java b/components/camel-rabbitmq/src/main/java/org/apache/camel/component/rabbitmq/RabbitMQEndpoint.java
index c69d952..f6e4198 100644
--- a/components/camel-rabbitmq/src/main/java/org/apache/camel/component/rabbitmq/RabbitMQEndpoint.java
+++ b/components/camel-rabbitmq/src/main/java/org/apache/camel/component/rabbitmq/RabbitMQEndpoint.java
@@ -42,18 +42,19 @@ 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 = "rabbitmq", consumerClass = RabbitMQConsumer.class, label = "messaging")
+@UriEndpoint(scheme = "rabbitmq", syntax = "rabbitmq:hostname:portNumber/exchangeName", consumerClass = RabbitMQConsumer.class, label = "messaging")
 public class RabbitMQEndpoint extends DefaultEndpoint {
 
-    @UriPath
+    @UriPath @Metadata(required = "true")
     private String hostname;
-    @UriPath
+    @UriPath @Metadata(required = "true")
     private int portNumber;
-    @UriPath
+    @UriPath @Metadata(required = "true")
     private String exchangeName;
     @UriParam(defaultValue = ConnectionFactory.DEFAULT_USER)
     private String username = ConnectionFactory.DEFAULT_USER;
@@ -94,14 +95,14 @@ public class RabbitMQEndpoint extends DefaultEndpoint {
     private Map<String, Object> clientProperties;
     @UriParam
     private ConnectionFactory connectionFactory;
-    @UriParam(defaultValue = "false")
+    @UriParam
     private Boolean automaticRecoveryEnabled;
     @UriParam
     private Integer networkRecoveryInterval;
-    @UriParam(defaultValue = "false")
+    @UriParam
     private Boolean topologyRecoveryEnabled;
     //If it is true, prefetchSize, prefetchCount, prefetchGlobal will be used for basicOqs before starting RabbitMQConsumer
-    @UriParam(defaultValue = "false")
+    @UriParam
     private boolean prefetchEnabled;
     //Default in RabbitMq is 0.
     @UriParam
@@ -109,7 +110,7 @@ public class RabbitMQEndpoint extends DefaultEndpoint {
     @UriParam
     private int prefetchCount;
     //Default value in RabbitMQ is false.
-    @UriParam(defaultValue = "false")
+    @UriParam
     private boolean prefetchGlobal;
     /**
      * Number of concurrent consumer threads

http://git-wip-us.apache.org/repos/asf/camel/blob/f511c452/components/camel-restlet/src/main/java/org/apache/camel/component/restlet/RestletEndpoint.java
----------------------------------------------------------------------
diff --git a/components/camel-restlet/src/main/java/org/apache/camel/component/restlet/RestletEndpoint.java b/components/camel-restlet/src/main/java/org/apache/camel/component/restlet/RestletEndpoint.java
index a845197..4b27293 100644
--- a/components/camel-restlet/src/main/java/org/apache/camel/component/restlet/RestletEndpoint.java
+++ b/components/camel-restlet/src/main/java/org/apache/camel/component/restlet/RestletEndpoint.java
@@ -27,6 +27,7 @@ import org.apache.camel.Producer;
 import org.apache.camel.impl.DefaultEndpoint;
 import org.apache.camel.spi.HeaderFilterStrategy;
 import org.apache.camel.spi.HeaderFilterStrategyAware;
+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,7 +40,7 @@ import org.restlet.data.Method;
  *
  * @version 
  */
-@UriEndpoint(scheme = "restlet", consumerClass = RestletConsumer.class, label = "http,rest")
+@UriEndpoint(scheme = "restlet", syntax = "restlet:protocol:host:port/uriPattern", consumerClass = RestletConsumer.class, label = "http,rest")
 public class RestletEndpoint extends DefaultEndpoint implements HeaderFilterStrategyAware {
 
     private static final int DEFAULT_PORT = 80;
@@ -48,13 +49,13 @@ public class RestletEndpoint extends DefaultEndpoint implements HeaderFilterStra
     private static final int DEFAULT_SOCKET_TIMEOUT = 30000;
     private static final int DEFAULT_CONNECT_TIMEOUT = 30000;
 
-    @UriPath
+    @UriPath(enums = "http") @Metadata(required = "true")
     private String protocol = DEFAULT_PROTOCOL;
-    @UriPath
+    @UriPath @Metadata(required = "true")
     private String host = DEFAULT_HOST;
-    @UriPath
+    @UriPath(defaultValue = "80")
     private int port = DEFAULT_PORT;
-    @UriPath
+    @UriPath @Metadata(required = "true")
     private String uriPattern;
     @UriParam(defaultValue = "" + DEFAULT_SOCKET_TIMEOUT)
     private int socketTimeout = DEFAULT_SOCKET_TIMEOUT;
@@ -78,7 +79,7 @@ public class RestletEndpoint extends DefaultEndpoint implements HeaderFilterStra
     private RestletBinding restletBinding;
     @UriParam(defaultValue = "true")
     private boolean throwExceptionOnFailure = true;
-    @UriParam(defaultValue = "false")
+    @UriParam
     private boolean disableStreamCache;
     @UriParam
     private SSLContextParameters sslContextParameters;

http://git-wip-us.apache.org/repos/asf/camel/blob/f511c452/components/camel-rmi/src/main/java/org/apache/camel/component/rmi/RmiEndpoint.java
----------------------------------------------------------------------
diff --git a/components/camel-rmi/src/main/java/org/apache/camel/component/rmi/RmiEndpoint.java b/components/camel-rmi/src/main/java/org/apache/camel/component/rmi/RmiEndpoint.java
index ffb1eb0..40e9a07 100644
--- a/components/camel-rmi/src/main/java/org/apache/camel/component/rmi/RmiEndpoint.java
+++ b/components/camel-rmi/src/main/java/org/apache/camel/component/rmi/RmiEndpoint.java
@@ -28,6 +28,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;
@@ -36,13 +37,18 @@ import org.apache.camel.util.ObjectHelper;
 /**
  * @version 
  */
-@UriEndpoint(scheme = "rmi", consumerClass = RmiConsumer.class, label = "messaging")
+@UriEndpoint(scheme = "rmi", syntax = "rmi:hostname:port/name", consumerClass = RmiConsumer.class, label = "messaging")
 public class RmiEndpoint extends DefaultEndpoint {
 
     private ClassLoader classLoader;
-    private int port;
-    @UriPath
     private URI uri;
+
+    @UriPath
+    private String hostname;
+    @UriPath
+    private int port;
+    @UriPath @Metadata(required = "true")
+    private String name;
     @UriParam
     private List<Class<?>> remoteInterfaces;
     @UriParam


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

Posted by da...@apache.org.
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/cde884bf
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/cde884bf
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/cde884bf

Branch: refs/heads/master
Commit: cde884bf9a191c61163f50a3e3268d19051c5d9d
Parents: c763bb1
Author: Claus Ibsen <da...@apache.org>
Authored: Sat Feb 28 17:52:41 2015 +0100
Committer: Claus Ibsen <da...@apache.org>
Committed: Sat Feb 28 17:52:41 2015 +0100

----------------------------------------------------------------------
 .../camel/component/gae/auth/GAuthEndpoint.java    |  5 +++--
 .../camel/component/gae/http/GHttpEndpoint.java    |  2 +-
 .../camel/component/gae/login/GLoginEndpoint.java  | 11 ++++++-----
 .../camel/component/gae/mail/GMailEndpoint.java    |  5 +++--
 .../camel/component/gae/task/GTaskEndpoint.java    |  5 +++--
 .../camel/component/ganglia/GangliaEndpoint.java   |  2 +-
 .../camel/component/geocoder/GeoCoderEndpoint.java |  8 ++++----
 .../camel/component/github/GitHubEndpoint.java     |  2 +-
 .../google/calendar/GoogleCalendarEndpoint.java    |  2 +-
 .../google/drive/GoogleDriveEndpoint.java          |  2 +-
 .../component/google/mail/GoogleMailEndpoint.java  |  2 +-
 .../camel/component/gora/GoraConfiguration.java    |  3 ++-
 .../apache/camel/component/gora/GoraEndpoint.java  |  2 +-
 .../guava/eventbus/GuavaEventBusEndpoint.java      |  2 +-
 .../hazelcast/HazelcastDefaultEndpoint.java        |  7 ++++---
 .../camel/component/hbase/HBaseEndpoint.java       |  5 +++--
 .../camel/component/hdfs/HdfsConfiguration.java    | 11 ++++++-----
 .../apache/camel/component/hdfs/HdfsEndpoint.java  |  2 +-
 .../camel/component/hdfs2/HdfsConfiguration.java   |  7 ++++---
 .../apache/camel/component/hdfs2/HdfsEndpoint.java |  2 +-
 .../component/hipchat/HipchatConfiguration.java    |  6 +++---
 .../camel/component/hipchat/HipchatEndpoint.java   |  2 +-
 .../apache/camel/component/http/HttpEndpoint.java  | 13 +++++++------
 .../apache/camel/component/http4/HttpEndpoint.java | 17 +++++++++--------
 .../camel/component/ibatis/IBatisEndpoint.java     |  7 ++++---
 .../infinispan/InfinispanConfiguration.java        |  3 ++-
 .../component/infinispan/InfinispanEndpoint.java   |  2 +-
 .../camel/component/irc/IrcConfiguration.java      |  3 ++-
 .../apache/camel/component/irc/IrcEndpoint.java    |  2 +-
 .../component/javaspace/JavaSpaceEndpoint.java     |  5 +++--
 .../component/jclouds/JcloudsConfiguration.java    |  5 +++--
 .../camel/component/jclouds/JcloudsEndpoint.java   |  2 +-
 .../apache/camel/component/jcr/JcrEndpoint.java    |  4 ++--
 .../apache/camel/component/jdbc/JdbcEndpoint.java  |  5 +++--
 .../camel/component/jetty/JettyHttpEndpoint.java   |  4 +---
 .../camel/component/jetty8/JettyHttpEndpoint8.java |  2 +-
 .../camel/component/jetty9/JettyHttpEndpoint9.java |  2 +-
 .../camel/component/jgroups/JGroupsEndpoint.java   |  5 +++--
 .../component/validator/jing/JingEndpoint.java     |  5 +++--
 .../apache/camel/component/jira/JIRAEndpoint.java  |  5 +++--
 .../camel/component/servlet/ServletEndpoint.java   |  7 ++++---
 .../camel/component/event/EventEndpoint.java       |  2 +-
 .../camel/component/velocity/VelocityEndpoint.java |  2 +-
 43 files changed, 108 insertions(+), 89 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/cde884bf/components/camel-gae/src/main/java/org/apache/camel/component/gae/auth/GAuthEndpoint.java
----------------------------------------------------------------------
diff --git a/components/camel-gae/src/main/java/org/apache/camel/component/gae/auth/GAuthEndpoint.java b/components/camel-gae/src/main/java/org/apache/camel/component/gae/auth/GAuthEndpoint.java
index 0a17dc7..2b203da 100644
--- a/components/camel-gae/src/main/java/org/apache/camel/component/gae/auth/GAuthEndpoint.java
+++ b/components/camel-gae/src/main/java/org/apache/camel/component/gae/auth/GAuthEndpoint.java
@@ -31,6 +31,7 @@ import org.apache.camel.Processor;
 import org.apache.camel.Producer;
 import org.apache.camel.component.gae.bind.OutboundBinding;
 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;
@@ -43,7 +44,7 @@ import org.apache.camel.spi.UriPath;
  * endpoint URIs are <code>gauth:authorize</code> and <code>gauth:upgrade</code>
  * , respectively.
  */
-@UriEndpoint(scheme = "gauth", producerOnly = true, label = "cloud")
+@UriEndpoint(scheme = "gauth", syntax = "gauth:name", producerOnly = true, label = "cloud")
 public class GAuthEndpoint  extends DefaultEndpoint {
 
     public static enum Name {
@@ -63,7 +64,7 @@ public class GAuthEndpoint  extends DefaultEndpoint {
     
     private OutboundBinding<GAuthEndpoint, GoogleOAuthParameters, GoogleOAuthParameters> authorizeBinding;
     private OutboundBinding<GAuthEndpoint, GoogleOAuthParameters, GoogleOAuthParameters> upgradeBinding;
-    @UriPath
+    @UriPath @Metadata(required = "true")
     private Name name;
     @UriParam
     private String callback;

http://git-wip-us.apache.org/repos/asf/camel/blob/cde884bf/components/camel-gae/src/main/java/org/apache/camel/component/gae/http/GHttpEndpoint.java
----------------------------------------------------------------------
diff --git a/components/camel-gae/src/main/java/org/apache/camel/component/gae/http/GHttpEndpoint.java b/components/camel-gae/src/main/java/org/apache/camel/component/gae/http/GHttpEndpoint.java
index 8885544..a980402 100644
--- a/components/camel-gae/src/main/java/org/apache/camel/component/gae/http/GHttpEndpoint.java
+++ b/components/camel-gae/src/main/java/org/apache/camel/component/gae/http/GHttpEndpoint.java
@@ -48,7 +48,7 @@ import org.apache.commons.httpclient.params.HttpClientParams;
  * Represents a <a href="http://camel.apache.org/ghttp.html">Google App Engine
  * HTTP endpoint</a>.
  */
-@UriEndpoint(scheme = "ghttp", producerOnly = true, label = "cloud")
+@UriEndpoint(scheme = "ghttp", syntax = "ghttp:httpUri", producerOnly = true, label = "cloud")
 public class GHttpEndpoint extends ServletEndpoint implements OutboundBindingSupport<GHttpEndpoint, HTTPRequest, HTTPResponse> {
 
     public static final String GHTTP_SCHEME = "ghttp";

http://git-wip-us.apache.org/repos/asf/camel/blob/cde884bf/components/camel-gae/src/main/java/org/apache/camel/component/gae/login/GLoginEndpoint.java
----------------------------------------------------------------------
diff --git a/components/camel-gae/src/main/java/org/apache/camel/component/gae/login/GLoginEndpoint.java b/components/camel-gae/src/main/java/org/apache/camel/component/gae/login/GLoginEndpoint.java
index f9d68da..9e32e3e 100644
--- a/components/camel-gae/src/main/java/org/apache/camel/component/gae/login/GLoginEndpoint.java
+++ b/components/camel-gae/src/main/java/org/apache/camel/component/gae/login/GLoginEndpoint.java
@@ -22,6 +22,7 @@ import org.apache.camel.Processor;
 import org.apache.camel.Producer;
 import org.apache.camel.component.gae.bind.OutboundBinding;
 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;
@@ -30,14 +31,14 @@ import org.apache.camel.spi.UriPath;
  * Represents a <a href="http://camel.apache.org/glogin.html">GLogin
  * Endpoint</a>.
  */
-@UriEndpoint(scheme = "glogin", producerOnly = true, label = "cloud")
+@UriEndpoint(scheme = "glogin", syntax = "glogin:hostName", producerOnly = true, label = "cloud")
 public class GLoginEndpoint extends DefaultEndpoint {
 
     private OutboundBinding<GLoginEndpoint, GLoginData, GLoginData> outboundBinding;
 
-    @UriPath
+    @UriPath @Metadata(required = "true")
     private String hostName;
-    @UriPath
+    @UriParam
     private String clientName;
     @UriParam
     private String userName;
@@ -45,9 +46,9 @@ public class GLoginEndpoint extends DefaultEndpoint {
     private String password;
     @UriParam
     private int devPort;
-    @UriParam(defaultValue = "false")
+    @UriParam
     private boolean devAdmin;
-    @UriParam(defaultValue = "false")
+    @UriParam
     private boolean devMode;
     private GLoginService service;
 

http://git-wip-us.apache.org/repos/asf/camel/blob/cde884bf/components/camel-gae/src/main/java/org/apache/camel/component/gae/mail/GMailEndpoint.java
----------------------------------------------------------------------
diff --git a/components/camel-gae/src/main/java/org/apache/camel/component/gae/mail/GMailEndpoint.java b/components/camel-gae/src/main/java/org/apache/camel/component/gae/mail/GMailEndpoint.java
index dd4c786..1803734 100644
--- a/components/camel-gae/src/main/java/org/apache/camel/component/gae/mail/GMailEndpoint.java
+++ b/components/camel-gae/src/main/java/org/apache/camel/component/gae/mail/GMailEndpoint.java
@@ -27,6 +27,7 @@ import org.apache.camel.Producer;
 import org.apache.camel.component.gae.bind.OutboundBinding;
 import org.apache.camel.component.gae.bind.OutboundBindingSupport;
 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;
@@ -34,12 +35,12 @@ import org.apache.camel.spi.UriPath;
 /**
  * Represents a <a href="http://camel.apache.org/gmail.html">Google App Engine Mail endpoint</a>.
  */
-@UriEndpoint(scheme = "gmail", producerOnly = true, label = "cloud,mail")
+@UriEndpoint(scheme = "gmail", syntax = "gmail:sender", producerOnly = true, label = "cloud,mail")
 public class GMailEndpoint extends DefaultEndpoint implements OutboundBindingSupport<GMailEndpoint, Message, Void> {
 
     private OutboundBinding<GMailEndpoint, Message, Void> outboundBinding;
     private MailService mailService;
-    @UriPath
+    @UriPath @Metadata(required = "true")
     private String sender;
     @UriParam
     private String subject;

http://git-wip-us.apache.org/repos/asf/camel/blob/cde884bf/components/camel-gae/src/main/java/org/apache/camel/component/gae/task/GTaskEndpoint.java
----------------------------------------------------------------------
diff --git a/components/camel-gae/src/main/java/org/apache/camel/component/gae/task/GTaskEndpoint.java b/components/camel-gae/src/main/java/org/apache/camel/component/gae/task/GTaskEndpoint.java
index 8bbd5d7..e17cd18 100644
--- a/components/camel-gae/src/main/java/org/apache/camel/component/gae/task/GTaskEndpoint.java
+++ b/components/camel-gae/src/main/java/org/apache/camel/component/gae/task/GTaskEndpoint.java
@@ -34,6 +34,7 @@ import org.apache.camel.component.http.HttpBinding;
 import org.apache.camel.component.http.HttpClientConfigurer;
 import org.apache.camel.component.servlet.ServletComponent;
 import org.apache.camel.component.servlet.ServletEndpoint;
+import org.apache.camel.spi.Metadata;
 import org.apache.camel.spi.UriEndpoint;
 import org.apache.camel.spi.UriParam;
 import org.apache.camel.spi.UriPath;
@@ -43,12 +44,12 @@ import org.apache.commons.httpclient.params.HttpClientParams;
 /**
  * Represents a <a href="http://camel.apache.org/gtask.html">Google App Engine Task Queueing endpoint</a>.
  */
-@UriEndpoint(scheme = "gtask", producerOnly = true, label = "cloud")
+@UriEndpoint(scheme = "gtask", syntax = "gtask:queueName", producerOnly = true, label = "cloud")
 public class GTaskEndpoint extends ServletEndpoint implements OutboundBindingSupport<GTaskEndpoint, TaskOptions, Void> {
 
     private OutboundBinding<GTaskEndpoint, TaskOptions, Void> outboundBinding;
     private InboundBinding<GTaskEndpoint, HttpServletRequest, HttpServletResponse> inboundBinding;
-    @UriPath
+    @UriPath @Metadata(required = "true")
     private String queueName;
     private Queue queue;
     @UriParam

http://git-wip-us.apache.org/repos/asf/camel/blob/cde884bf/components/camel-ganglia/src/main/java/org/apache/camel/component/ganglia/GangliaEndpoint.java
----------------------------------------------------------------------
diff --git a/components/camel-ganglia/src/main/java/org/apache/camel/component/ganglia/GangliaEndpoint.java b/components/camel-ganglia/src/main/java/org/apache/camel/component/ganglia/GangliaEndpoint.java
index 5974c1a..6d10ec7 100644
--- a/components/camel-ganglia/src/main/java/org/apache/camel/component/ganglia/GangliaEndpoint.java
+++ b/components/camel-ganglia/src/main/java/org/apache/camel/component/ganglia/GangliaEndpoint.java
@@ -28,7 +28,7 @@ import org.apache.camel.spi.UriEndpoint;
 import org.apache.camel.spi.UriParam;
 import org.apache.camel.util.ObjectHelper;
 
-@UriEndpoint(scheme = "ganglia", producerOnly = true, label = "monitoring")
+@UriEndpoint(scheme = "ganglia", syntax = "ganglia:host:port", producerOnly = true, label = "monitoring")
 public class GangliaEndpoint extends DefaultEndpoint {
 
     private Publisher publisher;

http://git-wip-us.apache.org/repos/asf/camel/blob/cde884bf/components/camel-geocoder/src/main/java/org/apache/camel/component/geocoder/GeoCoderEndpoint.java
----------------------------------------------------------------------
diff --git a/components/camel-geocoder/src/main/java/org/apache/camel/component/geocoder/GeoCoderEndpoint.java b/components/camel-geocoder/src/main/java/org/apache/camel/component/geocoder/GeoCoderEndpoint.java
index 15905a8..ba967ba 100644
--- a/components/camel-geocoder/src/main/java/org/apache/camel/component/geocoder/GeoCoderEndpoint.java
+++ b/components/camel-geocoder/src/main/java/org/apache/camel/component/geocoder/GeoCoderEndpoint.java
@@ -27,12 +27,12 @@ import org.apache.camel.spi.UriPath;
 /**
  * Represents a GeoCoder endpoint.
  */
-@UriEndpoint(scheme = "geocoder", producerOnly = true, label = "api,location")
+@UriEndpoint(scheme = "geocoder", syntax = "geocoder:address:latlng", producerOnly = true, label = "api,location")
 public class GeoCoderEndpoint extends DefaultEndpoint {
 
-    @UriPath
+    @UriPath(description = "The geo address which must prefix with address:")
     private String address;
-    @UriPath
+    @UriPath(description = "The geo coordinate which must prefix with latng:")
     private String latlng;
     @UriParam(defaultValue = "en")
     private String language = "en";
@@ -40,7 +40,7 @@ public class GeoCoderEndpoint extends DefaultEndpoint {
     private String clientId;
     @UriParam
     private String clientKey;
-    @UriParam(defaultValue = "false")
+    @UriParam
     private boolean headersOnly;
 
     public GeoCoderEndpoint() {

http://git-wip-us.apache.org/repos/asf/camel/blob/cde884bf/components/camel-github/src/main/java/org/apache/camel/component/github/GitHubEndpoint.java
----------------------------------------------------------------------
diff --git a/components/camel-github/src/main/java/org/apache/camel/component/github/GitHubEndpoint.java b/components/camel-github/src/main/java/org/apache/camel/component/github/GitHubEndpoint.java
index 92a49a3..a2e8b30 100644
--- a/components/camel-github/src/main/java/org/apache/camel/component/github/GitHubEndpoint.java
+++ b/components/camel-github/src/main/java/org/apache/camel/component/github/GitHubEndpoint.java
@@ -52,7 +52,7 @@ import org.apache.camel.util.ObjectHelper;
  * - the types of payloads we're polling aren't typically large (plus, paging is available in the API)
  * - need to support apps running somewhere not publicly accessible where a webhook would fail
  */
-@UriEndpoint(scheme = "github", label = "api,file")
+@UriEndpoint(scheme = "github", syntax = "github:type/branchName", label = "api,file")
 public class GitHubEndpoint extends DefaultEndpoint {
 
     @UriPath

http://git-wip-us.apache.org/repos/asf/camel/blob/cde884bf/components/camel-google-calendar/src/main/java/org/apache/camel/component/google/calendar/GoogleCalendarEndpoint.java
----------------------------------------------------------------------
diff --git a/components/camel-google-calendar/src/main/java/org/apache/camel/component/google/calendar/GoogleCalendarEndpoint.java b/components/camel-google-calendar/src/main/java/org/apache/camel/component/google/calendar/GoogleCalendarEndpoint.java
index e37db68..95e799f 100644
--- a/components/camel-google-calendar/src/main/java/org/apache/camel/component/google/calendar/GoogleCalendarEndpoint.java
+++ b/components/camel-google-calendar/src/main/java/org/apache/camel/component/google/calendar/GoogleCalendarEndpoint.java
@@ -35,7 +35,7 @@ import org.apache.camel.util.component.ApiMethodPropertiesHelper;
 /**
  * Represents a GoogleCalendar endpoint.
  */
-@UriEndpoint(scheme = "google-calendar", consumerClass = GoogleCalendarConsumer.class, consumerPrefix = "consumer", label = "api,cloud")
+@UriEndpoint(scheme = "google-calendar", syntax = "google-calendar:apiName/methodName", consumerClass = GoogleCalendarConsumer.class, consumerPrefix = "consumer", label = "api,cloud")
 public class GoogleCalendarEndpoint extends AbstractApiEndpoint<GoogleCalendarApiName, GoogleCalendarConfiguration> {
 
     @UriParam

http://git-wip-us.apache.org/repos/asf/camel/blob/cde884bf/components/camel-google-drive/src/main/java/org/apache/camel/component/google/drive/GoogleDriveEndpoint.java
----------------------------------------------------------------------
diff --git a/components/camel-google-drive/src/main/java/org/apache/camel/component/google/drive/GoogleDriveEndpoint.java b/components/camel-google-drive/src/main/java/org/apache/camel/component/google/drive/GoogleDriveEndpoint.java
index 40de52c..272e50b 100644
--- a/components/camel-google-drive/src/main/java/org/apache/camel/component/google/drive/GoogleDriveEndpoint.java
+++ b/components/camel-google-drive/src/main/java/org/apache/camel/component/google/drive/GoogleDriveEndpoint.java
@@ -35,7 +35,7 @@ import org.apache.camel.util.component.ApiMethodPropertiesHelper;
 /**
  * Represents a GoogleDrive endpoint.
  */
-@UriEndpoint(scheme = "google-drive", consumerClass = GoogleDriveConsumer.class, consumerPrefix = "consumer", label = "api,cloud,file")
+@UriEndpoint(scheme = "google-drive", syntax = "google:drive:apiName/methodName", consumerClass = GoogleDriveConsumer.class, consumerPrefix = "consumer", label = "api,cloud,file")
 public class GoogleDriveEndpoint extends AbstractApiEndpoint<GoogleDriveApiName, GoogleDriveConfiguration> {
     private Object apiProxy;
 

http://git-wip-us.apache.org/repos/asf/camel/blob/cde884bf/components/camel-google-mail/src/main/java/org/apache/camel/component/google/mail/GoogleMailEndpoint.java
----------------------------------------------------------------------
diff --git a/components/camel-google-mail/src/main/java/org/apache/camel/component/google/mail/GoogleMailEndpoint.java b/components/camel-google-mail/src/main/java/org/apache/camel/component/google/mail/GoogleMailEndpoint.java
index a25acc5..2266d09 100644
--- a/components/camel-google-mail/src/main/java/org/apache/camel/component/google/mail/GoogleMailEndpoint.java
+++ b/components/camel-google-mail/src/main/java/org/apache/camel/component/google/mail/GoogleMailEndpoint.java
@@ -36,7 +36,7 @@ import org.apache.camel.util.component.ApiMethodPropertiesHelper;
 /**
  * Represents a GoogleMail endpoint.
  */
-@UriEndpoint(scheme = "google-mail", consumerClass = GoogleMailConsumer.class, consumerPrefix = "consumer", label = "api,cloud,mail")
+@UriEndpoint(scheme = "google-mail", syntax = "google-mail:apiName/methodName", consumerClass = GoogleMailConsumer.class, consumerPrefix = "consumer", label = "api,cloud,mail")
 public class GoogleMailEndpoint extends AbstractApiEndpoint<GoogleMailApiName, GoogleMailConfiguration> {
 
     // TODO create and manage API proxy

http://git-wip-us.apache.org/repos/asf/camel/blob/cde884bf/components/camel-gora/src/main/java/org/apache/camel/component/gora/GoraConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-gora/src/main/java/org/apache/camel/component/gora/GoraConfiguration.java b/components/camel-gora/src/main/java/org/apache/camel/component/gora/GoraConfiguration.java
index d583ec4..a8e8a91 100644
--- a/components/camel-gora/src/main/java/org/apache/camel/component/gora/GoraConfiguration.java
+++ b/components/camel-gora/src/main/java/org/apache/camel/component/gora/GoraConfiguration.java
@@ -18,6 +18,7 @@
 package org.apache.camel.component.gora;
 
 import com.google.common.base.Strings;
+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,7 +35,7 @@ import static com.google.common.base.Strings.isNullOrEmpty;
 @UriParams
 public class GoraConfiguration {
 
-    @UriPath
+    @UriPath @Metadata(required = "true")
     private String name;
 
     /**

http://git-wip-us.apache.org/repos/asf/camel/blob/cde884bf/components/camel-gora/src/main/java/org/apache/camel/component/gora/GoraEndpoint.java
----------------------------------------------------------------------
diff --git a/components/camel-gora/src/main/java/org/apache/camel/component/gora/GoraEndpoint.java b/components/camel-gora/src/main/java/org/apache/camel/component/gora/GoraEndpoint.java
index b6fa98c..1081fc3 100644
--- a/components/camel-gora/src/main/java/org/apache/camel/component/gora/GoraEndpoint.java
+++ b/components/camel-gora/src/main/java/org/apache/camel/component/gora/GoraEndpoint.java
@@ -31,7 +31,7 @@ import org.slf4j.LoggerFactory;
 /**
  * Gora endpoint
  */
-@UriEndpoint(scheme = "gora", consumerClass = GoraConsumer.class, label = "database,hadoop,nosql")
+@UriEndpoint(scheme = "gora", syntax = "gora:name", consumerClass = GoraConsumer.class, label = "database,hadoop,nosql")
 public class GoraEndpoint extends DefaultEndpoint {
 
     /**

http://git-wip-us.apache.org/repos/asf/camel/blob/cde884bf/components/camel-guava-eventbus/src/main/java/org/apache/camel/component/guava/eventbus/GuavaEventBusEndpoint.java
----------------------------------------------------------------------
diff --git a/components/camel-guava-eventbus/src/main/java/org/apache/camel/component/guava/eventbus/GuavaEventBusEndpoint.java b/components/camel-guava-eventbus/src/main/java/org/apache/camel/component/guava/eventbus/GuavaEventBusEndpoint.java
index d5f4295..5cd4a2a 100644
--- a/components/camel-guava-eventbus/src/main/java/org/apache/camel/component/guava/eventbus/GuavaEventBusEndpoint.java
+++ b/components/camel-guava-eventbus/src/main/java/org/apache/camel/component/guava/eventbus/GuavaEventBusEndpoint.java
@@ -33,7 +33,7 @@ import org.apache.camel.util.CamelContextHelper;
  * Guava EventBus (http://docs.guava-libraries.googlecode.com/git/javadoc/com/google/common/eventbus/EventBus.html)
  * endpoint. Can create both producer and consumer ends of the route.
  */
-@UriEndpoint(scheme = "guava-eventbus", consumerClass = GuavaEventBusConsumer.class, label = "eventbus")
+@UriEndpoint(scheme = "guava-eventbus", syntax = "guava-eventbus:eventBusRef", consumerClass = GuavaEventBusConsumer.class, label = "eventbus")
 public class GuavaEventBusEndpoint extends DefaultEndpoint implements MultipleConsumersSupport {
 
     private EventBus eventBus;

http://git-wip-us.apache.org/repos/asf/camel/blob/cde884bf/components/camel-hazelcast/src/main/java/org/apache/camel/component/hazelcast/HazelcastDefaultEndpoint.java
----------------------------------------------------------------------
diff --git a/components/camel-hazelcast/src/main/java/org/apache/camel/component/hazelcast/HazelcastDefaultEndpoint.java b/components/camel-hazelcast/src/main/java/org/apache/camel/component/hazelcast/HazelcastDefaultEndpoint.java
index fba2afd..9fb33c6 100644
--- a/components/camel-hazelcast/src/main/java/org/apache/camel/component/hazelcast/HazelcastDefaultEndpoint.java
+++ b/components/camel-hazelcast/src/main/java/org/apache/camel/component/hazelcast/HazelcastDefaultEndpoint.java
@@ -22,16 +22,17 @@ 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;
 
-@UriEndpoint(scheme = "hazelcast", consumerClass = HazelcastDefaultConsumer.class, label = "cache,datagrid")
+@UriEndpoint(scheme = "hazelcast", syntax = "hazelcast:command:cacheName", consumerClass = HazelcastDefaultConsumer.class, label = "cache,datagrid")
 public abstract class HazelcastDefaultEndpoint extends DefaultEndpoint {
 
-    @UriPath
+    @UriPath @Metadata(required = "true")
     protected HazelcastCommand command;
-    @UriPath
+    @UriPath @Metadata(required = "true")
     protected String cacheName;
     @UriParam
     protected HazelcastInstance hazelcastInstance;

http://git-wip-us.apache.org/repos/asf/camel/blob/cde884bf/components/camel-hbase/src/main/java/org/apache/camel/component/hbase/HBaseEndpoint.java
----------------------------------------------------------------------
diff --git a/components/camel-hbase/src/main/java/org/apache/camel/component/hbase/HBaseEndpoint.java b/components/camel-hbase/src/main/java/org/apache/camel/component/hbase/HBaseEndpoint.java
index 11587fb..64f55fd 100644
--- a/components/camel-hbase/src/main/java/org/apache/camel/component/hbase/HBaseEndpoint.java
+++ b/components/camel-hbase/src/main/java/org/apache/camel/component/hbase/HBaseEndpoint.java
@@ -24,6 +24,7 @@ import org.apache.camel.Producer;
 import org.apache.camel.component.hbase.mapping.CellMappingStrategyFactory;
 import org.apache.camel.component.hbase.model.HBaseRow;
 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;
@@ -35,14 +36,14 @@ import org.apache.hadoop.hbase.filter.Filter;
 /**
  * Represents an HBase endpoint.
  */
-@UriEndpoint(scheme = "hbase", consumerClass = HBaseConsumer.class, label = "hadoop")
+@UriEndpoint(scheme = "hbase", syntax = "hbase:tableName", consumerClass = HBaseConsumer.class, label = "hadoop")
 public class HBaseEndpoint extends DefaultEndpoint {
 
     private Configuration configuration;
     private final HTablePool tablePool;
     private HBaseAdmin admin;
 
-    @UriPath
+    @UriPath @Metadata(required = "true")
     private final String tableName;
     //Operation properties.
     @UriParam(defaultValue = "100")

http://git-wip-us.apache.org/repos/asf/camel/blob/cde884bf/components/camel-hdfs/src/main/java/org/apache/camel/component/hdfs/HdfsConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-hdfs/src/main/java/org/apache/camel/component/hdfs/HdfsConfiguration.java b/components/camel-hdfs/src/main/java/org/apache/camel/component/hdfs/HdfsConfiguration.java
index 189f20f..24890a7 100644
--- a/components/camel-hdfs/src/main/java/org/apache/camel/component/hdfs/HdfsConfiguration.java
+++ b/components/camel-hdfs/src/main/java/org/apache/camel/component/hdfs/HdfsConfiguration.java
@@ -22,6 +22,7 @@ import java.util.ArrayList;
 import java.util.List;
 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,17 +33,17 @@ import org.apache.hadoop.io.SequenceFile;
 public class HdfsConfiguration {
 
     private URI uri;
-    @UriPath
+    @UriPath @Metadata(required = "true")
     private String hostName;
-    @UriPath
+    @UriPath(defaultValue = "" + HdfsConstants.DEFAULT_PORT)
     private int port = HdfsConstants.DEFAULT_PORT;
-    @UriPath
+    @UriPath @Metadata(required = "true")
     private String path;
     @UriParam(defaultValue = "true")
     private boolean overwrite = true;
-    @UriParam(defaultValue = "false")
+    @UriParam
     private boolean append;
-    @UriParam(defaultValue = "false")
+    @UriParam
     private boolean wantAppend;
     @UriParam(defaultValue = "" + HdfsConstants.DEFAULT_BUFFERSIZE)
     private int bufferSize = HdfsConstants.DEFAULT_BUFFERSIZE;

http://git-wip-us.apache.org/repos/asf/camel/blob/cde884bf/components/camel-hdfs/src/main/java/org/apache/camel/component/hdfs/HdfsEndpoint.java
----------------------------------------------------------------------
diff --git a/components/camel-hdfs/src/main/java/org/apache/camel/component/hdfs/HdfsEndpoint.java b/components/camel-hdfs/src/main/java/org/apache/camel/component/hdfs/HdfsEndpoint.java
index 98142fb..9692a97 100644
--- a/components/camel-hdfs/src/main/java/org/apache/camel/component/hdfs/HdfsEndpoint.java
+++ b/components/camel-hdfs/src/main/java/org/apache/camel/component/hdfs/HdfsEndpoint.java
@@ -27,7 +27,7 @@ import org.apache.camel.impl.DefaultEndpoint;
 import org.apache.camel.spi.UriEndpoint;
 import org.apache.camel.spi.UriParam;
 
-@UriEndpoint(scheme = "hdfs", consumerClass = HdfsConsumer.class, label = "hadoop,file")
+@UriEndpoint(scheme = "hdfs", syntax = "hdfs:hostName:port/path", consumerClass = HdfsConsumer.class, label = "hadoop,file")
 public class HdfsEndpoint extends DefaultEndpoint {
 
     @UriParam

http://git-wip-us.apache.org/repos/asf/camel/blob/cde884bf/components/camel-hdfs2/src/main/java/org/apache/camel/component/hdfs2/HdfsConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-hdfs2/src/main/java/org/apache/camel/component/hdfs2/HdfsConfiguration.java b/components/camel-hdfs2/src/main/java/org/apache/camel/component/hdfs2/HdfsConfiguration.java
index a528c22..58d602e 100644
--- a/components/camel-hdfs2/src/main/java/org/apache/camel/component/hdfs2/HdfsConfiguration.java
+++ b/components/camel-hdfs2/src/main/java/org/apache/camel/component/hdfs2/HdfsConfiguration.java
@@ -22,6 +22,7 @@ import java.util.ArrayList;
 import java.util.List;
 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,11 +33,11 @@ import org.apache.hadoop.io.SequenceFile;
 public class HdfsConfiguration {
 
     private URI uri;
-    @UriPath
+    @UriPath @Metadata(required = "true")
     private String hostName;
-    @UriPath
+    @UriPath(defaultValue = "" + HdfsConstants.DEFAULT_PORT)
     private int port = HdfsConstants.DEFAULT_PORT;
-    @UriPath
+    @UriPath @Metadata(required = "true")
     private String path;
     @UriParam(defaultValue = "true")
     private boolean overwrite = true;

http://git-wip-us.apache.org/repos/asf/camel/blob/cde884bf/components/camel-hdfs2/src/main/java/org/apache/camel/component/hdfs2/HdfsEndpoint.java
----------------------------------------------------------------------
diff --git a/components/camel-hdfs2/src/main/java/org/apache/camel/component/hdfs2/HdfsEndpoint.java b/components/camel-hdfs2/src/main/java/org/apache/camel/component/hdfs2/HdfsEndpoint.java
index dec60b2..10cd4f7 100644
--- a/components/camel-hdfs2/src/main/java/org/apache/camel/component/hdfs2/HdfsEndpoint.java
+++ b/components/camel-hdfs2/src/main/java/org/apache/camel/component/hdfs2/HdfsEndpoint.java
@@ -27,7 +27,7 @@ import org.apache.camel.impl.DefaultEndpoint;
 import org.apache.camel.spi.UriEndpoint;
 import org.apache.camel.spi.UriParam;
 
-@UriEndpoint(scheme = "hdfs2", consumerClass = HdfsConsumer.class, label = "hadoop,file")
+@UriEndpoint(scheme = "hdfs2", syntax = "hdfs2:hostName:port/path", consumerClass = HdfsConsumer.class, label = "hadoop,file")
 public class HdfsEndpoint extends DefaultEndpoint {
 
     @UriParam

http://git-wip-us.apache.org/repos/asf/camel/blob/cde884bf/components/camel-hipchat/src/main/java/org/apache/camel/component/hipchat/HipchatConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-hipchat/src/main/java/org/apache/camel/component/hipchat/HipchatConfiguration.java b/components/camel-hipchat/src/main/java/org/apache/camel/component/hipchat/HipchatConfiguration.java
index 151774b..21a00b6 100644
--- a/components/camel-hipchat/src/main/java/org/apache/camel/component/hipchat/HipchatConfiguration.java
+++ b/components/camel-hipchat/src/main/java/org/apache/camel/component/hipchat/HipchatConfiguration.java
@@ -22,11 +22,11 @@ import org.apache.camel.spi.UriPath;
 
 @UriParams
 public class HipchatConfiguration {
-    @UriPath
+    @UriPath(defaultValue = HipchatConstants.DEFAULT_PROTOCOL)
     private String protocol = HipchatConstants.DEFAULT_PROTOCOL;
-    @UriPath
+    @UriPath(defaultValue = HipchatConstants.DEFAULT_HOST)
     private String host = HipchatConstants.DEFAULT_HOST;
-    @UriPath
+    @UriPath(defaultValue = "" + HipchatConstants.DEFAULT_PORT)
     private Integer port = HipchatConstants.DEFAULT_PORT;
     @UriParam
     private String authToken;

http://git-wip-us.apache.org/repos/asf/camel/blob/cde884bf/components/camel-hipchat/src/main/java/org/apache/camel/component/hipchat/HipchatEndpoint.java
----------------------------------------------------------------------
diff --git a/components/camel-hipchat/src/main/java/org/apache/camel/component/hipchat/HipchatEndpoint.java b/components/camel-hipchat/src/main/java/org/apache/camel/component/hipchat/HipchatEndpoint.java
index 51150da..a61cd37 100644
--- a/components/camel-hipchat/src/main/java/org/apache/camel/component/hipchat/HipchatEndpoint.java
+++ b/components/camel-hipchat/src/main/java/org/apache/camel/component/hipchat/HipchatEndpoint.java
@@ -29,7 +29,7 @@ import org.slf4j.LoggerFactory;
 /**
  * Represents a Hipchat endpoint.
  */
-@UriEndpoint(scheme = "hipchat", consumerClass = HipchatConsumer.class, label = "api,cloud")
+@UriEndpoint(scheme = "hipchat", syntax = "hipchat:protocol:host:port", consumerClass = HipchatConsumer.class, label = "api,cloud")
 public class HipchatEndpoint extends ScheduledPollEndpoint {
 
     @UriParam

http://git-wip-us.apache.org/repos/asf/camel/blob/cde884bf/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 05b0ff6..f8a87b5 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
@@ -29,6 +29,7 @@ import org.apache.camel.Producer;
 import org.apache.camel.impl.DefaultEndpoint;
 import org.apache.camel.spi.HeaderFilterStrategy;
 import org.apache.camel.spi.HeaderFilterStrategyAware;
+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,27 +46,27 @@ import org.slf4j.LoggerFactory;
  *
  * @version 
  */
-@UriEndpoint(scheme = "http,https", producerOnly = true, label = "http")
+@UriEndpoint(scheme = "http,https", syntax = "http:httpUri", producerOnly = true, label = "http")
 public class HttpEndpoint extends DefaultEndpoint implements HeaderFilterStrategyAware {
 
     private static final Logger LOG = LoggerFactory.getLogger(HttpEndpoint.class);
     private HeaderFilterStrategy headerFilterStrategy = new HttpHeaderFilterStrategy();
     private HttpBinding binding;
     private HttpComponent component;
-    @UriPath
+    @UriPath @Metadata(required = "true")
     private URI httpUri;
     private HttpClientParams clientParams;
     private HttpClientConfigurer httpClientConfigurer;
     private HttpConnectionManager httpConnectionManager;
     @UriParam(defaultValue = "true")
     private boolean throwExceptionOnFailure = true;
-    @UriParam(defaultValue = "false")
+    @UriParam
     private boolean bridgeEndpoint;
-    @UriParam(defaultValue = "false")
+    @UriParam
     private boolean matchOnUriPrefix;
     @UriParam(defaultValue = "true")
     private boolean chunked = true;
-    @UriParam(defaultValue = "false")
+    @UriParam
     private boolean disableStreamCache;
     @UriParam
     private String proxyHost;
@@ -75,7 +76,7 @@ public class HttpEndpoint extends DefaultEndpoint implements HeaderFilterStrateg
     private String authMethodPriority;
     @UriParam
     private boolean transferException;
-    @UriParam(defaultValue = "false")
+    @UriParam
     private boolean traceEnabled;
     @UriParam
     private String httpMethodRestrict;

http://git-wip-us.apache.org/repos/asf/camel/blob/cde884bf/components/camel-http4/src/main/java/org/apache/camel/component/http4/HttpEndpoint.java
----------------------------------------------------------------------
diff --git a/components/camel-http4/src/main/java/org/apache/camel/component/http4/HttpEndpoint.java b/components/camel-http4/src/main/java/org/apache/camel/component/http4/HttpEndpoint.java
index 779daae..9a00bf8 100644
--- a/components/camel-http4/src/main/java/org/apache/camel/component/http4/HttpEndpoint.java
+++ b/components/camel-http4/src/main/java/org/apache/camel/component/http4/HttpEndpoint.java
@@ -27,6 +27,7 @@ import org.apache.camel.component.http4.helper.HttpHelper;
 import org.apache.camel.impl.DefaultEndpoint;
 import org.apache.camel.spi.HeaderFilterStrategy;
 import org.apache.camel.spi.HeaderFilterStrategyAware;
+import org.apache.camel.spi.Metadata;
 import org.apache.camel.spi.UriEndpoint;
 import org.apache.camel.spi.UriParam;
 import org.apache.camel.spi.UriPath;
@@ -47,7 +48,7 @@ import org.slf4j.LoggerFactory;
  *
  * @version 
  */
-@UriEndpoint(scheme = "http4,http4s", producerOnly = true, label = "http")
+@UriEndpoint(scheme = "http4,http4s", syntax = "http4:httpUri", producerOnly = true, label = "http")
 public class HttpEndpoint extends DefaultEndpoint implements HeaderFilterStrategyAware {
 
     private static final Logger LOG = LoggerFactory.getLogger(HttpEndpoint.class);
@@ -55,7 +56,7 @@ public class HttpEndpoint extends DefaultEndpoint implements HeaderFilterStrateg
     private HttpBinding binding;
     private HttpContext httpContext;
     private HttpComponent component;
-    @UriPath
+    @UriPath @Metadata(required = "true")
     private URI httpUri;
     private HttpClientConfigurer httpClientConfigurer;
     private HttpClientConnectionManager clientConnectionManager;
@@ -63,19 +64,19 @@ public class HttpEndpoint extends DefaultEndpoint implements HeaderFilterStrateg
     private HttpClient httpClient;
     @UriParam(defaultValue = "true")
     private boolean throwExceptionOnFailure = true;
-    @UriParam(defaultValue = "false")
+    @UriParam
     private boolean bridgeEndpoint;
-    @UriParam(defaultValue = "false")
+    @UriParam
     private boolean matchOnUriPrefix;
     @UriParam(defaultValue = "true")
     private boolean chunked = true;
-    @UriParam(defaultValue = "false")
+    @UriParam
     private boolean disableStreamCache;
-    @UriParam(defaultValue = "false")
+    @UriParam
     private boolean transferException;
-    @UriParam(defaultValue = "false")
+    @UriParam
     private boolean traceEnabled;
-    @UriParam(defaultValue = "false")
+    @UriParam
     private boolean authenticationPreemptive;
     @UriParam
     private String httpMethodRestrict;

http://git-wip-us.apache.org/repos/asf/camel/blob/cde884bf/components/camel-ibatis/src/main/java/org/apache/camel/component/ibatis/IBatisEndpoint.java
----------------------------------------------------------------------
diff --git a/components/camel-ibatis/src/main/java/org/apache/camel/component/ibatis/IBatisEndpoint.java b/components/camel-ibatis/src/main/java/org/apache/camel/component/ibatis/IBatisEndpoint.java
index bfe88e6..9e90abd 100644
--- a/components/camel-ibatis/src/main/java/org/apache/camel/component/ibatis/IBatisEndpoint.java
+++ b/components/camel-ibatis/src/main/java/org/apache/camel/component/ibatis/IBatisEndpoint.java
@@ -25,6 +25,7 @@ import org.apache.camel.component.ibatis.strategy.DefaultIBatisProcessingStategy
 import org.apache.camel.component.ibatis.strategy.IBatisProcessingStrategy;
 import org.apache.camel.component.ibatis.strategy.TransactionIsolationLevel;
 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;
@@ -34,11 +35,11 @@ import org.apache.camel.util.ObjectHelper;
  * An <a href="http://camel.apache.org/ibatis.html>iBatis Endpoint</a>
  * for performing SQL operations using an XML mapping file to abstract away the SQL
  */
-@UriEndpoint(scheme = "ibatis", consumerClass = IBatisConsumer.class, label = "database")
+@UriEndpoint(scheme = "ibatis", syntax = "ibatis:statement", consumerClass = IBatisConsumer.class, label = "database")
 public class IBatisEndpoint extends DefaultPollingEndpoint {
-    @UriPath
+    @UriPath @Metadata(required = "true")
     private String statement;
-    @UriParam(defaultValue = "false")
+    @UriParam
     private boolean useTransactions;
     @UriParam
     private StatementType statementType;

http://git-wip-us.apache.org/repos/asf/camel/blob/cde884bf/components/camel-infinispan/src/main/java/org/apache/camel/component/infinispan/InfinispanConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-infinispan/src/main/java/org/apache/camel/component/infinispan/InfinispanConfiguration.java b/components/camel-infinispan/src/main/java/org/apache/camel/component/infinispan/InfinispanConfiguration.java
index 5cceabe..2bb8b8d 100644
--- a/components/camel-infinispan/src/main/java/org/apache/camel/component/infinispan/InfinispanConfiguration.java
+++ b/components/camel-infinispan/src/main/java/org/apache/camel/component/infinispan/InfinispanConfiguration.java
@@ -20,6 +20,7 @@ import java.util.Arrays;
 import java.util.HashSet;
 import java.util.Set;
 
+import org.apache.camel.spi.Metadata;
 import org.apache.camel.spi.UriParam;
 import org.apache.camel.spi.UriParams;
 import org.apache.camel.spi.UriPath;
@@ -28,7 +29,7 @@ import org.infinispan.commons.api.BasicCacheContainer;
 @UriParams
 public class InfinispanConfiguration {
     private BasicCacheContainer cacheContainer;
-    @UriPath
+    @UriPath @Metadata(required = "true")
     private String host;
     @UriParam
     private String cacheName;

http://git-wip-us.apache.org/repos/asf/camel/blob/cde884bf/components/camel-infinispan/src/main/java/org/apache/camel/component/infinispan/InfinispanEndpoint.java
----------------------------------------------------------------------
diff --git a/components/camel-infinispan/src/main/java/org/apache/camel/component/infinispan/InfinispanEndpoint.java b/components/camel-infinispan/src/main/java/org/apache/camel/component/infinispan/InfinispanEndpoint.java
index 2fbd97d..de95923 100644
--- a/components/camel-infinispan/src/main/java/org/apache/camel/component/infinispan/InfinispanEndpoint.java
+++ b/components/camel-infinispan/src/main/java/org/apache/camel/component/infinispan/InfinispanEndpoint.java
@@ -23,7 +23,7 @@ import org.apache.camel.impl.DefaultEndpoint;
 import org.apache.camel.spi.UriEndpoint;
 import org.apache.camel.spi.UriParam;
 
-@UriEndpoint(scheme = "infinispan", consumerClass = InfinispanConsumer.class, label = "cache,datagrid,clustering")
+@UriEndpoint(scheme = "infinispan", syntax = "infinispan:host", consumerClass = InfinispanConsumer.class, label = "cache,datagrid,clustering")
 public class InfinispanEndpoint extends DefaultEndpoint {
     @UriParam
     private InfinispanConfiguration configuration;

http://git-wip-us.apache.org/repos/asf/camel/blob/cde884bf/components/camel-irc/src/main/java/org/apache/camel/component/irc/IrcConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-irc/src/main/java/org/apache/camel/component/irc/IrcConfiguration.java b/components/camel-irc/src/main/java/org/apache/camel/component/irc/IrcConfiguration.java
index 5ee86ad..9c2adf4 100644
--- a/components/camel-irc/src/main/java/org/apache/camel/component/irc/IrcConfiguration.java
+++ b/components/camel-irc/src/main/java/org/apache/camel/component/irc/IrcConfiguration.java
@@ -26,6 +26,7 @@ import java.util.List;
 import java.util.Map;
 
 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;
@@ -43,7 +44,7 @@ public class IrcConfiguration implements Cloneable {
     private static final Logger LOG = LoggerFactory.getLogger(IrcConfiguration.class);
 
     private List<IrcChannel> channels = new ArrayList<IrcChannel>();
-    @UriPath
+    @UriPath @Metadata(required = "true")
     private String hostname;
     @UriPath
     private int port;

http://git-wip-us.apache.org/repos/asf/camel/blob/cde884bf/components/camel-irc/src/main/java/org/apache/camel/component/irc/IrcEndpoint.java
----------------------------------------------------------------------
diff --git a/components/camel-irc/src/main/java/org/apache/camel/component/irc/IrcEndpoint.java b/components/camel-irc/src/main/java/org/apache/camel/component/irc/IrcEndpoint.java
index 7e84b38..9c0e766 100644
--- a/components/camel-irc/src/main/java/org/apache/camel/component/irc/IrcEndpoint.java
+++ b/components/camel-irc/src/main/java/org/apache/camel/component/irc/IrcEndpoint.java
@@ -37,7 +37,7 @@ import org.slf4j.LoggerFactory;
  *
  * @version 
  */
-@UriEndpoint(scheme = "irc", consumerClass = IrcConsumer.class, label = "chat")
+@UriEndpoint(scheme = "irc", syntax = "irc:hostname:port", consumerClass = IrcConsumer.class, label = "chat")
 public class IrcEndpoint extends DefaultEndpoint {
     private static final Logger LOG = LoggerFactory.getLogger(IrcEndpoint.class);
 

http://git-wip-us.apache.org/repos/asf/camel/blob/cde884bf/components/camel-javaspace/src/main/java/org/apache/camel/component/javaspace/JavaSpaceEndpoint.java
----------------------------------------------------------------------
diff --git a/components/camel-javaspace/src/main/java/org/apache/camel/component/javaspace/JavaSpaceEndpoint.java b/components/camel-javaspace/src/main/java/org/apache/camel/component/javaspace/JavaSpaceEndpoint.java
index 764bf59..127b7c8 100644
--- a/components/camel-javaspace/src/main/java/org/apache/camel/component/javaspace/JavaSpaceEndpoint.java
+++ b/components/camel-javaspace/src/main/java/org/apache/camel/component/javaspace/JavaSpaceEndpoint.java
@@ -23,6 +23,7 @@ import org.apache.camel.Processor;
 import org.apache.camel.Producer;
 import org.apache.camel.impl.DefaultEndpoint;
 import org.apache.camel.impl.DefaultExchange;
+import org.apache.camel.spi.Metadata;
 import org.apache.camel.spi.UriEndpoint;
 import org.apache.camel.spi.UriParam;
 import org.apache.camel.spi.UriPath;
@@ -30,12 +31,12 @@ import org.apache.camel.spi.UriPath;
 /**
  * @version 
  */
-@UriEndpoint(scheme = "javaspace", consumerClass = JavaSpaceConsumer.class, label = "messaging")
+@UriEndpoint(scheme = "javaspace", syntax = "javaspace:url", consumerClass = JavaSpaceConsumer.class, label = "messaging")
 public class JavaSpaceEndpoint extends DefaultEndpoint {
 
     private final Map<?, ?> parameters;
 
-    @UriPath
+    @UriPath @Metadata(required = "true")
     private final String url;
     @UriParam(defaultValue = "1")
     private int concurrentConsumers = 1;

http://git-wip-us.apache.org/repos/asf/camel/blob/cde884bf/components/camel-jclouds/src/main/java/org/apache/camel/component/jclouds/JcloudsConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-jclouds/src/main/java/org/apache/camel/component/jclouds/JcloudsConfiguration.java b/components/camel-jclouds/src/main/java/org/apache/camel/component/jclouds/JcloudsConfiguration.java
index 68fff77..dfec111 100644
--- a/components/camel-jclouds/src/main/java/org/apache/camel/component/jclouds/JcloudsConfiguration.java
+++ b/components/camel-jclouds/src/main/java/org/apache/camel/component/jclouds/JcloudsConfiguration.java
@@ -16,6 +16,7 @@
  */
 package org.apache.camel.component.jclouds;
 
+import org.apache.camel.spi.Metadata;
 import org.apache.camel.spi.UriParam;
 import org.apache.camel.spi.UriParams;
 import org.apache.camel.spi.UriPath;
@@ -23,9 +24,9 @@ import org.apache.camel.spi.UriPath;
 @UriParams
 public class JcloudsConfiguration {
 
-    @UriPath
+    @UriPath @Metadata(required = "true")
     private JcloudsCommand command;
-    @UriPath
+    @UriPath @Metadata(required = "true")
     private String providerId;
 
     // compute options

http://git-wip-us.apache.org/repos/asf/camel/blob/cde884bf/components/camel-jclouds/src/main/java/org/apache/camel/component/jclouds/JcloudsEndpoint.java
----------------------------------------------------------------------
diff --git a/components/camel-jclouds/src/main/java/org/apache/camel/component/jclouds/JcloudsEndpoint.java b/components/camel-jclouds/src/main/java/org/apache/camel/component/jclouds/JcloudsEndpoint.java
index e15647a..c37efdf 100644
--- a/components/camel-jclouds/src/main/java/org/apache/camel/component/jclouds/JcloudsEndpoint.java
+++ b/components/camel-jclouds/src/main/java/org/apache/camel/component/jclouds/JcloudsEndpoint.java
@@ -20,7 +20,7 @@ import org.apache.camel.impl.DefaultEndpoint;
 import org.apache.camel.spi.UriEndpoint;
 import org.apache.camel.spi.UriParam;
 
-@UriEndpoint(scheme = "jclouds", consumerClass = JcloudsConsumer.class, label = "api,cloud")
+@UriEndpoint(scheme = "jclouds", syntax = "jclouds:command:providerId", consumerClass = JcloudsConsumer.class, label = "api,cloud")
 public abstract class JcloudsEndpoint extends DefaultEndpoint {
 
     @UriParam

http://git-wip-us.apache.org/repos/asf/camel/blob/cde884bf/components/camel-jcr/src/main/java/org/apache/camel/component/jcr/JcrEndpoint.java
----------------------------------------------------------------------
diff --git a/components/camel-jcr/src/main/java/org/apache/camel/component/jcr/JcrEndpoint.java b/components/camel-jcr/src/main/java/org/apache/camel/component/jcr/JcrEndpoint.java
index ae2233d..af3c092 100644
--- a/components/camel-jcr/src/main/java/org/apache/camel/component/jcr/JcrEndpoint.java
+++ b/components/camel-jcr/src/main/java/org/apache/camel/component/jcr/JcrEndpoint.java
@@ -35,7 +35,7 @@ import org.apache.camel.util.ObjectHelper;
 /**
  * A JCR endpoint
  */
-@UriEndpoint(scheme = "jcr", consumerClass = JcrConsumer.class, label = "cms,database")
+@UriEndpoint(scheme = "jcr", syntax = "jcr:host/base", consumerClass = JcrConsumer.class, label = "cms,database")
 public class JcrEndpoint extends DefaultEndpoint {
 
     private Credentials credentials;
@@ -57,7 +57,7 @@ public class JcrEndpoint extends DefaultEndpoint {
     private String uuids;
     @UriParam
     private String nodeTypeNames;
-    @UriParam(defaultValue = "false")
+    @UriParam
     private boolean noLocal;
     @UriParam(defaultValue = "3000")
     private long sessionLiveCheckIntervalOnStart = 3000L;

http://git-wip-us.apache.org/repos/asf/camel/blob/cde884bf/components/camel-jdbc/src/main/java/org/apache/camel/component/jdbc/JdbcEndpoint.java
----------------------------------------------------------------------
diff --git a/components/camel-jdbc/src/main/java/org/apache/camel/component/jdbc/JdbcEndpoint.java b/components/camel-jdbc/src/main/java/org/apache/camel/component/jdbc/JdbcEndpoint.java
index 598b9b2..ae1b879 100755
--- a/components/camel-jdbc/src/main/java/org/apache/camel/component/jdbc/JdbcEndpoint.java
+++ b/components/camel-jdbc/src/main/java/org/apache/camel/component/jdbc/JdbcEndpoint.java
@@ -24,6 +24,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;
@@ -31,9 +32,9 @@ import org.apache.camel.spi.UriPath;
 /**
  * @version
  */
-@UriEndpoint(scheme = "jdbc", producerOnly = true, label = "database")
+@UriEndpoint(scheme = "jdbc", syntax = "jdbc:dataSource", producerOnly = true, label = "database")
 public class JdbcEndpoint extends DefaultEndpoint {
-    @UriPath
+    @UriPath @Metadata(required = "true")
     private DataSource dataSource;
     @UriParam
     private int readSize;

http://git-wip-us.apache.org/repos/asf/camel/blob/cde884bf/components/camel-jetty-common/src/main/java/org/apache/camel/component/jetty/JettyHttpEndpoint.java
----------------------------------------------------------------------
diff --git a/components/camel-jetty-common/src/main/java/org/apache/camel/component/jetty/JettyHttpEndpoint.java b/components/camel-jetty-common/src/main/java/org/apache/camel/component/jetty/JettyHttpEndpoint.java
index 15bf62c..4b17416 100644
--- a/components/camel-jetty-common/src/main/java/org/apache/camel/component/jetty/JettyHttpEndpoint.java
+++ b/components/camel-jetty-common/src/main/java/org/apache/camel/component/jetty/JettyHttpEndpoint.java
@@ -31,7 +31,6 @@ import org.apache.camel.ResolveEndpointFailedException;
 import org.apache.camel.component.http.HttpConsumer;
 import org.apache.camel.component.http.HttpEndpoint;
 import org.apache.camel.impl.SynchronousDelegateProducer;
-import org.apache.camel.spi.UriEndpoint;
 import org.apache.camel.spi.UriParam;
 import org.apache.camel.util.IntrospectionSupport;
 import org.apache.camel.util.jsse.SSLContextParameters;
@@ -41,7 +40,6 @@ import org.eclipse.jetty.server.Handler;
 /**
  * @version 
  */
-@UriEndpoint(scheme = "jetty", consumerClass = HttpConsumer.class, label = "http")
 public abstract class JettyHttpEndpoint extends HttpEndpoint {
 
     @UriParam
@@ -57,7 +55,7 @@ public abstract class JettyHttpEndpoint extends HttpEndpoint {
     private boolean enableJmx;
     @UriParam
     private boolean enableMultipartFilter;
-    @UriParam
+    @UriParam(defaultValue = "true")
     private boolean sendServerVersion = true;
     @UriParam
     private boolean sendDateHeader;

http://git-wip-us.apache.org/repos/asf/camel/blob/cde884bf/components/camel-jetty8/src/main/java/org/apache/camel/component/jetty8/JettyHttpEndpoint8.java
----------------------------------------------------------------------
diff --git a/components/camel-jetty8/src/main/java/org/apache/camel/component/jetty8/JettyHttpEndpoint8.java b/components/camel-jetty8/src/main/java/org/apache/camel/component/jetty8/JettyHttpEndpoint8.java
index ee4d0a8..05e1215 100644
--- a/components/camel-jetty8/src/main/java/org/apache/camel/component/jetty8/JettyHttpEndpoint8.java
+++ b/components/camel-jetty8/src/main/java/org/apache/camel/component/jetty8/JettyHttpEndpoint8.java
@@ -25,7 +25,7 @@ import org.apache.camel.component.jetty.JettyHttpComponent;
 import org.apache.camel.component.jetty.JettyHttpEndpoint;
 import org.apache.camel.spi.UriEndpoint;
 
-@UriEndpoint(scheme = "jetty", consumerClass = HttpConsumer.class, label = "http")
+@UriEndpoint(scheme = "jetty", syntax = "jetty:httpUri", consumerClass = HttpConsumer.class, label = "http")
 public class JettyHttpEndpoint8 extends JettyHttpEndpoint {
 
     public JettyHttpEndpoint8(JettyHttpComponent component, String uri, URI httpURL) throws URISyntaxException {

http://git-wip-us.apache.org/repos/asf/camel/blob/cde884bf/components/camel-jetty9/src/main/java/org/apache/camel/component/jetty9/JettyHttpEndpoint9.java
----------------------------------------------------------------------
diff --git a/components/camel-jetty9/src/main/java/org/apache/camel/component/jetty9/JettyHttpEndpoint9.java b/components/camel-jetty9/src/main/java/org/apache/camel/component/jetty9/JettyHttpEndpoint9.java
index 4cbef36..895d74e 100644
--- a/components/camel-jetty9/src/main/java/org/apache/camel/component/jetty9/JettyHttpEndpoint9.java
+++ b/components/camel-jetty9/src/main/java/org/apache/camel/component/jetty9/JettyHttpEndpoint9.java
@@ -26,7 +26,7 @@ import org.apache.camel.component.jetty.JettyHttpComponent;
 import org.apache.camel.component.jetty.JettyHttpEndpoint;
 import org.apache.camel.spi.UriEndpoint;
 
-@UriEndpoint(scheme = "jetty", consumerClass = HttpConsumer.class, label = "http")
+@UriEndpoint(scheme = "jetty", syntax = "jetty:httpUri", consumerClass = HttpConsumer.class, label = "http")
 public class JettyHttpEndpoint9 extends JettyHttpEndpoint {
     private HttpBinding binding;
 

http://git-wip-us.apache.org/repos/asf/camel/blob/cde884bf/components/camel-jgroups/src/main/java/org/apache/camel/component/jgroups/JGroupsEndpoint.java
----------------------------------------------------------------------
diff --git a/components/camel-jgroups/src/main/java/org/apache/camel/component/jgroups/JGroupsEndpoint.java b/components/camel-jgroups/src/main/java/org/apache/camel/component/jgroups/JGroupsEndpoint.java
index d823c1e..7295a24 100644
--- a/components/camel-jgroups/src/main/java/org/apache/camel/component/jgroups/JGroupsEndpoint.java
+++ b/components/camel-jgroups/src/main/java/org/apache/camel/component/jgroups/JGroupsEndpoint.java
@@ -24,6 +24,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;
@@ -34,7 +35,7 @@ import org.jgroups.View;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-@UriEndpoint(scheme = "jgroups", consumerClass = JGroupsConsumer.class, label = "clustering,messaging")
+@UriEndpoint(scheme = "jgroups", syntax = "jgroups:clusterName", consumerClass = JGroupsConsumer.class, label = "clustering,messaging")
 public class JGroupsEndpoint extends DefaultEndpoint {
 
     public static final String HEADER_JGROUPS_ORIGINAL_MESSAGE = "JGROUPS_ORIGINAL_MESSAGE";
@@ -52,7 +53,7 @@ public class JGroupsEndpoint extends DefaultEndpoint {
 
     private Channel resolvedChannel;
 
-    @UriPath
+    @UriPath @Metadata(required = "true")
     private String clusterName;
 
     @UriParam

http://git-wip-us.apache.org/repos/asf/camel/blob/cde884bf/components/camel-jing/src/main/java/org/apache/camel/component/validator/jing/JingEndpoint.java
----------------------------------------------------------------------
diff --git a/components/camel-jing/src/main/java/org/apache/camel/component/validator/jing/JingEndpoint.java b/components/camel-jing/src/main/java/org/apache/camel/component/validator/jing/JingEndpoint.java
index b70dd85..7b4682d 100644
--- a/components/camel-jing/src/main/java/org/apache/camel/component/validator/jing/JingEndpoint.java
+++ b/components/camel-jing/src/main/java/org/apache/camel/component/validator/jing/JingEndpoint.java
@@ -18,6 +18,7 @@ package org.apache.camel.component.validator.jing;
 
 import java.io.InputStream;
 
+import org.apache.camel.spi.Metadata;
 import org.xml.sax.InputSource;
 
 import com.thaiopensource.relaxng.SchemaFactory;
@@ -34,10 +35,10 @@ import org.apache.camel.spi.UriPath;
 import org.apache.camel.util.ObjectHelper;
 import org.apache.camel.util.ResourceHelper;
 
-@UriEndpoint(scheme = "jing", producerOnly = true, label = "validation")
+@UriEndpoint(scheme = "jing", syntax = "jing:resourceUri", producerOnly = true, label = "validation")
 public class JingEndpoint extends DefaultEndpoint {
 
-    @UriPath
+    @UriPath @Metadata(required = "true")
     private String resourceUri;
     @UriParam
     private boolean compactSyntax;

http://git-wip-us.apache.org/repos/asf/camel/blob/cde884bf/components/camel-jira/src/main/java/org/apache/camel/component/jira/JIRAEndpoint.java
----------------------------------------------------------------------
diff --git a/components/camel-jira/src/main/java/org/apache/camel/component/jira/JIRAEndpoint.java b/components/camel-jira/src/main/java/org/apache/camel/component/jira/JIRAEndpoint.java
index cfbd5a4..4a8a32d 100644
--- a/components/camel-jira/src/main/java/org/apache/camel/component/jira/JIRAEndpoint.java
+++ b/components/camel-jira/src/main/java/org/apache/camel/component/jira/JIRAEndpoint.java
@@ -23,6 +23,7 @@ import org.apache.camel.component.jira.consumer.NewCommentConsumer;
 import org.apache.camel.component.jira.consumer.NewIssueConsumer;
 import org.apache.camel.component.jira.producer.NewIssueProducer;
 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;
@@ -42,10 +43,10 @@ import org.apache.camel.spi.UriPath;
  * - the types of payloads we're polling aren't typically large (plus, paging is available in the API)
  * - need to support apps running somewhere not publicly accessible where a webhook would fail
  */
-@UriEndpoint(scheme = "jira", label = "api,reporting")
+@UriEndpoint(scheme = "jira", syntax = "jira:type", label = "api,reporting")
 public class JIRAEndpoint extends DefaultEndpoint {
 
-    @UriPath
+    @UriPath @Metadata(required = "true")
     private JIRAType type;
     @UriParam
     private String serverUrl;

http://git-wip-us.apache.org/repos/asf/camel/blob/cde884bf/components/camel-servlet/src/main/java/org/apache/camel/component/servlet/ServletEndpoint.java
----------------------------------------------------------------------
diff --git a/components/camel-servlet/src/main/java/org/apache/camel/component/servlet/ServletEndpoint.java b/components/camel-servlet/src/main/java/org/apache/camel/component/servlet/ServletEndpoint.java
index a9106db..511d1c8 100644
--- a/components/camel-servlet/src/main/java/org/apache/camel/component/servlet/ServletEndpoint.java
+++ b/components/camel-servlet/src/main/java/org/apache/camel/component/servlet/ServletEndpoint.java
@@ -24,15 +24,16 @@ import org.apache.camel.Processor;
 import org.apache.camel.Producer;
 import org.apache.camel.component.http.HttpClientConfigurer;
 import org.apache.camel.component.http.HttpEndpoint;
+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.apache.commons.httpclient.HttpConnectionManager;
 import org.apache.commons.httpclient.params.HttpClientParams;
 
-@UriEndpoint(scheme = "servlet", consumerOnly = true, consumerClass = ServletConsumer.class, label = "http")
+@UriEndpoint(scheme = "servlet", syntax = "servlet:servletName", consumerOnly = true, consumerClass = ServletConsumer.class, label = "http")
 public class ServletEndpoint extends HttpEndpoint {
 
-    @UriParam
+    @UriPath @Metadata(required = "true")
     private String servletName;
 
     public ServletEndpoint() {

http://git-wip-us.apache.org/repos/asf/camel/blob/cde884bf/components/camel-spring/src/main/java/org/apache/camel/component/event/EventEndpoint.java
----------------------------------------------------------------------
diff --git a/components/camel-spring/src/main/java/org/apache/camel/component/event/EventEndpoint.java b/components/camel-spring/src/main/java/org/apache/camel/component/event/EventEndpoint.java
index 99f0066..df4fb58 100644
--- a/components/camel-spring/src/main/java/org/apache/camel/component/event/EventEndpoint.java
+++ b/components/camel-spring/src/main/java/org/apache/camel/component/event/EventEndpoint.java
@@ -39,7 +39,7 @@ import static org.apache.camel.util.ObjectHelper.wrapRuntimeCamelException;
  *
  * @version 
  */
-@UriEndpoint(scheme = "spring-event", consumerClass = EventConsumer.class, label = "spring,eventbus")
+@UriEndpoint(scheme = "spring-event", syntax = "spring-event:name", consumerClass = EventConsumer.class, label = "spring,eventbus")
 public class EventEndpoint extends DefaultEndpoint implements ApplicationContextAware {
     private LoadBalancer loadBalancer;
     private ApplicationContext applicationContext;

http://git-wip-us.apache.org/repos/asf/camel/blob/cde884bf/components/camel-velocity/src/main/java/org/apache/camel/component/velocity/VelocityEndpoint.java
----------------------------------------------------------------------
diff --git a/components/camel-velocity/src/main/java/org/apache/camel/component/velocity/VelocityEndpoint.java b/components/camel-velocity/src/main/java/org/apache/camel/component/velocity/VelocityEndpoint.java
index 33a9484..1aecf7d 100644
--- a/components/camel-velocity/src/main/java/org/apache/camel/component/velocity/VelocityEndpoint.java
+++ b/components/camel-velocity/src/main/java/org/apache/camel/component/velocity/VelocityEndpoint.java
@@ -40,7 +40,7 @@ import org.apache.velocity.context.Context;
 import org.apache.velocity.runtime.RuntimeConstants;
 import org.apache.velocity.runtime.log.CommonsLogLogChute;
 
-@UriEndpoint(scheme = "velocity", producerOnly = true, label = "transformation")
+@UriEndpoint(scheme = "velocity", syntax = "velocity:resourceUri", producerOnly = true, label = "transformation")
 public class VelocityEndpoint extends ResourceEndpoint {
     
     private VelocityEngine velocityEngine;


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

Posted by da...@apache.org.
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;


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

Posted by da...@apache.org.
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/00e70956
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/00e70956
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/00e70956

Branch: refs/heads/master
Commit: 00e70956bb67d83fab3cf0b2053cc7e15ec29307
Parents: 1436a8e
Author: Claus Ibsen <da...@apache.org>
Authored: Sun Mar 1 08:37:18 2015 +0100
Committer: Claus Ibsen <da...@apache.org>
Committed: Sun Mar 1 08:37:18 2015 +0100

----------------------------------------------------------------------
 .../org/apache/camel/util/ObjectHelper.java     | 22 ++++++++++++++++++++
 .../tools/apt/EndpointAnnotationProcessor.java  |  6 +++++-
 .../org/apache/camel/tools/apt/Strings.java     | 14 +++++++++++++
 3 files changed, 41 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/00e70956/camel-core/src/main/java/org/apache/camel/util/ObjectHelper.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/util/ObjectHelper.java b/camel-core/src/main/java/org/apache/camel/util/ObjectHelper.java
index edcf519..6d03134 100644
--- a/camel-core/src/main/java/org/apache/camel/util/ObjectHelper.java
+++ b/camel-core/src/main/java/org/apache/camel/util/ObjectHelper.java
@@ -426,6 +426,13 @@ public final class ObjectHelper {
         return answer;
     }
 
+    /**
+     * Returns the string after the given token
+     *
+     * @param text  the text
+     * @param after the token
+     * @return the text after the token, or <tt>null</tt> if text does not contain the token
+     */
     public static String after(String text, String after) {
         if (!text.contains(after)) {
             return null;
@@ -433,6 +440,13 @@ public final class ObjectHelper {
         return text.substring(text.indexOf(after) + after.length());
     }
 
+    /**
+     * Returns the string before the given token
+     *
+     * @param text  the text
+     * @param before the token
+     * @return the text before the token, or <tt>null</tt> if text does not contain the token
+     */
     public static String before(String text, String before) {
         if (!text.contains(before)) {
             return null;
@@ -440,6 +454,14 @@ public final class ObjectHelper {
         return text.substring(0, text.indexOf(before));
     }
 
+    /**
+     * Returns the string between the given tokens
+     *
+     * @param text  the text
+     * @param after the before token
+     * @param before the after token
+     * @return the text between the tokens, or <tt>null</tt> if text does not contain the tokens
+     */
     public static String between(String text, String after, String before) {
         text = after(text, after);
         if (text == null) {

http://git-wip-us.apache.org/repos/asf/camel/blob/00e70956/tooling/apt/src/main/java/org/apache/camel/tools/apt/EndpointAnnotationProcessor.java
----------------------------------------------------------------------
diff --git a/tooling/apt/src/main/java/org/apache/camel/tools/apt/EndpointAnnotationProcessor.java b/tooling/apt/src/main/java/org/apache/camel/tools/apt/EndpointAnnotationProcessor.java
index f9f2e0f..cf9c3fd 100644
--- a/tooling/apt/src/main/java/org/apache/camel/tools/apt/EndpointAnnotationProcessor.java
+++ b/tooling/apt/src/main/java/org/apache/camel/tools/apt/EndpointAnnotationProcessor.java
@@ -331,7 +331,11 @@ public class EndpointAnnotationProcessor extends AbstractAnnotationProcessor {
 
     protected ComponentModel findComponentProperties(RoundEnvironment roundEnv, UriEndpoint uriEndpoint, String scheme, String label) {
         ComponentModel model = new ComponentModel(scheme);
-        model.setSyntax(uriEndpoint.syntax());
+
+        // if the scheme is an alias then replace the scheme name from the syntax with the alias
+        String syntax = scheme + ":" + Strings.after(uriEndpoint.syntax(), ":");
+
+        model.setSyntax(syntax);
         model.setLabel(label);
         model.setConsumerOnly(uriEndpoint.consumerOnly());
         model.setProducerOnly(uriEndpoint.producerOnly());

http://git-wip-us.apache.org/repos/asf/camel/blob/00e70956/tooling/apt/src/main/java/org/apache/camel/tools/apt/Strings.java
----------------------------------------------------------------------
diff --git a/tooling/apt/src/main/java/org/apache/camel/tools/apt/Strings.java b/tooling/apt/src/main/java/org/apache/camel/tools/apt/Strings.java
index 6fee17e..3e0747b 100644
--- a/tooling/apt/src/main/java/org/apache/camel/tools/apt/Strings.java
+++ b/tooling/apt/src/main/java/org/apache/camel/tools/apt/Strings.java
@@ -48,6 +48,20 @@ final class Strings {
     }
 
     /**
+     * Returns the string after the given token
+     *
+     * @param text  the text
+     * @param after the token
+     * @return the text after the token, or <tt>null</tt> if text does not contain the token
+     */
+    public static String after(String text, String after) {
+        if (!text.contains(after)) {
+            return null;
+        }
+        return text.substring(text.indexOf(after) + after.length());
+    }
+
+    /**
      * Returns the canonical class name by removing any generic type information.
      */
     public static String canonicalClassName(String className) {


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

Posted by da...@apache.org.
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/1436a8e7
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/1436a8e7
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/1436a8e7

Branch: refs/heads/master
Commit: 1436a8e744027ae892ac2febbc5f886c7a467cd6
Parents: fc6f5ff
Author: Claus Ibsen <da...@apache.org>
Authored: Sat Feb 28 19:36:57 2015 +0100
Committer: Claus Ibsen <da...@apache.org>
Committed: Sat Feb 28 19:36:57 2015 +0100

----------------------------------------------------------------------
 .../src/main/java/__name__Endpoint.java         | 24 ++++++++++++++++++--
 1 file changed, 22 insertions(+), 2 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/1436a8e7/tooling/archetypes/camel-archetype-component/src/main/resources/archetype-resources/src/main/java/__name__Endpoint.java
----------------------------------------------------------------------
diff --git a/tooling/archetypes/camel-archetype-component/src/main/resources/archetype-resources/src/main/java/__name__Endpoint.java b/tooling/archetypes/camel-archetype-component/src/main/resources/archetype-resources/src/main/java/__name__Endpoint.java
index 227aeb4..4600a20 100644
--- a/tooling/archetypes/camel-archetype-component/src/main/resources/archetype-resources/src/main/java/__name__Endpoint.java
+++ b/tooling/archetypes/camel-archetype-component/src/main/resources/archetype-resources/src/main/java/__name__Endpoint.java
@@ -20,16 +20,20 @@ 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;
 
 /**
  * Represents a ${name} endpoint.
  */
-@UriEndpoint(scheme = "${scheme}", consumerClass = ${name}Consumer.class, label = "${name}")
+@UriEndpoint(scheme = "${scheme}", syntax="${scheme}:name", consumerClass = ${name}Consumer.class, label = "${name}")
 public class ${name}Endpoint extends DefaultEndpoint {
+    @UriPath @Metadata(required = "true")
+    private String name;
     @UriParam(defaultValue = "10")
-    private int option1 = 10;
+    private int option = 10;
 
     public ${name}Endpoint() {
     }
@@ -53,4 +57,20 @@ public class ${name}Endpoint extends DefaultEndpoint {
     public boolean isSingleton() {
         return true;
     }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setOption(int option) {
+        this.option = option;
+    }
+
+    public int getOption() {
+        return option;
+    }
 }


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

Posted by da...@apache.org.
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/5c38e8b1
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/5c38e8b1
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/5c38e8b1

Branch: refs/heads/master
Commit: 5c38e8b1f664dc4ace5e2dacfe450f4a2dedba5d
Parents: f511c45
Author: Claus Ibsen <da...@apache.org>
Authored: Sat Feb 28 19:03:25 2015 +0100
Committer: Claus Ibsen <da...@apache.org>
Committed: Sat Feb 28 19:03:25 2015 +0100

----------------------------------------------------------------------
 .../org/apache/camel/component/feed/FeedEndpoint.java    |  5 +++--
 .../camel/component/routebox/RouteboxConfiguration.java  |  3 ++-
 .../camel/component/routebox/RouteboxEndpoint.java       |  2 +-
 .../java/org/apache/camel/component/rss/RssEndpoint.java |  2 +-
 .../camel/component/salesforce/SalesforceEndpoint.java   | 10 ++++++----
 .../camel/component/sap/netweaver/NetWeaverEndpoint.java |  5 +++--
 .../apache/camel/component/xquery/XQueryEndpoint.java    |  7 ++++---
 .../camel/component/schematron/SchematronEndpoint.java   |  7 ++++---
 .../org/apache/camel/component/sip/SipConfiguration.java |  3 ++-
 .../java/org/apache/camel/component/sip/SipEndpoint.java |  2 +-
 .../org/apache/camel/component/sjms/SjmsEndpoint.java    |  9 ++++++---
 .../apache/camel/component/smpp/SmppConfiguration.java   |  4 ++--
 .../org/apache/camel/component/smpp/SmppEndpoint.java    |  2 +-
 .../org/apache/camel/component/snmp/SnmpEndpoint.java    | 11 ++++++-----
 14 files changed, 42 insertions(+), 30 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/5c38e8b1/components/camel-atom/src/main/java/org/apache/camel/component/feed/FeedEndpoint.java
----------------------------------------------------------------------
diff --git a/components/camel-atom/src/main/java/org/apache/camel/component/feed/FeedEndpoint.java b/components/camel-atom/src/main/java/org/apache/camel/component/feed/FeedEndpoint.java
index 9d8daa0..ef291d0 100644
--- a/components/camel-atom/src/main/java/org/apache/camel/component/feed/FeedEndpoint.java
+++ b/components/camel-atom/src/main/java/org/apache/camel/component/feed/FeedEndpoint.java
@@ -23,6 +23,7 @@ import org.apache.camel.Exchange;
 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.UriParam;
 import org.apache.camel.spi.UriPath;
 import org.apache.camel.util.ObjectHelper;
@@ -32,7 +33,7 @@ import org.apache.camel.util.ObjectHelper;
  */
 public abstract class FeedEndpoint extends DefaultPollingEndpoint {
 
-    @UriPath
+    @UriPath @Metadata(required = "true")
     protected String feedUri;
     @UriParam(defaultValue = "true")
     protected boolean splitEntries = true;
@@ -42,7 +43,7 @@ public abstract class FeedEndpoint extends DefaultPollingEndpoint {
     protected boolean filter = true;
     @UriParam(defaultValue = "true")
     private boolean feedHeader = true;
-    @UriParam(defaultValue = "false")
+    @UriParam
     private boolean sortEntries;
     @UriParam(defaultValue = "true")
     private boolean throttleEntries = true;

http://git-wip-us.apache.org/repos/asf/camel/blob/5c38e8b1/components/camel-routebox/src/main/java/org/apache/camel/component/routebox/RouteboxConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-routebox/src/main/java/org/apache/camel/component/routebox/RouteboxConfiguration.java b/components/camel-routebox/src/main/java/org/apache/camel/component/routebox/RouteboxConfiguration.java
index 2bbf409..34c8a23 100644
--- a/components/camel-routebox/src/main/java/org/apache/camel/component/routebox/RouteboxConfiguration.java
+++ b/components/camel-routebox/src/main/java/org/apache/camel/component/routebox/RouteboxConfiguration.java
@@ -27,6 +27,7 @@ import org.apache.camel.ProducerTemplate;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.routebox.strategy.RouteboxDispatchStrategy;
 import org.apache.camel.impl.DefaultCamelContext;
+import org.apache.camel.spi.Metadata;
 import org.apache.camel.spi.Registry;
 import org.apache.camel.spi.UriParam;
 import org.apache.camel.spi.UriParams;
@@ -39,7 +40,7 @@ public class RouteboxConfiguration {
     private static final Logger LOG = LoggerFactory.getLogger(RouteboxConfiguration.class);
     private URI uri;
     private String authority;
-    @UriPath
+    @UriPath @Metadata(required = "true")
     private String routeboxName;
     @UriParam
     private URI consumerUri;

http://git-wip-us.apache.org/repos/asf/camel/blob/5c38e8b1/components/camel-routebox/src/main/java/org/apache/camel/component/routebox/RouteboxEndpoint.java
----------------------------------------------------------------------
diff --git a/components/camel-routebox/src/main/java/org/apache/camel/component/routebox/RouteboxEndpoint.java b/components/camel-routebox/src/main/java/org/apache/camel/component/routebox/RouteboxEndpoint.java
index f4afcfe..cb7a719 100644
--- a/components/camel-routebox/src/main/java/org/apache/camel/component/routebox/RouteboxEndpoint.java
+++ b/components/camel-routebox/src/main/java/org/apache/camel/component/routebox/RouteboxEndpoint.java
@@ -22,7 +22,7 @@ import org.apache.camel.impl.DefaultEndpoint;
 import org.apache.camel.spi.UriEndpoint;
 import org.apache.camel.spi.UriParam;
 
-@UriEndpoint(scheme = "routebox", consumerClass = RouteboxConsumer.class, label = "eventbus")
+@UriEndpoint(scheme = "routebox", syntax = "routebox:routeboxName", consumerClass = RouteboxConsumer.class, label = "eventbus")
 public abstract class RouteboxEndpoint extends DefaultEndpoint {
 
     @UriParam

http://git-wip-us.apache.org/repos/asf/camel/blob/5c38e8b1/components/camel-rss/src/main/java/org/apache/camel/component/rss/RssEndpoint.java
----------------------------------------------------------------------
diff --git a/components/camel-rss/src/main/java/org/apache/camel/component/rss/RssEndpoint.java b/components/camel-rss/src/main/java/org/apache/camel/component/rss/RssEndpoint.java
index fb08af9..c3caccd 100644
--- a/components/camel-rss/src/main/java/org/apache/camel/component/rss/RssEndpoint.java
+++ b/components/camel-rss/src/main/java/org/apache/camel/component/rss/RssEndpoint.java
@@ -33,7 +33,7 @@ import org.slf4j.LoggerFactory;
 /**
  * Is used for polling rss feeds.
  */
-@UriEndpoint(scheme = "rss", consumerOnly = true, consumerClass = RssEntryPollingConsumer.class, label = "feeds")
+@UriEndpoint(scheme = "rss", syntax = "rss:feedUri", consumerOnly = true, consumerClass = RssEntryPollingConsumer.class, label = "feeds")
 public class RssEndpoint extends FeedEndpoint {
     protected static final Logger LOG = LoggerFactory.getLogger(RssEndpoint.class);
 

http://git-wip-us.apache.org/repos/asf/camel/blob/5c38e8b1/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/SalesforceEndpoint.java
----------------------------------------------------------------------
diff --git a/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/SalesforceEndpoint.java b/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/SalesforceEndpoint.java
index 6043d2b..27e28f2 100644
--- a/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/SalesforceEndpoint.java
+++ b/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/SalesforceEndpoint.java
@@ -24,18 +24,20 @@ import org.apache.camel.impl.DefaultEndpoint;
 import org.apache.camel.impl.SynchronousDelegateProducer;
 import org.apache.camel.spi.UriEndpoint;
 import org.apache.camel.spi.UriParam;
+import org.apache.camel.spi.UriPath;
 
 /**
  * Represents a Salesforce endpoint.
  */
-@UriEndpoint(scheme = "salesforce", consumerClass = SalesforceConsumer.class)
+@UriEndpoint(scheme = "salesforce", syntax = "salesforce:operationName:topicName", consumerClass = SalesforceConsumer.class)
 public class SalesforceEndpoint extends DefaultEndpoint {
 
-    @UriParam
-    private final SalesforceEndpointConfig config;
-
+    @UriPath
     private final OperationName operationName;
+    @UriPath
     private final String topicName;
+    @UriParam
+    private final SalesforceEndpointConfig config;
 
     public SalesforceEndpoint(String uri, SalesforceComponent salesforceComponent,
                               SalesforceEndpointConfig config, OperationName operationName, String topicName) {

http://git-wip-us.apache.org/repos/asf/camel/blob/5c38e8b1/components/camel-sap-netweaver/src/main/java/org/apache/camel/component/sap/netweaver/NetWeaverEndpoint.java
----------------------------------------------------------------------
diff --git a/components/camel-sap-netweaver/src/main/java/org/apache/camel/component/sap/netweaver/NetWeaverEndpoint.java b/components/camel-sap-netweaver/src/main/java/org/apache/camel/component/sap/netweaver/NetWeaverEndpoint.java
index 9349327..0670ef6 100644
--- a/components/camel-sap-netweaver/src/main/java/org/apache/camel/component/sap/netweaver/NetWeaverEndpoint.java
+++ b/components/camel-sap-netweaver/src/main/java/org/apache/camel/component/sap/netweaver/NetWeaverEndpoint.java
@@ -21,14 +21,15 @@ 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;
 
-@UriEndpoint(scheme = "sap-netweaver", producerOnly = true, label = "sap")
+@UriEndpoint(scheme = "sap-netweaver", syntax = "sap-netweaver:url", producerOnly = true, label = "sap")
 public class NetWeaverEndpoint extends DefaultEndpoint {
 
-    @UriPath
+    @UriPath @Metadata(required = "true")
     private String url;
     @UriParam(defaultValue = "true")
     private boolean json = true;

http://git-wip-us.apache.org/repos/asf/camel/blob/5c38e8b1/components/camel-saxon/src/main/java/org/apache/camel/component/xquery/XQueryEndpoint.java
----------------------------------------------------------------------
diff --git a/components/camel-saxon/src/main/java/org/apache/camel/component/xquery/XQueryEndpoint.java b/components/camel-saxon/src/main/java/org/apache/camel/component/xquery/XQueryEndpoint.java
index b0e3160..f468c11 100644
--- a/components/camel-saxon/src/main/java/org/apache/camel/component/xquery/XQueryEndpoint.java
+++ b/components/camel-saxon/src/main/java/org/apache/camel/component/xquery/XQueryEndpoint.java
@@ -26,6 +26,7 @@ import net.sf.saxon.lib.ModuleURIResolver;
 import net.sf.saxon.query.StaticQueryContext;
 import org.apache.camel.Component;
 import org.apache.camel.impl.ProcessorEndpoint;
+import org.apache.camel.spi.Metadata;
 import org.apache.camel.spi.UriEndpoint;
 import org.apache.camel.spi.UriParam;
 import org.apache.camel.spi.UriPath;
@@ -34,14 +35,14 @@ import org.apache.camel.util.ServiceHelper;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-@UriEndpoint(scheme = "xquery", label = "transformation")
+@UriEndpoint(scheme = "xquery", syntax = "xquery:resourceUri", label = "transformation")
 public class XQueryEndpoint extends ProcessorEndpoint {
 
     private static final Logger LOG = LoggerFactory.getLogger(XQueryEndpoint.class);
 
     private volatile XQueryBuilder xquery;
 
-    @UriPath
+    @UriPath @Metadata(required = "true")
     private String resourceUri;
     @UriParam
     private Configuration configuration;
@@ -61,7 +62,7 @@ public class XQueryEndpoint extends ProcessorEndpoint {
     private boolean stripsAllWhiteSpace = true;
     @UriParam
     private ModuleURIResolver moduleURIResolver;
-    @UriParam(defaultValue = "false")
+    @UriParam
     private boolean allowStAX;
     @UriParam
     private String headerName;

http://git-wip-us.apache.org/repos/asf/camel/blob/5c38e8b1/components/camel-schematron/src/main/java/org/apache/camel/component/schematron/SchematronEndpoint.java
----------------------------------------------------------------------
diff --git a/components/camel-schematron/src/main/java/org/apache/camel/component/schematron/SchematronEndpoint.java b/components/camel-schematron/src/main/java/org/apache/camel/component/schematron/SchematronEndpoint.java
index 4f562b5..7390bd7 100644
--- a/components/camel-schematron/src/main/java/org/apache/camel/component/schematron/SchematronEndpoint.java
+++ b/components/camel-schematron/src/main/java/org/apache/camel/component/schematron/SchematronEndpoint.java
@@ -26,6 +26,7 @@ import org.apache.camel.Producer;
 import org.apache.camel.component.schematron.exception.SchematronConfigException;
 import org.apache.camel.component.schematron.processor.TemplatesFactory;
 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;
@@ -37,14 +38,14 @@ import org.slf4j.LoggerFactory;
 /**
  * Schematron Endpoint.
  */
-@UriEndpoint(scheme = "schematron", producerOnly = true, label = "validation")
+@UriEndpoint(scheme = "schematron", syntax = "schematron:path", producerOnly = true, label = "validation")
 public class SchematronEndpoint extends DefaultEndpoint {
 
     private Logger logger = LoggerFactory.getLogger(SchematronEndpoint.class);
 
-    @UriPath
+    @UriPath @Metadata(required = "true")
     private String path;
-    @UriParam(defaultValue = "false")
+    @UriParam
     private boolean abort;
     @UriParam
     private Templates rules;

http://git-wip-us.apache.org/repos/asf/camel/blob/5c38e8b1/components/camel-sip/src/main/java/org/apache/camel/component/sip/SipConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-sip/src/main/java/org/apache/camel/component/sip/SipConfiguration.java b/components/camel-sip/src/main/java/org/apache/camel/component/sip/SipConfiguration.java
index a9ab505..dc436b3 100644
--- a/components/camel-sip/src/main/java/org/apache/camel/component/sip/SipConfiguration.java
+++ b/components/camel-sip/src/main/java/org/apache/camel/component/sip/SipConfiguration.java
@@ -46,6 +46,7 @@ import javax.sip.header.ViaHeader;
 import javax.sip.message.MessageFactory;
 import javax.sip.message.Request;
 
+import org.apache.camel.spi.Metadata;
 import org.apache.camel.spi.UriParam;
 import org.apache.camel.spi.UriParams;
 import org.apache.camel.spi.UriPath;
@@ -58,7 +59,7 @@ import org.slf4j.LoggerFactory;
 public class SipConfiguration {    
     private static final Logger LOG = LoggerFactory.getLogger(SipConfiguration.class);
     private static final String IMPLEMENTATION = "gov.nist";
-    @UriPath
+    @UriPath @Metadata(required = "true")
     private URI uri;
     private Map<String, Object> parameters;
     private SipComponent component;

http://git-wip-us.apache.org/repos/asf/camel/blob/5c38e8b1/components/camel-sip/src/main/java/org/apache/camel/component/sip/SipEndpoint.java
----------------------------------------------------------------------
diff --git a/components/camel-sip/src/main/java/org/apache/camel/component/sip/SipEndpoint.java b/components/camel-sip/src/main/java/org/apache/camel/component/sip/SipEndpoint.java
index 9d7f953..e944ee3 100644
--- a/components/camel-sip/src/main/java/org/apache/camel/component/sip/SipEndpoint.java
+++ b/components/camel-sip/src/main/java/org/apache/camel/component/sip/SipEndpoint.java
@@ -24,7 +24,7 @@ import org.apache.camel.impl.DefaultEndpoint;
 import org.apache.camel.spi.UriEndpoint;
 import org.apache.camel.spi.UriParam;
 
-@UriEndpoint(scheme = "sip", label = "messaging")
+@UriEndpoint(scheme = "sip", syntax = "sip:uri", label = "messaging")
 public class SipEndpoint extends DefaultEndpoint {
     @UriParam
     private SipConfiguration configuration;

http://git-wip-us.apache.org/repos/asf/camel/blob/5c38e8b1/components/camel-sjms/src/main/java/org/apache/camel/component/sjms/SjmsEndpoint.java
----------------------------------------------------------------------
diff --git a/components/camel-sjms/src/main/java/org/apache/camel/component/sjms/SjmsEndpoint.java b/components/camel-sjms/src/main/java/org/apache/camel/component/sjms/SjmsEndpoint.java
index 6841d77..5dbeb03 100644
--- a/components/camel-sjms/src/main/java/org/apache/camel/component/sjms/SjmsEndpoint.java
+++ b/components/camel-sjms/src/main/java/org/apache/camel/component/sjms/SjmsEndpoint.java
@@ -31,6 +31,7 @@ import org.apache.camel.component.sjms.producer.InOnlyProducer;
 import org.apache.camel.component.sjms.producer.InOutProducer;
 import org.apache.camel.impl.DefaultEndpoint;
 import org.apache.camel.spi.HeaderFilterStrategy;
+import org.apache.camel.spi.Metadata;
 import org.apache.camel.spi.UriEndpoint;
 import org.apache.camel.spi.UriParam;
 import org.apache.camel.spi.UriPath;
@@ -40,15 +41,17 @@ import org.slf4j.LoggerFactory;
 /**
  * A JMS Endpoint
  */
-@UriEndpoint(scheme = "sjms", consumerClass = SjmsConsumer.class, label = "messaging")
+@UriEndpoint(scheme = "sjms", syntax = "sjms:destinationType:destinationName", consumerClass = SjmsConsumer.class, label = "messaging")
 public class SjmsEndpoint extends DefaultEndpoint implements MultipleConsumersSupport {
     protected final Logger logger = LoggerFactory.getLogger(getClass());
 
-    @UriPath
+    @UriPath(enums = "queue,topic", defaultValue = "queue")
+    private String destinationType;
+    @UriPath @Metadata(required = "true")
     private String destinationName;
     @UriParam(defaultValue = "true")
     private boolean synchronous = true;
-    @UriParam(defaultValue = "false")
+    @UriParam
     private boolean transacted;
     @UriParam
     private String namedReplyTo;

http://git-wip-us.apache.org/repos/asf/camel/blob/5c38e8b1/components/camel-smpp/src/main/java/org/apache/camel/component/smpp/SmppConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-smpp/src/main/java/org/apache/camel/component/smpp/SmppConfiguration.java b/components/camel-smpp/src/main/java/org/apache/camel/component/smpp/SmppConfiguration.java
index a3b352a..3f29c25 100644
--- a/components/camel-smpp/src/main/java/org/apache/camel/component/smpp/SmppConfiguration.java
+++ b/components/camel-smpp/src/main/java/org/apache/camel/component/smpp/SmppConfiguration.java
@@ -41,9 +41,9 @@ import org.slf4j.LoggerFactory;
 public class SmppConfiguration implements Cloneable {
     private static final Logger LOG = LoggerFactory.getLogger(SmppConfiguration.class);
 
-    @UriPath
+    @UriPath(defaultValue = "localhost")
     private String host = "localhost";
-    @UriPath
+    @UriPath(defaultValue = "2775")
     private Integer port = 2775;
     @UriParam(defaultValue = "smppclient")
     private String systemId = "smppclient";

http://git-wip-us.apache.org/repos/asf/camel/blob/5c38e8b1/components/camel-smpp/src/main/java/org/apache/camel/component/smpp/SmppEndpoint.java
----------------------------------------------------------------------
diff --git a/components/camel-smpp/src/main/java/org/apache/camel/component/smpp/SmppEndpoint.java b/components/camel-smpp/src/main/java/org/apache/camel/component/smpp/SmppEndpoint.java
index f9e0a20..3b2188b 100644
--- a/components/camel-smpp/src/main/java/org/apache/camel/component/smpp/SmppEndpoint.java
+++ b/components/camel-smpp/src/main/java/org/apache/camel/component/smpp/SmppEndpoint.java
@@ -34,7 +34,7 @@ import org.jsmpp.bean.DeliverSm;
  * 
  * @version 
  */
-@UriEndpoint(scheme = "smpp", consumerClass = SmppConsumer.class, label = "mobile,messaging")
+@UriEndpoint(scheme = "smpp", syntax = "smpp:host:port", consumerClass = SmppConsumer.class, label = "mobile,messaging")
 public class SmppEndpoint extends DefaultEndpoint {
 
     private SmppBinding binding;

http://git-wip-us.apache.org/repos/asf/camel/blob/5c38e8b1/components/camel-snmp/src/main/java/org/apache/camel/component/snmp/SnmpEndpoint.java
----------------------------------------------------------------------
diff --git a/components/camel-snmp/src/main/java/org/apache/camel/component/snmp/SnmpEndpoint.java b/components/camel-snmp/src/main/java/org/apache/camel/component/snmp/SnmpEndpoint.java
index e7b7040..39c253e 100644
--- a/components/camel-snmp/src/main/java/org/apache/camel/component/snmp/SnmpEndpoint.java
+++ b/components/camel-snmp/src/main/java/org/apache/camel/component/snmp/SnmpEndpoint.java
@@ -25,6 +25,7 @@ import org.apache.camel.Processor;
 import org.apache.camel.Producer;
 import org.apache.camel.impl.DefaultExchange;
 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;
@@ -35,7 +36,7 @@ import org.snmp4j.PDU;
 import org.snmp4j.mp.SnmpConstants;
 import org.snmp4j.security.SecurityLevel;
 
-@UriEndpoint(scheme = "snmp", consumerOnly = true, label = "monitoring")
+@UriEndpoint(scheme = "snmp", syntax = "snmp:host:port", consumerOnly = true, label = "monitoring")
 public class SnmpEndpoint extends DefaultPollingEndpoint {
 
     public static final String DEFAULT_COMMUNITY = "public";
@@ -49,12 +50,12 @@ public class SnmpEndpoint extends DefaultPollingEndpoint {
 
     private transient String address;
 
-    @UriPath
-    private String protocol = "udp";
-    @UriPath
+    @UriPath @Metadata(required = "true")
     private String host;
-    @UriPath
+    @UriPath @Metadata(required = "true")
     private Integer port;
+    @UriParam(defaultValue = "udp")
+    private String protocol = "udp";
     @UriParam(defaultValue = "" + DEFAULT_SNMP_RETRIES)
     private int retries = DEFAULT_SNMP_RETRIES;
     @UriParam(defaultValue = "" + DEFAULT_SNMP_TIMEOUT)


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

Posted by da...@apache.org.
http://git-wip-us.apache.org/repos/asf/camel/blob/c763bb13/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsEndpoint.java
----------------------------------------------------------------------
diff --git a/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsEndpoint.java b/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsEndpoint.java
index 7d7474e..987d17f 100644
--- a/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsEndpoint.java
+++ b/components/camel-jms/src/main/java/org/apache/camel/component/jms/JmsEndpoint.java
@@ -69,7 +69,7 @@ import org.springframework.util.ErrorHandler;
  * @version
  */
 @ManagedResource(description = "Managed JMS Endpoint")
-@UriEndpoint(scheme = "jms", consumerClass = JmsConsumer.class, label = "messaging")
+@UriEndpoint(scheme = "jms", syntax = "jms:destinationType:destinationName", consumerClass = JmsConsumer.class, label = "messaging")
 public class JmsEndpoint extends DefaultEndpoint implements HeaderFilterStrategyAware, MultipleConsumersSupport, Service {
     protected final Logger log = LoggerFactory.getLogger(getClass());
     private final AtomicInteger runningMessageListeners = new AtomicInteger();


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

Posted by da...@apache.org.
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/c763bb13
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/c763bb13
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/c763bb13

Branch: refs/heads/master
Commit: c763bb13dd175e6a5d64336398db6593892748e5
Parents: e1736f3
Author: Claus Ibsen <da...@apache.org>
Authored: Sat Feb 28 17:13:45 2015 +0100
Committer: Claus Ibsen <da...@apache.org>
Committed: Sat Feb 28 17:13:45 2015 +0100

----------------------------------------------------------------------
 .../apache/camel/component/ahc/ws/WsEndpoint.java   |  2 +-
 .../org/apache/camel/component/ahc/AhcEndpoint.java |  2 +-
 .../apache/camel/component/amqp/AMQPEndpoint.java   |  2 +-
 .../apache/camel/component/apns/ApnsEndpoint.java   |  4 ++--
 .../camel/component/atmos/AtmosConfiguration.java   |  3 ++-
 .../apache/camel/component/atmos/AtmosEndpoint.java |  2 +-
 .../atmosphere/websocket/WebsocketEndpoint.java     |  5 +++--
 .../apache/camel/component/atom/AtomEndpoint.java   |  2 +-
 .../apache/camel/component/avro/AvroComponent.java  |  8 ++++----
 .../camel/component/avro/AvroConfiguration.java     | 11 ++++++-----
 .../apache/camel/component/avro/AvroEndpoint.java   |  2 +-
 .../camel/component/aws/cw/CwConfiguration.java     |  3 ++-
 .../apache/camel/component/aws/cw/CwEndpoint.java   |  2 +-
 .../camel/component/aws/ddb/DdbConfiguration.java   |  3 ++-
 .../apache/camel/component/aws/ddb/DdbEndpoint.java |  2 +-
 .../camel/component/aws/s3/S3Configuration.java     |  3 ++-
 .../apache/camel/component/aws/s3/S3Endpoint.java   |  2 +-
 .../camel/component/aws/sdb/SdbConfiguration.java   |  3 ++-
 .../apache/camel/component/aws/sdb/SdbEndpoint.java |  2 +-
 .../camel/component/aws/ses/SesConfiguration.java   |  3 ++-
 .../apache/camel/component/aws/ses/SesEndpoint.java |  2 +-
 .../camel/component/aws/sns/SnsConfiguration.java   |  3 ++-
 .../apache/camel/component/aws/sns/SnsEndpoint.java |  2 +-
 .../camel/component/aws/sqs/SqsConfiguration.java   |  3 ++-
 .../apache/camel/component/aws/sqs/SqsEndpoint.java |  3 +--
 .../camel/component/aws/swf/SWFConfiguration.java   |  3 ++-
 .../apache/camel/component/aws/swf/SWFEndpoint.java |  2 +-
 .../bean/validator/BeanValidatorEndpoint.java       |  5 +++--
 .../component/beanstalk/BeanstalkEndpoint.java      |  2 +-
 .../camel/component/box/BoxConfiguration.java       |  5 +++--
 .../org/apache/camel/component/box/BoxEndpoint.java |  2 +-
 .../apache/camel/component/cache/CacheEndpoint.java |  2 +-
 .../component/cassandra/CassandraEndpoint.java      |  4 ++--
 .../apache/camel/component/chunk/ChunkEndpoint.java |  2 +-
 .../apache/camel/component/cmis/CMISEndpoint.java   |  7 ++++++-
 .../camel/component/cometd/CometdEndpoint.java      | 11 ++++++-----
 .../camel/component/context/ContextEndpoint.java    |  2 +-
 .../component/context/LocalContextComponent.java    |  1 -
 .../camel/component/couchdb/CouchDbEndpoint.java    | 11 ++++++-----
 .../crypto/DigitalSignatureConfiguration.java       |  3 ++-
 .../component/crypto/DigitalSignatureEndpoint.java  |  2 +-
 .../org/apache/camel/component/cxf/CxfEndpoint.java | 16 ++++++++--------
 .../camel/component/cxf/jaxrs/CxfRsEndpoint.java    | 12 ++++++------
 .../component/disruptor/DisruptorEndpoint.java      |  2 +-
 .../org/apache/camel/component/dns/DnsEndpoint.java |  5 +++--
 .../camel/component/docker/DockerConfiguration.java |  3 ++-
 .../camel/component/docker/DockerEndpoint.java      |  2 +-
 .../apache/camel/component/dozer/DozerEndpoint.java |  2 +-
 .../component/dropbox/DropboxConfiguration.java     |  3 ++-
 .../camel/component/dropbox/DropboxEndpoint.java    |  2 +-
 .../org/apache/camel/component/ejb/EjbEndpoint.java |  2 +-
 .../elasticsearch/ElasticsearchConfiguration.java   |  3 ++-
 .../elasticsearch/ElasticsearchEndpoint.java        |  2 +-
 .../component/eventadmin/EventAdminEndpoint.java    |  2 +-
 .../apache/camel/component/exec/ExecEndpoint.java   |  8 ++++----
 .../camel/component/facebook/FacebookEndpoint.java  |  6 ++++--
 .../facebook/config/FacebookNameStyle.java          |  2 +-
 .../camel/component/flatpack/FlatpackEndpoint.java  | 13 +++++++------
 .../org/apache/camel/component/fop/FopEndpoint.java |  5 +++--
 .../org/apache/camel/component/fop/FopProducer.java |  8 ++++----
 .../component/freemarker/FreemarkerEndpoint.java    |  2 +-
 .../camel/component/file/remote/FtpEndpoint.java    |  2 +-
 .../camel/component/file/remote/FtpsEndpoint.java   |  2 +-
 .../camel/component/file/remote/SftpEndpoint.java   |  2 +-
 .../org/apache/camel/component/jms/JmsEndpoint.java |  2 +-
 65 files changed, 139 insertions(+), 112 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/c763bb13/components/camel-ahc-ws/src/main/java/org/apache/camel/component/ahc/ws/WsEndpoint.java
----------------------------------------------------------------------
diff --git a/components/camel-ahc-ws/src/main/java/org/apache/camel/component/ahc/ws/WsEndpoint.java b/components/camel-ahc-ws/src/main/java/org/apache/camel/component/ahc/ws/WsEndpoint.java
index 32c0203..24f4805 100644
--- a/components/camel-ahc-ws/src/main/java/org/apache/camel/component/ahc/ws/WsEndpoint.java
+++ b/components/camel-ahc-ws/src/main/java/org/apache/camel/component/ahc/ws/WsEndpoint.java
@@ -38,7 +38,7 @@ import org.apache.camel.spi.UriParam;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-@UriEndpoint(scheme = "ahc-ws,ahc-wss", consumerClass = WsConsumer.class, label = "http,websocket")
+@UriEndpoint(scheme = "ahc-ws,ahc-wss", syntax = "ahc-ws:httpUri", consumerClass = WsConsumer.class, label = "http,websocket")
 public class WsEndpoint extends AhcEndpoint {
     private static final transient Logger LOG = LoggerFactory.getLogger(WsEndpoint.class);
 

http://git-wip-us.apache.org/repos/asf/camel/blob/c763bb13/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 f64082e..0745d68 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
@@ -33,7 +33,7 @@ import org.apache.camel.spi.UriPath;
 import org.apache.camel.util.ObjectHelper;
 import org.apache.camel.util.jsse.SSLContextParameters;
 
-@UriEndpoint(scheme = "ahc", producerOnly = true, label = "http")
+@UriEndpoint(scheme = "ahc", syntax = "ahc:httpUri", producerOnly = true, label = "http")
 public class AhcEndpoint extends DefaultEndpoint implements HeaderFilterStrategyAware {
 
     private AsyncHttpClient client;

http://git-wip-us.apache.org/repos/asf/camel/blob/c763bb13/components/camel-amqp/src/main/java/org/apache/camel/component/amqp/AMQPEndpoint.java
----------------------------------------------------------------------
diff --git a/components/camel-amqp/src/main/java/org/apache/camel/component/amqp/AMQPEndpoint.java b/components/camel-amqp/src/main/java/org/apache/camel/component/amqp/AMQPEndpoint.java
index 69d1d3f..30c1f8c 100644
--- a/components/camel-amqp/src/main/java/org/apache/camel/component/amqp/AMQPEndpoint.java
+++ b/components/camel-amqp/src/main/java/org/apache/camel/component/amqp/AMQPEndpoint.java
@@ -20,7 +20,7 @@ import org.apache.camel.component.jms.JmsConsumer;
 import org.apache.camel.component.jms.JmsEndpoint;
 import org.apache.camel.spi.UriEndpoint;
 
-@UriEndpoint(scheme = "amqp", consumerClass = JmsConsumer.class, label = "messaging")
+@UriEndpoint(scheme = "amqp", syntax = "amqp:destinationType:destinationName", consumerClass = JmsConsumer.class, label = "messaging")
 public class AMQPEndpoint extends JmsEndpoint {
 
 }

http://git-wip-us.apache.org/repos/asf/camel/blob/c763bb13/components/camel-apns/src/main/java/org/apache/camel/component/apns/ApnsEndpoint.java
----------------------------------------------------------------------
diff --git a/components/camel-apns/src/main/java/org/apache/camel/component/apns/ApnsEndpoint.java b/components/camel-apns/src/main/java/org/apache/camel/component/apns/ApnsEndpoint.java
index 607b1dc..8bc1c17 100644
--- a/components/camel-apns/src/main/java/org/apache/camel/component/apns/ApnsEndpoint.java
+++ b/components/camel-apns/src/main/java/org/apache/camel/component/apns/ApnsEndpoint.java
@@ -29,12 +29,12 @@ import org.apache.camel.spi.UriEndpoint;
 import org.apache.camel.spi.UriParam;
 import org.apache.camel.spi.UriPath;
 
-@UriEndpoint(scheme = "apns", consumerClass = ApnsConsumer.class, label = "eventbus,mobile")
+@UriEndpoint(scheme = "apns", syntax = "apns:name", consumerClass = ApnsConsumer.class, label = "eventbus,mobile")
 public class ApnsEndpoint extends ScheduledPollEndpoint {
 
     private final CopyOnWriteArraySet<DefaultConsumer> consumers = new CopyOnWriteArraySet<DefaultConsumer>();
 
-    @UriPath(description = "Name of the endpoint.")
+    @UriPath(description = "Name of the endpoint")
     private String name;
     @UriParam
     private String tokens;

http://git-wip-us.apache.org/repos/asf/camel/blob/c763bb13/components/camel-atmos/src/main/java/org/apache/camel/component/atmos/AtmosConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-atmos/src/main/java/org/apache/camel/component/atmos/AtmosConfiguration.java b/components/camel-atmos/src/main/java/org/apache/camel/component/atmos/AtmosConfiguration.java
index bbcc477..b540ac6 100644
--- a/components/camel-atmos/src/main/java/org/apache/camel/component/atmos/AtmosConfiguration.java
+++ b/components/camel-atmos/src/main/java/org/apache/camel/component/atmos/AtmosConfiguration.java
@@ -24,6 +24,7 @@ import com.emc.atmos.api.AtmosConfig;
 import com.emc.atmos.api.jersey.AtmosApiClient;
 import org.apache.camel.component.atmos.util.AtmosException;
 import org.apache.camel.component.atmos.util.AtmosOperation;
+import org.apache.camel.spi.Metadata;
 import org.apache.camel.spi.UriParam;
 import org.apache.camel.spi.UriParams;
 import org.apache.camel.spi.UriPath;
@@ -33,7 +34,7 @@ public class AtmosConfiguration {
 
     @UriPath
     private String name;
-    @UriPath
+    @UriPath @Metadata(required = "true")
     private AtmosOperation operation;
     //atmos shared secret
     @UriParam

http://git-wip-us.apache.org/repos/asf/camel/blob/c763bb13/components/camel-atmos/src/main/java/org/apache/camel/component/atmos/AtmosEndpoint.java
----------------------------------------------------------------------
diff --git a/components/camel-atmos/src/main/java/org/apache/camel/component/atmos/AtmosEndpoint.java b/components/camel-atmos/src/main/java/org/apache/camel/component/atmos/AtmosEndpoint.java
index 2f00199..11bfd2c 100644
--- a/components/camel-atmos/src/main/java/org/apache/camel/component/atmos/AtmosEndpoint.java
+++ b/components/camel-atmos/src/main/java/org/apache/camel/component/atmos/AtmosEndpoint.java
@@ -35,7 +35,7 @@ import org.slf4j.LoggerFactory;
 
 import static org.apache.camel.component.atmos.util.AtmosConstants.POLL_CONSUMER_DELAY;
 
-@UriEndpoint(scheme = "atmos", consumerClass = AtmosScheduledPollConsumer.class, label = "file,cloud")
+@UriEndpoint(scheme = "atmos", syntax = "atmos:name/operation", consumerClass = AtmosScheduledPollConsumer.class, label = "file,cloud")
 public class AtmosEndpoint extends DefaultEndpoint {
 
     private static final transient Logger LOG = LoggerFactory.getLogger(AtmosEndpoint.class);

http://git-wip-us.apache.org/repos/asf/camel/blob/c763bb13/components/camel-atmosphere-websocket/src/main/java/org/apache/camel/component/atmosphere/websocket/WebsocketEndpoint.java
----------------------------------------------------------------------
diff --git a/components/camel-atmosphere-websocket/src/main/java/org/apache/camel/component/atmosphere/websocket/WebsocketEndpoint.java b/components/camel-atmosphere-websocket/src/main/java/org/apache/camel/component/atmosphere/websocket/WebsocketEndpoint.java
index f3d3d13..16d5283 100644
--- a/components/camel-atmosphere-websocket/src/main/java/org/apache/camel/component/atmosphere/websocket/WebsocketEndpoint.java
+++ b/components/camel-atmosphere-websocket/src/main/java/org/apache/camel/component/atmosphere/websocket/WebsocketEndpoint.java
@@ -33,12 +33,13 @@ import org.apache.commons.httpclient.params.HttpClientParams;
 /**
  *
  */
-@UriEndpoint(scheme = "atmosphere-websocket", consumerClass = WebsocketConsumer.class, label = "http,websocket")
+@UriEndpoint(scheme = "atmosphere-websocket", syntax = "atmosphere-websocket:servicePath", consumerClass = WebsocketConsumer.class, label = "http,websocket")
 public class WebsocketEndpoint extends ServletEndpoint {
 
+    private WebSocketStore store;
+
     @UriPath
     private String servicePath;
-    private WebSocketStore store;
     @UriParam(defaultValue = "false")
     private boolean sendToAll;
     @UriParam(defaultValue = "false")

http://git-wip-us.apache.org/repos/asf/camel/blob/c763bb13/components/camel-atom/src/main/java/org/apache/camel/component/atom/AtomEndpoint.java
----------------------------------------------------------------------
diff --git a/components/camel-atom/src/main/java/org/apache/camel/component/atom/AtomEndpoint.java b/components/camel-atom/src/main/java/org/apache/camel/component/atom/AtomEndpoint.java
index c6dceca..8db4d69 100644
--- a/components/camel-atom/src/main/java/org/apache/camel/component/atom/AtomEndpoint.java
+++ b/components/camel-atom/src/main/java/org/apache/camel/component/atom/AtomEndpoint.java
@@ -31,7 +31,7 @@ import org.apache.camel.spi.UriEndpoint;
  *
  * @version 
  */
-@UriEndpoint(scheme = "atom", consumerOnly = true, consumerClass = FeedPollingConsumer.class, label = "feeds")
+@UriEndpoint(scheme = "atom", syntax = "atom:feedUri", consumerOnly = true, consumerClass = FeedPollingConsumer.class, label = "feeds")
 public class AtomEndpoint extends FeedEndpoint {
 
     public AtomEndpoint() {

http://git-wip-us.apache.org/repos/asf/camel/blob/c763bb13/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 94ed038..d7c5b11 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
@@ -64,12 +64,12 @@ public class AvroComponent extends UriEndpointComponent {
             config = new AvroConfiguration();
         }
 
-        URI enpointUri = new URI(URISupport.normalizeUri(remaining));
-        applyToConfiguration(config, enpointUri, parameters);
+        URI endpointUri = new URI(URISupport.normalizeUri(remaining));
+        applyToConfiguration(config, endpointUri, parameters);
 
-        if (AvroConstants.AVRO_NETTY_TRANSPORT.equals(enpointUri.getScheme())) {
+        if (AvroConstants.AVRO_NETTY_TRANSPORT.equals(endpointUri.getScheme())) {
             return new AvroNettyEndpoint(remaining, this, config);
-        } else if (AvroConstants.AVRO_HTTP_TRANSPORT.equals(enpointUri.getScheme())) {
+        } else if (AvroConstants.AVRO_HTTP_TRANSPORT.equals(endpointUri.getScheme())) {
             return new AvroHttpEndpoint(remaining, this, config);
         } else {
             throw new IllegalArgumentException("Unknown avro scheme. Should use either netty or http.");

http://git-wip-us.apache.org/repos/asf/camel/blob/c763bb13/components/camel-avro/src/main/java/org/apache/camel/component/avro/AvroConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-avro/src/main/java/org/apache/camel/component/avro/AvroConfiguration.java b/components/camel-avro/src/main/java/org/apache/camel/component/avro/AvroConfiguration.java
index d9d4f2e..3398c9b 100644
--- a/components/camel-avro/src/main/java/org/apache/camel/component/avro/AvroConfiguration.java
+++ b/components/camel-avro/src/main/java/org/apache/camel/component/avro/AvroConfiguration.java
@@ -21,6 +21,7 @@ import java.util.Map;
 
 import org.apache.avro.Protocol;
 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;
@@ -31,12 +32,14 @@ import static org.apache.camel.component.avro.AvroConstants.AVRO_MESSAGE_NAME_SE
 @UriParams
 public class AvroConfiguration implements Cloneable {
 
-    @UriPath
+    @UriPath @Metadata(required = "true")
     private AvroTransport transport;
-    @UriPath
+    @UriPath @Metadata(required = "true")
     private String host;
-    @UriPath
+    @UriPath @Metadata(required = "true")
     private int port;
+    @UriPath
+    private String messageName;
     @UriParam
     private String protocolLocation;
     @UriParam
@@ -44,8 +47,6 @@ public class AvroConfiguration implements Cloneable {
     @UriParam
     private String protocolClassName;
     @UriParam
-    private String messageName;
-    @UriParam
     private String uriAuthority;
     @UriParam(defaultValue = "false")
     private boolean reflectionProtocol;

http://git-wip-us.apache.org/repos/asf/camel/blob/c763bb13/components/camel-avro/src/main/java/org/apache/camel/component/avro/AvroEndpoint.java
----------------------------------------------------------------------
diff --git a/components/camel-avro/src/main/java/org/apache/camel/component/avro/AvroEndpoint.java b/components/camel-avro/src/main/java/org/apache/camel/component/avro/AvroEndpoint.java
index 5db407c..a6c5f35 100644
--- a/components/camel-avro/src/main/java/org/apache/camel/component/avro/AvroEndpoint.java
+++ b/components/camel-avro/src/main/java/org/apache/camel/component/avro/AvroEndpoint.java
@@ -28,7 +28,7 @@ import org.apache.camel.impl.DefaultEndpoint;
 import org.apache.camel.spi.UriEndpoint;
 import org.apache.camel.spi.UriParam;
 
-@UriEndpoint(scheme = "avro", consumerClass = AvroConsumer.class, label = "messaging,transformation")
+@UriEndpoint(scheme = "avro", syntax = "avro:transport:host:port/messageName", consumerClass = AvroConsumer.class, label = "messaging,transformation")
 public abstract class AvroEndpoint extends DefaultEndpoint {
 
     @UriParam

http://git-wip-us.apache.org/repos/asf/camel/blob/c763bb13/components/camel-aws/src/main/java/org/apache/camel/component/aws/cw/CwConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-aws/src/main/java/org/apache/camel/component/aws/cw/CwConfiguration.java b/components/camel-aws/src/main/java/org/apache/camel/component/aws/cw/CwConfiguration.java
index f9da168..fe3d817 100644
--- a/components/camel-aws/src/main/java/org/apache/camel/component/aws/cw/CwConfiguration.java
+++ b/components/camel-aws/src/main/java/org/apache/camel/component/aws/cw/CwConfiguration.java
@@ -19,6 +19,7 @@ package org.apache.camel.component.aws.cw;
 import java.util.Date;
 
 import com.amazonaws.services.cloudwatch.AmazonCloudWatch;
+import org.apache.camel.spi.Metadata;
 import org.apache.camel.spi.UriParam;
 import org.apache.camel.spi.UriParams;
 import org.apache.camel.spi.UriPath;
@@ -26,7 +27,7 @@ import org.apache.camel.spi.UriPath;
 @UriParams
 public class CwConfiguration implements Cloneable {
 
-    @UriPath
+    @UriPath @Metadata(required = "true")
     private String namespace;
     @UriParam
     private AmazonCloudWatch amazonCwClient;

http://git-wip-us.apache.org/repos/asf/camel/blob/c763bb13/components/camel-aws/src/main/java/org/apache/camel/component/aws/cw/CwEndpoint.java
----------------------------------------------------------------------
diff --git a/components/camel-aws/src/main/java/org/apache/camel/component/aws/cw/CwEndpoint.java b/components/camel-aws/src/main/java/org/apache/camel/component/aws/cw/CwEndpoint.java
index 741f335..a20aa0b 100644
--- a/components/camel-aws/src/main/java/org/apache/camel/component/aws/cw/CwEndpoint.java
+++ b/components/camel-aws/src/main/java/org/apache/camel/component/aws/cw/CwEndpoint.java
@@ -33,7 +33,7 @@ import org.apache.camel.util.ObjectHelper;
 /**
  * Defines the <a href="http://aws.amazon.com/cloudwatch/">AWS CloudWatch Endpoint</a>
  */
-@UriEndpoint(scheme = "aws-cw", producerOnly = true, label = "cloud,monitoring")
+@UriEndpoint(scheme = "aws-cw", syntax = "aws-cw:namespace", producerOnly = true, label = "cloud,monitoring")
 public class CwEndpoint extends DefaultEndpoint {
 
     @UriParam

http://git-wip-us.apache.org/repos/asf/camel/blob/c763bb13/components/camel-aws/src/main/java/org/apache/camel/component/aws/ddb/DdbConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-aws/src/main/java/org/apache/camel/component/aws/ddb/DdbConfiguration.java b/components/camel-aws/src/main/java/org/apache/camel/component/aws/ddb/DdbConfiguration.java
index 990e1a9..691a104 100644
--- a/components/camel-aws/src/main/java/org/apache/camel/component/aws/ddb/DdbConfiguration.java
+++ b/components/camel-aws/src/main/java/org/apache/camel/component/aws/ddb/DdbConfiguration.java
@@ -17,6 +17,7 @@
 package org.apache.camel.component.aws.ddb;
 
 import com.amazonaws.services.dynamodb.AmazonDynamoDB;
+import org.apache.camel.spi.Metadata;
 import org.apache.camel.spi.UriParam;
 import org.apache.camel.spi.UriParams;
 import org.apache.camel.spi.UriPath;
@@ -24,7 +25,7 @@ import org.apache.camel.spi.UriPath;
 @UriParams
 public class DdbConfiguration {
 
-    @UriPath
+    @UriPath @Metadata(required = "true")
     private String tableName;
     @UriParam
     private String accessKey;

http://git-wip-us.apache.org/repos/asf/camel/blob/c763bb13/components/camel-aws/src/main/java/org/apache/camel/component/aws/ddb/DdbEndpoint.java
----------------------------------------------------------------------
diff --git a/components/camel-aws/src/main/java/org/apache/camel/component/aws/ddb/DdbEndpoint.java b/components/camel-aws/src/main/java/org/apache/camel/component/aws/ddb/DdbEndpoint.java
index 05cafb5..3898133 100644
--- a/components/camel-aws/src/main/java/org/apache/camel/component/aws/ddb/DdbEndpoint.java
+++ b/components/camel-aws/src/main/java/org/apache/camel/component/aws/ddb/DdbEndpoint.java
@@ -44,7 +44,7 @@ import org.slf4j.LoggerFactory;
 /**
  * Defines the <a href="http://aws.amazon.com/dynamodb/">AWS DynamoDB endpoint</a>
  */
-@UriEndpoint(scheme = "aws-ddb", producerOnly = true, label = "cloud,database,nosql")
+@UriEndpoint(scheme = "aws-ddb", syntax = "aws-ddb:tableName", producerOnly = true, label = "cloud,database,nosql")
 public class DdbEndpoint extends ScheduledPollEndpoint {
 
     private static final Logger LOG = LoggerFactory.getLogger(DdbEndpoint.class);

http://git-wip-us.apache.org/repos/asf/camel/blob/c763bb13/components/camel-aws/src/main/java/org/apache/camel/component/aws/s3/S3Configuration.java
----------------------------------------------------------------------
diff --git a/components/camel-aws/src/main/java/org/apache/camel/component/aws/s3/S3Configuration.java b/components/camel-aws/src/main/java/org/apache/camel/component/aws/s3/S3Configuration.java
index afbd17a..1b5243e 100644
--- a/components/camel-aws/src/main/java/org/apache/camel/component/aws/s3/S3Configuration.java
+++ b/components/camel-aws/src/main/java/org/apache/camel/component/aws/s3/S3Configuration.java
@@ -17,6 +17,7 @@
 package org.apache.camel.component.aws.s3;
 
 import com.amazonaws.services.s3.AmazonS3;
+import org.apache.camel.spi.Metadata;
 import org.apache.camel.spi.UriParam;
 import org.apache.camel.spi.UriParams;
 import org.apache.camel.spi.UriPath;
@@ -24,7 +25,7 @@ import org.apache.camel.spi.UriPath;
 @UriParams
 public class S3Configuration implements Cloneable {
 
-    @UriPath
+    @UriPath @Metadata(required = "true")
     private String bucketName;
     @UriParam
     private AmazonS3 amazonS3Client;

http://git-wip-us.apache.org/repos/asf/camel/blob/c763bb13/components/camel-aws/src/main/java/org/apache/camel/component/aws/s3/S3Endpoint.java
----------------------------------------------------------------------
diff --git a/components/camel-aws/src/main/java/org/apache/camel/component/aws/s3/S3Endpoint.java b/components/camel-aws/src/main/java/org/apache/camel/component/aws/s3/S3Endpoint.java
index 04453f4..fe93ec6 100644
--- a/components/camel-aws/src/main/java/org/apache/camel/component/aws/s3/S3Endpoint.java
+++ b/components/camel-aws/src/main/java/org/apache/camel/component/aws/s3/S3Endpoint.java
@@ -44,7 +44,7 @@ import org.slf4j.LoggerFactory;
 /**
  * Defines the <a href="http://camel.apache.org/aws.html">AWS S3 Endpoint</a>.  
  */
-@UriEndpoint(scheme = "aws-s3", consumerClass = S3Consumer.class, label = "cloud,file")
+@UriEndpoint(scheme = "aws-s3", syntax = "aws-s3:bucketName", consumerClass = S3Consumer.class, label = "cloud,file")
 public class S3Endpoint extends ScheduledPollEndpoint {
 
     private static final Logger LOG = LoggerFactory.getLogger(S3Endpoint.class);

http://git-wip-us.apache.org/repos/asf/camel/blob/c763bb13/components/camel-aws/src/main/java/org/apache/camel/component/aws/sdb/SdbConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-aws/src/main/java/org/apache/camel/component/aws/sdb/SdbConfiguration.java b/components/camel-aws/src/main/java/org/apache/camel/component/aws/sdb/SdbConfiguration.java
index 62396b7..38b9ff5 100644
--- a/components/camel-aws/src/main/java/org/apache/camel/component/aws/sdb/SdbConfiguration.java
+++ b/components/camel-aws/src/main/java/org/apache/camel/component/aws/sdb/SdbConfiguration.java
@@ -17,6 +17,7 @@
 package org.apache.camel.component.aws.sdb;
 
 import com.amazonaws.services.simpledb.AmazonSimpleDB;
+import org.apache.camel.spi.Metadata;
 import org.apache.camel.spi.UriParam;
 import org.apache.camel.spi.UriParams;
 import org.apache.camel.spi.UriPath;
@@ -24,7 +25,7 @@ import org.apache.camel.spi.UriPath;
 @UriParams
 public class SdbConfiguration {
 
-    @UriPath
+    @UriPath @Metadata(required = "true")
     private String domainName;
     @UriParam
     private AmazonSimpleDB amazonSDBClient;

http://git-wip-us.apache.org/repos/asf/camel/blob/c763bb13/components/camel-aws/src/main/java/org/apache/camel/component/aws/sdb/SdbEndpoint.java
----------------------------------------------------------------------
diff --git a/components/camel-aws/src/main/java/org/apache/camel/component/aws/sdb/SdbEndpoint.java b/components/camel-aws/src/main/java/org/apache/camel/component/aws/sdb/SdbEndpoint.java
index f2d7c57..b3790e8 100644
--- a/components/camel-aws/src/main/java/org/apache/camel/component/aws/sdb/SdbEndpoint.java
+++ b/components/camel-aws/src/main/java/org/apache/camel/component/aws/sdb/SdbEndpoint.java
@@ -39,7 +39,7 @@ import org.slf4j.LoggerFactory;
 /**
  * Defines the <a href="http://camel.apache.org/aws.html">AWS SDB Endpoint</a>.  
  */
-@UriEndpoint(scheme = "aws-sdb", producerOnly = true, label = "cloud,database,nosql")
+@UriEndpoint(scheme = "aws-sdb", syntax = "aws-sdb:domainName", producerOnly = true, label = "cloud,database,nosql")
 public class SdbEndpoint extends ScheduledPollEndpoint {
     
     private static final Logger LOG = LoggerFactory.getLogger(S3Endpoint.class);

http://git-wip-us.apache.org/repos/asf/camel/blob/c763bb13/components/camel-aws/src/main/java/org/apache/camel/component/aws/ses/SesConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-aws/src/main/java/org/apache/camel/component/aws/ses/SesConfiguration.java b/components/camel-aws/src/main/java/org/apache/camel/component/aws/ses/SesConfiguration.java
index b06c528..a328c38 100644
--- a/components/camel-aws/src/main/java/org/apache/camel/component/aws/ses/SesConfiguration.java
+++ b/components/camel-aws/src/main/java/org/apache/camel/component/aws/ses/SesConfiguration.java
@@ -20,6 +20,7 @@ import java.util.Arrays;
 import java.util.List;
 
 import com.amazonaws.services.simpleemail.AmazonSimpleEmailService;
+import org.apache.camel.spi.Metadata;
 import org.apache.camel.spi.UriParam;
 import org.apache.camel.spi.UriParams;
 import org.apache.camel.spi.UriPath;
@@ -27,7 +28,7 @@ import org.apache.camel.spi.UriPath;
 @UriParams
 public class SesConfiguration {
 
-    @UriPath
+    @UriPath @Metadata(required = "true")
     private String from;
     @UriParam
     private AmazonSimpleEmailService amazonSESClient;

http://git-wip-us.apache.org/repos/asf/camel/blob/c763bb13/components/camel-aws/src/main/java/org/apache/camel/component/aws/ses/SesEndpoint.java
----------------------------------------------------------------------
diff --git a/components/camel-aws/src/main/java/org/apache/camel/component/aws/ses/SesEndpoint.java b/components/camel-aws/src/main/java/org/apache/camel/component/aws/ses/SesEndpoint.java
index cc07fce..44fdba4 100644
--- a/components/camel-aws/src/main/java/org/apache/camel/component/aws/ses/SesEndpoint.java
+++ b/components/camel-aws/src/main/java/org/apache/camel/component/aws/ses/SesEndpoint.java
@@ -34,7 +34,7 @@ import org.apache.camel.util.ObjectHelper;
  * Defines the <a href="http://camel.apache.org/aws.html">AWS SES Endpoint</a>.  
  *
  */
-@UriEndpoint(scheme = "aws-ses", producerOnly = true, label = "cloud,mail")
+@UriEndpoint(scheme = "aws-ses", syntax = "aws-ses:from", producerOnly = true, label = "cloud,mail")
 public class SesEndpoint extends DefaultEndpoint {
 
     private AmazonSimpleEmailService sesClient;

http://git-wip-us.apache.org/repos/asf/camel/blob/c763bb13/components/camel-aws/src/main/java/org/apache/camel/component/aws/sns/SnsConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-aws/src/main/java/org/apache/camel/component/aws/sns/SnsConfiguration.java b/components/camel-aws/src/main/java/org/apache/camel/component/aws/sns/SnsConfiguration.java
index ba5544e..c6d8a118 100644
--- a/components/camel-aws/src/main/java/org/apache/camel/component/aws/sns/SnsConfiguration.java
+++ b/components/camel-aws/src/main/java/org/apache/camel/component/aws/sns/SnsConfiguration.java
@@ -17,6 +17,7 @@
 package org.apache.camel.component.aws.sns;
 
 import com.amazonaws.services.sns.AmazonSNS;
+import org.apache.camel.spi.Metadata;
 import org.apache.camel.spi.UriParam;
 import org.apache.camel.spi.UriParams;
 import org.apache.camel.spi.UriPath;
@@ -25,7 +26,7 @@ import org.apache.camel.spi.UriPath;
 public class SnsConfiguration implements Cloneable {
 
     // Common properties
-    @UriPath
+    @UriPath @Metadata(required = "true")
     private String topicName;
     @UriParam
     private AmazonSNS amazonSNSClient;

http://git-wip-us.apache.org/repos/asf/camel/blob/c763bb13/components/camel-aws/src/main/java/org/apache/camel/component/aws/sns/SnsEndpoint.java
----------------------------------------------------------------------
diff --git a/components/camel-aws/src/main/java/org/apache/camel/component/aws/sns/SnsEndpoint.java b/components/camel-aws/src/main/java/org/apache/camel/component/aws/sns/SnsEndpoint.java
index ada3a19..a7ec551 100644
--- a/components/camel-aws/src/main/java/org/apache/camel/component/aws/sns/SnsEndpoint.java
+++ b/components/camel-aws/src/main/java/org/apache/camel/component/aws/sns/SnsEndpoint.java
@@ -39,7 +39,7 @@ import org.slf4j.LoggerFactory;
 /**
  * Defines the <a href="http://camel.apache.org/aws.html">AWS SNS Endpoint</a>.  
  */
-@UriEndpoint(scheme = "aws-sns", producerOnly = true, label = "cloud,mobile,messaging")
+@UriEndpoint(scheme = "aws-sns", syntax = "aws-sns:topicName", producerOnly = true, label = "cloud,mobile,messaging")
 public class SnsEndpoint extends DefaultEndpoint {
 
     private static final Logger LOG = LoggerFactory.getLogger(SnsEndpoint.class);

http://git-wip-us.apache.org/repos/asf/camel/blob/c763bb13/components/camel-aws/src/main/java/org/apache/camel/component/aws/sqs/SqsConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-aws/src/main/java/org/apache/camel/component/aws/sqs/SqsConfiguration.java b/components/camel-aws/src/main/java/org/apache/camel/component/aws/sqs/SqsConfiguration.java
index 644857d..aabae7f 100644
--- a/components/camel-aws/src/main/java/org/apache/camel/component/aws/sqs/SqsConfiguration.java
+++ b/components/camel-aws/src/main/java/org/apache/camel/component/aws/sqs/SqsConfiguration.java
@@ -19,6 +19,7 @@ package org.apache.camel.component.aws.sqs;
 import java.util.Collection;
 
 import com.amazonaws.services.sqs.AmazonSQS;
+import org.apache.camel.spi.Metadata;
 import org.apache.camel.spi.UriParam;
 import org.apache.camel.spi.UriParams;
 import org.apache.camel.spi.UriPath;
@@ -27,7 +28,7 @@ import org.apache.camel.spi.UriPath;
 public class SqsConfiguration {
 
     // common properties
-    @UriPath
+    @UriPath @Metadata(required = "true")
     private String queueName;
     @UriParam
     private AmazonSQS amazonSQSClient;

http://git-wip-us.apache.org/repos/asf/camel/blob/c763bb13/components/camel-aws/src/main/java/org/apache/camel/component/aws/sqs/SqsEndpoint.java
----------------------------------------------------------------------
diff --git a/components/camel-aws/src/main/java/org/apache/camel/component/aws/sqs/SqsEndpoint.java b/components/camel-aws/src/main/java/org/apache/camel/component/aws/sqs/SqsEndpoint.java
index 4845dd0..b6732d1 100644
--- a/components/camel-aws/src/main/java/org/apache/camel/component/aws/sqs/SqsEndpoint.java
+++ b/components/camel-aws/src/main/java/org/apache/camel/component/aws/sqs/SqsEndpoint.java
@@ -53,7 +53,7 @@ import org.slf4j.LoggerFactory;
  * Defines the <a href="http://camel.apache.org/aws.html">AWS SQS Endpoint</a>.  
  *
  */
-@UriEndpoint(scheme = "aws-sqs", consumerClass = SqsConsumer.class, label = "cloud,messaging")
+@UriEndpoint(scheme = "aws-sqs", syntax = "aws-sqs:queueName", consumerClass = SqsConsumer.class, label = "cloud,messaging")
 public class SqsEndpoint extends ScheduledPollEndpoint implements HeaderFilterStrategyAware {
     
     private static final Logger LOG = LoggerFactory.getLogger(SqsEndpoint.class);
@@ -68,7 +68,6 @@ public class SqsEndpoint extends ScheduledPollEndpoint implements HeaderFilterSt
     @UriParam
     private HeaderFilterStrategy headerFilterStrategy;
 
-
     public SqsEndpoint(String uri, SqsComponent component, SqsConfiguration configuration) {
         super(uri, component);
         this.configuration = configuration;

http://git-wip-us.apache.org/repos/asf/camel/blob/c763bb13/components/camel-aws/src/main/java/org/apache/camel/component/aws/swf/SWFConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-aws/src/main/java/org/apache/camel/component/aws/swf/SWFConfiguration.java b/components/camel-aws/src/main/java/org/apache/camel/component/aws/swf/SWFConfiguration.java
index bf19774..151dc13 100644
--- a/components/camel-aws/src/main/java/org/apache/camel/component/aws/swf/SWFConfiguration.java
+++ b/components/camel-aws/src/main/java/org/apache/camel/component/aws/swf/SWFConfiguration.java
@@ -24,6 +24,7 @@ import com.amazonaws.services.simpleworkflow.flow.DataConverter;
 import com.amazonaws.services.simpleworkflow.flow.WorkflowTypeRegistrationOptions;
 import com.amazonaws.services.simpleworkflow.flow.worker.ActivityTypeExecutionOptions;
 import com.amazonaws.services.simpleworkflow.flow.worker.ActivityTypeRegistrationOptions;
+import org.apache.camel.spi.Metadata;
 import org.apache.camel.spi.UriParam;
 import org.apache.camel.spi.UriParams;
 import org.apache.camel.spi.UriPath;
@@ -35,7 +36,7 @@ public class SWFConfiguration {
     private Map<String, Object> sWClientParameters;
     private Map<String, Object> startWorkflowOptionsParameters;
 
-    @UriPath
+    @UriPath(enums = "activity,workflow") @Metadata(required = "true")
     private String type;
     @UriParam
     private AmazonSimpleWorkflowClient amazonSWClient;

http://git-wip-us.apache.org/repos/asf/camel/blob/c763bb13/components/camel-aws/src/main/java/org/apache/camel/component/aws/swf/SWFEndpoint.java
----------------------------------------------------------------------
diff --git a/components/camel-aws/src/main/java/org/apache/camel/component/aws/swf/SWFEndpoint.java b/components/camel-aws/src/main/java/org/apache/camel/component/aws/swf/SWFEndpoint.java
index e7f3da5..a3602d6 100644
--- a/components/camel-aws/src/main/java/org/apache/camel/component/aws/swf/SWFEndpoint.java
+++ b/components/camel-aws/src/main/java/org/apache/camel/component/aws/swf/SWFEndpoint.java
@@ -35,7 +35,7 @@ import org.apache.camel.util.ExchangeHelper;
 /**
  * Defines the <a href="http://aws.amazon.com/swf/">Amazon Simple Workflow Endpoint</a>
  */
-@UriEndpoint(scheme = "aws-swf", consumerClass = SWFWorkflowConsumer.class, label = "cloud,workflow")
+@UriEndpoint(scheme = "aws-swf", syntax = "aws-swf:type", consumerClass = SWFWorkflowConsumer.class, label = "cloud,workflow")
 public class SWFEndpoint extends DefaultEndpoint {
 
     private AmazonSimpleWorkflowClient amazonSWClient;

http://git-wip-us.apache.org/repos/asf/camel/blob/c763bb13/components/camel-bean-validator/src/main/java/org/apache/camel/component/bean/validator/BeanValidatorEndpoint.java
----------------------------------------------------------------------
diff --git a/components/camel-bean-validator/src/main/java/org/apache/camel/component/bean/validator/BeanValidatorEndpoint.java b/components/camel-bean-validator/src/main/java/org/apache/camel/component/bean/validator/BeanValidatorEndpoint.java
index 9835fb9..afd73da 100644
--- a/components/camel-bean-validator/src/main/java/org/apache/camel/component/bean/validator/BeanValidatorEndpoint.java
+++ b/components/camel-bean-validator/src/main/java/org/apache/camel/component/bean/validator/BeanValidatorEndpoint.java
@@ -27,6 +27,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;
@@ -34,10 +35,10 @@ import org.apache.camel.util.PlatformHelper;
 
 import static org.apache.camel.component.bean.validator.ValidatorFactories.buildValidatorFactory;
 
-@UriEndpoint(scheme = "bean-validator", producerOnly = true, label = "validation")
+@UriEndpoint(scheme = "bean-validator", syntax = "bean-validator:label", producerOnly = true, label = "validation")
 public class BeanValidatorEndpoint extends DefaultEndpoint {
 
-    @UriPath(description = "Where label is an arbitrary text value describing the endpoint")
+    @UriPath(description = "Where label is an arbitrary text value describing the endpoint") @Metadata(required = "true")
     private String label;
     @UriParam
     private String group;

http://git-wip-us.apache.org/repos/asf/camel/blob/c763bb13/components/camel-beanstalk/src/main/java/org/apache/camel/component/beanstalk/BeanstalkEndpoint.java
----------------------------------------------------------------------
diff --git a/components/camel-beanstalk/src/main/java/org/apache/camel/component/beanstalk/BeanstalkEndpoint.java b/components/camel-beanstalk/src/main/java/org/apache/camel/component/beanstalk/BeanstalkEndpoint.java
index 93d81c9..2c3ce7d 100644
--- a/components/camel-beanstalk/src/main/java/org/apache/camel/component/beanstalk/BeanstalkEndpoint.java
+++ b/components/camel-beanstalk/src/main/java/org/apache/camel/component/beanstalk/BeanstalkEndpoint.java
@@ -33,7 +33,7 @@ import org.apache.camel.spi.UriEndpoint;
 import org.apache.camel.spi.UriParam;
 import org.apache.camel.spi.UriPath;
 
-@UriEndpoint(scheme = "beanstalk", consumerClass = BeanstalkConsumer.class, label = "messaging")
+@UriEndpoint(scheme = "beanstalk", syntax = "beanstalk:connectionSettings", consumerClass = BeanstalkConsumer.class, label = "messaging")
 public class BeanstalkEndpoint extends ScheduledPollEndpoint {
     final ConnectionSettings conn;
 

http://git-wip-us.apache.org/repos/asf/camel/blob/c763bb13/components/camel-box/src/main/java/org/apache/camel/component/box/BoxConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-box/src/main/java/org/apache/camel/component/box/BoxConfiguration.java b/components/camel-box/src/main/java/org/apache/camel/component/box/BoxConfiguration.java
index f626713..db2df83 100644
--- a/components/camel-box/src/main/java/org/apache/camel/component/box/BoxConfiguration.java
+++ b/components/camel-box/src/main/java/org/apache/camel/component/box/BoxConfiguration.java
@@ -23,6 +23,7 @@ import com.box.boxjavalibv2.IBoxConfig;
 import com.box.boxjavalibv2.authorization.IAuthSecureStorage;
 import com.box.boxjavalibv2.authorization.OAuthRefreshListener;
 import org.apache.camel.component.box.internal.BoxApiName;
+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,10 +35,10 @@ import org.apache.camel.util.jsse.SSLContextParameters;
 @UriParams
 public class BoxConfiguration {
 
-    @UriPath
+    @UriPath @Metadata(required = "true")
     private BoxApiName apiName;
 
-    @UriPath
+    @UriPath @Metadata(required = "true")
     private String methodName;
 
     @UriParam

http://git-wip-us.apache.org/repos/asf/camel/blob/c763bb13/components/camel-box/src/main/java/org/apache/camel/component/box/BoxEndpoint.java
----------------------------------------------------------------------
diff --git a/components/camel-box/src/main/java/org/apache/camel/component/box/BoxEndpoint.java b/components/camel-box/src/main/java/org/apache/camel/component/box/BoxEndpoint.java
index c468944..f457fe7 100644
--- a/components/camel-box/src/main/java/org/apache/camel/component/box/BoxEndpoint.java
+++ b/components/camel-box/src/main/java/org/apache/camel/component/box/BoxEndpoint.java
@@ -39,7 +39,7 @@ import org.apache.camel.util.component.ApiMethodPropertiesHelper;
 /**
  * Represents a Box endpoint.
  */
-@UriEndpoint(scheme = "box", consumerClass = BoxConsumer.class, consumerPrefix = "consumer", label = "api,file,cloud")
+@UriEndpoint(scheme = "box", syntax = "box:apiName/methodName", consumerClass = BoxConsumer.class, consumerPrefix = "consumer", label = "api,file,cloud")
 public class BoxEndpoint extends AbstractApiEndpoint<BoxApiName, BoxConfiguration> {
 
     private static final String SHARED_LINK_PROPERTY = "sharedLink";

http://git-wip-us.apache.org/repos/asf/camel/blob/c763bb13/components/camel-cache/src/main/java/org/apache/camel/component/cache/CacheEndpoint.java
----------------------------------------------------------------------
diff --git a/components/camel-cache/src/main/java/org/apache/camel/component/cache/CacheEndpoint.java b/components/camel-cache/src/main/java/org/apache/camel/component/cache/CacheEndpoint.java
index 59bf88b..1b5972c 100755
--- a/components/camel-cache/src/main/java/org/apache/camel/component/cache/CacheEndpoint.java
+++ b/components/camel-cache/src/main/java/org/apache/camel/component/cache/CacheEndpoint.java
@@ -36,7 +36,7 @@ import org.apache.camel.util.ObjectHelper;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-@UriEndpoint(scheme = "cache", consumerClass = CacheConsumer.class, label = "cache")
+@UriEndpoint(scheme = "cache", syntax = "cache:cacheName", consumerClass = CacheConsumer.class, label = "cache")
 public class CacheEndpoint extends DefaultEndpoint {
     private static final Logger LOG = LoggerFactory.getLogger(CacheEndpoint.class);
     @UriParam

http://git-wip-us.apache.org/repos/asf/camel/blob/c763bb13/components/camel-cassandraql/src/main/java/org/apache/camel/component/cassandra/CassandraEndpoint.java
----------------------------------------------------------------------
diff --git a/components/camel-cassandraql/src/main/java/org/apache/camel/component/cassandra/CassandraEndpoint.java b/components/camel-cassandraql/src/main/java/org/apache/camel/component/cassandra/CassandraEndpoint.java
index f5709a5..c235f24 100644
--- a/components/camel-cassandraql/src/main/java/org/apache/camel/component/cassandra/CassandraEndpoint.java
+++ b/components/camel-cassandraql/src/main/java/org/apache/camel/component/cassandra/CassandraEndpoint.java
@@ -36,12 +36,12 @@ import org.apache.camel.utils.cassandra.CassandraSessionHolder;
 /**
  * Cassandra 2 CQL3 endpoint
  */
-@UriEndpoint(scheme = "cql", consumerClass = CassandraConsumer.class, label = "database,nosql")
+@UriEndpoint(scheme = "cql", syntax = "cql:beanRef:hosts:port/keyspace", consumerClass = CassandraConsumer.class, label = "database,nosql")
 public class CassandraEndpoint extends DefaultEndpoint {
 
     private volatile CassandraSessionHolder sessionHolder;
 
-    @UriPath
+    @UriPath(description = "beanRef is defined using bean:id")
     private String beanRef;
     @UriPath
     private String hosts;

http://git-wip-us.apache.org/repos/asf/camel/blob/c763bb13/components/camel-chunk/src/main/java/org/apache/camel/component/chunk/ChunkEndpoint.java
----------------------------------------------------------------------
diff --git a/components/camel-chunk/src/main/java/org/apache/camel/component/chunk/ChunkEndpoint.java b/components/camel-chunk/src/main/java/org/apache/camel/component/chunk/ChunkEndpoint.java
index cc583db..1623e21 100644
--- a/components/camel-chunk/src/main/java/org/apache/camel/component/chunk/ChunkEndpoint.java
+++ b/components/camel-chunk/src/main/java/org/apache/camel/component/chunk/ChunkEndpoint.java
@@ -41,7 +41,7 @@ import static org.apache.camel.component.chunk.ChunkConstants.CHUNK_LAYER_SEPARA
 import static org.apache.camel.component.chunk.ChunkConstants.CHUNK_RESOURCE_URI;
 import static org.apache.camel.component.chunk.ChunkConstants.CHUNK_TEMPLATE;
 
-@UriEndpoint(scheme = "chunk", producerOnly = true, label = "transformation")
+@UriEndpoint(scheme = "chunk", syntax = "chunk:resourceUri", producerOnly = true, label = "transformation")
 public class ChunkEndpoint extends ResourceEndpoint {
 
     private Theme theme;

http://git-wip-us.apache.org/repos/asf/camel/blob/c763bb13/components/camel-cmis/src/main/java/org/apache/camel/component/cmis/CMISEndpoint.java
----------------------------------------------------------------------
diff --git a/components/camel-cmis/src/main/java/org/apache/camel/component/cmis/CMISEndpoint.java b/components/camel-cmis/src/main/java/org/apache/camel/component/cmis/CMISEndpoint.java
index cc0cb4c..e601bd2 100644
--- a/components/camel-cmis/src/main/java/org/apache/camel/component/cmis/CMISEndpoint.java
+++ b/components/camel-cmis/src/main/java/org/apache/camel/component/cmis/CMISEndpoint.java
@@ -26,11 +26,12 @@ import org.apache.camel.spi.UriParam;
 /**
  * Represents a CMIS endpoint.
  */
-@UriEndpoint(scheme = "cmis", consumerClass = CMISConsumer.class, label = "cms,database")
+@UriEndpoint(scheme = "cmis", syntax = "cmis:url", consumerClass = CMISConsumer.class, label = "cms,database")
 public class CMISEndpoint extends DefaultEndpoint {
 
     @UriParam
     private CMISSessionFacade sessionFacade;
+    @UriParam
     private boolean queryMode;
 
     public CMISEndpoint() {
@@ -62,6 +63,10 @@ public class CMISEndpoint extends DefaultEndpoint {
         return true;
     }
 
+    public boolean isQueryMode() {
+        return queryMode;
+    }
+
     public void setQueryMode(boolean queryMode) {
         this.queryMode = queryMode;
     }

http://git-wip-us.apache.org/repos/asf/camel/blob/c763bb13/components/camel-cometd/src/main/java/org/apache/camel/component/cometd/CometdEndpoint.java
----------------------------------------------------------------------
diff --git a/components/camel-cometd/src/main/java/org/apache/camel/component/cometd/CometdEndpoint.java b/components/camel-cometd/src/main/java/org/apache/camel/component/cometd/CometdEndpoint.java
index 79943f1..a4f9cfa 100644
--- a/components/camel-cometd/src/main/java/org/apache/camel/component/cometd/CometdEndpoint.java
+++ b/components/camel-cometd/src/main/java/org/apache/camel/component/cometd/CometdEndpoint.java
@@ -24,6 +24,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;
@@ -32,19 +33,19 @@ import org.apache.camel.util.ObjectHelper;
 /**
  * Endpoint for Camel Cometd.
  */
-@UriEndpoint(scheme = "cometd,cometds", consumerClass = CometdConsumer.class, label = "http,websocket")
+@UriEndpoint(scheme = "cometd,cometds", syntax = "cometd:protocol:host:port/channelName", consumerClass = CometdConsumer.class, label = "http,websocket")
 public class CometdEndpoint extends DefaultEndpoint {
 
     private CometdComponent component;
 
     private URI uri;
-    @UriPath
+    @UriPath @Metadata(required = "true")
     private String protocol;
-    @UriPath
+    @UriPath @Metadata(required = "true")
     private String host;
-    @UriPath
+    @UriPath @Metadata(required = "true")
     private int port;
-    @UriPath
+    @UriPath @Metadata(required = "true")
     private String channelName;
     @UriParam
     private String baseResource;

http://git-wip-us.apache.org/repos/asf/camel/blob/c763bb13/components/camel-context/src/main/java/org/apache/camel/component/context/ContextEndpoint.java
----------------------------------------------------------------------
diff --git a/components/camel-context/src/main/java/org/apache/camel/component/context/ContextEndpoint.java b/components/camel-context/src/main/java/org/apache/camel/component/context/ContextEndpoint.java
index d116bf2..b78bdfe 100644
--- a/components/camel-context/src/main/java/org/apache/camel/component/context/ContextEndpoint.java
+++ b/components/camel-context/src/main/java/org/apache/camel/component/context/ContextEndpoint.java
@@ -26,7 +26,7 @@ import org.apache.camel.impl.DefaultEndpoint;
 import org.apache.camel.spi.UriEndpoint;
 import org.apache.camel.spi.UriPath;
 
-@UriEndpoint(scheme = "context", label = "endpoint")
+@UriEndpoint(scheme = "context", syntax = "context:contextId:localEndpointUrl", label = "endpoint")
 public class ContextEndpoint extends DefaultEndpoint implements DelegateEndpoint {
 
     @UriPath

http://git-wip-us.apache.org/repos/asf/camel/blob/c763bb13/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 7839c44..0c75bcc 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
@@ -92,7 +92,6 @@ public class LocalContextComponent extends DefaultComponent {
             }
         }
         throw new ResolveEndpointFailedException("Cannot find the endpoint with uri " + uri + " in the CamelContext " + getLocalCamelContext().getName());
-        
     }
 
     protected void logUsingEndpoint(String uri, Endpoint endpoint) {

http://git-wip-us.apache.org/repos/asf/camel/blob/c763bb13/components/camel-couchdb/src/main/java/org/apache/camel/component/couchdb/CouchDbEndpoint.java
----------------------------------------------------------------------
diff --git a/components/camel-couchdb/src/main/java/org/apache/camel/component/couchdb/CouchDbEndpoint.java b/components/camel-couchdb/src/main/java/org/apache/camel/component/couchdb/CouchDbEndpoint.java
index 238484d..7f7bb0a 100644
--- a/components/camel-couchdb/src/main/java/org/apache/camel/component/couchdb/CouchDbEndpoint.java
+++ b/components/camel-couchdb/src/main/java/org/apache/camel/component/couchdb/CouchDbEndpoint.java
@@ -24,12 +24,13 @@ 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.lightcouch.CouchDbClient;
 
-@UriEndpoint(scheme = "couchdb", consumerClass = CouchDbConsumer.class, label = "database,nosql")
+@UriEndpoint(scheme = "couchdb", syntax = "couchdb:protocol:hostname:port/database", consumerClass = CouchDbConsumer.class, label = "database,nosql")
 public class CouchDbEndpoint extends DefaultEndpoint {
 
     public static final String DEFAULT_STYLE = "main_only";
@@ -38,13 +39,13 @@ public class CouchDbEndpoint extends DefaultEndpoint {
 
     private static final String URI_ERROR = "Invalid URI. Format must be of the form couchdb:http[s]://hostname[:port]/database?[options...]";
 
-    @UriPath
+    @UriPath @Metadata(required = "true")
     private String protocol;
-    @UriPath
+    @UriPath @Metadata(required = "true")
     private String hostname;
-    @UriPath
+    @UriPath(defaultValue = "" + DEFAULT_PORT)
     private int port;
-    @UriPath
+    @UriPath @Metadata(required = "true")
     private String database;
     @UriParam(defaultValue = DEFAULT_STYLE)
     private String style = DEFAULT_STYLE;

http://git-wip-us.apache.org/repos/asf/camel/blob/c763bb13/components/camel-crypto/src/main/java/org/apache/camel/component/crypto/DigitalSignatureConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-crypto/src/main/java/org/apache/camel/component/crypto/DigitalSignatureConfiguration.java b/components/camel-crypto/src/main/java/org/apache/camel/component/crypto/DigitalSignatureConfiguration.java
index d3ccf98..630751d 100644
--- a/components/camel-crypto/src/main/java/org/apache/camel/component/crypto/DigitalSignatureConfiguration.java
+++ b/components/camel-crypto/src/main/java/org/apache/camel/component/crypto/DigitalSignatureConfiguration.java
@@ -28,6 +28,7 @@ import java.security.cert.Certificate;
 import org.apache.camel.CamelContext;
 import org.apache.camel.CamelContextAware;
 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;
@@ -38,7 +39,7 @@ public class DigitalSignatureConfiguration implements Cloneable, CamelContextAwa
 
     private CamelContext context;
 
-    @UriPath
+    @UriPath @Metadata(required = "true")
     private CryptoOperation cryptoOperation;
     @UriParam
     private PrivateKey privateKey;

http://git-wip-us.apache.org/repos/asf/camel/blob/c763bb13/components/camel-crypto/src/main/java/org/apache/camel/component/crypto/DigitalSignatureEndpoint.java
----------------------------------------------------------------------
diff --git a/components/camel-crypto/src/main/java/org/apache/camel/component/crypto/DigitalSignatureEndpoint.java b/components/camel-crypto/src/main/java/org/apache/camel/component/crypto/DigitalSignatureEndpoint.java
index 08303b8..17e9cbb 100644
--- a/components/camel-crypto/src/main/java/org/apache/camel/component/crypto/DigitalSignatureEndpoint.java
+++ b/components/camel-crypto/src/main/java/org/apache/camel/component/crypto/DigitalSignatureEndpoint.java
@@ -34,7 +34,7 @@ import org.apache.camel.spi.UriParam;
 /**
  * <code>DigitalSignatureEndpoint</code>
  */
-@UriEndpoint(scheme = "crypto", producerOnly = true, label = "security,transformation")
+@UriEndpoint(scheme = "crypto", syntax = "crypto:cryptoOperation", producerOnly = true, label = "security,transformation")
 public class DigitalSignatureEndpoint extends DefaultEndpoint {
     @UriParam
     private DigitalSignatureConfiguration configuration;

http://git-wip-us.apache.org/repos/asf/camel/blob/c763bb13/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CxfEndpoint.java
----------------------------------------------------------------------
diff --git a/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CxfEndpoint.java b/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CxfEndpoint.java
index dffc1d7..c164767 100644
--- a/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CxfEndpoint.java
+++ b/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/CxfEndpoint.java
@@ -111,7 +111,7 @@ import org.slf4j.LoggerFactory;
  * {@link CxfBinding}, and {@link HeaderFilterStrategy}.  The default DataFormat
  * mode is {@link DataFormat#POJO}.
  */
-@UriEndpoint(scheme = "cxf", consumerClass = CxfConsumer.class, label = "http,soap,webservice")
+@UriEndpoint(scheme = "cxf", syntax = "cxf:beanId:address", consumerClass = CxfConsumer.class, label = "http,soap,webservice")
 public class CxfEndpoint extends DefaultEndpoint implements HeaderFilterStrategyAware, Service, Cloneable {
 
     private static final Logger LOG = LoggerFactory.getLogger(CxfEndpoint.class);
@@ -123,7 +123,7 @@ public class CxfEndpoint extends DefaultEndpoint implements HeaderFilterStrategy
     @UriPath
     private String address;
 
-    @UriParam(defaultValue = "false")
+    @UriParam
     private boolean createBus;
     @UriParam
     private String wsdlURL;
@@ -155,19 +155,19 @@ public class CxfEndpoint extends DefaultEndpoint implements HeaderFilterStrategy
     private CxfBinding cxfBinding;
     private HeaderFilterStrategy headerFilterStrategy;
     private AtomicBoolean getBusHasBeenCalled = new AtomicBoolean(false);
-    @UriParam(defaultValue = "false")
+    @UriParam
     private boolean isSetDefaultBus;
-    @UriParam(defaultValue = "false")
+    @UriParam
     private boolean loggingFeatureEnabled;
     @UriParam
     private int loggingSizeLimit;
-    @UriParam(defaultValue = "false")
+    @UriParam
     private boolean mtomEnabled;
-    @UriParam(defaultValue = "false")
+    @UriParam
     private boolean skipPayloadMessagePartCheck;
-    @UriParam(defaultValue = "false")
+    @UriParam
     private boolean skipFaultLogging;
-    @UriParam(defaultValue = "false")
+    @UriParam
     private boolean mergeProtocolHeaders;
     private Map<String, Object> properties;
     private List<Interceptor<? extends Message>> in = new ModCountCopyOnWriteArrayList<Interceptor<? extends Message>>();

http://git-wip-us.apache.org/repos/asf/camel/blob/c763bb13/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/jaxrs/CxfRsEndpoint.java
----------------------------------------------------------------------
diff --git a/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/jaxrs/CxfRsEndpoint.java b/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/jaxrs/CxfRsEndpoint.java
index 04368a7..3680c58 100644
--- a/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/jaxrs/CxfRsEndpoint.java
+++ b/components/camel-cxf/src/main/java/org/apache/camel/component/cxf/jaxrs/CxfRsEndpoint.java
@@ -56,7 +56,7 @@ import org.apache.cxf.message.Message;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-@UriEndpoint(scheme = "cxfrs", consumerClass = CxfRsConsumer.class, label = "http,rest")
+@UriEndpoint(scheme = "cxfrs", syntax = "cxfrs:beanId:address", consumerClass = CxfRsConsumer.class, label = "http,rest")
 public class CxfRsEndpoint extends DefaultEndpoint implements HeaderFilterStrategyAware, Service {
 
     public enum BindingStyle {
@@ -99,26 +99,26 @@ public class CxfRsEndpoint extends DefaultEndpoint implements HeaderFilterStrate
     private CxfRsBinding binding;
     @UriParam(defaultValue = "true")
     private boolean httpClientAPI = true;
-    @UriParam(defaultValue = "false")
+    @UriParam
     private boolean ignoreDeleteMethodMessageBody;
     @UriParam(defaultValue = "true")
     private boolean throwExceptionOnFailure = true;
     @UriParam(defaultValue = "10")
     private int maxClientCacheSize = 10;
-    @UriParam(defaultValue = "false")
+    @UriParam
     private boolean loggingFeatureEnabled;
     @UriParam
     private int loggingSizeLimit;
-    @UriParam(defaultValue = "false")
+    @UriParam
     private boolean skipFaultLogging;
     @UriParam(defaultValue = "Default")
     private BindingStyle bindingStyle = BindingStyle.Default;
     // The continuation timeout value for CXF continuation to use
     @UriParam(defaultValue = "30000")
     private long continuationTimeout = 30000;
-    @UriParam(defaultValue = "false")
+    @UriParam
     private boolean isSetDefaultBus;
-    @UriParam(defaultValue = "false")
+    @UriParam
     private boolean performInvocation;
     @UriParam
     private String modelRef;

http://git-wip-us.apache.org/repos/asf/camel/blob/c763bb13/components/camel-disruptor/src/main/java/org/apache/camel/component/disruptor/DisruptorEndpoint.java
----------------------------------------------------------------------
diff --git a/components/camel-disruptor/src/main/java/org/apache/camel/component/disruptor/DisruptorEndpoint.java b/components/camel-disruptor/src/main/java/org/apache/camel/component/disruptor/DisruptorEndpoint.java
index 4c568ac..b68e65d 100644
--- a/components/camel-disruptor/src/main/java/org/apache/camel/component/disruptor/DisruptorEndpoint.java
+++ b/components/camel-disruptor/src/main/java/org/apache/camel/component/disruptor/DisruptorEndpoint.java
@@ -47,7 +47,7 @@ import org.slf4j.LoggerFactory;
  * <a href="https://github.com/LMAX-Exchange/disruptor">LMAX Disruptor</a> within a CamelContext
  */
 @ManagedResource(description = "Managed Disruptor Endpoint")
-@UriEndpoint(scheme = "disruptor,disruptor-vm", consumerClass = DisruptorConsumer.class, label = "endpoint")
+@UriEndpoint(scheme = "disruptor,disruptor-vm", syntax = "disruptor:name", consumerClass = DisruptorConsumer.class, label = "endpoint")
 public class DisruptorEndpoint extends DefaultEndpoint implements MultipleConsumersSupport {
     public static final String DISRUPTOR_IGNORE_EXCHANGE = "disruptor.ignoreExchange";
     private static final Logger LOGGER = LoggerFactory.getLogger(DisruptorEndpoint.class);

http://git-wip-us.apache.org/repos/asf/camel/blob/c763bb13/components/camel-dns/src/main/java/org/apache/camel/component/dns/DnsEndpoint.java
----------------------------------------------------------------------
diff --git a/components/camel-dns/src/main/java/org/apache/camel/component/dns/DnsEndpoint.java b/components/camel-dns/src/main/java/org/apache/camel/component/dns/DnsEndpoint.java
index 98d8ebe..1aea212 100644
--- a/components/camel-dns/src/main/java/org/apache/camel/component/dns/DnsEndpoint.java
+++ b/components/camel-dns/src/main/java/org/apache/camel/component/dns/DnsEndpoint.java
@@ -21,13 +21,14 @@ import org.apache.camel.Consumer;
 import org.apache.camel.Processor;
 import org.apache.camel.Producer;
 import org.apache.camel.impl.DefaultEndpoint;
+import org.apache.camel.spi.Metadata;
 import org.apache.camel.spi.UriEndpoint;
 import org.apache.camel.spi.UriPath;
 
-@UriEndpoint(scheme = "dns", producerOnly = true, label = "networking")
+@UriEndpoint(scheme = "dns", syntax = "dns:dnsType", producerOnly = true, label = "networking")
 public class DnsEndpoint extends DefaultEndpoint {
 
-    @UriPath
+    @UriPath @Metadata(required = "true")
     private DnsType dnsType;
 
     public DnsEndpoint(String endpointUri, Component component) {

http://git-wip-us.apache.org/repos/asf/camel/blob/c763bb13/components/camel-docker/src/main/java/org/apache/camel/component/docker/DockerConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-docker/src/main/java/org/apache/camel/component/docker/DockerConfiguration.java b/components/camel-docker/src/main/java/org/apache/camel/component/docker/DockerConfiguration.java
index f8d507a..c1434e6 100644
--- a/components/camel-docker/src/main/java/org/apache/camel/component/docker/DockerConfiguration.java
+++ b/components/camel-docker/src/main/java/org/apache/camel/component/docker/DockerConfiguration.java
@@ -20,6 +20,7 @@ import java.util.HashMap;
 import java.util.Map;
 
 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;
@@ -27,7 +28,7 @@ import org.apache.camel.spi.UriPath;
 @UriParams
 public class DockerConfiguration implements Cloneable {
 
-    @UriPath
+    @UriPath @Metadata(required = "true")
     private DockerOperation operation;
 
     @UriParam(defaultValue = "localhost")

http://git-wip-us.apache.org/repos/asf/camel/blob/c763bb13/components/camel-docker/src/main/java/org/apache/camel/component/docker/DockerEndpoint.java
----------------------------------------------------------------------
diff --git a/components/camel-docker/src/main/java/org/apache/camel/component/docker/DockerEndpoint.java b/components/camel-docker/src/main/java/org/apache/camel/component/docker/DockerEndpoint.java
index b023d73..ee7f69e 100644
--- a/components/camel-docker/src/main/java/org/apache/camel/component/docker/DockerEndpoint.java
+++ b/components/camel-docker/src/main/java/org/apache/camel/component/docker/DockerEndpoint.java
@@ -29,7 +29,7 @@ import org.apache.camel.spi.UriParam;
 /**
  * Represents a Docker endpoint.
  */
-@UriEndpoint(scheme = "docker", consumerClass = DockerEventsConsumer.class, label = "container,cloud,platform")
+@UriEndpoint(scheme = "docker", syntax = "docker:operation", consumerClass = DockerEventsConsumer.class, label = "container,cloud,platform")
 public class DockerEndpoint extends DefaultEndpoint {
 
     @UriParam

http://git-wip-us.apache.org/repos/asf/camel/blob/c763bb13/components/camel-dozer/src/main/java/org/apache/camel/component/dozer/DozerEndpoint.java
----------------------------------------------------------------------
diff --git a/components/camel-dozer/src/main/java/org/apache/camel/component/dozer/DozerEndpoint.java b/components/camel-dozer/src/main/java/org/apache/camel/component/dozer/DozerEndpoint.java
index eef5869..292a21a 100644
--- a/components/camel-dozer/src/main/java/org/apache/camel/component/dozer/DozerEndpoint.java
+++ b/components/camel-dozer/src/main/java/org/apache/camel/component/dozer/DozerEndpoint.java
@@ -34,7 +34,7 @@ import org.dozer.DozerBeanMapper;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-@UriEndpoint(scheme = "dozer", producerOnly = true, label = "transformation")
+@UriEndpoint(scheme = "dozer", syntax = "dozer:name", producerOnly = true, label = "transformation")
 public class DozerEndpoint extends DefaultEndpoint {
     private static final Logger LOG = LoggerFactory.getLogger(DozerEndpoint.class);
 

http://git-wip-us.apache.org/repos/asf/camel/blob/c763bb13/components/camel-dropbox/src/main/java/org/apache/camel/component/dropbox/DropboxConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-dropbox/src/main/java/org/apache/camel/component/dropbox/DropboxConfiguration.java b/components/camel-dropbox/src/main/java/org/apache/camel/component/dropbox/DropboxConfiguration.java
index 931868a..2c9c842 100755
--- a/components/camel-dropbox/src/main/java/org/apache/camel/component/dropbox/DropboxConfiguration.java
+++ b/components/camel-dropbox/src/main/java/org/apache/camel/component/dropbox/DropboxConfiguration.java
@@ -23,6 +23,7 @@ import com.dropbox.core.DbxRequestConfig;
 import org.apache.camel.component.dropbox.util.DropboxException;
 import org.apache.camel.component.dropbox.util.DropboxOperation;
 import org.apache.camel.component.dropbox.util.DropboxUploadMode;
+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,7 +32,7 @@ import org.apache.camel.spi.UriPath;
 public class DropboxConfiguration {
 
     //specific dropbox operation for the component
-    @UriPath
+    @UriPath @Metadata(required = "true")
     private DropboxOperation operation;
     //dropbox auth options
     @UriParam

http://git-wip-us.apache.org/repos/asf/camel/blob/c763bb13/components/camel-dropbox/src/main/java/org/apache/camel/component/dropbox/DropboxEndpoint.java
----------------------------------------------------------------------
diff --git a/components/camel-dropbox/src/main/java/org/apache/camel/component/dropbox/DropboxEndpoint.java b/components/camel-dropbox/src/main/java/org/apache/camel/component/dropbox/DropboxEndpoint.java
index a3f5992..75a0d5c 100755
--- a/components/camel-dropbox/src/main/java/org/apache/camel/component/dropbox/DropboxEndpoint.java
+++ b/components/camel-dropbox/src/main/java/org/apache/camel/component/dropbox/DropboxEndpoint.java
@@ -37,7 +37,7 @@ import org.slf4j.LoggerFactory;
 
 import static org.apache.camel.component.dropbox.util.DropboxConstants.POLL_CONSUMER_DELAY;
 
-@UriEndpoint(scheme = "dropbox", consumerClass = DropboxScheduledPollConsumer.class, label = "api,file")
+@UriEndpoint(scheme = "dropbox", syntax = "dropbox:operation", consumerClass = DropboxScheduledPollConsumer.class, label = "api,file")
 public class DropboxEndpoint extends DefaultEndpoint {
 
     private static final transient Logger LOG = LoggerFactory.getLogger(DropboxEndpoint.class);

http://git-wip-us.apache.org/repos/asf/camel/blob/c763bb13/components/camel-ejb/src/main/java/org/apache/camel/component/ejb/EjbEndpoint.java
----------------------------------------------------------------------
diff --git a/components/camel-ejb/src/main/java/org/apache/camel/component/ejb/EjbEndpoint.java b/components/camel-ejb/src/main/java/org/apache/camel/component/ejb/EjbEndpoint.java
index 8984a8a..25b33af 100644
--- a/components/camel-ejb/src/main/java/org/apache/camel/component/ejb/EjbEndpoint.java
+++ b/components/camel-ejb/src/main/java/org/apache/camel/component/ejb/EjbEndpoint.java
@@ -20,7 +20,7 @@ import org.apache.camel.Component;
 import org.apache.camel.component.bean.BeanEndpoint;
 import org.apache.camel.spi.UriEndpoint;
 
-@UriEndpoint(scheme = "ejb", producerOnly = true, label = "endpoint,java")
+@UriEndpoint(scheme = "ejb", syntax = "ejb:beanName", producerOnly = true, label = "endpoint,java")
 public class EjbEndpoint extends BeanEndpoint {
 
     public EjbEndpoint(String endpointUri, Component component) {

http://git-wip-us.apache.org/repos/asf/camel/blob/c763bb13/components/camel-elasticsearch/src/main/java/org/apache/camel/component/elasticsearch/ElasticsearchConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-elasticsearch/src/main/java/org/apache/camel/component/elasticsearch/ElasticsearchConfiguration.java b/components/camel-elasticsearch/src/main/java/org/apache/camel/component/elasticsearch/ElasticsearchConfiguration.java
index 90a6361..c38158c 100644
--- a/components/camel-elasticsearch/src/main/java/org/apache/camel/component/elasticsearch/ElasticsearchConfiguration.java
+++ b/components/camel-elasticsearch/src/main/java/org/apache/camel/component/elasticsearch/ElasticsearchConfiguration.java
@@ -20,6 +20,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;
@@ -49,7 +50,7 @@ public class ElasticsearchConfiguration {
     private static final Integer DEFAULT_PORT = 9300;
 
     private URI uri;
-    @UriPath
+    @UriPath(description = "Name of cluster or use local for local mode") @Metadata(required = "true")
     private String clusterName;
     @UriParam
     private String protocolType;

http://git-wip-us.apache.org/repos/asf/camel/blob/c763bb13/components/camel-elasticsearch/src/main/java/org/apache/camel/component/elasticsearch/ElasticsearchEndpoint.java
----------------------------------------------------------------------
diff --git a/components/camel-elasticsearch/src/main/java/org/apache/camel/component/elasticsearch/ElasticsearchEndpoint.java b/components/camel-elasticsearch/src/main/java/org/apache/camel/component/elasticsearch/ElasticsearchEndpoint.java
index 4835754..c0129b9 100644
--- a/components/camel-elasticsearch/src/main/java/org/apache/camel/component/elasticsearch/ElasticsearchEndpoint.java
+++ b/components/camel-elasticsearch/src/main/java/org/apache/camel/component/elasticsearch/ElasticsearchEndpoint.java
@@ -37,7 +37,7 @@ import org.slf4j.LoggerFactory;
 /**
  * Represents an Elasticsearch endpoint.
  */
-@UriEndpoint(scheme = "elasticsearch", producerOnly = true, label = "monitoring,search")
+@UriEndpoint(scheme = "elasticsearch", syntax = "elasticsearch:clusterName", producerOnly = true, label = "monitoring,search")
 public class ElasticsearchEndpoint extends DefaultEndpoint {
 
     private static final Logger LOG = LoggerFactory.getLogger(ElasticsearchEndpoint.class);

http://git-wip-us.apache.org/repos/asf/camel/blob/c763bb13/components/camel-eventadmin/src/main/java/org/apache/camel/component/eventadmin/EventAdminEndpoint.java
----------------------------------------------------------------------
diff --git a/components/camel-eventadmin/src/main/java/org/apache/camel/component/eventadmin/EventAdminEndpoint.java b/components/camel-eventadmin/src/main/java/org/apache/camel/component/eventadmin/EventAdminEndpoint.java
index 844836f..99cdbeb 100644
--- a/components/camel-eventadmin/src/main/java/org/apache/camel/component/eventadmin/EventAdminEndpoint.java
+++ b/components/camel-eventadmin/src/main/java/org/apache/camel/component/eventadmin/EventAdminEndpoint.java
@@ -27,7 +27,7 @@ import org.apache.camel.spi.UriPath;
 /**
  * EventAdmin endpoint
  */
-@UriEndpoint(scheme = "eventadmin", consumerClass = EventAdminConsumer.class, label = "eventbus")
+@UriEndpoint(scheme = "eventadmin", syntax = "eventadmin:topic", consumerClass = EventAdminConsumer.class, label = "eventbus")
 public class EventAdminEndpoint extends DefaultEndpoint {
 
     @UriPath

http://git-wip-us.apache.org/repos/asf/camel/blob/c763bb13/components/camel-exec/src/main/java/org/apache/camel/component/exec/ExecEndpoint.java
----------------------------------------------------------------------
diff --git a/components/camel-exec/src/main/java/org/apache/camel/component/exec/ExecEndpoint.java b/components/camel-exec/src/main/java/org/apache/camel/component/exec/ExecEndpoint.java
index d1c7f1c..7b9582c 100644
--- a/components/camel-exec/src/main/java/org/apache/camel/component/exec/ExecEndpoint.java
+++ b/components/camel-exec/src/main/java/org/apache/camel/component/exec/ExecEndpoint.java
@@ -20,9 +20,9 @@ import org.apache.camel.Consumer;
 import org.apache.camel.Processor;
 import org.apache.camel.Producer;
 import org.apache.camel.component.exec.impl.DefaultExecBinding;
-import org.apache.camel.component.exec.impl.DefaultExecCommandExecutor;
 import org.apache.camel.component.exec.impl.ExecParseUtils;
 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;
@@ -37,7 +37,7 @@ import org.apache.camel.util.ObjectHelper;
  * @see ExecCommand
  * @see ExecResult
  */
-@UriEndpoint(scheme = "exec", producerOnly = true, label = "system")
+@UriEndpoint(scheme = "exec", syntax = "exec:executable", producerOnly = true, label = "system")
 public class ExecEndpoint extends DefaultEndpoint {
 
     /**
@@ -45,7 +45,7 @@ public class ExecEndpoint extends DefaultEndpoint {
      */
     public static final long NO_TIMEOUT = Long.MAX_VALUE;
 
-    @UriPath
+    @UriPath @Metadata(required = "true")
     private String executable;
 
     @UriParam
@@ -66,7 +66,7 @@ public class ExecEndpoint extends DefaultEndpoint {
     @UriParam
     private ExecBinding binding;
 
-    @UriParam(defaultValue = "false")
+    @UriParam
     private boolean useStderrOnEmptyStdout;
 
     public ExecEndpoint(String uri, ExecComponent component) {

http://git-wip-us.apache.org/repos/asf/camel/blob/c763bb13/components/camel-facebook/src/main/java/org/apache/camel/component/facebook/FacebookEndpoint.java
----------------------------------------------------------------------
diff --git a/components/camel-facebook/src/main/java/org/apache/camel/component/facebook/FacebookEndpoint.java b/components/camel-facebook/src/main/java/org/apache/camel/component/facebook/FacebookEndpoint.java
index c5d11e0..0aa7d91 100644
--- a/components/camel-facebook/src/main/java/org/apache/camel/component/facebook/FacebookEndpoint.java
+++ b/components/camel-facebook/src/main/java/org/apache/camel/component/facebook/FacebookEndpoint.java
@@ -31,6 +31,7 @@ import org.apache.camel.component.facebook.config.FacebookNameStyle;
 import org.apache.camel.component.facebook.data.FacebookMethodsType;
 import org.apache.camel.component.facebook.data.FacebookPropertiesHelper;
 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;
@@ -38,6 +39,7 @@ import org.apache.camel.util.EndpointHelper;
 import org.apache.camel.util.ObjectHelper;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
+
 import static org.apache.camel.component.facebook.data.FacebookMethodsTypeHelper.convertToGetMethod;
 import static org.apache.camel.component.facebook.data.FacebookMethodsTypeHelper.convertToSearchMethod;
 import static org.apache.camel.component.facebook.data.FacebookMethodsTypeHelper.getCandidateMethods;
@@ -47,13 +49,13 @@ import static org.apache.camel.component.facebook.data.FacebookPropertiesHelper.
 /**
  * Represents a Facebook endpoint.
  */
-@UriEndpoint(scheme = "facebook", consumerClass = FacebookConsumer.class, label = "social")
+@UriEndpoint(scheme = "facebook", syntax = "facebook:methodName", consumerClass = FacebookConsumer.class, label = "social")
 public class FacebookEndpoint extends DefaultEndpoint implements FacebookConstants {
 
     private static final Logger LOG = LoggerFactory.getLogger(FacebookEndpoint.class);
 
     // Facebook4J method name
-    @UriPath
+    @UriPath @Metadata(required = "true")
     private final String methodName;
     private FacebookNameStyle nameStyle;
 

http://git-wip-us.apache.org/repos/asf/camel/blob/c763bb13/components/camel-facebook/src/main/java/org/apache/camel/component/facebook/config/FacebookNameStyle.java
----------------------------------------------------------------------
diff --git a/components/camel-facebook/src/main/java/org/apache/camel/component/facebook/config/FacebookNameStyle.java b/components/camel-facebook/src/main/java/org/apache/camel/component/facebook/config/FacebookNameStyle.java
index 238582b..11eecda 100644
--- a/components/camel-facebook/src/main/java/org/apache/camel/component/facebook/config/FacebookNameStyle.java
+++ b/components/camel-facebook/src/main/java/org/apache/camel/component/facebook/config/FacebookNameStyle.java
@@ -21,6 +21,6 @@ package org.apache.camel.component.facebook.config;
  */
 public enum FacebookNameStyle {
 
-    EXACT, GET, SEARCH, GET_AND_SEARCH;
+    EXACT, GET, SEARCH, GET_AND_SEARCH
 
 }

http://git-wip-us.apache.org/repos/asf/camel/blob/c763bb13/components/camel-flatpack/src/main/java/org/apache/camel/component/flatpack/FlatpackEndpoint.java
----------------------------------------------------------------------
diff --git a/components/camel-flatpack/src/main/java/org/apache/camel/component/flatpack/FlatpackEndpoint.java b/components/camel-flatpack/src/main/java/org/apache/camel/component/flatpack/FlatpackEndpoint.java
index 3d24363..3b00395 100644
--- a/components/camel-flatpack/src/main/java/org/apache/camel/component/flatpack/FlatpackEndpoint.java
+++ b/components/camel-flatpack/src/main/java/org/apache/camel/component/flatpack/FlatpackEndpoint.java
@@ -35,6 +35,7 @@ import org.apache.camel.Producer;
 import org.apache.camel.impl.DefaultPollingEndpoint;
 import org.apache.camel.processor.loadbalancer.LoadBalancer;
 import org.apache.camel.processor.loadbalancer.RoundRobinLoadBalancer;
+import org.apache.camel.spi.Metadata;
 import org.apache.camel.spi.UriEndpoint;
 import org.apache.camel.spi.UriParam;
 import org.apache.camel.spi.UriPath;
@@ -47,22 +48,22 @@ import org.apache.camel.util.ResourceHelper;
  *
  * @version 
  */
-@UriEndpoint(scheme = "flatpack", consumerClass = FlatpackConsumer.class, label = "transformation")
+@UriEndpoint(scheme = "flatpack", syntax = "flatpack:type:resourceUri", consumerClass = FlatpackConsumer.class, label = "transformation")
 public class FlatpackEndpoint extends DefaultPollingEndpoint {
-    @UriPath
-    protected String resourceUri;
 
     private LoadBalancer loadBalancer = new RoundRobinLoadBalancer();
     private ParserFactory parserFactory = DefaultParserFactory.getInstance();
    
-    @UriPath
+    @UriPath @Metadata(required = "true")
     private FlatpackType type;
+    @UriPath @Metadata(required = "true")
+    protected String resourceUri;
 
     @UriParam(defaultValue = "true")
     private boolean splitRows = true;
-    @UriParam(defaultValue = "false")
+    @UriParam
     private boolean allowShortLines;
-    @UriParam(defaultValue = "false")
+    @UriParam
     private boolean ignoreExtraColumns;
 
     // delimited

http://git-wip-us.apache.org/repos/asf/camel/blob/c763bb13/components/camel-fop/src/main/java/org/apache/camel/component/fop/FopEndpoint.java
----------------------------------------------------------------------
diff --git a/components/camel-fop/src/main/java/org/apache/camel/component/fop/FopEndpoint.java b/components/camel-fop/src/main/java/org/apache/camel/component/fop/FopEndpoint.java
index c0e2f2d..cc181d6 100644
--- a/components/camel-fop/src/main/java/org/apache/camel/component/fop/FopEndpoint.java
+++ b/components/camel-fop/src/main/java/org/apache/camel/component/fop/FopEndpoint.java
@@ -24,6 +24,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;
@@ -33,10 +34,10 @@ import org.apache.fop.apps.FopFactory;
 /**
  * Represents a Fop endpoint.
  */
-@UriEndpoint(scheme = "fop", producerOnly = true, label = "transformation")
+@UriEndpoint(scheme = "fop", syntax = "fop:outputFormat", producerOnly = true, label = "transformation")
 public class FopEndpoint extends DefaultEndpoint {
 
-    @UriPath
+    @UriPath @Metadata(required = "true")
     private String outputFormat;
     @UriParam
     private String userConfigURL;

http://git-wip-us.apache.org/repos/asf/camel/blob/c763bb13/components/camel-fop/src/main/java/org/apache/camel/component/fop/FopProducer.java
----------------------------------------------------------------------
diff --git a/components/camel-fop/src/main/java/org/apache/camel/component/fop/FopProducer.java b/components/camel-fop/src/main/java/org/apache/camel/component/fop/FopProducer.java
index 8b392e2..d41b6d1 100644
--- a/components/camel-fop/src/main/java/org/apache/camel/component/fop/FopProducer.java
+++ b/components/camel-fop/src/main/java/org/apache/camel/component/fop/FopProducer.java
@@ -42,12 +42,12 @@ import org.apache.fop.pdf.PDFEncryptionParams;
  */
 public class FopProducer extends DefaultProducer {
     private final FopFactory fopFactory;
-    private final String remaining;
+    private final String outputFormat;
 
-    public FopProducer(FopEndpoint endpoint, FopFactory fopFactory, String remaining) {
+    public FopProducer(FopEndpoint endpoint, FopFactory fopFactory, String outputFormat) {
         super(endpoint);
         this.fopFactory = fopFactory;
-        this.remaining = remaining;
+        this.outputFormat = outputFormat;
     }
 
     public void process(Exchange exchange) throws Exception {
@@ -68,7 +68,7 @@ public class FopProducer extends DefaultProducer {
 
     private String getOutputFormat(Exchange exchange) {
         String outputFormat = exchange.getIn()
-                .getHeader(FopConstants.CAMEL_FOP_OUTPUT_FORMAT, this.remaining, String.class);
+                .getHeader(FopConstants.CAMEL_FOP_OUTPUT_FORMAT, this.outputFormat, String.class);
         if (outputFormat == null) {
             throw new RuntimeExchangeException("Missing output format", exchange);
         }

http://git-wip-us.apache.org/repos/asf/camel/blob/c763bb13/components/camel-freemarker/src/main/java/org/apache/camel/component/freemarker/FreemarkerEndpoint.java
----------------------------------------------------------------------
diff --git a/components/camel-freemarker/src/main/java/org/apache/camel/component/freemarker/FreemarkerEndpoint.java b/components/camel-freemarker/src/main/java/org/apache/camel/component/freemarker/FreemarkerEndpoint.java
index 84ea4bc..d8b37af 100644
--- a/components/camel-freemarker/src/main/java/org/apache/camel/component/freemarker/FreemarkerEndpoint.java
+++ b/components/camel-freemarker/src/main/java/org/apache/camel/component/freemarker/FreemarkerEndpoint.java
@@ -36,7 +36,7 @@ import org.apache.camel.util.ObjectHelper;
 /**
  * Freemarker endpoint
  */
-@UriEndpoint(scheme = "freemarker", producerOnly = true, label = "transformation")
+@UriEndpoint(scheme = "freemarker", syntax = "freemarker:resourceUri", producerOnly = true, label = "transformation")
 public class FreemarkerEndpoint extends ResourceEndpoint {
 
     @UriParam

http://git-wip-us.apache.org/repos/asf/camel/blob/c763bb13/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/FtpEndpoint.java
----------------------------------------------------------------------
diff --git a/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/FtpEndpoint.java b/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/FtpEndpoint.java
index 3164b5c..f3961b4 100644
--- a/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/FtpEndpoint.java
+++ b/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/FtpEndpoint.java
@@ -34,7 +34,7 @@ import org.apache.commons.net.ftp.FTPFile;
 /**
  * FTP endpoint
  */
-@UriEndpoint(scheme = "ftp", consumerClass = FtpConsumer.class, label = "file")
+@UriEndpoint(scheme = "ftp", syntax = "ftp:host:port/directoryName", consumerClass = FtpConsumer.class, label = "file")
 public class FtpEndpoint<T extends FTPFile> extends RemoteFileEndpoint<FTPFile> {
 
     protected FTPClient ftpClient;

http://git-wip-us.apache.org/repos/asf/camel/blob/c763bb13/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/FtpsEndpoint.java
----------------------------------------------------------------------
diff --git a/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/FtpsEndpoint.java b/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/FtpsEndpoint.java
index e410de0..53f7bc7 100644
--- a/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/FtpsEndpoint.java
+++ b/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/FtpsEndpoint.java
@@ -41,7 +41,7 @@ import org.apache.commons.net.ftp.FTPSClient;
  * 
  * @version 
  */
-@UriEndpoint(scheme = "ftps", consumerClass = FtpConsumer.class, label = "file")
+@UriEndpoint(scheme = "ftps", syntax = "ftps:host:port/directoryName", consumerClass = FtpConsumer.class, label = "file")
 public class FtpsEndpoint extends FtpEndpoint<FTPFile> {
     @UriParam
     protected FtpsConfiguration configuration;

http://git-wip-us.apache.org/repos/asf/camel/blob/c763bb13/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/SftpEndpoint.java
----------------------------------------------------------------------
diff --git a/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/SftpEndpoint.java b/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/SftpEndpoint.java
index e891c15..a5bb45c 100644
--- a/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/SftpEndpoint.java
+++ b/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/SftpEndpoint.java
@@ -27,7 +27,7 @@ import org.apache.camel.spi.UriParam;
 /**
  * Secure FTP endpoint
  */
-@UriEndpoint(scheme = "sftp", consumerClass = SftpConsumer.class, label = "file")
+@UriEndpoint(scheme = "sftp", syntax = "sftp:host:port/directoryName", consumerClass = SftpConsumer.class, label = "file")
 public class SftpEndpoint extends RemoteFileEndpoint<ChannelSftp.LsEntry> {
 
     @UriParam


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

Posted by da...@apache.org.
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/6560d5bb
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/6560d5bb
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/6560d5bb

Branch: refs/heads/master
Commit: 6560d5bbf2664a7cd6777651b03eb3abcd0925f3
Parents: 00e7095
Author: Claus Ibsen <da...@apache.org>
Authored: Sun Mar 1 08:43:30 2015 +0100
Committer: Claus Ibsen <da...@apache.org>
Committed: Sun Mar 1 08:43:30 2015 +0100

----------------------------------------------------------------------
 .../main/java/org/apache/camel/spi/UriEndpoint.java | 16 ++++++++++++----
 1 file changed, 12 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/6560d5bb/tooling/spi-annotations/src/main/java/org/apache/camel/spi/UriEndpoint.java
----------------------------------------------------------------------
diff --git a/tooling/spi-annotations/src/main/java/org/apache/camel/spi/UriEndpoint.java b/tooling/spi-annotations/src/main/java/org/apache/camel/spi/UriEndpoint.java
index e3b3bb2..f03f3ee 100644
--- a/tooling/spi-annotations/src/main/java/org/apache/camel/spi/UriEndpoint.java
+++ b/tooling/spi-annotations/src/main/java/org/apache/camel/spi/UriEndpoint.java
@@ -45,12 +45,20 @@ public @interface UriEndpoint {
      * <p/>
      * The syntax follows the patterns such as:
      * <ul>
-     *     <li>scheme:path[?options]</li>
-     *     <li>scheme:path:path[?options]</li>
-     *     <li>scheme:path:path/path[?options]</li>
-     *     <li>scheme:path:path/path/path[?options]</li>
+     *     <li>scheme:host:port</li>
+     *     <li>scheme:host:port/path</li>
+     *     <li>scheme:path</li>
+     *     <li>scheme:path/path2</li>
      * </ul>
      * Where each path maps to the name of the endpoint {@link org.apache.camel.spi.UriPath} option.
+     * The query parameters is implied and should not be included in the syntax.
+     * <p/>
+     * Some examples:
+     * <ul>
+     *     <li>file:directoryName</li>
+     *     <li>ftp:host:port/directoryName</li>
+     *     <li>jms:destinationType:destinationName</li>
+     * </ul>
      */
     String syntax();