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]));

Reply via email to