CAMEL-7999: More components include documentation
Project: http://git-wip-us.apache.org/repos/asf/camel/repo Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/ab222428 Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/ab222428 Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/ab222428 Branch: refs/heads/master Commit: ab222428a52c2cf77212024593dd44a00b1611f6 Parents: bf1219d Author: Claus Ibsen <davscl...@apache.org> Authored: Tue Jan 6 15:24:08 2015 +0100 Committer: Claus Ibsen <davscl...@apache.org> Committed: Tue Jan 6 15:24:08 2015 +0100 ---------------------------------------------------------------------- .../camel/component/aws/sns/SnsComponent.java | 7 ++-- .../component/aws/sns/SnsConfiguration.java | 16 ++++++--- .../camel/component/aws/sns/SnsEndpoint.java | 8 +++-- .../camel/component/aws/sqs/SqsComponent.java | 6 ++-- .../component/aws/sqs/SqsConfiguration.java | 29 +++++++++++++--- .../camel/component/aws/sqs/SqsEndpoint.java | 10 +++++- .../camel/component/aws/swf/SWFComponent.java | 8 +++-- .../component/aws/swf/SWFConfiguration.java | 36 +++++++++++++++++--- .../camel/component/aws/swf/SWFEndpoint.java | 8 ++++- 9 files changed, 104 insertions(+), 24 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/camel/blob/ab222428/components/camel-aws/src/main/java/org/apache/camel/component/aws/sns/SnsComponent.java ---------------------------------------------------------------------- diff --git a/components/camel-aws/src/main/java/org/apache/camel/component/aws/sns/SnsComponent.java b/components/camel-aws/src/main/java/org/apache/camel/component/aws/sns/SnsComponent.java index 1d68070..239cec6 100644 --- a/components/camel-aws/src/main/java/org/apache/camel/component/aws/sns/SnsComponent.java +++ b/components/camel-aws/src/main/java/org/apache/camel/component/aws/sns/SnsComponent.java @@ -20,18 +20,19 @@ import java.util.Map; import org.apache.camel.CamelContext; import org.apache.camel.Endpoint; -import org.apache.camel.impl.DefaultComponent; +import org.apache.camel.impl.UriEndpointComponent; /** * Defines the <a href="http://aws.amazon.com/sns/">AWS SNS Component</a> */ -public class SnsComponent extends DefaultComponent { +public class SnsComponent extends UriEndpointComponent { public SnsComponent() { + super(SnsEndpoint.class); } public SnsComponent(CamelContext context) { - super(context); + super(context, SnsEndpoint.class); } protected Endpoint createEndpoint(String uri, String remaining, Map<String, Object> parameters) throws Exception { http://git-wip-us.apache.org/repos/asf/camel/blob/ab222428/components/camel-aws/src/main/java/org/apache/camel/component/aws/sns/SnsConfiguration.java ---------------------------------------------------------------------- diff --git a/components/camel-aws/src/main/java/org/apache/camel/component/aws/sns/SnsConfiguration.java b/components/camel-aws/src/main/java/org/apache/camel/component/aws/sns/SnsConfiguration.java index 54b048c..ba5544e 100644 --- a/components/camel-aws/src/main/java/org/apache/camel/component/aws/sns/SnsConfiguration.java +++ b/components/camel-aws/src/main/java/org/apache/camel/component/aws/sns/SnsConfiguration.java @@ -16,24 +16,32 @@ */ package org.apache.camel.component.aws.sns; -/** - * The AWS SNS component configuration properties - * - */ import com.amazonaws.services.sns.AmazonSNS; +import org.apache.camel.spi.UriParam; +import org.apache.camel.spi.UriParams; +import org.apache.camel.spi.UriPath; +@UriParams public class SnsConfiguration implements Cloneable { // Common properties + @UriPath private String topicName; + @UriParam private AmazonSNS amazonSNSClient; + @UriParam private String accessKey; + @UriParam private String secretKey; + @UriParam private String amazonSNSEndpoint; // Producer only properties + @UriParam private String subject; + @UriParam private String topicArn; + @UriParam private String policy; public void setAmazonSNSEndpoint(String awsSNSEndpoint) { http://git-wip-us.apache.org/repos/asf/camel/blob/ab222428/components/camel-aws/src/main/java/org/apache/camel/component/aws/sns/SnsEndpoint.java ---------------------------------------------------------------------- diff --git a/components/camel-aws/src/main/java/org/apache/camel/component/aws/sns/SnsEndpoint.java b/components/camel-aws/src/main/java/org/apache/camel/component/aws/sns/SnsEndpoint.java index 8f51821..c4e714c 100644 --- a/components/camel-aws/src/main/java/org/apache/camel/component/aws/sns/SnsEndpoint.java +++ b/components/camel-aws/src/main/java/org/apache/camel/component/aws/sns/SnsEndpoint.java @@ -30,21 +30,25 @@ import org.apache.camel.Consumer; import org.apache.camel.Processor; import org.apache.camel.Producer; import org.apache.camel.impl.DefaultEndpoint; +import org.apache.camel.spi.UriEndpoint; +import org.apache.camel.spi.UriParam; import org.apache.camel.util.ObjectHelper; import org.slf4j.Logger; import org.slf4j.LoggerFactory; /** * Defines the <a href="http://camel.apache.org/aws.html">AWS SNS Endpoint</a>. - * */ +@UriEndpoint(scheme = "aws-sns", label = "cloud,mobile,messaging") public class SnsEndpoint extends DefaultEndpoint { private static final Logger LOG = LoggerFactory.getLogger(SnsEndpoint.class); - private SnsConfiguration configuration; private AmazonSNS snsClient; + @UriParam + private SnsConfiguration configuration; + @Deprecated public SnsEndpoint(String uri, CamelContext context, SnsConfiguration configuration) { super(uri, context); http://git-wip-us.apache.org/repos/asf/camel/blob/ab222428/components/camel-aws/src/main/java/org/apache/camel/component/aws/sqs/SqsComponent.java ---------------------------------------------------------------------- diff --git a/components/camel-aws/src/main/java/org/apache/camel/component/aws/sqs/SqsComponent.java b/components/camel-aws/src/main/java/org/apache/camel/component/aws/sqs/SqsComponent.java index 3f2cbb7..aeb8505 100644 --- a/components/camel-aws/src/main/java/org/apache/camel/component/aws/sqs/SqsComponent.java +++ b/components/camel-aws/src/main/java/org/apache/camel/component/aws/sqs/SqsComponent.java @@ -21,18 +21,20 @@ import java.util.Map; import org.apache.camel.CamelContext; import org.apache.camel.Endpoint; import org.apache.camel.impl.DefaultComponent; +import org.apache.camel.impl.UriEndpointComponent; /** * Defines the <a href="http://camel.apache.org/aws.html">AWS Component</a> * */ -public class SqsComponent extends DefaultComponent { +public class SqsComponent extends UriEndpointComponent { public SqsComponent() { + super(SqsEndpoint.class); } public SqsComponent(CamelContext context) { - super(context); + super(context, SqsEndpoint.class); } @Override http://git-wip-us.apache.org/repos/asf/camel/blob/ab222428/components/camel-aws/src/main/java/org/apache/camel/component/aws/sqs/SqsConfiguration.java ---------------------------------------------------------------------- diff --git a/components/camel-aws/src/main/java/org/apache/camel/component/aws/sqs/SqsConfiguration.java b/components/camel-aws/src/main/java/org/apache/camel/component/aws/sqs/SqsConfiguration.java index 718aee0..07a9ff2 100644 --- a/components/camel-aws/src/main/java/org/apache/camel/component/aws/sqs/SqsConfiguration.java +++ b/components/camel-aws/src/main/java/org/apache/camel/component/aws/sqs/SqsConfiguration.java @@ -19,41 +19,62 @@ package org.apache.camel.component.aws.sqs; import java.util.Collection; import com.amazonaws.services.sqs.AmazonSQS; +import org.apache.camel.spi.UriParam; +import org.apache.camel.spi.UriParams; +import org.apache.camel.spi.UriPath; -/** - * The AWS SQS component configuration properties - * - */ +@UriParams public class SqsConfiguration { // common properties + @UriPath private String queueName; + @UriParam private AmazonSQS amazonSQSClient; + @UriParam private String accessKey; + @UriParam private String secretKey; + @UriParam private String amazonSQSEndpoint; + @UriParam private String queueOwnerAWSAccountId; + @UriParam private String region; // consumer properties + @UriParam(defaultValue = "true") private Boolean deleteAfterRead = Boolean.TRUE; + @UriParam(defaultValue = "true") private Boolean deleteIfFiltered = Boolean.TRUE; + @UriParam private Integer visibilityTimeout; + @UriParam private Collection<String> attributeNames; + @UriParam private Collection<String> messageAttributeNames; + @UriParam private Integer waitTimeSeconds; + @UriParam private Integer defaultVisibilityTimeout; + @UriParam(defaultValue = "false") private Boolean extendMessageVisibility = Boolean.FALSE; // producer properties + @UriParam private Integer delaySeconds; // queue properties + @UriParam private Integer maximumMessageSize; + @UriParam private Integer messageRetentionPeriod; + @UriParam private Integer receiveMessageWaitTimeSeconds; + @UriParam private String policy; // dead letter queue properties + @UriParam private String redrivePolicy; public void setAmazonSQSEndpoint(String amazonSQSEndpoint) { http://git-wip-us.apache.org/repos/asf/camel/blob/ab222428/components/camel-aws/src/main/java/org/apache/camel/component/aws/sqs/SqsEndpoint.java ---------------------------------------------------------------------- diff --git a/components/camel-aws/src/main/java/org/apache/camel/component/aws/sqs/SqsEndpoint.java b/components/camel-aws/src/main/java/org/apache/camel/component/aws/sqs/SqsEndpoint.java index 29ae3db..d2cc213 100644 --- a/components/camel-aws/src/main/java/org/apache/camel/component/aws/sqs/SqsEndpoint.java +++ b/components/camel-aws/src/main/java/org/apache/camel/component/aws/sqs/SqsEndpoint.java @@ -41,6 +41,8 @@ import org.apache.camel.impl.DefaultExchange; import org.apache.camel.impl.ScheduledPollEndpoint; import org.apache.camel.spi.HeaderFilterStrategy; import org.apache.camel.spi.HeaderFilterStrategyAware; +import org.apache.camel.spi.UriEndpoint; +import org.apache.camel.spi.UriParam; import org.apache.camel.util.ObjectHelper; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -50,16 +52,22 @@ import org.slf4j.LoggerFactory; * Defines the <a href="http://camel.apache.org/aws.html">AWS SQS Endpoint</a>. * */ +@UriEndpoint(scheme = "aws-sqs", consumerClass = SqsConsumer.class, label = "cloud,messaging") public class SqsEndpoint extends ScheduledPollEndpoint implements HeaderFilterStrategyAware { private static final Logger LOG = LoggerFactory.getLogger(SqsEndpoint.class); - + private AmazonSQS client; private String queueUrl; + + @UriParam private SqsConfiguration configuration; + @UriParam private int maxMessagesPerPoll; + @UriParam private HeaderFilterStrategy headerFilterStrategy; + public SqsEndpoint(String uri, SqsComponent component, SqsConfiguration configuration) { super(uri, component); this.configuration = configuration; http://git-wip-us.apache.org/repos/asf/camel/blob/ab222428/components/camel-aws/src/main/java/org/apache/camel/component/aws/swf/SWFComponent.java ---------------------------------------------------------------------- diff --git a/components/camel-aws/src/main/java/org/apache/camel/component/aws/swf/SWFComponent.java b/components/camel-aws/src/main/java/org/apache/camel/component/aws/swf/SWFComponent.java index 538ebd7..6731421 100644 --- a/components/camel-aws/src/main/java/org/apache/camel/component/aws/swf/SWFComponent.java +++ b/components/camel-aws/src/main/java/org/apache/camel/component/aws/swf/SWFComponent.java @@ -19,13 +19,17 @@ package org.apache.camel.component.aws.swf; import java.util.Map; import org.apache.camel.Endpoint; -import org.apache.camel.impl.DefaultComponent; +import org.apache.camel.impl.UriEndpointComponent; import org.apache.camel.util.IntrospectionSupport; /** * Defines the <a href="http://aws.amazon.com/swf/">Amazon Simple Workflow Component</a> */ -public class SWFComponent extends DefaultComponent { +public class SWFComponent extends UriEndpointComponent { + + public SWFComponent() { + super(SWFEndpoint.class); + } protected Endpoint createEndpoint(String uri, String remaining, Map<String, Object> parameters) throws Exception { Map<String, Object> clientConfigurationParameters = IntrospectionSupport.extractProperties(parameters, "clientConfiguration."); http://git-wip-us.apache.org/repos/asf/camel/blob/ab222428/components/camel-aws/src/main/java/org/apache/camel/component/aws/swf/SWFConfiguration.java ---------------------------------------------------------------------- diff --git a/components/camel-aws/src/main/java/org/apache/camel/component/aws/swf/SWFConfiguration.java b/components/camel-aws/src/main/java/org/apache/camel/component/aws/swf/SWFConfiguration.java index 5d9513f..4036996 100644 --- a/components/camel-aws/src/main/java/org/apache/camel/component/aws/swf/SWFConfiguration.java +++ b/components/camel-aws/src/main/java/org/apache/camel/component/aws/swf/SWFConfiguration.java @@ -24,31 +24,56 @@ import com.amazonaws.services.simpleworkflow.flow.DataConverter; import com.amazonaws.services.simpleworkflow.flow.WorkflowTypeRegistrationOptions; import com.amazonaws.services.simpleworkflow.flow.worker.ActivityTypeExecutionOptions; import com.amazonaws.services.simpleworkflow.flow.worker.ActivityTypeRegistrationOptions; +import org.apache.camel.spi.UriParam; +import org.apache.camel.spi.UriParams; +import org.apache.camel.spi.UriPath; - +@UriParams public class SWFConfiguration { - private String accessKey; - private String secretKey; - private AmazonSimpleWorkflowClient amazonSWClient; + private Map<String, Object> clientConfigurationParameters; private Map<String, Object> sWClientParameters; private Map<String, Object> startWorkflowOptionsParameters; + + @UriPath + private String type; + @UriParam + private AmazonSimpleWorkflowClient amazonSWClient; + @UriParam + private String accessKey; + @UriParam + private String secretKey; + @UriParam private String operation; + @UriParam private String domainName; + @UriParam private String activityList; + @UriParam private String workflowList; + @UriParam private String eventName; + @UriParam private String version; - private String type; + @UriParam private String signalName; + @UriParam private String childPolicy; + @UriParam private String terminationReason; + @UriParam private String stateResultType; + @UriParam private String terminationDetails; + @UriParam private DataConverter dataConverter; + @UriParam private ActivitySchedulingOptions activitySchedulingOptions; + @UriParam private ActivityTypeExecutionOptions activityTypeExecutionOptions; + @UriParam private ActivityTypeRegistrationOptions activityTypeRegistrationOptions; + @UriParam private WorkflowTypeRegistrationOptions workflowTypeRegistrationOptions; public String getAccessKey() { @@ -138,6 +163,7 @@ public class SWFConfiguration { public void setAmazonSWClient(AmazonSimpleWorkflowClient amazonSWClient) { this.amazonSWClient = amazonSWClient; } + public Map<String, Object> getStartWorkflowOptionsParameters() { return startWorkflowOptionsParameters; } http://git-wip-us.apache.org/repos/asf/camel/blob/ab222428/components/camel-aws/src/main/java/org/apache/camel/component/aws/swf/SWFEndpoint.java ---------------------------------------------------------------------- diff --git a/components/camel-aws/src/main/java/org/apache/camel/component/aws/swf/SWFEndpoint.java b/components/camel-aws/src/main/java/org/apache/camel/component/aws/swf/SWFEndpoint.java index f50c7bd..e7f3da5 100644 --- a/components/camel-aws/src/main/java/org/apache/camel/component/aws/swf/SWFEndpoint.java +++ b/components/camel-aws/src/main/java/org/apache/camel/component/aws/swf/SWFEndpoint.java @@ -27,16 +27,22 @@ import org.apache.camel.ExchangePattern; import org.apache.camel.Processor; import org.apache.camel.Producer; import org.apache.camel.impl.DefaultEndpoint; +import org.apache.camel.spi.UriEndpoint; +import org.apache.camel.spi.UriParam; import org.apache.camel.util.EndpointHelper; import org.apache.camel.util.ExchangeHelper; /** * Defines the <a href="http://aws.amazon.com/swf/">Amazon Simple Workflow Endpoint</a> */ +@UriEndpoint(scheme = "aws-swf", consumerClass = SWFWorkflowConsumer.class, label = "cloud,workflow") public class SWFEndpoint extends DefaultEndpoint { - private SWFConfiguration configuration; + private AmazonSimpleWorkflowClient amazonSWClient; + @UriParam + private SWFConfiguration configuration; + public SWFEndpoint() { }