Repository: camel
Updated Branches:
  refs/heads/master adc435dfe -> f038ecc04


CAMEL-7999: Remove @Label and use @Metadata instead for eip documentation.


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

Branch: refs/heads/master
Commit: f038ecc04bb3c008ff484cb4b656663df29748a0
Parents: adc435d
Author: Claus Ibsen <[email protected]>
Authored: Wed Jan 21 14:10:40 2015 +0100
Committer: Claus Ibsen <[email protected]>
Committed: Wed Jan 21 14:10:40 2015 +0100

----------------------------------------------------------------------
 .../apache/camel/model/ResequenceDefinition.java  |  3 ++-
 .../main/java/org/apache/camel/spi/Required.java  |  3 +++
 .../camel/tools/apt/EipAnnotationProcessor.java   | 18 +++++++++++++++++-
 .../main/java/org/apache/camel/spi/Metadata.java  |  7 ++++++-
 4 files changed, 28 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/f038ecc0/camel-core/src/main/java/org/apache/camel/model/ResequenceDefinition.java
----------------------------------------------------------------------
diff --git 
a/camel-core/src/main/java/org/apache/camel/model/ResequenceDefinition.java 
b/camel-core/src/main/java/org/apache/camel/model/ResequenceDefinition.java
index 06b4bf6..9e205f4 100644
--- a/camel-core/src/main/java/org/apache/camel/model/ResequenceDefinition.java
+++ b/camel-core/src/main/java/org/apache/camel/model/ResequenceDefinition.java
@@ -51,6 +51,7 @@ import org.apache.camel.util.ObjectHelper;
 @XmlRootElement(name = "resequence")
 @XmlAccessorType(XmlAccessType.FIELD)
 public class ResequenceDefinition extends 
ProcessorDefinition<ResequenceDefinition> {
+    @Metadata(required = "false")
     @XmlElements({
     @XmlElement(name = "batch-config", type = BatchResequencerConfig.class),
     @XmlElement(name = "stream-config", type = StreamResequencerConfig.class)}
@@ -275,7 +276,7 @@ public class ResequenceDefinition extends 
ProcessorDefinition<ResequenceDefiniti
     }
 
     /**
-     * To configure the resequencer in using either batch or stream 
configuration
+     * To configure the resequencer in using either batch or stream 
configuration. Will by default use batch configuration.
      */
     public void setResequencerConfig(ResequencerConfig resequencerConfig) {
         this.resequencerConfig = resequencerConfig;

http://git-wip-us.apache.org/repos/asf/camel/blob/f038ecc0/camel-core/src/main/java/org/apache/camel/spi/Required.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/spi/Required.java 
b/camel-core/src/main/java/org/apache/camel/spi/Required.java
index a5df908..f055945 100644
--- a/camel-core/src/main/java/org/apache/camel/spi/Required.java
+++ b/camel-core/src/main/java/org/apache/camel/spi/Required.java
@@ -26,10 +26,13 @@ import java.lang.annotation.Target;
  * Used to denote fields which are required to be specified for validation 
purposes
  * particularly in tooling.
  *
+ * @deprecated use {@link org.apache.camel.spi.Metadata}
+ *
  * @version 
  */
 @Retention(RetentionPolicy.RUNTIME)
 @Documented
 @Target({ElementType.FIELD, ElementType.METHOD, ElementType.CONSTRUCTOR })
+@Deprecated
 public @interface Required {
 }

http://git-wip-us.apache.org/repos/asf/camel/blob/f038ecc0/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 4c1b80a..e09a409 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
@@ -301,6 +301,8 @@ public class EipAnnotationProcessor extends 
AbstractAnnotationProcessor {
         String defaultValue = findDefaultValue(fieldElement, fieldTypeName);
         String docComment = findJavaDoc(elementUtils, fieldElement, fieldName, 
name, classElement, true);
         boolean required = attribute.required();
+        // metadata may overrule element required
+        required = findRequired(fieldElement, required);
 
         // gather enums
         Set<String> enums = new TreeSet<String>();
@@ -346,6 +348,8 @@ public class EipAnnotationProcessor extends 
AbstractAnnotationProcessor {
             String defaultValue = findDefaultValue(fieldElement, 
fieldTypeName);
             String docComment = findJavaDoc(elementUtils, fieldElement, 
fieldName, name, classElement, true);
             boolean required = element.required();
+            // metadata may overrule element required
+            required = findRequired(fieldElement, required);
 
             // gather enums
             Set<String> enums = new LinkedHashSet<String>();
@@ -405,7 +409,9 @@ public class EipAnnotationProcessor extends 
AbstractAnnotationProcessor {
 
             String defaultValue = findDefaultValue(fieldElement, 
fieldTypeName);
             String docComment = findJavaDoc(elementUtils, fieldElement, 
fieldName, name, classElement, true);
+
             boolean required = true;
+            required = findRequired(fieldElement, required);
 
             // gather oneOf of the elements
             Set<String> oneOfTypes = new TreeSet<String>();
@@ -645,7 +651,7 @@ public class EipAnnotationProcessor extends 
AbstractAnnotationProcessor {
         return 
!"org.apache.camel.model.NoOutputExpressionNode".equals(superclass);
     }
 
-    protected String findDefaultValue(VariableElement fieldElement, String 
fieldTypeName) {
+    private String findDefaultValue(VariableElement fieldElement, String 
fieldTypeName) {
         String defaultValue = null;
         Metadata metadata = fieldElement.getAnnotation(Metadata.class);
         if (metadata != null) {
@@ -663,6 +669,16 @@ public class EipAnnotationProcessor extends 
AbstractAnnotationProcessor {
         return defaultValue;
     }
 
+    private boolean findRequired(VariableElement fieldElement, boolean 
defaultValue) {
+        Metadata metadata = fieldElement.getAnnotation(Metadata.class);
+        if (metadata != null) {
+            if (!Strings.isNullOrEmpty(metadata.required())) {
+                defaultValue = "true".equals(metadata.required());
+            }
+        }
+        return defaultValue;
+    }
+
     /**
      * Capitializes the name as a title
      *

http://git-wip-us.apache.org/repos/asf/camel/blob/f038ecc0/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
index a4c7b6a..502b1e3 100644
--- 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
@@ -40,8 +40,13 @@ public @interface Metadata {
     String label() default "";
 
     /**
-     * To define a default value
+     * To define a default value.
      */
     String defaultValue() default "";
 
+    /**
+     * To define that this entity is required.
+     */
+    String required() default "";
+
 }

Reply via email to