Repository: camel Updated Branches: refs/heads/master 2c17ad5dd -> 16195cbdc
https://issues.apache.org/jira/browse/CAMEL-10158 Support to add tags to workflow execution in camel-aws component Project: http://git-wip-us.apache.org/repos/asf/camel/repo Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/16195cbd Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/16195cbd Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/16195cbd Branch: refs/heads/master Commit: 16195cbdc30e73f37a80035a516f90528ac32b6f Parents: 2c17ad5 Author: siddharth.sharma <siddharth.sha...@jobvite-inc.com> Authored: Tue Jul 19 13:19:32 2016 -0700 Committer: Andrea Cosentino <anco...@gmail.com> Committed: Wed Jul 20 13:29:08 2016 +0200 ---------------------------------------------------------------------- .../camel/component/aws/swf/CamelSWFWorkflowClient.java | 4 +++- .../java/org/apache/camel/component/aws/swf/SWFConstants.java | 1 + .../apache/camel/component/aws/swf/SWFWorkflowProducer.java | 7 ++++++- .../camel/component/aws/swf/CamelSWFWorkflowClientTest.java | 2 +- 4 files changed, 11 insertions(+), 3 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/camel/blob/16195cbd/components/camel-aws/src/main/java/org/apache/camel/component/aws/swf/CamelSWFWorkflowClient.java ---------------------------------------------------------------------- diff --git a/components/camel-aws/src/main/java/org/apache/camel/component/aws/swf/CamelSWFWorkflowClient.java b/components/camel-aws/src/main/java/org/apache/camel/component/aws/swf/CamelSWFWorkflowClient.java index 7146b7c..3a07c91 100644 --- a/components/camel-aws/src/main/java/org/apache/camel/component/aws/swf/CamelSWFWorkflowClient.java +++ b/components/camel-aws/src/main/java/org/apache/camel/component/aws/swf/CamelSWFWorkflowClient.java @@ -64,17 +64,19 @@ public class CamelSWFWorkflowClient { dynamicWorkflowClientExternal.terminateWorkflowExecution(reason, details, policy); } - public String[] startWorkflowExecution(String workflowId, String runId, String eventName, String version, Object arguments) { + public String[] startWorkflowExecution(String workflowId, String runId, String eventName, String version, Object arguments, List<String> tags) { DynamicWorkflowClientExternalImpl dynamicWorkflowClientExternal = (DynamicWorkflowClientExternalImpl) getDynamicWorkflowClient(workflowId, runId); WorkflowType workflowType = new WorkflowType(); workflowType.setName(eventName); workflowType.setVersion(version); + dynamicWorkflowClientExternal.setWorkflowType(workflowType); StartWorkflowOptions startWorkflowOptions = new StartWorkflowOptions(); startWorkflowOptions.setTaskStartToCloseTimeoutSeconds(FlowHelpers.durationToSeconds(configuration.getTaskStartToCloseTimeout())); startWorkflowOptions.setExecutionStartToCloseTimeoutSeconds(FlowHelpers.durationToSeconds(configuration.getExecutionStartToCloseTimeout())); + startWorkflowOptions.setTagList(tags); dynamicWorkflowClientExternal.setSchedulingOptions(startWorkflowOptions); dynamicWorkflowClientExternal.startWorkflowExecution(toArray(arguments)); http://git-wip-us.apache.org/repos/asf/camel/blob/16195cbd/components/camel-aws/src/main/java/org/apache/camel/component/aws/swf/SWFConstants.java ---------------------------------------------------------------------- diff --git a/components/camel-aws/src/main/java/org/apache/camel/component/aws/swf/SWFConstants.java b/components/camel-aws/src/main/java/org/apache/camel/component/aws/swf/SWFConstants.java index 6bb71cb..69633ad 100644 --- a/components/camel-aws/src/main/java/org/apache/camel/component/aws/swf/SWFConstants.java +++ b/components/camel-aws/src/main/java/org/apache/camel/component/aws/swf/SWFConstants.java @@ -23,6 +23,7 @@ public interface SWFConstants { String STATE_RESULT_TYPE = "CamelSWFStateResultType"; String EVENT_NAME = "CamelSWFEventName"; String VERSION = "CamelSWFVersion"; + String TAGS = "CamelSWFTags"; String SIGNAL_NAME = "CamelSWFSignalName"; String CHILD_POLICY = "CamelSWFChildPolicy"; String DETAILS = "CamelSWFDetails"; http://git-wip-us.apache.org/repos/asf/camel/blob/16195cbd/components/camel-aws/src/main/java/org/apache/camel/component/aws/swf/SWFWorkflowProducer.java ---------------------------------------------------------------------- diff --git a/components/camel-aws/src/main/java/org/apache/camel/component/aws/swf/SWFWorkflowProducer.java b/components/camel-aws/src/main/java/org/apache/camel/component/aws/swf/SWFWorkflowProducer.java index 1eee16a..b3ada3b 100644 --- a/components/camel-aws/src/main/java/org/apache/camel/component/aws/swf/SWFWorkflowProducer.java +++ b/components/camel-aws/src/main/java/org/apache/camel/component/aws/swf/SWFWorkflowProducer.java @@ -16,6 +16,7 @@ */ package org.apache.camel.component.aws.swf; +import java.util.List; import java.util.Map; import org.apache.camel.Exchange; @@ -70,7 +71,7 @@ public class SWFWorkflowProducer extends DefaultProducer { case START: String[] ids = camelSWFClient.startWorkflowExecution(getWorkflowId(exchange), getRunId(exchange), - getEventName(exchange), getVersion(exchange), getArguments(exchange)); + getEventName(exchange), getVersion(exchange), getArguments(exchange), getTags(exchange)); setHeader(exchange, SWFConstants.WORKFLOW_ID, ids[0]); setHeader(exchange, SWFConstants.RUN_ID, ids[1]); break; @@ -101,6 +102,10 @@ public class SWFWorkflowProducer extends DefaultProducer { String version = exchange.getIn().getHeader(SWFConstants.VERSION, String.class); return version != null ? version : configuration.getVersion(); } + + private List<String> getTags(Exchange exchange) { + return exchange.getIn().getHeader(SWFConstants.TAGS, List.class); + } private String getSignalName(Exchange exchange) { String signalName = exchange.getIn().getHeader(SWFConstants.SIGNAL_NAME, String.class); http://git-wip-us.apache.org/repos/asf/camel/blob/16195cbd/components/camel-aws/src/test/java/org/apache/camel/component/aws/swf/CamelSWFWorkflowClientTest.java ---------------------------------------------------------------------- diff --git a/components/camel-aws/src/test/java/org/apache/camel/component/aws/swf/CamelSWFWorkflowClientTest.java b/components/camel-aws/src/test/java/org/apache/camel/component/aws/swf/CamelSWFWorkflowClientTest.java index 42b53fe..7796847 100644 --- a/components/camel-aws/src/test/java/org/apache/camel/component/aws/swf/CamelSWFWorkflowClientTest.java +++ b/components/camel-aws/src/test/java/org/apache/camel/component/aws/swf/CamelSWFWorkflowClientTest.java @@ -134,7 +134,7 @@ public class CamelSWFWorkflowClientTest { when(clientExternal.getWorkflowExecution()).thenReturn(workflowExecution); - String[] ids = camelSWFWorkflowClient.startWorkflowExecution(null, null, "eventName", "version", null); + String[] ids = camelSWFWorkflowClient.startWorkflowExecution(null, null, "eventName", "version", null, Collections.singletonList("camelTest")); verify(clientExternal).startWorkflowExecution(new Object[]{null}); assertThat("123", is(ids[0]));