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 ""; + }
