Repository: camel
Updated Branches:
  refs/heads/master 9ceec2ba6 -> c0d374298


CAMEL-8195: Add javadoc to model classes so we have EIP documentation out of 
the box


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

Branch: refs/heads/master
Commit: c0d3742984eba7088a0166a9e2389e3a06ed3277
Parents: 9ceec2b
Author: Claus Ibsen <davscl...@apache.org>
Authored: Tue Jan 20 16:53:36 2015 +0100
Committer: Claus Ibsen <davscl...@apache.org>
Committed: Tue Jan 20 17:00:50 2015 +0100

----------------------------------------------------------------------
 .../org/apache/camel/model/DelayDefinition.java |  5 ++-
 .../camel/model/DynamicRouterDefinition.java    |  4 +-
 .../model/IdempotentConsumerDefinition.java     |  3 +-
 .../org/apache/camel/model/LogDefinition.java   |  3 +-
 .../apache/camel/model/MulticastDefinition.java |  3 +-
 .../camel/model/OnCompletionDefinition.java     |  3 +-
 .../OptimisticLockRetryPolicyDefinition.java    |  7 +--
 .../camel/model/PollEnrichDefinition.java       |  3 +-
 .../camel/model/RecipientListDefinition.java    |  3 +-
 .../org/apache/camel/model/RouteDefinition.java |  9 ++--
 .../camel/model/RoutingSlipDefinition.java      |  3 +-
 .../apache/camel/model/SamplingDefinition.java  |  5 ++-
 .../org/apache/camel/model/SplitDefinition.java |  3 +-
 .../apache/camel/model/ThreadsDefinition.java   |  5 ++-
 .../apache/camel/model/ThrottleDefinition.java  |  5 ++-
 .../apache/camel/model/WireTapDefinition.java   |  3 +-
 .../model/config/BatchResequencerConfig.java    |  5 ++-
 .../model/config/StreamResequencerConfig.java   |  5 ++-
 .../model/dataformat/Base64DataFormat.java      |  5 ++-
 .../model/dataformat/CastorDataFormat.java      |  3 +-
 .../model/dataformat/CryptoDataFormat.java      |  5 ++-
 .../model/dataformat/FlatpackDataFormat.java    |  7 +--
 .../camel/model/dataformat/HL7DataFormat.java   |  3 +-
 .../camel/model/dataformat/JsonDataFormat.java  |  3 +-
 .../camel/model/dataformat/PGPDataFormat.java   |  3 +-
 .../model/dataformat/SoapJaxbDataFormat.java    |  3 +-
 .../dataformat/UniVocityAbstractDataFormat.java | 11 ++---
 .../dataformat/UniVocityCsvDataFormat.java      |  7 +--
 .../UniVocityFixedWidthDataFormat.java          |  3 +-
 .../dataformat/UniVocityTsvDataFormat.java      |  3 +-
 .../model/dataformat/XMLSecurityDataFormat.java | 11 ++---
 .../camel/model/dataformat/ZipDataFormat.java   |  5 ++-
 .../FailoverLoadBalancerDefinition.java         |  3 +-
 .../WeightedLoadBalancerDefinition.java         |  3 +-
 .../camel/model/rest/RestBindingDefinition.java |  3 +-
 .../model/rest/RestConfigurationDefinition.java |  3 +-
 .../apache/camel/model/rest/RestDefinition.java |  3 +-
 .../apache/camel/model/rest/VerbDefinition.java |  3 +-
 .../camel/tools/apt/EipAnnotationProcessor.java | 46 +++++++++++++++----
 .../main/java/org/apache/camel/spi/Label.java   |  3 ++
 .../java/org/apache/camel/spi/Metadata.java     | 47 ++++++++++++++++++++
 41 files changed, 188 insertions(+), 75 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/c0d37429/camel-core/src/main/java/org/apache/camel/model/DelayDefinition.java
----------------------------------------------------------------------
diff --git 
a/camel-core/src/main/java/org/apache/camel/model/DelayDefinition.java 
b/camel-core/src/main/java/org/apache/camel/model/DelayDefinition.java
index 75d48e9..207c1eb 100644
--- a/camel-core/src/main/java/org/apache/camel/model/DelayDefinition.java
+++ b/camel-core/src/main/java/org/apache/camel/model/DelayDefinition.java
@@ -31,6 +31,7 @@ import org.apache.camel.builder.ExpressionBuilder;
 import org.apache.camel.model.language.ExpressionDefinition;
 import org.apache.camel.processor.Delayer;
 import org.apache.camel.spi.Label;
+import org.apache.camel.spi.Metadata;
 import org.apache.camel.spi.RouteContext;
 
 /**
@@ -49,9 +50,9 @@ public class DelayDefinition extends ExpressionNode 
implements ExecutorServiceAw
     private ExecutorService executorService;
     @XmlAttribute
     private String executorServiceRef;
-    @XmlAttribute
+    @XmlAttribute @Metadata(defaultValue = "false")
     private Boolean asyncDelayed;
-    @XmlAttribute
+    @XmlAttribute @Metadata(defaultValue = "true")
     private Boolean callerRunsWhenRejected;
 
     public DelayDefinition() {

http://git-wip-us.apache.org/repos/asf/camel/blob/c0d37429/camel-core/src/main/java/org/apache/camel/model/DynamicRouterDefinition.java
----------------------------------------------------------------------
diff --git 
a/camel-core/src/main/java/org/apache/camel/model/DynamicRouterDefinition.java 
b/camel-core/src/main/java/org/apache/camel/model/DynamicRouterDefinition.java
index 42ec54f..855e077 100644
--- 
a/camel-core/src/main/java/org/apache/camel/model/DynamicRouterDefinition.java
+++ 
b/camel-core/src/main/java/org/apache/camel/model/DynamicRouterDefinition.java
@@ -18,7 +18,6 @@ package org.apache.camel.model;
 
 import java.util.Collections;
 import java.util.List;
-
 import javax.xml.bind.annotation.XmlAccessType;
 import javax.xml.bind.annotation.XmlAccessorType;
 import javax.xml.bind.annotation.XmlAttribute;
@@ -28,6 +27,7 @@ import org.apache.camel.Expression;
 import org.apache.camel.Processor;
 import org.apache.camel.processor.DynamicRouter;
 import org.apache.camel.spi.Label;
+import org.apache.camel.spi.Metadata;
 import org.apache.camel.spi.RouteContext;
 
 /**
@@ -40,7 +40,7 @@ public class DynamicRouterDefinition<Type extends 
ProcessorDefinition<Type>> ext
 
     public static final String DEFAULT_DELIMITER = ",";
 
-    @XmlAttribute
+    @XmlAttribute @Metadata(defaultValue = ",")
     private String uriDelimiter;
     @XmlAttribute
     private Boolean ignoreInvalidEndpoints;

http://git-wip-us.apache.org/repos/asf/camel/blob/c0d37429/camel-core/src/main/java/org/apache/camel/model/IdempotentConsumerDefinition.java
----------------------------------------------------------------------
diff --git 
a/camel-core/src/main/java/org/apache/camel/model/IdempotentConsumerDefinition.java
 
b/camel-core/src/main/java/org/apache/camel/model/IdempotentConsumerDefinition.java
index d8d3a91..ea39835 100644
--- 
a/camel-core/src/main/java/org/apache/camel/model/IdempotentConsumerDefinition.java
+++ 
b/camel-core/src/main/java/org/apache/camel/model/IdempotentConsumerDefinition.java
@@ -37,7 +37,7 @@ import org.apache.camel.util.ObjectHelper;
 @XmlRootElement(name = "idempotentConsumer")
 @XmlAccessorType(XmlAccessType.FIELD)
 public class IdempotentConsumerDefinition extends ExpressionNode {
-    @XmlAttribute
+    @XmlAttribute(required = true)
     private String messageIdRepositoryRef;
     @XmlAttribute
     private Boolean eager;
@@ -189,7 +189,6 @@ public class IdempotentConsumerDefinition extends 
ExpressionNode {
         return removeOnFailure != null ? removeOnFailure : true;
     }
 
-
     @Override
     @SuppressWarnings("unchecked")
     public Processor createProcessor(RouteContext routeContext) throws 
Exception {

http://git-wip-us.apache.org/repos/asf/camel/blob/c0d37429/camel-core/src/main/java/org/apache/camel/model/LogDefinition.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/model/LogDefinition.java 
b/camel-core/src/main/java/org/apache/camel/model/LogDefinition.java
index f84fe5b..43de2d4 100644
--- a/camel-core/src/main/java/org/apache/camel/model/LogDefinition.java
+++ b/camel-core/src/main/java/org/apache/camel/model/LogDefinition.java
@@ -29,6 +29,7 @@ import org.apache.camel.LoggingLevel;
 import org.apache.camel.Processor;
 import org.apache.camel.processor.LogProcessor;
 import org.apache.camel.spi.Label;
+import org.apache.camel.spi.Metadata;
 import org.apache.camel.spi.RouteContext;
 import org.apache.camel.util.CamelContextHelper;
 import org.apache.camel.util.CamelLogger;
@@ -49,7 +50,7 @@ public class LogDefinition extends 
NoOutputDefinition<LogDefinition> {
     private static final Logger LOG = 
LoggerFactory.getLogger(LogDefinition.class);
     @XmlAttribute(required = true)
     private String message;
-    @XmlAttribute
+    @XmlAttribute @Metadata(defaultValue = "INFO")
     private LoggingLevel loggingLevel;
     @XmlAttribute
     private String logName;

http://git-wip-us.apache.org/repos/asf/camel/blob/c0d37429/camel-core/src/main/java/org/apache/camel/model/MulticastDefinition.java
----------------------------------------------------------------------
diff --git 
a/camel-core/src/main/java/org/apache/camel/model/MulticastDefinition.java 
b/camel-core/src/main/java/org/apache/camel/model/MulticastDefinition.java
index dcf6a88..4eb5fb7 100644
--- a/camel-core/src/main/java/org/apache/camel/model/MulticastDefinition.java
+++ b/camel-core/src/main/java/org/apache/camel/model/MulticastDefinition.java
@@ -34,6 +34,7 @@ import 
org.apache.camel.processor.aggregate.AggregationStrategy;
 import org.apache.camel.processor.aggregate.AggregationStrategyBeanAdapter;
 import org.apache.camel.processor.aggregate.UseLatestAggregationStrategy;
 import org.apache.camel.spi.Label;
+import org.apache.camel.spi.Metadata;
 import org.apache.camel.spi.RouteContext;
 import org.apache.camel.util.CamelContextHelper;
 
@@ -62,7 +63,7 @@ public class MulticastDefinition extends 
OutputDefinition<MulticastDefinition> i
     private Boolean streaming;
     @XmlAttribute
     private Boolean stopOnException;
-    @XmlAttribute
+    @XmlAttribute @Metadata(defaultValue = "0")
     private Long timeout;
     @XmlTransient
     private AggregationStrategy aggregationStrategy;

http://git-wip-us.apache.org/repos/asf/camel/blob/c0d37429/camel-core/src/main/java/org/apache/camel/model/OnCompletionDefinition.java
----------------------------------------------------------------------
diff --git 
a/camel-core/src/main/java/org/apache/camel/model/OnCompletionDefinition.java 
b/camel-core/src/main/java/org/apache/camel/model/OnCompletionDefinition.java
index 019dbd6..07cd838 100644
--- 
a/camel-core/src/main/java/org/apache/camel/model/OnCompletionDefinition.java
+++ 
b/camel-core/src/main/java/org/apache/camel/model/OnCompletionDefinition.java
@@ -37,6 +37,7 @@ import org.apache.camel.Processor;
 import org.apache.camel.processor.CamelInternalProcessor;
 import org.apache.camel.processor.OnCompletionProcessor;
 import org.apache.camel.spi.Label;
+import org.apache.camel.spi.Metadata;
 import org.apache.camel.spi.RouteContext;
 
 /**
@@ -48,7 +49,7 @@ import org.apache.camel.spi.RouteContext;
 @XmlRootElement(name = "onCompletion")
 @XmlAccessorType(XmlAccessType.FIELD)
 public class OnCompletionDefinition extends 
ProcessorDefinition<OnCompletionDefinition> implements 
ExecutorServiceAwareDefinition<OnCompletionDefinition> {
-    @XmlAttribute
+    @XmlAttribute @Metadata(defaultValue = "AfterConsumer")
     private OnCompletionMode mode;
     @XmlAttribute
     private Boolean onCompleteOnly;

http://git-wip-us.apache.org/repos/asf/camel/blob/c0d37429/camel-core/src/main/java/org/apache/camel/model/OptimisticLockRetryPolicyDefinition.java
----------------------------------------------------------------------
diff --git 
a/camel-core/src/main/java/org/apache/camel/model/OptimisticLockRetryPolicyDefinition.java
 
b/camel-core/src/main/java/org/apache/camel/model/OptimisticLockRetryPolicyDefinition.java
index 15584d7..5478eec 100644
--- 
a/camel-core/src/main/java/org/apache/camel/model/OptimisticLockRetryPolicyDefinition.java
+++ 
b/camel-core/src/main/java/org/apache/camel/model/OptimisticLockRetryPolicyDefinition.java
@@ -23,6 +23,7 @@ import javax.xml.bind.annotation.XmlRootElement;
 
 import org.apache.camel.processor.aggregate.OptimisticLockRetryPolicy;
 import org.apache.camel.spi.Label;
+import org.apache.camel.spi.Metadata;
 
 /**
  * To configure optimistic locking
@@ -35,11 +36,11 @@ import org.apache.camel.spi.Label;
 public class OptimisticLockRetryPolicyDefinition {
     @XmlAttribute
     private Integer maximumRetries;
-    @XmlAttribute
+    @XmlAttribute @Metadata(defaultValue = "50")
     private Long retryDelay;
-    @XmlAttribute
+    @XmlAttribute @Metadata(defaultValue = "1000")
     private Long maximumRetryDelay;
-    @XmlAttribute
+    @XmlAttribute @Metadata(defaultValue = "true")
     private Boolean exponentialBackOff;
     @XmlAttribute
     private Boolean randomBackOff;

http://git-wip-us.apache.org/repos/asf/camel/blob/c0d37429/camel-core/src/main/java/org/apache/camel/model/PollEnrichDefinition.java
----------------------------------------------------------------------
diff --git 
a/camel-core/src/main/java/org/apache/camel/model/PollEnrichDefinition.java 
b/camel-core/src/main/java/org/apache/camel/model/PollEnrichDefinition.java
index 46f39f2..6467ba8 100644
--- a/camel-core/src/main/java/org/apache/camel/model/PollEnrichDefinition.java
+++ b/camel-core/src/main/java/org/apache/camel/model/PollEnrichDefinition.java
@@ -29,6 +29,7 @@ import org.apache.camel.processor.PollEnricher;
 import org.apache.camel.processor.aggregate.AggregationStrategy;
 import org.apache.camel.processor.aggregate.AggregationStrategyBeanAdapter;
 import org.apache.camel.spi.Label;
+import org.apache.camel.spi.Metadata;
 import org.apache.camel.spi.RouteContext;
 import org.apache.camel.util.ObjectHelper;
 
@@ -46,7 +47,7 @@ public class PollEnrichDefinition extends 
NoOutputDefinition<PollEnrichDefinitio
     // TODO: For Camel 3.0 we should remove this ref attribute as you can do 
that in the uri, by prefixing with ref:
     @XmlAttribute(name = "ref")
     private String resourceRef;
-    @XmlAttribute
+    @XmlAttribute @Metadata(defaultValue = "-1")
     private Long timeout;
     @XmlAttribute(name = "strategyRef")
     private String aggregationStrategyRef;

http://git-wip-us.apache.org/repos/asf/camel/blob/c0d37429/camel-core/src/main/java/org/apache/camel/model/RecipientListDefinition.java
----------------------------------------------------------------------
diff --git 
a/camel-core/src/main/java/org/apache/camel/model/RecipientListDefinition.java 
b/camel-core/src/main/java/org/apache/camel/model/RecipientListDefinition.java
index 0117795..e3da36d 100644
--- 
a/camel-core/src/main/java/org/apache/camel/model/RecipientListDefinition.java
+++ 
b/camel-core/src/main/java/org/apache/camel/model/RecipientListDefinition.java
@@ -36,6 +36,7 @@ import 
org.apache.camel.processor.aggregate.AggregationStrategy;
 import org.apache.camel.processor.aggregate.AggregationStrategyBeanAdapter;
 import org.apache.camel.processor.aggregate.UseLatestAggregationStrategy;
 import org.apache.camel.spi.Label;
+import org.apache.camel.spi.Metadata;
 import org.apache.camel.spi.RouteContext;
 import org.apache.camel.util.CamelContextHelper;
 
@@ -70,7 +71,7 @@ public class RecipientListDefinition<Type extends 
ProcessorDefinition<Type>> ext
     private Boolean ignoreInvalidEndpoints;
     @XmlAttribute
     private Boolean streaming;
-    @XmlAttribute
+    @XmlAttribute @Metadata(defaultValue = "0")
     private Long timeout;
     @XmlAttribute
     private String onPrepareRef;

http://git-wip-us.apache.org/repos/asf/camel/blob/c0d37429/camel-core/src/main/java/org/apache/camel/model/RouteDefinition.java
----------------------------------------------------------------------
diff --git 
a/camel-core/src/main/java/org/apache/camel/model/RouteDefinition.java 
b/camel-core/src/main/java/org/apache/camel/model/RouteDefinition.java
index b08c62a..f39bcea 100644
--- a/camel-core/src/main/java/org/apache/camel/model/RouteDefinition.java
+++ b/camel-core/src/main/java/org/apache/camel/model/RouteDefinition.java
@@ -49,6 +49,7 @@ import org.apache.camel.model.rest.RestDefinition;
 import org.apache.camel.processor.interceptor.HandleFault;
 import org.apache.camel.spi.Label;
 import org.apache.camel.spi.LifecycleStrategy;
+import org.apache.camel.spi.Metadata;
 import org.apache.camel.spi.RouteContext;
 import org.apache.camel.spi.RoutePolicy;
 import org.apache.camel.spi.RoutePolicyFactory;
@@ -672,7 +673,7 @@ public class RouteDefinition extends 
ProcessorDefinition<RouteDefinition> {
     /**
      * Whether message history is enabled on this route.
      */
-    @XmlAttribute
+    @XmlAttribute @Metadata(defaultValue = "true")
     public void setMessageHistory(String messageHistory) {
         this.messageHistory = messageHistory;
     }
@@ -726,7 +727,7 @@ public class RouteDefinition extends 
ProcessorDefinition<RouteDefinition> {
     /**
      * Whether to auto start this route
      */
-    @XmlAttribute
+    @XmlAttribute @Metadata(defaultValue = "true")
     public void setAutoStartup(String autoStartup) {
         this.autoStartup = autoStartup;
     }
@@ -806,7 +807,7 @@ public class RouteDefinition extends 
ProcessorDefinition<RouteDefinition> {
     /**
      * To control how to shutdown the route.
      */
-    @XmlAttribute
+    @XmlAttribute @Metadata(defaultValue = "Default")
     public void setShutdownRoute(ShutdownRoute shutdownRoute) {
         this.shutdownRoute = shutdownRoute;
     }
@@ -821,7 +822,7 @@ public class RouteDefinition extends 
ProcessorDefinition<RouteDefinition> {
     /**
      * To control how to shutdown the route.
      */
-    @XmlAttribute
+    @XmlAttribute @Metadata(defaultValue = "CompleteCurrentTaskOnly")
     public void setShutdownRunningTask(ShutdownRunningTask 
shutdownRunningTask) {
         this.shutdownRunningTask = shutdownRunningTask;
     }

http://git-wip-us.apache.org/repos/asf/camel/blob/c0d37429/camel-core/src/main/java/org/apache/camel/model/RoutingSlipDefinition.java
----------------------------------------------------------------------
diff --git 
a/camel-core/src/main/java/org/apache/camel/model/RoutingSlipDefinition.java 
b/camel-core/src/main/java/org/apache/camel/model/RoutingSlipDefinition.java
index f77ab10..5161cca 100644
--- a/camel-core/src/main/java/org/apache/camel/model/RoutingSlipDefinition.java
+++ b/camel-core/src/main/java/org/apache/camel/model/RoutingSlipDefinition.java
@@ -29,6 +29,7 @@ import org.apache.camel.Processor;
 import org.apache.camel.model.language.HeaderExpression;
 import org.apache.camel.processor.RoutingSlip;
 import org.apache.camel.spi.Label;
+import org.apache.camel.spi.Metadata;
 import org.apache.camel.spi.RouteContext;
 
 /**
@@ -40,7 +41,7 @@ import org.apache.camel.spi.RouteContext;
 public class RoutingSlipDefinition<Type extends ProcessorDefinition<Type>> 
extends NoOutputExpressionNode {
     public static final String DEFAULT_DELIMITER = ",";
 
-    @XmlAttribute
+    @XmlAttribute @Metadata(defaultValue = ",")
     private String uriDelimiter;
     @XmlAttribute
     private Boolean ignoreInvalidEndpoints;

http://git-wip-us.apache.org/repos/asf/camel/blob/c0d37429/camel-core/src/main/java/org/apache/camel/model/SamplingDefinition.java
----------------------------------------------------------------------
diff --git 
a/camel-core/src/main/java/org/apache/camel/model/SamplingDefinition.java 
b/camel-core/src/main/java/org/apache/camel/model/SamplingDefinition.java
index 4daafcd..fb8fa07 100644
--- a/camel-core/src/main/java/org/apache/camel/model/SamplingDefinition.java
+++ b/camel-core/src/main/java/org/apache/camel/model/SamplingDefinition.java
@@ -29,6 +29,7 @@ import org.apache.camel.Processor;
 import org.apache.camel.builder.xml.TimeUnitAdapter;
 import org.apache.camel.processor.SamplingThrottler;
 import org.apache.camel.spi.Label;
+import org.apache.camel.spi.Metadata;
 import org.apache.camel.spi.RouteContext;
 
 /**
@@ -45,12 +46,12 @@ public class SamplingDefinition extends 
OutputDefinition<SamplingDefinition> {
 
     // TODO: Camel 3.0 Should extend NoOutputDefinition
 
-    @XmlAttribute
+    @XmlAttribute @Metadata(defaultValue = "1")
     private Long samplePeriod;
     @XmlAttribute
     private Long messageFrequency;
     @XmlAttribute
-    @XmlJavaTypeAdapter(TimeUnitAdapter.class)
+    @XmlJavaTypeAdapter(TimeUnitAdapter.class) @Metadata(defaultValue = 
"SECONDS")
     private TimeUnit units;
 
     public SamplingDefinition() {

http://git-wip-us.apache.org/repos/asf/camel/blob/c0d37429/camel-core/src/main/java/org/apache/camel/model/SplitDefinition.java
----------------------------------------------------------------------
diff --git 
a/camel-core/src/main/java/org/apache/camel/model/SplitDefinition.java 
b/camel-core/src/main/java/org/apache/camel/model/SplitDefinition.java
index f718512..e519f1e 100644
--- a/camel-core/src/main/java/org/apache/camel/model/SplitDefinition.java
+++ b/camel-core/src/main/java/org/apache/camel/model/SplitDefinition.java
@@ -32,6 +32,7 @@ import org.apache.camel.processor.Splitter;
 import org.apache.camel.processor.aggregate.AggregationStrategy;
 import org.apache.camel.processor.aggregate.AggregationStrategyBeanAdapter;
 import org.apache.camel.spi.Label;
+import org.apache.camel.spi.Metadata;
 import org.apache.camel.spi.RouteContext;
 import org.apache.camel.util.CamelContextHelper;
 
@@ -62,7 +63,7 @@ public class SplitDefinition extends ExpressionNode 
implements ExecutorServiceAw
     private Boolean streaming;
     @XmlAttribute
     private Boolean stopOnException;
-    @XmlAttribute
+    @XmlAttribute @Metadata(defaultValue = "0")
     private Long timeout;
     @XmlAttribute
     private String onPrepareRef;

http://git-wip-us.apache.org/repos/asf/camel/blob/c0d37429/camel-core/src/main/java/org/apache/camel/model/ThreadsDefinition.java
----------------------------------------------------------------------
diff --git 
a/camel-core/src/main/java/org/apache/camel/model/ThreadsDefinition.java 
b/camel-core/src/main/java/org/apache/camel/model/ThreadsDefinition.java
index 6eedc64..a4e9e5d 100644
--- a/camel-core/src/main/java/org/apache/camel/model/ThreadsDefinition.java
+++ b/camel-core/src/main/java/org/apache/camel/model/ThreadsDefinition.java
@@ -36,6 +36,7 @@ import org.apache.camel.processor.Pipeline;
 import org.apache.camel.processor.ThreadsProcessor;
 import org.apache.camel.spi.ExecutorServiceManager;
 import org.apache.camel.spi.Label;
+import org.apache.camel.spi.Metadata;
 import org.apache.camel.spi.RouteContext;
 import org.apache.camel.spi.ThreadPoolProfile;
 
@@ -68,11 +69,11 @@ public class ThreadsDefinition extends 
OutputDefinition<ThreadsDefinition> imple
     private Integer maxQueueSize;
     @XmlAttribute
     private Boolean allowCoreThreadTimeOut;
-    @XmlAttribute
+    @XmlAttribute @Metadata(defaultValue = "Threads")
     private String threadName;
     @XmlAttribute
     private ThreadPoolRejectedPolicy rejectedPolicy;
-    @XmlAttribute
+    @XmlAttribute @Metadata(defaultValue = "true")
     private Boolean callerRunsWhenRejected;
     
     public ThreadsDefinition() {

http://git-wip-us.apache.org/repos/asf/camel/blob/c0d37429/camel-core/src/main/java/org/apache/camel/model/ThrottleDefinition.java
----------------------------------------------------------------------
diff --git 
a/camel-core/src/main/java/org/apache/camel/model/ThrottleDefinition.java 
b/camel-core/src/main/java/org/apache/camel/model/ThrottleDefinition.java
index e4fb2c6..05f4d89 100644
--- a/camel-core/src/main/java/org/apache/camel/model/ThrottleDefinition.java
+++ b/camel-core/src/main/java/org/apache/camel/model/ThrottleDefinition.java
@@ -30,6 +30,7 @@ import org.apache.camel.Processor;
 import org.apache.camel.builder.ExpressionBuilder;
 import org.apache.camel.processor.Throttler;
 import org.apache.camel.spi.Label;
+import org.apache.camel.spi.Metadata;
 import org.apache.camel.spi.RouteContext;
 import org.apache.camel.util.ObjectHelper;
 
@@ -48,11 +49,11 @@ public class ThrottleDefinition extends ExpressionNode 
implements ExecutorServic
     private ExecutorService executorService;
     @XmlAttribute
     private String executorServiceRef;
-    @XmlAttribute
+    @XmlAttribute @Metadata(defaultValue = "1000")
     private Long timePeriodMillis;
     @XmlAttribute
     private Boolean asyncDelayed;
-    @XmlAttribute
+    @XmlAttribute @Metadata(defaultValue = "true")
     private Boolean callerRunsWhenRejected;
     @XmlAttribute
     private Boolean rejectExecution;

http://git-wip-us.apache.org/repos/asf/camel/blob/c0d37429/camel-core/src/main/java/org/apache/camel/model/WireTapDefinition.java
----------------------------------------------------------------------
diff --git 
a/camel-core/src/main/java/org/apache/camel/model/WireTapDefinition.java 
b/camel-core/src/main/java/org/apache/camel/model/WireTapDefinition.java
index b6892c6..90d286f 100644
--- a/camel-core/src/main/java/org/apache/camel/model/WireTapDefinition.java
+++ b/camel-core/src/main/java/org/apache/camel/model/WireTapDefinition.java
@@ -35,6 +35,7 @@ import org.apache.camel.Producer;
 import org.apache.camel.processor.CamelInternalProcessor;
 import org.apache.camel.processor.WireTapProcessor;
 import org.apache.camel.spi.Label;
+import org.apache.camel.spi.Metadata;
 import org.apache.camel.spi.RouteContext;
 import org.apache.camel.util.CamelContextHelper;
 
@@ -64,7 +65,7 @@ public class WireTapDefinition<Type extends 
ProcessorDefinition<Type>> extends N
     private ExecutorService executorService;
     @XmlAttribute
     private String executorServiceRef;
-    @XmlAttribute
+    @XmlAttribute @Metadata(defaultValue = "true")
     private Boolean copy;
     @XmlAttribute
     private String onPrepareRef;

http://git-wip-us.apache.org/repos/asf/camel/blob/c0d37429/camel-core/src/main/java/org/apache/camel/model/config/BatchResequencerConfig.java
----------------------------------------------------------------------
diff --git 
a/camel-core/src/main/java/org/apache/camel/model/config/BatchResequencerConfig.java
 
b/camel-core/src/main/java/org/apache/camel/model/config/BatchResequencerConfig.java
index 3c65d3e..10526ff 100644
--- 
a/camel-core/src/main/java/org/apache/camel/model/config/BatchResequencerConfig.java
+++ 
b/camel-core/src/main/java/org/apache/camel/model/config/BatchResequencerConfig.java
@@ -22,6 +22,7 @@ import javax.xml.bind.annotation.XmlAttribute;
 import javax.xml.bind.annotation.XmlRootElement;
 
 import org.apache.camel.spi.Label;
+import org.apache.camel.spi.Metadata;
 
 /**
  * Configures batch-processing resequence eip.
@@ -30,9 +31,9 @@ import org.apache.camel.spi.Label;
 @XmlRootElement(name = "batch-config")
 @XmlAccessorType(XmlAccessType.FIELD)
 public class BatchResequencerConfig extends ResequencerConfig {
-    @XmlAttribute
+    @XmlAttribute @Metadata(defaultValue = "100")
     private Integer batchSize;
-    @XmlAttribute
+    @XmlAttribute @Metadata(defaultValue = "1000")
     private Long batchTimeout;
     @XmlAttribute
     private Boolean allowDuplicates;

http://git-wip-us.apache.org/repos/asf/camel/blob/c0d37429/camel-core/src/main/java/org/apache/camel/model/config/StreamResequencerConfig.java
----------------------------------------------------------------------
diff --git 
a/camel-core/src/main/java/org/apache/camel/model/config/StreamResequencerConfig.java
 
b/camel-core/src/main/java/org/apache/camel/model/config/StreamResequencerConfig.java
index 8fac5c7..df01ce8 100644
--- 
a/camel-core/src/main/java/org/apache/camel/model/config/StreamResequencerConfig.java
+++ 
b/camel-core/src/main/java/org/apache/camel/model/config/StreamResequencerConfig.java
@@ -25,6 +25,7 @@ import javax.xml.bind.annotation.XmlTransient;
 import org.apache.camel.processor.resequencer.DefaultExchangeComparator;
 import org.apache.camel.processor.resequencer.ExpressionResultComparator;
 import org.apache.camel.spi.Label;
+import org.apache.camel.spi.Metadata;
 
 /**
  * Configures stream-processing resequence eip.
@@ -33,9 +34,9 @@ import org.apache.camel.spi.Label;
 @XmlRootElement(name = "stream-config")
 @XmlAccessorType(XmlAccessType.FIELD)
 public class StreamResequencerConfig extends ResequencerConfig {
-    @XmlAttribute
+    @XmlAttribute @Metadata(defaultValue = "100")
     private Integer capacity;
-    @XmlAttribute
+    @XmlAttribute @Metadata(defaultValue = "1000")
     private Long timeout;
     @XmlAttribute
     private Boolean ignoreInvalidExchanges;

http://git-wip-us.apache.org/repos/asf/camel/blob/c0d37429/camel-core/src/main/java/org/apache/camel/model/dataformat/Base64DataFormat.java
----------------------------------------------------------------------
diff --git 
a/camel-core/src/main/java/org/apache/camel/model/dataformat/Base64DataFormat.java
 
b/camel-core/src/main/java/org/apache/camel/model/dataformat/Base64DataFormat.java
index f3f5e71..1f56442 100644
--- 
a/camel-core/src/main/java/org/apache/camel/model/dataformat/Base64DataFormat.java
+++ 
b/camel-core/src/main/java/org/apache/camel/model/dataformat/Base64DataFormat.java
@@ -25,6 +25,7 @@ import org.apache.camel.CamelContext;
 import org.apache.camel.model.DataFormatDefinition;
 import org.apache.camel.spi.DataFormat;
 import org.apache.camel.spi.Label;
+import org.apache.camel.spi.Metadata;
 
 /**
  * Base64 data format
@@ -36,9 +37,9 @@ import org.apache.camel.spi.Label;
 @XmlAccessorType(XmlAccessType.FIELD)
 public class Base64DataFormat extends DataFormatDefinition {
 
-    @XmlAttribute
+    @XmlAttribute @Metadata(defaultValue = "76")
     private Integer lineLength;
-    @XmlAttribute
+    @XmlAttribute @Metadata(defaultValue = "\r\n")
     private String lineSeparator;
     @XmlAttribute
     private Boolean urlSafe;

http://git-wip-us.apache.org/repos/asf/camel/blob/c0d37429/camel-core/src/main/java/org/apache/camel/model/dataformat/CastorDataFormat.java
----------------------------------------------------------------------
diff --git 
a/camel-core/src/main/java/org/apache/camel/model/dataformat/CastorDataFormat.java
 
b/camel-core/src/main/java/org/apache/camel/model/dataformat/CastorDataFormat.java
index 0d03e36..0460d92 100644
--- 
a/camel-core/src/main/java/org/apache/camel/model/dataformat/CastorDataFormat.java
+++ 
b/camel-core/src/main/java/org/apache/camel/model/dataformat/CastorDataFormat.java
@@ -25,6 +25,7 @@ import org.apache.camel.CamelContext;
 import org.apache.camel.model.DataFormatDefinition;
 import org.apache.camel.spi.DataFormat;
 import org.apache.camel.spi.Label;
+import org.apache.camel.spi.Metadata;
 
 /**
  * Castor data format
@@ -39,7 +40,7 @@ public class CastorDataFormat extends DataFormatDefinition {
     private String mappingFile;
     @XmlAttribute
     private Boolean validation;
-    @XmlAttribute
+    @XmlAttribute @Metadata(defaultValue = "UTF-8")
     private String encoding;
     @XmlAttribute
     private String[] packages;

http://git-wip-us.apache.org/repos/asf/camel/blob/c0d37429/camel-core/src/main/java/org/apache/camel/model/dataformat/CryptoDataFormat.java
----------------------------------------------------------------------
diff --git 
a/camel-core/src/main/java/org/apache/camel/model/dataformat/CryptoDataFormat.java
 
b/camel-core/src/main/java/org/apache/camel/model/dataformat/CryptoDataFormat.java
index 327da9a..d00130b 100644
--- 
a/camel-core/src/main/java/org/apache/camel/model/dataformat/CryptoDataFormat.java
+++ 
b/camel-core/src/main/java/org/apache/camel/model/dataformat/CryptoDataFormat.java
@@ -27,6 +27,7 @@ import org.apache.camel.CamelContext;
 import org.apache.camel.model.DataFormatDefinition;
 import org.apache.camel.spi.DataFormat;
 import org.apache.camel.spi.Label;
+import org.apache.camel.spi.Metadata;
 import org.apache.camel.spi.RouteContext;
 import org.apache.camel.util.CamelContextHelper;
 import org.apache.camel.util.ObjectHelper;
@@ -40,7 +41,7 @@ import org.apache.camel.util.ObjectHelper;
 @XmlRootElement(name = "crypto")
 @XmlAccessorType(XmlAccessType.FIELD)
 public class CryptoDataFormat extends DataFormatDefinition {
-    @XmlAttribute
+    @XmlAttribute @Metadata(defaultValue = "DES/CBC/PKCS5Padding")
     private String algorithm;
     @XmlAttribute
     private String cryptoProvider;
@@ -52,7 +53,7 @@ public class CryptoDataFormat extends DataFormatDefinition {
     private String algorithmParameterRef;
     @XmlAttribute
     private Integer buffersize;
-    @XmlAttribute
+    @XmlAttribute @Metadata(defaultValue = "HmacSHA1")
     private String macAlgorithm = "HmacSHA1";
     @XmlAttribute
     private Boolean shouldAppendHMAC;

http://git-wip-us.apache.org/repos/asf/camel/blob/c0d37429/camel-core/src/main/java/org/apache/camel/model/dataformat/FlatpackDataFormat.java
----------------------------------------------------------------------
diff --git 
a/camel-core/src/main/java/org/apache/camel/model/dataformat/FlatpackDataFormat.java
 
b/camel-core/src/main/java/org/apache/camel/model/dataformat/FlatpackDataFormat.java
index fa1c3f3..3d2d4c4 100644
--- 
a/camel-core/src/main/java/org/apache/camel/model/dataformat/FlatpackDataFormat.java
+++ 
b/camel-core/src/main/java/org/apache/camel/model/dataformat/FlatpackDataFormat.java
@@ -25,6 +25,7 @@ import org.apache.camel.CamelContext;
 import org.apache.camel.model.DataFormatDefinition;
 import org.apache.camel.spi.DataFormat;
 import org.apache.camel.spi.Label;
+import org.apache.camel.spi.Metadata;
 import org.apache.camel.spi.RouteContext;
 import org.apache.camel.util.CamelContextHelper;
 import org.apache.camel.util.ObjectHelper;
@@ -42,11 +43,11 @@ public class FlatpackDataFormat extends 
DataFormatDefinition {
     private String definition;
     @XmlAttribute
     private Boolean fixed;
-    @XmlAttribute
+    @XmlAttribute @Metadata(defaultValue = "true")
     private Boolean ignoreFirstRecord;
-    @XmlAttribute
+    @XmlAttribute @Metadata(defaultValue = "\"")
     private String textQualifier;
-    @XmlAttribute
+    @XmlAttribute @Metadata(defaultValue = ",")
     private String delimiter;
     @XmlAttribute
     private Boolean allowShortLines;

http://git-wip-us.apache.org/repos/asf/camel/blob/c0d37429/camel-core/src/main/java/org/apache/camel/model/dataformat/HL7DataFormat.java
----------------------------------------------------------------------
diff --git 
a/camel-core/src/main/java/org/apache/camel/model/dataformat/HL7DataFormat.java 
b/camel-core/src/main/java/org/apache/camel/model/dataformat/HL7DataFormat.java
index 5e43f92..3ac4c82 100644
--- 
a/camel-core/src/main/java/org/apache/camel/model/dataformat/HL7DataFormat.java
+++ 
b/camel-core/src/main/java/org/apache/camel/model/dataformat/HL7DataFormat.java
@@ -26,6 +26,7 @@ import org.apache.camel.CamelContext;
 import org.apache.camel.model.DataFormatDefinition;
 import org.apache.camel.spi.DataFormat;
 import org.apache.camel.spi.Label;
+import org.apache.camel.spi.Metadata;
 
 /**
  * HL7 data format
@@ -36,7 +37,7 @@ import org.apache.camel.spi.Label;
 @XmlRootElement(name = "hl7")
 @XmlAccessorType(XmlAccessType.FIELD)
 public class HL7DataFormat extends DataFormatDefinition {
-    @XmlAttribute
+    @XmlAttribute @Metadata(defaultValue = "true")
     private Boolean validate;
     @XmlTransient
     private Object parser;

http://git-wip-us.apache.org/repos/asf/camel/blob/c0d37429/camel-core/src/main/java/org/apache/camel/model/dataformat/JsonDataFormat.java
----------------------------------------------------------------------
diff --git 
a/camel-core/src/main/java/org/apache/camel/model/dataformat/JsonDataFormat.java
 
b/camel-core/src/main/java/org/apache/camel/model/dataformat/JsonDataFormat.java
index 6b9dd6d..7da7622 100644
--- 
a/camel-core/src/main/java/org/apache/camel/model/dataformat/JsonDataFormat.java
+++ 
b/camel-core/src/main/java/org/apache/camel/model/dataformat/JsonDataFormat.java
@@ -26,6 +26,7 @@ import org.apache.camel.CamelContext;
 import org.apache.camel.model.DataFormatDefinition;
 import org.apache.camel.spi.DataFormat;
 import org.apache.camel.spi.Label;
+import org.apache.camel.spi.Metadata;
 import org.apache.camel.spi.RouteContext;
 import org.apache.camel.util.ObjectHelper;
 
@@ -40,7 +41,7 @@ import org.apache.camel.util.ObjectHelper;
 public class JsonDataFormat extends DataFormatDefinition {
     @XmlAttribute
     private Boolean prettyPrint;
-    @XmlAttribute
+    @XmlAttribute @Metadata(defaultValue = "XStream")
     private JsonLibrary library = JsonLibrary.XStream;
     @XmlAttribute
     private String unmarshalTypeName;

http://git-wip-us.apache.org/repos/asf/camel/blob/c0d37429/camel-core/src/main/java/org/apache/camel/model/dataformat/PGPDataFormat.java
----------------------------------------------------------------------
diff --git 
a/camel-core/src/main/java/org/apache/camel/model/dataformat/PGPDataFormat.java 
b/camel-core/src/main/java/org/apache/camel/model/dataformat/PGPDataFormat.java
index 955ad8f..e9f257b 100644
--- 
a/camel-core/src/main/java/org/apache/camel/model/dataformat/PGPDataFormat.java
+++ 
b/camel-core/src/main/java/org/apache/camel/model/dataformat/PGPDataFormat.java
@@ -25,6 +25,7 @@ import org.apache.camel.CamelContext;
 import org.apache.camel.model.DataFormatDefinition;
 import org.apache.camel.spi.DataFormat;
 import org.apache.camel.spi.Label;
+import org.apache.camel.spi.Metadata;
 
 /**
  * PGP data format
@@ -49,7 +50,7 @@ public class PGPDataFormat extends DataFormatDefinition {
     private String signatureKeyRing;
     @XmlAttribute
     private Boolean armored;
-    @XmlAttribute
+    @XmlAttribute @Metadata(defaultValue = "true")
     private Boolean integrity;
     @XmlAttribute
     private String provider;

http://git-wip-us.apache.org/repos/asf/camel/blob/c0d37429/camel-core/src/main/java/org/apache/camel/model/dataformat/SoapJaxbDataFormat.java
----------------------------------------------------------------------
diff --git 
a/camel-core/src/main/java/org/apache/camel/model/dataformat/SoapJaxbDataFormat.java
 
b/camel-core/src/main/java/org/apache/camel/model/dataformat/SoapJaxbDataFormat.java
index 79c9b83..e0cb3a7 100644
--- 
a/camel-core/src/main/java/org/apache/camel/model/dataformat/SoapJaxbDataFormat.java
+++ 
b/camel-core/src/main/java/org/apache/camel/model/dataformat/SoapJaxbDataFormat.java
@@ -26,6 +26,7 @@ import org.apache.camel.CamelContext;
 import org.apache.camel.model.DataFormatDefinition;
 import org.apache.camel.spi.DataFormat;
 import org.apache.camel.spi.Label;
+import org.apache.camel.spi.Metadata;
 
 /**
  * SOAP data format
@@ -42,7 +43,7 @@ public class SoapJaxbDataFormat extends DataFormatDefinition {
     private String elementNameStrategyRef;
     @XmlTransient
     private Object elementNameStrategy;
-    @XmlAttribute
+    @XmlAttribute @Metadata(defaultValue = "1.1")
     private String version;
     @XmlAttribute
     private String namespacePrefixRef;

http://git-wip-us.apache.org/repos/asf/camel/blob/c0d37429/camel-core/src/main/java/org/apache/camel/model/dataformat/UniVocityAbstractDataFormat.java
----------------------------------------------------------------------
diff --git 
a/camel-core/src/main/java/org/apache/camel/model/dataformat/UniVocityAbstractDataFormat.java
 
b/camel-core/src/main/java/org/apache/camel/model/dataformat/UniVocityAbstractDataFormat.java
index 4529dbb..0ada7ab 100644
--- 
a/camel-core/src/main/java/org/apache/camel/model/dataformat/UniVocityAbstractDataFormat.java
+++ 
b/camel-core/src/main/java/org/apache/camel/model/dataformat/UniVocityAbstractDataFormat.java
@@ -28,6 +28,7 @@ import org.apache.camel.CamelContext;
 import org.apache.camel.model.DataFormatDefinition;
 import org.apache.camel.spi.DataFormat;
 import org.apache.camel.spi.Label;
+import org.apache.camel.spi.Metadata;
 
 /**
  * Represents the common parts of all uniVocity {@link 
org.apache.camel.spi.DataFormat} parsers.
@@ -38,11 +39,11 @@ public abstract class UniVocityAbstractDataFormat extends 
DataFormatDefinition {
 
     @XmlAttribute
     protected String nullValue;
-    @XmlAttribute
+    @XmlAttribute @Metadata(defaultValue = "true")
     protected Boolean skipEmptyLines;
-    @XmlAttribute
+    @XmlAttribute @Metadata(defaultValue = "true")
     protected Boolean ignoreTrailingWhitespaces;
-    @XmlAttribute
+    @XmlAttribute @Metadata(defaultValue = "true")
     protected Boolean ignoreLeadingWhitespaces;
     @XmlAttribute
     protected Boolean headersDisabled;
@@ -56,9 +57,9 @@ public abstract class UniVocityAbstractDataFormat extends 
DataFormatDefinition {
     protected String emptyValue;
     @XmlAttribute
     protected String lineSeparator;
-    @XmlAttribute
+    @XmlAttribute @Metadata(defaultValue = "\n")
     protected String normalizedLineSeparator;
-    @XmlAttribute
+    @XmlAttribute @Metadata(defaultValue = "#")
     protected String comment;
     @XmlAttribute
     protected Boolean lazyLoad;

http://git-wip-us.apache.org/repos/asf/camel/blob/c0d37429/camel-core/src/main/java/org/apache/camel/model/dataformat/UniVocityCsvDataFormat.java
----------------------------------------------------------------------
diff --git 
a/camel-core/src/main/java/org/apache/camel/model/dataformat/UniVocityCsvDataFormat.java
 
b/camel-core/src/main/java/org/apache/camel/model/dataformat/UniVocityCsvDataFormat.java
index 282b767..0474808 100644
--- 
a/camel-core/src/main/java/org/apache/camel/model/dataformat/UniVocityCsvDataFormat.java
+++ 
b/camel-core/src/main/java/org/apache/camel/model/dataformat/UniVocityCsvDataFormat.java
@@ -24,6 +24,7 @@ import javax.xml.bind.annotation.XmlRootElement;
 import org.apache.camel.CamelContext;
 import org.apache.camel.spi.DataFormat;
 import org.apache.camel.spi.Label;
+import org.apache.camel.spi.Metadata;
 
 /**
  * UniVocity CSV data format
@@ -34,11 +35,11 @@ import org.apache.camel.spi.Label;
 public class UniVocityCsvDataFormat extends UniVocityAbstractDataFormat {
     @XmlAttribute
     protected Boolean quoteAllFields;
-    @XmlAttribute
+    @XmlAttribute @Metadata(defaultValue = "\"")
     protected String quote;
-    @XmlAttribute
+    @XmlAttribute @Metadata(defaultValue = "\"")
     protected String quoteEscape;
-    @XmlAttribute
+    @XmlAttribute @Metadata(defaultValue = ",")
     protected String delimiter;
 
     public UniVocityCsvDataFormat() {

http://git-wip-us.apache.org/repos/asf/camel/blob/c0d37429/camel-core/src/main/java/org/apache/camel/model/dataformat/UniVocityFixedWidthDataFormat.java
----------------------------------------------------------------------
diff --git 
a/camel-core/src/main/java/org/apache/camel/model/dataformat/UniVocityFixedWidthDataFormat.java
 
b/camel-core/src/main/java/org/apache/camel/model/dataformat/UniVocityFixedWidthDataFormat.java
index 86b7e8f..dbb0967 100644
--- 
a/camel-core/src/main/java/org/apache/camel/model/dataformat/UniVocityFixedWidthDataFormat.java
+++ 
b/camel-core/src/main/java/org/apache/camel/model/dataformat/UniVocityFixedWidthDataFormat.java
@@ -24,6 +24,7 @@ import javax.xml.bind.annotation.XmlRootElement;
 import org.apache.camel.CamelContext;
 import org.apache.camel.spi.DataFormat;
 import org.apache.camel.spi.Label;
+import org.apache.camel.spi.Metadata;
 
 /**
  * UniVocity fixed-width data format
@@ -36,7 +37,7 @@ public class UniVocityFixedWidthDataFormat extends 
UniVocityAbstractDataFormat {
     protected Boolean skipTrailingCharsUntilNewline;
     @XmlAttribute
     protected Boolean recordEndsOnNewline;
-    @XmlAttribute
+    @XmlAttribute @Metadata(defaultValue = " ")
     protected String padding;
 
     public UniVocityFixedWidthDataFormat() {

http://git-wip-us.apache.org/repos/asf/camel/blob/c0d37429/camel-core/src/main/java/org/apache/camel/model/dataformat/UniVocityTsvDataFormat.java
----------------------------------------------------------------------
diff --git 
a/camel-core/src/main/java/org/apache/camel/model/dataformat/UniVocityTsvDataFormat.java
 
b/camel-core/src/main/java/org/apache/camel/model/dataformat/UniVocityTsvDataFormat.java
index 88852b7..bd70593 100644
--- 
a/camel-core/src/main/java/org/apache/camel/model/dataformat/UniVocityTsvDataFormat.java
+++ 
b/camel-core/src/main/java/org/apache/camel/model/dataformat/UniVocityTsvDataFormat.java
@@ -24,6 +24,7 @@ import javax.xml.bind.annotation.XmlRootElement;
 import org.apache.camel.CamelContext;
 import org.apache.camel.spi.DataFormat;
 import org.apache.camel.spi.Label;
+import org.apache.camel.spi.Metadata;
 
 /**
  * UniVocity TSV data format
@@ -32,7 +33,7 @@ import org.apache.camel.spi.Label;
 @XmlRootElement(name = "univocity-tsv")
 @XmlAccessorType(XmlAccessType.FIELD)
 public class UniVocityTsvDataFormat extends UniVocityAbstractDataFormat {
-    @XmlAttribute
+    @XmlAttribute @Metadata(defaultValue = "\\")
     protected String escapeChar;
 
     public UniVocityTsvDataFormat() {

http://git-wip-us.apache.org/repos/asf/camel/blob/c0d37429/camel-core/src/main/java/org/apache/camel/model/dataformat/XMLSecurityDataFormat.java
----------------------------------------------------------------------
diff --git 
a/camel-core/src/main/java/org/apache/camel/model/dataformat/XMLSecurityDataFormat.java
 
b/camel-core/src/main/java/org/apache/camel/model/dataformat/XMLSecurityDataFormat.java
index 7217c0d..cd49c99 100644
--- 
a/camel-core/src/main/java/org/apache/camel/model/dataformat/XMLSecurityDataFormat.java
+++ 
b/camel-core/src/main/java/org/apache/camel/model/dataformat/XMLSecurityDataFormat.java
@@ -28,6 +28,7 @@ import org.apache.camel.CamelContext;
 import org.apache.camel.model.DataFormatDefinition;
 import org.apache.camel.spi.DataFormat;
 import org.apache.camel.spi.Label;
+import org.apache.camel.spi.Metadata;
 import org.apache.camel.spi.NamespaceAware;
 import org.apache.camel.util.jsse.KeyStoreParameters;
 
@@ -41,7 +42,7 @@ public class XMLSecurityDataFormat extends 
DataFormatDefinition implements Names
 
     private static final String TRIPLEDES = 
"http://www.w3.org/2001/04/xmlenc#tripledes-cbc";;
 
-    @XmlAttribute
+    @XmlAttribute @Metadata(defaultValue = "TRIPLEDES")
     private String xmlCipherAlgorithm;
     @XmlAttribute
     private String passPhrase;
@@ -49,7 +50,7 @@ public class XMLSecurityDataFormat extends 
DataFormatDefinition implements Names
     private String secureTag;
     @XmlAttribute
     private Boolean secureTagContents;
-    @XmlAttribute
+    @XmlAttribute  @Metadata(defaultValue = "RSA_OAEP")
     private String keyCipherAlgorithm;
     @XmlAttribute
     private String recipientKeyAlias;
@@ -58,11 +59,11 @@ public class XMLSecurityDataFormat extends 
DataFormatDefinition implements Names
     private String keyOrTrustStoreParametersId;
     @XmlAttribute
     private String keyPassword;
-    @XmlAttribute
+    @XmlAttribute  @Metadata(defaultValue = "SHA1")
     private String digestAlgorithm;
-    @XmlAttribute
+    @XmlAttribute  @Metadata(defaultValue = "MGF1_SHA1")
     private String mgfAlgorithm;
-    @XmlAttribute
+    @XmlAttribute @Metadata(defaultValue = "true")
     private Boolean addKeyValueForEncryptedKey;
     @XmlTransient
     private KeyStoreParameters keyOrTrustStoreParameters;

http://git-wip-us.apache.org/repos/asf/camel/blob/c0d37429/camel-core/src/main/java/org/apache/camel/model/dataformat/ZipDataFormat.java
----------------------------------------------------------------------
diff --git 
a/camel-core/src/main/java/org/apache/camel/model/dataformat/ZipDataFormat.java 
b/camel-core/src/main/java/org/apache/camel/model/dataformat/ZipDataFormat.java
index 39f9cf7..1795c3f 100644
--- 
a/camel-core/src/main/java/org/apache/camel/model/dataformat/ZipDataFormat.java
+++ 
b/camel-core/src/main/java/org/apache/camel/model/dataformat/ZipDataFormat.java
@@ -25,6 +25,7 @@ import javax.xml.bind.annotation.XmlRootElement;
 import org.apache.camel.model.DataFormatDefinition;
 import org.apache.camel.spi.DataFormat;
 import org.apache.camel.spi.Label;
+import org.apache.camel.spi.Metadata;
 import org.apache.camel.spi.RouteContext;
 
 /**
@@ -34,7 +35,7 @@ import org.apache.camel.spi.RouteContext;
 @XmlRootElement(name = "zip")
 @XmlAccessorType(XmlAccessType.FIELD)
 public class ZipDataFormat extends DataFormatDefinition {
-    @XmlAttribute
+    @XmlAttribute @Metadata(defaultValue = "-1")
     private Integer compressionLevel;
     
     public ZipDataFormat() {
@@ -60,7 +61,7 @@ public class ZipDataFormat extends DataFormatDefinition {
 
     /**
      * To specify a specific compression between 0-9.
-     * 0 is no compression, and 9 is best compression.
+     * -1 is default compression, 0 is no compression, and 9 is best 
compression.
      */
     public void setCompressionLevel(Integer compressionLevel) {
         this.compressionLevel = compressionLevel;

http://git-wip-us.apache.org/repos/asf/camel/blob/c0d37429/camel-core/src/main/java/org/apache/camel/model/loadbalancer/FailoverLoadBalancerDefinition.java
----------------------------------------------------------------------
diff --git 
a/camel-core/src/main/java/org/apache/camel/model/loadbalancer/FailoverLoadBalancerDefinition.java
 
b/camel-core/src/main/java/org/apache/camel/model/loadbalancer/FailoverLoadBalancerDefinition.java
index c091980..f0fd211 100644
--- 
a/camel-core/src/main/java/org/apache/camel/model/loadbalancer/FailoverLoadBalancerDefinition.java
+++ 
b/camel-core/src/main/java/org/apache/camel/model/loadbalancer/FailoverLoadBalancerDefinition.java
@@ -29,6 +29,7 @@ import org.apache.camel.model.LoadBalancerDefinition;
 import org.apache.camel.processor.loadbalancer.FailOverLoadBalancer;
 import org.apache.camel.processor.loadbalancer.LoadBalancer;
 import org.apache.camel.spi.Label;
+import org.apache.camel.spi.Metadata;
 import org.apache.camel.spi.RouteContext;
 
 /**
@@ -47,7 +48,7 @@ public class FailoverLoadBalancerDefinition extends 
LoadBalancerDefinition {
     private List<String> exceptions = new ArrayList<String>();
     @XmlAttribute
     private Boolean roundRobin;
-    @XmlAttribute
+    @XmlAttribute @Metadata(defaultValue = "-1")
     private Integer maximumFailoverAttempts;
 
     public FailoverLoadBalancerDefinition() {

http://git-wip-us.apache.org/repos/asf/camel/blob/c0d37429/camel-core/src/main/java/org/apache/camel/model/loadbalancer/WeightedLoadBalancerDefinition.java
----------------------------------------------------------------------
diff --git 
a/camel-core/src/main/java/org/apache/camel/model/loadbalancer/WeightedLoadBalancerDefinition.java
 
b/camel-core/src/main/java/org/apache/camel/model/loadbalancer/WeightedLoadBalancerDefinition.java
index ce603b3..60b45c8 100644
--- 
a/camel-core/src/main/java/org/apache/camel/model/loadbalancer/WeightedLoadBalancerDefinition.java
+++ 
b/camel-core/src/main/java/org/apache/camel/model/loadbalancer/WeightedLoadBalancerDefinition.java
@@ -29,6 +29,7 @@ import 
org.apache.camel.processor.loadbalancer.WeightedLoadBalancer;
 import org.apache.camel.processor.loadbalancer.WeightedRandomLoadBalancer;
 import org.apache.camel.processor.loadbalancer.WeightedRoundRobinLoadBalancer;
 import org.apache.camel.spi.Label;
+import org.apache.camel.spi.Metadata;
 import org.apache.camel.spi.RouteContext;
 import org.apache.camel.util.ObjectHelper;
 
@@ -47,7 +48,7 @@ public class WeightedLoadBalancerDefinition extends 
LoadBalancerDefinition {
     private Boolean roundRobin;
     @XmlAttribute(required = true)
     private String distributionRatio;
-    @XmlAttribute
+    @XmlAttribute @Metadata(defaultValue = ",")
     private String distributionRatioDelimiter;
 
     public WeightedLoadBalancerDefinition() {

http://git-wip-us.apache.org/repos/asf/camel/blob/c0d37429/camel-core/src/main/java/org/apache/camel/model/rest/RestBindingDefinition.java
----------------------------------------------------------------------
diff --git 
a/camel-core/src/main/java/org/apache/camel/model/rest/RestBindingDefinition.java
 
b/camel-core/src/main/java/org/apache/camel/model/rest/RestBindingDefinition.java
index d7d7759..e094a96 100644
--- 
a/camel-core/src/main/java/org/apache/camel/model/rest/RestBindingDefinition.java
+++ 
b/camel-core/src/main/java/org/apache/camel/model/rest/RestBindingDefinition.java
@@ -30,6 +30,7 @@ import org.apache.camel.model.NoOutputDefinition;
 import org.apache.camel.processor.binding.RestBindingProcessor;
 import org.apache.camel.spi.DataFormat;
 import org.apache.camel.spi.Label;
+import org.apache.camel.spi.Metadata;
 import org.apache.camel.spi.RouteContext;
 import org.apache.camel.util.IntrospectionSupport;
 
@@ -47,7 +48,7 @@ public class RestBindingDefinition extends 
NoOutputDefinition<RestBindingDefinit
     @XmlAttribute
     private String produces;
 
-    @XmlAttribute
+    @XmlAttribute @Metadata(defaultValue = "auto")
     private RestBindingMode bindingMode;
 
     @XmlAttribute

http://git-wip-us.apache.org/repos/asf/camel/blob/c0d37429/camel-core/src/main/java/org/apache/camel/model/rest/RestConfigurationDefinition.java
----------------------------------------------------------------------
diff --git 
a/camel-core/src/main/java/org/apache/camel/model/rest/RestConfigurationDefinition.java
 
b/camel-core/src/main/java/org/apache/camel/model/rest/RestConfigurationDefinition.java
index 25e6cfd..4365a0c 100644
--- 
a/camel-core/src/main/java/org/apache/camel/model/rest/RestConfigurationDefinition.java
+++ 
b/camel-core/src/main/java/org/apache/camel/model/rest/RestConfigurationDefinition.java
@@ -28,6 +28,7 @@ import javax.xml.bind.annotation.XmlRootElement;
 
 import org.apache.camel.CamelContext;
 import org.apache.camel.spi.Label;
+import org.apache.camel.spi.Metadata;
 import org.apache.camel.spi.RestConfiguration;
 import org.apache.camel.util.CamelContextHelper;
 
@@ -57,7 +58,7 @@ public class RestConfigurationDefinition {
     @XmlAttribute
     private RestHostNameResolver hostNameResolver;
 
-    @XmlAttribute
+    @XmlAttribute @Metadata(defaultValue = "auto")
     private RestBindingMode bindingMode;
 
     @XmlAttribute

http://git-wip-us.apache.org/repos/asf/camel/blob/c0d37429/camel-core/src/main/java/org/apache/camel/model/rest/RestDefinition.java
----------------------------------------------------------------------
diff --git 
a/camel-core/src/main/java/org/apache/camel/model/rest/RestDefinition.java 
b/camel-core/src/main/java/org/apache/camel/model/rest/RestDefinition.java
index 78bdff0..d7c6f0d 100644
--- a/camel-core/src/main/java/org/apache/camel/model/rest/RestDefinition.java
+++ b/camel-core/src/main/java/org/apache/camel/model/rest/RestDefinition.java
@@ -32,6 +32,7 @@ import org.apache.camel.model.OptionalIdentifiedDefinition;
 import org.apache.camel.model.RouteDefinition;
 import org.apache.camel.model.ToDefinition;
 import org.apache.camel.spi.Label;
+import org.apache.camel.spi.Metadata;
 import org.apache.camel.util.ObjectHelper;
 import org.apache.camel.util.URISupport;
 
@@ -52,7 +53,7 @@ public class RestDefinition extends 
OptionalIdentifiedDefinition<RestDefinition>
     @XmlAttribute
     private String produces;
 
-    @XmlAttribute
+    @XmlAttribute @Metadata(defaultValue = "auto")
     private RestBindingMode bindingMode;
 
     @XmlAttribute

http://git-wip-us.apache.org/repos/asf/camel/blob/c0d37429/camel-core/src/main/java/org/apache/camel/model/rest/VerbDefinition.java
----------------------------------------------------------------------
diff --git 
a/camel-core/src/main/java/org/apache/camel/model/rest/VerbDefinition.java 
b/camel-core/src/main/java/org/apache/camel/model/rest/VerbDefinition.java
index e8686ff..6a1b3a5 100644
--- a/camel-core/src/main/java/org/apache/camel/model/rest/VerbDefinition.java
+++ b/camel-core/src/main/java/org/apache/camel/model/rest/VerbDefinition.java
@@ -28,6 +28,7 @@ import org.apache.camel.model.OptionalIdentifiedDefinition;
 import org.apache.camel.model.RouteDefinition;
 import org.apache.camel.model.ToDefinition;
 import org.apache.camel.spi.Label;
+import org.apache.camel.spi.Metadata;
 
 /**
  * Rest command
@@ -49,7 +50,7 @@ public class VerbDefinition extends 
OptionalIdentifiedDefinition<VerbDefinition>
     @XmlAttribute
     private String produces;
 
-    @XmlAttribute
+    @XmlAttribute @Metadata(defaultValue = "auto")
     private RestBindingMode bindingMode;
 
     @XmlAttribute

http://git-wip-us.apache.org/repos/asf/camel/blob/c0d37429/tooling/apt/src/main/java/org/apache/camel/tools/apt/EipAnnotationProcessor.java
----------------------------------------------------------------------
diff --git 
a/tooling/apt/src/main/java/org/apache/camel/tools/apt/EipAnnotationProcessor.java
 
b/tooling/apt/src/main/java/org/apache/camel/tools/apt/EipAnnotationProcessor.java
index 85ac180..755fa05 100644
--- 
a/tooling/apt/src/main/java/org/apache/camel/tools/apt/EipAnnotationProcessor.java
+++ 
b/tooling/apt/src/main/java/org/apache/camel/tools/apt/EipAnnotationProcessor.java
@@ -41,14 +41,13 @@ import javax.xml.bind.annotation.XmlRootElement;
 import javax.xml.bind.annotation.XmlType;
 
 import org.apache.camel.spi.Label;
+import org.apache.camel.spi.Metadata;
 
 import static org.apache.camel.tools.apt.JsonSchemaHelper.sanitizeDescription;
 import static org.apache.camel.tools.apt.Strings.canonicalClassName;
 import static org.apache.camel.tools.apt.Strings.isNullOrEmpty;
 import static org.apache.camel.tools.apt.Strings.safeNull;
 
-// TODO: figure out a way to specify default value in the model classes which 
this APT can read
-
 /**
  * Process all camel-core's model classes (EIPs and DSL) and generate json 
schema documentation
  */
@@ -191,6 +190,13 @@ public class EipAnnotationProcessor extends 
AbstractAnnotationProcessor {
             model.setLabel(label.value());
         }
 
+        Metadata metadata = classElement.getAnnotation(Metadata.class);
+        if (metadata != null) {
+            if (!Strings.isNullOrEmpty(metadata.label())) {
+                model.setLabel(metadata.label());
+            }
+        }
+
         // favor to use class javadoc of component as description
         if (model.getJavaType() != null) {
             Elements elementUtils = processingEnv.getElementUtils();
@@ -294,6 +300,7 @@ public class EipAnnotationProcessor extends 
AbstractAnnotationProcessor {
         String fieldTypeName = fieldType.toString();
         TypeElement fieldTypeElement = findTypeElement(roundEnv, 
fieldTypeName);
 
+        String defaultValue = findDefaultValue(fieldElement, fieldTypeName);
         String docComment = findJavaDoc(elementUtils, fieldElement, fieldName, 
name, classElement, true);
         boolean required = attribute.required();
 
@@ -314,7 +321,7 @@ public class EipAnnotationProcessor extends 
AbstractAnnotationProcessor {
 
         boolean deprecated = fieldElement.getAnnotation(Deprecated.class) != 
null;
 
-        EipOption ep = new EipOption(name, "attribute", fieldTypeName, 
required, "", docComment, deprecated, isEnum, enums, false, null);
+        EipOption ep = new EipOption(name, "attribute", fieldTypeName, 
required, defaultValue, docComment, deprecated, isEnum, enums, false, null);
         eipOptions.add(ep);
 
         return false;
@@ -327,6 +334,7 @@ public class EipAnnotationProcessor extends 
AbstractAnnotationProcessor {
         String fieldName;
         fieldName = fieldElement.getSimpleName().toString();
         if (element != null) {
+
             String kind = "element";
             String name = element.name();
             if (isNullOrEmpty(name) || "##default".equals(name)) {
@@ -337,6 +345,7 @@ public class EipAnnotationProcessor extends 
AbstractAnnotationProcessor {
             String fieldTypeName = fieldType.toString();
             TypeElement fieldTypeElement = findTypeElement(roundEnv, 
fieldTypeName);
 
+            String defaultValue = findDefaultValue(fieldElement, 
fieldTypeName);
             String docComment = findJavaDoc(elementUtils, fieldElement, 
fieldName, name, classElement, true);
             boolean required = element.required();
 
@@ -377,7 +386,7 @@ public class EipAnnotationProcessor extends 
AbstractAnnotationProcessor {
 
             boolean deprecated = fieldElement.getAnnotation(Deprecated.class) 
!= null;
 
-            EipOption ep = new EipOption(name, kind, fieldTypeName, required, 
"", docComment, deprecated, isEnum, enums, isOneOf, oneOfTypes);
+            EipOption ep = new EipOption(name, kind, fieldTypeName, required, 
defaultValue, docComment, deprecated, isEnum, enums, isOneOf, oneOfTypes);
             eipOptions.add(ep);
         }
     }
@@ -396,6 +405,7 @@ public class EipAnnotationProcessor extends 
AbstractAnnotationProcessor {
             TypeMirror fieldType = fieldElement.asType();
             String fieldTypeName = fieldType.toString();
 
+            String defaultValue = findDefaultValue(fieldElement, 
fieldTypeName);
             String docComment = findJavaDoc(elementUtils, fieldElement, 
fieldName, name, classElement, true);
             boolean required = true;
 
@@ -406,7 +416,7 @@ public class EipAnnotationProcessor extends 
AbstractAnnotationProcessor {
                 oneOfTypes.add(child);
             }
 
-            EipOption ep = new EipOption(name, kind, fieldTypeName, required, 
"", docComment, false, false, null, true, oneOfTypes);
+            EipOption ep = new EipOption(name, kind, fieldTypeName, required, 
defaultValue, docComment, false, false, null, true, oneOfTypes);
             eipOptions.add(ep);
         }
     }
@@ -433,7 +443,7 @@ public class EipAnnotationProcessor extends 
AbstractAnnotationProcessor {
 
         // trace
         docComment = findJavaDoc(elementUtils, null, "messageHistory", null, 
classElement, true);
-        ep = new EipOption("messageHistory", "attribute", "java.lang.String", 
false, "", docComment, false, false, null, false, null);
+        ep = new EipOption("messageHistory", "attribute", "java.lang.String", 
false, "true", docComment, false, false, null, false, null);
         eipOptions.add(ep);
 
         // trace
@@ -448,7 +458,7 @@ public class EipAnnotationProcessor extends 
AbstractAnnotationProcessor {
 
         // autoStartup
         docComment = findJavaDoc(elementUtils, null, "autoStartup", null, 
classElement, true);
-        ep = new EipOption("autoStartup", "attribute", "java.lang.String", 
false, "", docComment, false, false, null, false, null);
+        ep = new EipOption("autoStartup", "attribute", "java.lang.String", 
false, "true", docComment, false, false, null, false, null);
         eipOptions.add(ep);
 
         // startupOrder
@@ -470,7 +480,7 @@ public class EipAnnotationProcessor extends 
AbstractAnnotationProcessor {
         Set<String> enums = new LinkedHashSet<String>();
         enums.add("Default");
         enums.add("Defer");
-        docComment = findJavaDoc(elementUtils, null, "shutdownRoute", null, 
classElement, true);
+        docComment = findJavaDoc(elementUtils, null, "shutdownRoute", 
"Default", classElement, true);
         ep = new EipOption("shutdownRoute", "attribute", 
"org.apache.camel.ShutdownRoute", false, "", docComment, false, true, enums, 
false, null);
         eipOptions.add(ep);
 
@@ -478,7 +488,7 @@ public class EipAnnotationProcessor extends 
AbstractAnnotationProcessor {
         enums = new LinkedHashSet<String>();
         enums.add("CompleteCurrentTaskOnly");
         enums.add("CompleteAllTasks");
-        docComment = findJavaDoc(elementUtils, null, "shutdownRunningTask", 
null, classElement, true);
+        docComment = findJavaDoc(elementUtils, null, "shutdownRunningTask", 
"CompleteCurrentTaskOnly", classElement, true);
         ep = new EipOption("shutdownRunningTask", "attribute", 
"org.apache.camel.ShutdownRunningTask", false, "", docComment, false, true, 
enums, false, null);
         eipOptions.add(ep);
 
@@ -631,6 +641,24 @@ public class EipAnnotationProcessor extends 
AbstractAnnotationProcessor {
         return 
!"org.apache.camel.model.NoOutputExpressionNode".equals(superclass);
     }
 
+    protected String findDefaultValue(VariableElement fieldElement, String 
fieldTypeName) {
+        String defaultValue = null;
+        Metadata metadata = fieldElement.getAnnotation(Metadata.class);
+        if (metadata != null) {
+            if (!Strings.isNullOrEmpty(metadata.defaultValue())) {
+                defaultValue = metadata.defaultValue();
+            }
+        }
+        if (defaultValue == null) {
+            // if its a boolean type, then we use false as the default
+            if ("boolean".equals(fieldTypeName) || 
"java.lang.Boolean".equals(fieldTypeName)) {
+                defaultValue = "false";
+            }
+        }
+
+        return defaultValue;
+    }
+
     /**
      * Capitializes the name as a title
      *

http://git-wip-us.apache.org/repos/asf/camel/blob/c0d37429/tooling/spi-annotations/src/main/java/org/apache/camel/spi/Label.java
----------------------------------------------------------------------
diff --git 
a/tooling/spi-annotations/src/main/java/org/apache/camel/spi/Label.java 
b/tooling/spi-annotations/src/main/java/org/apache/camel/spi/Label.java
index 3fd3578..607305d 100644
--- a/tooling/spi-annotations/src/main/java/org/apache/camel/spi/Label.java
+++ b/tooling/spi-annotations/src/main/java/org/apache/camel/spi/Label.java
@@ -26,10 +26,13 @@ import java.lang.annotation.Target;
  * Defines a label which can be used to associate a class or type with 
label(s).
  * <p/>
  * For example Camel uses this to categorize the EIPs with labels.
+ *
+ * @deprecated use {@link org.apache.camel.spi.Metadata} instead
  */
 @Retention(RetentionPolicy.RUNTIME)
 @Documented
 @Target({ElementType.TYPE})
+@Deprecated
 public @interface Label {
 
     /**

http://git-wip-us.apache.org/repos/asf/camel/blob/c0d37429/tooling/spi-annotations/src/main/java/org/apache/camel/spi/Metadata.java
----------------------------------------------------------------------
diff --git 
a/tooling/spi-annotations/src/main/java/org/apache/camel/spi/Metadata.java 
b/tooling/spi-annotations/src/main/java/org/apache/camel/spi/Metadata.java
new file mode 100644
index 0000000..a4c7b6a
--- /dev/null
+++ b/tooling/spi-annotations/src/main/java/org/apache/camel/spi/Metadata.java
@@ -0,0 +1,47 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.camel.spi;
+
+import java.lang.annotation.Documented;
+import java.lang.annotation.ElementType;
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+import java.lang.annotation.Target;
+
+/**
+ * Meta data for EIPs, components, data formats and other Camel concepts
+ * <p/>
+ * For example to associate labels to Camel components
+ */
+@Retention(RetentionPolicy.RUNTIME)
+@Documented
+@Target({ElementType.TYPE, ElementType.METHOD, ElementType.FIELD})
+public @interface Metadata {
+
+    /**
+     * To define one or more labels.
+     * <p/>
+     * Multiple labels can be defined as a comma separated value.
+     */
+    String label() default "";
+
+    /**
+     * To define a default value
+     */
+    String defaultValue() default "";
+
+}

Reply via email to