CAMEL-8023: Model and component javadoc documentation
Project: http://git-wip-us.apache.org/repos/asf/camel/repo Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/35cc8902 Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/35cc8902 Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/35cc8902 Branch: refs/heads/master Commit: 35cc8902bf434229bb7a83716afa9294ba197076 Parents: a28d0e4 Author: Claus Ibsen <davscl...@apache.org> Authored: Sat Feb 7 10:59:20 2015 +0100 Committer: Claus Ibsen <davscl...@apache.org> Committed: Sat Feb 7 11:08:47 2015 +0100 ---------------------------------------------------------------------- .../camel/component/direct/DirectComponent.java | 9 +++++++++ .../camel/component/direct/DirectEndpoint.java | 17 ----------------- .../component/directvm/DirectVmComponent.java | 9 +++++++++ .../camel/component/directvm/DirectVmEndpoint.java | 7 +++++++ .../camel/component/language/LanguageEndpoint.java | 3 +-- .../apache/camel/component/log/LogEndpoint.java | 11 +++++------ .../camel/component/timer/TimerEndpoint.java | 13 +++++++++++-- .../tools/apt/EndpointAnnotationProcessor.java | 6 ++++-- 8 files changed, 46 insertions(+), 29 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/camel/blob/35cc8902/camel-core/src/main/java/org/apache/camel/component/direct/DirectComponent.java ---------------------------------------------------------------------- diff --git a/camel-core/src/main/java/org/apache/camel/component/direct/DirectComponent.java b/camel-core/src/main/java/org/apache/camel/component/direct/DirectComponent.java index b3253a5..0a7aae5 100644 --- a/camel-core/src/main/java/org/apache/camel/component/direct/DirectComponent.java +++ b/camel-core/src/main/java/org/apache/camel/component/direct/DirectComponent.java @@ -21,6 +21,7 @@ import java.util.Map; import org.apache.camel.Endpoint; import org.apache.camel.impl.UriEndpointComponent; +import org.apache.camel.spi.Metadata; import org.apache.camel.util.ServiceHelper; /** @@ -36,6 +37,7 @@ public class DirectComponent extends UriEndpointComponent { // on DefaultCamelContext private final Map<String, DirectConsumer> consumers = new HashMap<String, DirectConsumer>(); private boolean block; + @Metadata(defaultValue = "30000") private long timeout = 30000L; public DirectComponent() { @@ -61,6 +63,10 @@ public class DirectComponent extends UriEndpointComponent { return block; } + /** + * If sending a message to a direct endpoint which has no active consumer, + * then we can tell the producer to block and wait for the consumer to become active. + */ public void setBlock(boolean block) { this.block = block; } @@ -69,6 +75,9 @@ public class DirectComponent extends UriEndpointComponent { return timeout; } + /** + * The timeout value to use if block is enabled. + */ public void setTimeout(long timeout) { this.timeout = timeout; } http://git-wip-us.apache.org/repos/asf/camel/blob/35cc8902/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 c8f9934..3661cbb 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 @@ -98,12 +98,6 @@ public class DirectEndpoint extends DefaultEndpoint { return consumers.get(key); } - /** - * If sending a message to a direct endpoint which has no active consumer, - * then we can tell the producer to block and wait for the consumer to become active. - * <p/> - * Is by default <tt>false</tt>. - */ public boolean isBlock() { return block; } @@ -111,28 +105,17 @@ public class DirectEndpoint extends DefaultEndpoint { /** * If sending a message to a direct endpoint which has no active consumer, * then we can tell the producer to block and wait for the consumer to become active. - * <p/> - * Is by default <tt>false</tt>. - * - * @param block whether to block */ public void setBlock(boolean block) { this.block = block; } - /** - * The timeout value to use if block is enabled. - * <p/> - * Is by default <tt>30000</tt>. - */ public long getTimeout() { return timeout; } /** * The timeout value to use if block is enabled. - * <p/> - * Is by default <tt>30000</tt>. * * @param timeout the timeout value */ http://git-wip-us.apache.org/repos/asf/camel/blob/35cc8902/camel-core/src/main/java/org/apache/camel/component/directvm/DirectVmComponent.java ---------------------------------------------------------------------- diff --git a/camel-core/src/main/java/org/apache/camel/component/directvm/DirectVmComponent.java b/camel-core/src/main/java/org/apache/camel/component/directvm/DirectVmComponent.java index 6765fa6..3e48c7c 100644 --- a/camel-core/src/main/java/org/apache/camel/component/directvm/DirectVmComponent.java +++ b/camel-core/src/main/java/org/apache/camel/component/directvm/DirectVmComponent.java @@ -25,6 +25,7 @@ import java.util.concurrent.atomic.AtomicInteger; import org.apache.camel.Endpoint; import org.apache.camel.impl.UriEndpointComponent; +import org.apache.camel.spi.Metadata; /** * The <a href="http://camel.apache.org/direct-vm.html">Direct VM Component</a> manages {@link DirectVmEndpoint} and holds the list of named direct-vm endpoints. @@ -38,6 +39,7 @@ public class DirectVmComponent extends UriEndpointComponent { // on DefaultCamelContext private static final ConcurrentMap<String, DirectVmConsumer> CONSUMERS = new ConcurrentHashMap<String, DirectVmConsumer>(); private boolean block; + @Metadata(defaultValue = "30000") private long timeout = 30000L; public DirectVmComponent() { @@ -112,6 +114,10 @@ public class DirectVmComponent extends UriEndpointComponent { return block; } + /** + * If sending a message to a direct endpoint which has no active consumer, + * then we can tell the producer to block and wait for the consumer to become active. + */ public void setBlock(boolean block) { this.block = block; } @@ -120,6 +126,9 @@ public class DirectVmComponent extends UriEndpointComponent { return timeout; } + /** + * The timeout value to use if block is enabled. + */ public void setTimeout(long timeout) { this.timeout = timeout; } http://git-wip-us.apache.org/repos/asf/camel/blob/35cc8902/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 17fec96..831ce6c 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 @@ -76,6 +76,10 @@ public class DirectVmEndpoint extends DefaultEndpoint { return block; } + /** + * If sending a message to a direct endpoint which has no active consumer, + * then we can tell the producer to block and wait for the consumer to become active. + */ public void setBlock(boolean block) { this.block = block; } @@ -84,6 +88,9 @@ public class DirectVmEndpoint extends DefaultEndpoint { return timeout; } + /** + * The timeout value to use if block is enabled. + */ public void setTimeout(long timeout) { this.timeout = timeout; } http://git-wip-us.apache.org/repos/asf/camel/blob/35cc8902/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 98bf443..ce24f92 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 @@ -45,6 +45,7 @@ import org.apache.camel.util.ResourceHelper; public class LanguageEndpoint extends ResourceEndpoint { private Language language; private Expression expression; + private boolean contentResolvedFromResource; @UriPath private String languageName; @UriParam @@ -54,8 +55,6 @@ public class LanguageEndpoint extends ResourceEndpoint { @UriParam(defaultValue = "false") private boolean binary; @UriParam(defaultValue = "false") - private boolean contentResolvedFromResource; - @UriParam(defaultValue = "false") private boolean cacheScript; public LanguageEndpoint() { http://git-wip-us.apache.org/repos/asf/camel/blob/35cc8902/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 9ecffe8..b7d5ace 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 @@ -38,9 +38,11 @@ import org.slf4j.Logger; public class LogEndpoint extends ProcessorEndpoint { private volatile Processor logger; + private Logger providedLogger; + private ExchangeFormatter localFormatter; @UriPath(description = "Name of the logging category to use") private String loggerName; - @UriParam(defaultValue = "INFO") + @UriParam(defaultValue = "INFO", enums = "ERROR,WARN,INFO,DEBUG,TRACE,OFF") private String level; @UriParam private String marker; @@ -52,9 +54,6 @@ public class LogEndpoint extends ProcessorEndpoint { private Boolean groupActiveOnly; @UriParam private Long groupDelay; - @UriParam - private Logger providedLogger; - private ExchangeFormatter localFormatter; public LogEndpoint() { } @@ -124,7 +123,7 @@ public class LogEndpoint extends ProcessorEndpoint { } /** - * Logging level to use. Possible values: ERROR, WARN, INFO, DEBUG, TRACE, OFF. + * Logging level to use. * <p/> * The default value is INFO. */ @@ -133,7 +132,7 @@ public class LogEndpoint extends ProcessorEndpoint { } /** - * Logging level to use. Possible values: ERROR, WARN, INFO, DEBUG, TRACE, OFF. + * Logging level to use. * <p/> * The default value is INFO. */ http://git-wip-us.apache.org/repos/asf/camel/blob/35cc8902/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 f46b22b..cb107ca 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 @@ -52,10 +52,10 @@ public class TimerEndpoint extends DefaultEndpoint implements MultipleConsumersS private boolean fixedRate; @UriParam(defaultValue = "true") private boolean daemon = true; - @UriParam - private Timer timer; @UriParam(defaultValue = "0") private long repeatCount; + @UriParam + private Timer timer; public TimerEndpoint() { } @@ -180,6 +180,12 @@ public class TimerEndpoint extends DefaultEndpoint implements MultipleConsumersS return repeatCount; } + /** + * Specifies a maximum limit of number of fires. + * So if you set it to 1, the timer will only fire once. + * If you set it to 5, it will only fire five times. + * A value of zero or negative means fire forever. + */ @ManagedAttribute(description = "Repeat Count") public void setRepeatCount(long repeatCount) { this.repeatCount = repeatCount; @@ -229,6 +235,9 @@ public class TimerEndpoint extends DefaultEndpoint implements MultipleConsumersS return getComponent().getTimer(consumer); } + /** + * To use a custom {@link Timer} + */ public void setTimer(Timer timer) { this.timer = timer; } http://git-wip-us.apache.org/repos/asf/camel/blob/35cc8902/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 e409cd2..d580929 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 @@ -36,6 +36,7 @@ import javax.lang.model.type.TypeMirror; import javax.lang.model.util.ElementFilter; import javax.lang.model.util.Elements; +import org.apache.camel.spi.Metadata; import org.apache.camel.spi.UriEndpoint; import org.apache.camel.spi.UriParam; import org.apache.camel.spi.UriParams; @@ -354,6 +355,7 @@ public class EndpointAnnotationProcessor extends AbstractAnnotationProcessor { for (VariableElement fieldElement : fieldElements) { String fieldName = fieldElement.getSimpleName().toString(); boolean deprecated = fieldElement.getAnnotation(Deprecated.class) != null; + Metadata metadata = fieldElement.getAnnotation(Metadata.class); // skip unwanted fields as they are inherited from default component and are not intended for end users to configure if ("endpointClass".equals(fieldName) || "camelContext".equals(fieldName)) { @@ -370,10 +372,10 @@ public class EndpointAnnotationProcessor extends AbstractAnnotationProcessor { String fieldTypeName = fieldType.toString(); TypeElement fieldTypeElement = findTypeElement(roundEnv, fieldTypeName); + // we do not yet have default values / notes / as no annotation support yet - // String defaultValue = param.defaultValue(); // String defaultValueNote = param.defaultValueNote(); - String defaultValue = null; + String defaultValue = metadata != null ? metadata.defaultValue() : null; String defaultValueNote = null; String docComment = findJavaDoc(elementUtils, fieldElement, fieldName, name, classElement, false);