This is an automated email from the ASF dual-hosted git repository.

davsclaus pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/camel.git


The following commit(s) were added to refs/heads/master by this push:
     new 26f2f2c  [CAMEL-16468] camel-jbpm - Expose 
org.apache.camel.component.jbpm.JBPMProducer.Operation (#5621)
26f2f2c is described below

commit 26f2f2c9cfe2446c642d5669b289fe1e7c3bdbfe
Author: Enrique González Martínez <egonz...@redhat.com>
AuthorDate: Sat Jun 5 07:32:43 2021 +0200

    [CAMEL-16468] camel-jbpm - Expose 
org.apache.camel.component.jbpm.JBPMProducer.Operation (#5621)
    
    extract the enum JBPMOperation to public and extract the operation to a 
proper class
---
 .../apache/camel/component/jbpm/JBPMOperation.java |  66 +++
 .../apache/camel/component/jbpm/JBPMProducer.java  | 484 +++++++++++----------
 .../camel/component/jbpm/JBPMComponentIT.java      |   7 +-
 3 files changed, 320 insertions(+), 237 deletions(-)

diff --git 
a/components/camel-jbpm/src/main/java/org/apache/camel/component/jbpm/JBPMOperation.java
 
b/components/camel-jbpm/src/main/java/org/apache/camel/component/jbpm/JBPMOperation.java
new file mode 100644
index 0000000..cd4404f
--- /dev/null
+++ 
b/components/camel-jbpm/src/main/java/org/apache/camel/component/jbpm/JBPMOperation.java
@@ -0,0 +1,66 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements.  See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License.  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.camel.component.jbpm;
+
+public enum JBPMOperation {
+
+    // PROCESS OPERATIONS
+    startProcess,
+    abortProcessInstance,
+    signalEvent,
+    getProcessInstance,
+    getProcessInstances,
+
+    // RULE OPERATIONS
+    fireAllRules,
+    getGlobal,
+    setGlobal,
+
+    // WORK ITEM OPERATIONS
+    abortWorkItem,
+    completeWorkItem,
+
+    // TASK OPERATIONS
+    activateTask,
+    claimTask,
+    completeTask,
+    delegateTask,
+    exitTask,
+    failTask,
+    getAttachment,
+    getTasksAssignedAsBusinessAdministrator,
+    getTasksAssignedAsPotentialOwnerByStatus,
+    getTaskByWorkItem,
+    getTaskBy,
+    getTaskContent,
+    getTasksByProcessInstance,
+    getTasksByStatusByProcessInstance,
+    getTasksOwned,
+    nominateTask,
+    releaseTask,
+    resumeTask,
+    skipTask,
+    startTask,
+    stopTask,
+    suspendTask;
+
+    @Override
+    public String toString() {
+        return JBPMConstants.OPERATION + super.toString();
+    }
+}
diff --git 
a/components/camel-jbpm/src/main/java/org/apache/camel/component/jbpm/JBPMProducer.java
 
b/components/camel-jbpm/src/main/java/org/apache/camel/component/jbpm/JBPMProducer.java
index 33eb1a6..13743d3 100644
--- 
a/components/camel-jbpm/src/main/java/org/apache/camel/component/jbpm/JBPMProducer.java
+++ 
b/components/camel-jbpm/src/main/java/org/apache/camel/component/jbpm/JBPMProducer.java
@@ -19,6 +19,7 @@ package org.apache.camel.component.jbpm;
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.Collections;
+import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
@@ -52,33 +53,213 @@ public class JBPMProducer extends DefaultProducer {
 
     private JBPMConfiguration configuration;
     private KieServicesClient kieServicesClient;
+    private Map<JBPMOperation, JBPMOperationProcessor> operations;
+    private Map<String, JBPMOperation> operationCachedToLowerOperation;
 
     public JBPMProducer(JBPMEndpoint endpoint, KieServicesClient 
kieServicesClient) {
         super(endpoint);
         this.configuration = endpoint.getConfiguration();
         this.kieServicesClient = kieServicesClient;
+        this.operations = new HashMap<>();
+        this.operationCachedToLowerOperation = new HashMap<>();
+        cacheJBPMOperationToLowerCase();
+        initOperationProcessors();
+    }
+
+    private void cacheJBPMOperationToLowerCase() {
+        for (JBPMOperation operation : JBPMOperation.values()) {
+            
operationCachedToLowerOperation.put(operation.toString().toLowerCase(), 
operation);
+        }
     }
 
     public void process(Exchange exchange) throws Exception {
         getOperation(exchange).execute(kieServicesClient, configuration, 
exchange);
     }
 
-    Operation getOperation(Exchange exchange) {
+    JBPMOperationProcessor getOperation(Exchange exchange) {
         String operation = exchange.getIn().getHeader(JBPMConstants.OPERATION, 
String.class);
         if (operation == null && configuration.getOperation() != null) {
             operation = JBPMConstants.OPERATION + configuration.getOperation();
         }
         if (operation == null) {
-            operation = JBPMConstants.OPERATION + Operation.startProcess;
+            operation = JBPMConstants.OPERATION + JBPMOperation.startProcess;
         }
         LOGGER.trace("Operation: [{}]", operation);
-        return 
Operation.valueOf(operation.substring(JBPMConstants.OPERATION.length()));
+        return 
operations.get(operationCachedToLowerOperation.get(operation.toLowerCase()));
     }
 
-    enum Operation {
+    private abstract class JBPMOperationProcessor {
+
+        List<String> getStatuses(JBPMConfiguration configuration, Exchange 
exchange) {
+            List<String> statusList = 
exchange.getIn().getHeader(JBPMConstants.STATUS_LIST, List.class);
+            if (statusList == null) {
+                statusList = configuration.getStatuses();
+            }
+            return statusList;
+        }
+
+        List<String> getEntities(JBPMConfiguration configuration, Exchange 
exchange) {
+            List<String> entityList = 
exchange.getIn().getHeader(JBPMConstants.ENTITY_LIST, List.class);
+            if (entityList == null) {
+                entityList = configuration.getEntities();
+            }
+            return entityList;
+        }
+
+        Long getAttachmentId(JBPMConfiguration configuration, Exchange 
exchange) {
+            Long attachmentId = 
exchange.getIn().getHeader(JBPMConstants.ATTACHMENT_ID, Long.class);
+            if (attachmentId == null) {
+                attachmentId = configuration.getAttachmentId();
+            }
+            return attachmentId;
+        }
+
+        Long getContentId(JBPMConfiguration configuration, Exchange exchange) {
+            Long contentId = 
exchange.getIn().getHeader(JBPMConstants.CONTENT_ID, Long.class);
+            if (contentId == null) {
+                contentId = configuration.getContentId();
+            }
+            return contentId;
+        }
+
+        String getTargetUserId(JBPMConfiguration configuration, Exchange 
exchange) {
+            String userId = 
exchange.getIn().getHeader(JBPMConstants.TARGET_USER_ID, String.class);
+            if (userId == null) {
+                userId = configuration.getTargetUserId();
+            }
+            return userId;
+        }
 
+        Integer getPage(JBPMConfiguration configuration, Exchange exchange) {
+            Integer page = 
exchange.getIn().getHeader(JBPMConstants.RESULT_PAGE, Integer.class);
+            if (page == null) {
+                page = configuration.getPage();
+            }
+            return page;
+        }
+
+        Integer getPageSize(JBPMConfiguration configuration, Exchange 
exchange) {
+            Integer pageSize = 
exchange.getIn().getHeader(JBPMConstants.RESULT_PAGE_SIZE, Integer.class);
+            if (pageSize == null) {
+                pageSize = configuration.getPageSize();
+            }
+            return pageSize;
+        }
+
+        Task getTask(JBPMConfiguration configuration, Exchange exchange) {
+            Task task = exchange.getIn().getHeader(JBPMConstants.TASK, 
Task.class);
+            if (task == null) {
+                task = configuration.getTask();
+            }
+            return task;
+        }
+
+        String getUserId(JBPMConfiguration configuration, Exchange exchange) {
+            String userId = exchange.getIn().getHeader(JBPMConstants.USER_ID, 
String.class);
+            if (userId == null) {
+                userId = configuration.getUserId();
+            }
+            return userId;
+        }
+
+        Long getTaskId(JBPMConfiguration configuration, Exchange exchange) {
+            Long taskId = exchange.getIn().getHeader(JBPMConstants.TASK_ID, 
Long.class);
+            if (taskId == null) {
+                taskId = configuration.getTaskId();
+            }
+            return taskId;
+        }
+
+        Long getWorkItemId(JBPMConfiguration configuration, Exchange exchange) 
{
+            Long workItemId = 
exchange.getIn().getHeader(JBPMConstants.WORK_ITEM_ID, Long.class);
+            if (workItemId == null) {
+                workItemId = configuration.getWorkItemId();
+            }
+            return workItemId;
+        }
+
+        String getIdentifier(JBPMConfiguration configuration, Exchange 
exchange) {
+            String identifier = 
exchange.getIn().getHeader(JBPMConstants.IDENTIFIER, String.class);
+            if (identifier == null) {
+                identifier = configuration.getIdentifier();
+            }
+            return identifier;
+        }
+
+        Integer getMaxNumber(JBPMConfiguration configuration, Exchange 
exchange) {
+            Integer max = exchange.getIn().getHeader(JBPMConstants.MAX_NUMBER, 
Integer.class);
+            if (max == null) {
+                max = configuration.getMaxNumber();
+            }
+            return max;
+        }
+
+        Object getEvent(JBPMConfiguration configuration, Exchange exchange) {
+            Object event = exchange.getIn().getHeader(JBPMConstants.EVENT);
+            if (event == null) {
+                event = configuration.getEvent();
+            }
+            return event;
+        }
+
+        String getEventType(JBPMConfiguration configuration, Exchange 
exchange) {
+            String eventType = 
exchange.getIn().getHeader(JBPMConstants.EVENT_TYPE, String.class);
+            if (eventType == null) {
+                eventType = configuration.getEventType();
+            }
+            return eventType;
+        }
+
+        String getProcessId(JBPMConfiguration configuration, Exchange 
exchange) {
+            String processId = 
exchange.getIn().getHeader(JBPMConstants.PROCESS_ID, String.class);
+            if (processId == null) {
+                processId = configuration.getProcessId();
+            }
+            return processId;
+        }
+
+        Long getProcessInstanceId(JBPMConfiguration configuration, Exchange 
exchange) {
+            Long processInstanceId = 
exchange.getIn().getHeader(JBPMConstants.PROCESS_INSTANCE_ID, Long.class);
+            if (processInstanceId == null) {
+                processInstanceId = configuration.getProcessInstanceId();
+            }
+            return processInstanceId;
+        }
+
+        Map<String, Object> getParameters(JBPMConfiguration configuration, 
Exchange exchange) {
+            Map<String, Object> parameters = 
exchange.getIn().getHeader(JBPMConstants.PARAMETERS, Map.class);
+            if (parameters == null) {
+                parameters = configuration.getParameters();
+            }
+            return parameters;
+        }
+
+        Object getValue(JBPMConfiguration configuration, Exchange exchange) {
+            Object value = exchange.getIn().getHeader(JBPMConstants.VALUE);
+            if (value == null) {
+                value = configuration.getValue();
+            }
+            return value;
+        }
+
+        Message getResultMessage(Exchange exchange) {
+            return ExchangeHelper.isOutCapable(exchange) ? exchange.getOut() : 
exchange.getIn();
+        }
+
+        long safe(Long aLong) {
+            return aLong != null ? aLong : 0;
+        }
+
+        void setResult(Exchange exchange, Object result) {
+            getResultMessage(exchange).setBody(result);
+        }
+
+        abstract void execute(KieServicesClient kieServicesClient, 
JBPMConfiguration configuration, Exchange exchange);
+    }
+
+    private void initOperationProcessors() {
         // PROCESS OPERATIONS
-        startProcess {
+        operations.put(JBPMOperation.startProcess, new 
JBPMOperationProcessor() {
             @Override
             void execute(KieServicesClient kieServicesClient, 
JBPMConfiguration configuration, Exchange exchange) {
                 ProcessServicesClient processClient = 
kieServicesClient.getServicesClient(ProcessServicesClient.class);
@@ -86,16 +267,16 @@ public class JBPMProducer extends DefaultProducer {
                         getProcessId(configuration, exchange), 
getParameters(configuration, exchange));
                 setResult(exchange, processInstance);
             }
-        },
-        abortProcessInstance {
+        });
+        operations.put(JBPMOperation.abortProcessInstance, new 
JBPMOperationProcessor() {
             @Override
             void execute(KieServicesClient kieServicesClient, 
JBPMConfiguration configuration, Exchange exchange) {
                 ProcessServicesClient processClient = 
kieServicesClient.getServicesClient(ProcessServicesClient.class);
                 
processClient.abortProcessInstance(configuration.getDeploymentId(),
                         safe(getProcessInstanceId(configuration, exchange)));
             }
-        },
-        signalEvent {
+        });
+        operations.put(JBPMOperation.signalEvent, new JBPMOperationProcessor() 
{
             @Override
             void execute(KieServicesClient kieServicesClient, 
JBPMConfiguration configuration, Exchange exchange) {
                 ProcessServicesClient processClient = 
kieServicesClient.getServicesClient(ProcessServicesClient.class);
@@ -109,8 +290,8 @@ public class JBPMProducer extends DefaultProducer {
                             getEvent(configuration, exchange));
                 }
             }
-        },
-        getProcessInstance {
+        });
+        operations.put(JBPMOperation.getProcessInstance, new 
JBPMOperationProcessor() {
             @Override
             void execute(KieServicesClient kieServicesClient, 
JBPMConfiguration configuration, Exchange exchange) {
                 ProcessServicesClient processClient = 
kieServicesClient.getServicesClient(ProcessServicesClient.class);
@@ -118,8 +299,9 @@ public class JBPMProducer extends DefaultProducer {
                         safe(getProcessInstanceId(configuration, exchange)));
                 setResult(exchange, processInstance);
             }
-        },
-        getProcessInstances {
+        });
+
+        operations.put(JBPMOperation.getProcessInstances, new 
JBPMOperationProcessor() {
             @Override
             void execute(KieServicesClient kieServicesClient, 
JBPMConfiguration configuration, Exchange exchange) {
                 QueryServicesClient queryClient = 
kieServicesClient.getServicesClient(QueryServicesClient.class);
@@ -127,10 +309,10 @@ public class JBPMProducer extends DefaultProducer {
                         .findProcessInstances(getPage(configuration, 
exchange), getPageSize(configuration, exchange));
                 setResult(exchange, processInstances);
             }
-        },
+        });
 
         // RULE OPERATIONS
-        fireAllRules {
+        operations.put(JBPMOperation.fireAllRules, new 
JBPMOperationProcessor() {
             @Override
             void execute(KieServicesClient kieServicesClient, 
JBPMConfiguration configuration, Exchange exchange) {
                 RuleServicesClient ruleClient = 
kieServicesClient.getServicesClient(RuleServicesClient.class);
@@ -147,8 +329,8 @@ public class JBPMProducer extends DefaultProducer {
                         = 
ruleClient.executeCommandsWithResults(configuration.getDeploymentId(), 
executionCommand);
                 setResult(exchange, reply.getResult());
             }
-        },
-        getGlobal {
+        });
+        operations.put(JBPMOperation.getGlobal, new JBPMOperationProcessor() {
             @Override
             void execute(KieServicesClient kieServicesClient, 
JBPMConfiguration configuration, Exchange exchange) {
                 RuleServicesClient ruleClient = 
kieServicesClient.getServicesClient(RuleServicesClient.class);
@@ -161,8 +343,8 @@ public class JBPMProducer extends DefaultProducer {
                         = 
ruleClient.executeCommandsWithResults(configuration.getDeploymentId(), 
executionCommand);
                 setResult(exchange, reply.getResult().getValue(identifier));
             }
-        },
-        setGlobal {
+        });
+        operations.put(JBPMOperation.setGlobal, new JBPMOperationProcessor() {
             @Override
             void execute(KieServicesClient kieServicesClient, 
JBPMConfiguration configuration, Exchange exchange) {
                 RuleServicesClient ruleClient = 
kieServicesClient.getServicesClient(RuleServicesClient.class);
@@ -174,18 +356,18 @@ public class JBPMProducer extends DefaultProducer {
 
                 
ruleClient.executeCommandsWithResults(configuration.getDeploymentId(), 
executionCommand);
             }
-        },
+        });
 
         // WORK ITEM OPERATIONS
-        abortWorkItem {
+        operations.put(JBPMOperation.abortWorkItem, new 
JBPMOperationProcessor() {
             @Override
             void execute(KieServicesClient kieServicesClient, 
JBPMConfiguration configuration, Exchange exchange) {
                 ProcessServicesClient processClient = 
kieServicesClient.getServicesClient(ProcessServicesClient.class);
                 processClient.abortWorkItem(configuration.getDeploymentId(),
                         safe(getProcessInstanceId(configuration, exchange)), 
safe(getWorkItemId(configuration, exchange)));
             }
-        },
-        completeWorkItem {
+        });
+        operations.put(JBPMOperation.completeWorkItem, new 
JBPMOperationProcessor() {
             @Override
             void execute(KieServicesClient kieServicesClient, 
JBPMConfiguration configuration, Exchange exchange) {
                 ProcessServicesClient processClient = 
kieServicesClient.getServicesClient(ProcessServicesClient.class);
@@ -193,26 +375,26 @@ public class JBPMProducer extends DefaultProducer {
                         safe(getProcessInstanceId(configuration, exchange)), 
safe(getWorkItemId(configuration, exchange)),
                         getParameters(configuration, exchange));
             }
-        },
+        });
 
         // TASK OPERATIONS
-        activateTask {
+        operations.put(JBPMOperation.activateTask, new 
JBPMOperationProcessor() {
             @Override
             void execute(KieServicesClient kieServicesClient, 
JBPMConfiguration configuration, Exchange exchange) {
                 UserTaskServicesClient taskClient = 
kieServicesClient.getServicesClient(UserTaskServicesClient.class);
                 taskClient.activateTask(configuration.getDeploymentId(), 
safe(getTaskId(configuration, exchange)),
                         getUserId(configuration, exchange));
             }
-        },
-        claimTask {
+        });
+        operations.put(JBPMOperation.claimTask, new JBPMOperationProcessor() {
             @Override
             void execute(KieServicesClient kieServicesClient, 
JBPMConfiguration configuration, Exchange exchange) {
                 UserTaskServicesClient taskClient = 
kieServicesClient.getServicesClient(UserTaskServicesClient.class);
                 taskClient.claimTask(configuration.getDeploymentId(), 
safe(getTaskId(configuration, exchange)),
                         getUserId(configuration, exchange));
             }
-        },
-        completeTask {
+        });
+        operations.put(JBPMOperation.completeTask, new 
JBPMOperationProcessor() {
             @Override
             void execute(KieServicesClient kieServicesClient, 
JBPMConfiguration configuration, Exchange exchange) {
                 UserTaskServicesClient taskClient = 
kieServicesClient.getServicesClient(UserTaskServicesClient.class);
@@ -220,8 +402,8 @@ public class JBPMProducer extends DefaultProducer {
                         getUserId(configuration, exchange),
                         getParameters(configuration, exchange));
             }
-        },
-        delegateTask {
+        });
+        operations.put(JBPMOperation.delegateTask, new 
JBPMOperationProcessor() {
             @Override
             void execute(KieServicesClient kieServicesClient, 
JBPMConfiguration configuration, Exchange exchange) {
                 UserTaskServicesClient taskClient = 
kieServicesClient.getServicesClient(UserTaskServicesClient.class);
@@ -229,16 +411,16 @@ public class JBPMProducer extends DefaultProducer {
                         getUserId(configuration, exchange),
                         getTargetUserId(configuration, exchange));
             }
-        },
-        exitTask {
+        });
+        operations.put(JBPMOperation.exitTask, new JBPMOperationProcessor() {
             @Override
             void execute(KieServicesClient kieServicesClient, 
JBPMConfiguration configuration, Exchange exchange) {
                 UserTaskServicesClient taskClient = 
kieServicesClient.getServicesClient(UserTaskServicesClient.class);
                 taskClient.exitTask(configuration.getDeploymentId(), 
safe(getTaskId(configuration, exchange)),
                         getUserId(configuration, exchange));
             }
-        },
-        failTask {
+        });
+        operations.put(JBPMOperation.failTask, new JBPMOperationProcessor() {
             @Override
             void execute(KieServicesClient kieServicesClient, 
JBPMConfiguration configuration, Exchange exchange) {
                 UserTaskServicesClient taskClient = 
kieServicesClient.getServicesClient(UserTaskServicesClient.class);
@@ -246,8 +428,8 @@ public class JBPMProducer extends DefaultProducer {
                         getUserId(configuration, exchange),
                         getParameters(configuration, exchange));
             }
-        },
-        getAttachment {
+        });
+        operations.put(JBPMOperation.getAttachment, new 
JBPMOperationProcessor() {
             @Override
             void execute(KieServicesClient kieServicesClient, 
JBPMConfiguration configuration, Exchange exchange) {
                 UserTaskServicesClient taskClient = 
kieServicesClient.getServicesClient(UserTaskServicesClient.class);
@@ -256,8 +438,8 @@ public class JBPMProducer extends DefaultProducer {
                         safe(getAttachmentId(configuration, exchange)));
                 setResult(exchange, attachment);
             }
-        },
-        getTasksAssignedAsBusinessAdministrator {
+        });
+        operations.put(JBPMOperation.getTasksAssignedAsBusinessAdministrator, 
new JBPMOperationProcessor() {
             @Override
             void execute(KieServicesClient kieServicesClient, 
JBPMConfiguration configuration, Exchange exchange) {
                 UserTaskServicesClient taskClient = 
kieServicesClient.getServicesClient(UserTaskServicesClient.class);
@@ -266,8 +448,8 @@ public class JBPMProducer extends DefaultProducer {
                         getPageSize(configuration, exchange));
                 setResult(exchange, taskSummaries);
             }
-        },
-        getTasksAssignedAsPotentialOwnerByStatus {
+        });
+        operations.put(JBPMOperation.getTasksAssignedAsPotentialOwnerByStatus, 
new JBPMOperationProcessor() {
             @Override
             void execute(KieServicesClient kieServicesClient, 
JBPMConfiguration configuration, Exchange exchange) {
                 UserTaskServicesClient taskClient = 
kieServicesClient.getServicesClient(UserTaskServicesClient.class);
@@ -276,24 +458,24 @@ public class JBPMProducer extends DefaultProducer {
                         getPage(configuration, exchange), 
getPageSize(configuration, exchange));
                 setResult(exchange, taskSummaries);
             }
-        },
-        getTaskByWorkItem {
+        });
+        operations.put(JBPMOperation.getTaskByWorkItem, new 
JBPMOperationProcessor() {
             @Override
             void execute(KieServicesClient kieServicesClient, 
JBPMConfiguration configuration, Exchange exchange) {
                 UserTaskServicesClient taskClient = 
kieServicesClient.getServicesClient(UserTaskServicesClient.class);
                 TaskInstance task = 
taskClient.findTaskByWorkItemId(safe(getWorkItemId(configuration, exchange)));
                 setResult(exchange, task);
             }
-        },
-        getTaskBy {
+        });
+        operations.put(JBPMOperation.getTaskBy, new JBPMOperationProcessor() {
             @Override
             void execute(KieServicesClient kieServicesClient, 
JBPMConfiguration configuration, Exchange exchange) {
                 UserTaskServicesClient taskClient = 
kieServicesClient.getServicesClient(UserTaskServicesClient.class);
                 TaskInstance task = 
taskClient.findTaskById(safe(getTaskId(configuration, exchange)));
                 setResult(exchange, task);
             }
-        },
-        getTaskContent {
+        });
+        operations.put(JBPMOperation.getTaskContent, new 
JBPMOperationProcessor() {
             @Override
             void execute(KieServicesClient kieServicesClient, 
JBPMConfiguration configuration, Exchange exchange) {
                 UserTaskServicesClient taskClient = 
kieServicesClient.getServicesClient(UserTaskServicesClient.class);
@@ -301,8 +483,8 @@ public class JBPMProducer extends DefaultProducer {
                         safe(getTaskId(configuration, exchange)));
                 setResult(exchange, content);
             }
-        },
-        getTasksByProcessInstance {
+        });
+        operations.put(JBPMOperation.getTasksByProcessInstance, new 
JBPMOperationProcessor() {
             @Override
             void execute(KieServicesClient kieServicesClient, 
JBPMConfiguration configuration, Exchange exchange) {
                 UserTaskServicesClient taskClient = 
kieServicesClient.getServicesClient(UserTaskServicesClient.class);
@@ -311,8 +493,8 @@ public class JBPMProducer extends DefaultProducer {
                         getPage(configuration, exchange), 
getPageSize(configuration, exchange));
                 setResult(exchange, processInstanceIds);
             }
-        },
-        getTasksByStatusByProcessInstance {
+        });
+        operations.put(JBPMOperation.getTasksByStatusByProcessInstance, new 
JBPMOperationProcessor() {
             @Override
             void execute(KieServicesClient kieServicesClient, 
JBPMConfiguration configuration, Exchange exchange) {
                 UserTaskServicesClient taskClient = 
kieServicesClient.getServicesClient(UserTaskServicesClient.class);
@@ -322,8 +504,8 @@ public class JBPMProducer extends DefaultProducer {
                                 getPageSize(configuration, exchange));
                 setResult(exchange, taskSummaryList);
             }
-        },
-        getTasksOwned {
+        });
+        operations.put(JBPMOperation.getTasksOwned, new 
JBPMOperationProcessor() {
             @Override
             void execute(KieServicesClient kieServicesClient, 
JBPMConfiguration configuration, Exchange exchange) {
                 UserTaskServicesClient taskClient = 
kieServicesClient.getServicesClient(UserTaskServicesClient.class);
@@ -332,8 +514,8 @@ public class JBPMProducer extends DefaultProducer {
                                 getPageSize(configuration, exchange));
                 setResult(exchange, summaryList);
             }
-        },
-        nominateTask {
+        });
+        operations.put(JBPMOperation.nominateTask, new 
JBPMOperationProcessor() {
             @Override
             void execute(KieServicesClient kieServicesClient, 
JBPMConfiguration configuration, Exchange exchange) {
                 UserTaskServicesClient taskClient = 
kieServicesClient.getServicesClient(UserTaskServicesClient.class);
@@ -341,220 +523,56 @@ public class JBPMProducer extends DefaultProducer {
                         getUserId(configuration, exchange),
                         getEntities(configuration, exchange));
             }
-        },
-        releaseTask {
+        });
+        operations.put(JBPMOperation.releaseTask, new JBPMOperationProcessor() 
{
             @Override
             void execute(KieServicesClient kieServicesClient, 
JBPMConfiguration configuration, Exchange exchange) {
                 UserTaskServicesClient taskClient = 
kieServicesClient.getServicesClient(UserTaskServicesClient.class);
                 taskClient.releaseTask(configuration.getDeploymentId(), 
safe(getTaskId(configuration, exchange)),
                         getUserId(configuration, exchange));
             }
-        },
-        resumeTask {
+        });
+        operations.put(JBPMOperation.resumeTask, new JBPMOperationProcessor() {
             @Override
             void execute(KieServicesClient kieServicesClient, 
JBPMConfiguration configuration, Exchange exchange) {
                 UserTaskServicesClient taskClient = 
kieServicesClient.getServicesClient(UserTaskServicesClient.class);
                 taskClient.resumeTask(configuration.getDeploymentId(), 
safe(getTaskId(configuration, exchange)),
                         getUserId(configuration, exchange));
             }
-        },
-        skipTask {
+        });
+        operations.put(JBPMOperation.skipTask, new JBPMOperationProcessor() {
             @Override
             void execute(KieServicesClient kieServicesClient, 
JBPMConfiguration configuration, Exchange exchange) {
                 UserTaskServicesClient taskClient = 
kieServicesClient.getServicesClient(UserTaskServicesClient.class);
                 taskClient.skipTask(configuration.getDeploymentId(), 
safe(getTaskId(configuration, exchange)),
                         getUserId(configuration, exchange));
             }
-        },
-        startTask {
+        });
+        operations.put(JBPMOperation.startTask, new JBPMOperationProcessor() {
             @Override
             void execute(KieServicesClient kieServicesClient, 
JBPMConfiguration configuration, Exchange exchange) {
                 UserTaskServicesClient taskClient = 
kieServicesClient.getServicesClient(UserTaskServicesClient.class);
                 taskClient.startTask(configuration.getDeploymentId(), 
safe(getTaskId(configuration, exchange)),
                         getUserId(configuration, exchange));
             }
-        },
-        stopTask {
+        });
+        operations.put(JBPMOperation.stopTask, new JBPMOperationProcessor() {
             @Override
             void execute(KieServicesClient kieServicesClient, 
JBPMConfiguration configuration, Exchange exchange) {
                 UserTaskServicesClient taskClient = 
kieServicesClient.getServicesClient(UserTaskServicesClient.class);
                 taskClient.stopTask(configuration.getDeploymentId(), 
safe(getTaskId(configuration, exchange)),
                         getUserId(configuration, exchange));
             }
-        },
-        suspendTask {
+        });
+        operations.put(JBPMOperation.suspendTask, new JBPMOperationProcessor() 
{
             @Override
             void execute(KieServicesClient kieServicesClient, 
JBPMConfiguration configuration, Exchange exchange) {
                 UserTaskServicesClient taskClient = 
kieServicesClient.getServicesClient(UserTaskServicesClient.class);
                 taskClient.suspendTask(configuration.getDeploymentId(), 
safe(getTaskId(configuration, exchange)),
                         getUserId(configuration, exchange));
             }
-        };
-
-        List<String> getStatuses(JBPMConfiguration configuration, Exchange 
exchange) {
-            List<String> statusList = 
exchange.getIn().getHeader(JBPMConstants.STATUS_LIST, List.class);
-            if (statusList == null) {
-                statusList = configuration.getStatuses();
-            }
-            return statusList;
-        }
-
-        List<String> getEntities(JBPMConfiguration configuration, Exchange 
exchange) {
-            List<String> entityList = 
exchange.getIn().getHeader(JBPMConstants.ENTITY_LIST, List.class);
-            if (entityList == null) {
-                entityList = configuration.getEntities();
-            }
-            return entityList;
-        }
-
-        Long getAttachmentId(JBPMConfiguration configuration, Exchange 
exchange) {
-            Long attachmentId = 
exchange.getIn().getHeader(JBPMConstants.ATTACHMENT_ID, Long.class);
-            if (attachmentId == null) {
-                attachmentId = configuration.getAttachmentId();
-            }
-            return attachmentId;
-        }
-
-        Long getContentId(JBPMConfiguration configuration, Exchange exchange) {
-            Long contentId = 
exchange.getIn().getHeader(JBPMConstants.CONTENT_ID, Long.class);
-            if (contentId == null) {
-                contentId = configuration.getContentId();
-            }
-            return contentId;
-        }
-
-        String getTargetUserId(JBPMConfiguration configuration, Exchange 
exchange) {
-            String userId = 
exchange.getIn().getHeader(JBPMConstants.TARGET_USER_ID, String.class);
-            if (userId == null) {
-                userId = configuration.getTargetUserId();
-            }
-            return userId;
-        }
-
-        Integer getPage(JBPMConfiguration configuration, Exchange exchange) {
-            Integer page = 
exchange.getIn().getHeader(JBPMConstants.RESULT_PAGE, Integer.class);
-            if (page == null) {
-                page = configuration.getPage();
-            }
-            return page;
-        }
-
-        Integer getPageSize(JBPMConfiguration configuration, Exchange 
exchange) {
-            Integer pageSize = 
exchange.getIn().getHeader(JBPMConstants.RESULT_PAGE_SIZE, Integer.class);
-            if (pageSize == null) {
-                pageSize = configuration.getPageSize();
-            }
-            return pageSize;
-        }
-
-        Task getTask(JBPMConfiguration configuration, Exchange exchange) {
-            Task task = exchange.getIn().getHeader(JBPMConstants.TASK, 
Task.class);
-            if (task == null) {
-                task = configuration.getTask();
-            }
-            return task;
-        }
-
-        String getUserId(JBPMConfiguration configuration, Exchange exchange) {
-            String userId = exchange.getIn().getHeader(JBPMConstants.USER_ID, 
String.class);
-            if (userId == null) {
-                userId = configuration.getUserId();
-            }
-            return userId;
-        }
-
-        Long getTaskId(JBPMConfiguration configuration, Exchange exchange) {
-            Long taskId = exchange.getIn().getHeader(JBPMConstants.TASK_ID, 
Long.class);
-            if (taskId == null) {
-                taskId = configuration.getTaskId();
-            }
-            return taskId;
-        }
-
-        Long getWorkItemId(JBPMConfiguration configuration, Exchange exchange) 
{
-            Long workItemId = 
exchange.getIn().getHeader(JBPMConstants.WORK_ITEM_ID, Long.class);
-            if (workItemId == null) {
-                workItemId = configuration.getWorkItemId();
-            }
-            return workItemId;
-        }
-
-        String getIdentifier(JBPMConfiguration configuration, Exchange 
exchange) {
-            String identifier = 
exchange.getIn().getHeader(JBPMConstants.IDENTIFIER, String.class);
-            if (identifier == null) {
-                identifier = configuration.getIdentifier();
-            }
-            return identifier;
-        }
-
-        Integer getMaxNumber(JBPMConfiguration configuration, Exchange 
exchange) {
-            Integer max = exchange.getIn().getHeader(JBPMConstants.MAX_NUMBER, 
Integer.class);
-            if (max == null) {
-                max = configuration.getMaxNumber();
-            }
-            return max;
-        }
-
-        Object getEvent(JBPMConfiguration configuration, Exchange exchange) {
-            Object event = exchange.getIn().getHeader(JBPMConstants.EVENT);
-            if (event == null) {
-                event = configuration.getEvent();
-            }
-            return event;
-        }
-
-        String getEventType(JBPMConfiguration configuration, Exchange 
exchange) {
-            String eventType = 
exchange.getIn().getHeader(JBPMConstants.EVENT_TYPE, String.class);
-            if (eventType == null) {
-                eventType = configuration.getEventType();
-            }
-            return eventType;
-        }
-
-        String getProcessId(JBPMConfiguration configuration, Exchange 
exchange) {
-            String processId = 
exchange.getIn().getHeader(JBPMConstants.PROCESS_ID, String.class);
-            if (processId == null) {
-                processId = configuration.getProcessId();
-            }
-            return processId;
-        }
-
-        Long getProcessInstanceId(JBPMConfiguration configuration, Exchange 
exchange) {
-            Long processInstanceId = 
exchange.getIn().getHeader(JBPMConstants.PROCESS_INSTANCE_ID, Long.class);
-            if (processInstanceId == null) {
-                processInstanceId = configuration.getProcessInstanceId();
-            }
-            return processInstanceId;
-        }
-
-        Map<String, Object> getParameters(JBPMConfiguration configuration, 
Exchange exchange) {
-            Map<String, Object> parameters = 
exchange.getIn().getHeader(JBPMConstants.PARAMETERS, Map.class);
-            if (parameters == null) {
-                parameters = configuration.getParameters();
-            }
-            return parameters;
-        }
-
-        Object getValue(JBPMConfiguration configuration, Exchange exchange) {
-            Object value = exchange.getIn().getHeader(JBPMConstants.VALUE);
-            if (value == null) {
-                value = configuration.getValue();
-            }
-            return value;
-        }
-
-        Message getResultMessage(Exchange exchange) {
-            return ExchangeHelper.isOutCapable(exchange) ? exchange.getOut() : 
exchange.getIn();
-        }
+        });
 
-        long safe(Long aLong) {
-            return aLong != null ? aLong : 0;
-        }
-
-        void setResult(Exchange exchange, Object result) {
-            getResultMessage(exchange).setBody(result);
-        }
-
-        abstract void execute(KieServicesClient kieServicesClient, 
JBPMConfiguration configuration, Exchange exchange);
     }
+
 }
diff --git 
a/components/camel-jbpm/src/test/java/org/apache/camel/component/jbpm/JBPMComponentIT.java
 
b/components/camel-jbpm/src/test/java/org/apache/camel/component/jbpm/JBPMComponentIT.java
index 1484f62..af917d1 100644
--- 
a/components/camel-jbpm/src/test/java/org/apache/camel/component/jbpm/JBPMComponentIT.java
+++ 
b/components/camel-jbpm/src/test/java/org/apache/camel/component/jbpm/JBPMComponentIT.java
@@ -21,7 +21,6 @@ import java.util.List;
 import java.util.Map;
 
 import org.apache.camel.builder.RouteBuilder;
-import org.apache.camel.component.jbpm.JBPMProducer.Operation;
 import org.apache.camel.test.junit5.CamelTestSupport;
 import org.junit.jupiter.api.Disabled;
 import org.junit.jupiter.api.Test;
@@ -58,7 +57,7 @@ public class JBPMComponentIT extends CamelTestSupport {
 
         // now let's collect user tasks
         headers = new HashMap<>();
-        headers.put(JBPMConstants.OPERATION, JBPMConstants.OPERATION + 
Operation.getTasksOwned);
+        headers.put(JBPMConstants.OPERATION, JBPMConstants.OPERATION + 
JBPMOperation.getTasksOwned);
 
         template.sendBodyAndHeaders("direct:start", null, headers);
         getMockEndpoint("mock:result").expectedMessageCount(2);
@@ -70,7 +69,7 @@ public class JBPMComponentIT extends CamelTestSupport {
         // let's complete first user task
         headers = new HashMap<>();
         headers.put(JBPMConstants.TASK_ID, tasks.get(0).getId());
-        headers.put(JBPMConstants.OPERATION, JBPMConstants.OPERATION + 
Operation.completeTask);
+        headers.put(JBPMConstants.OPERATION, JBPMConstants.OPERATION + 
JBPMOperation.completeTask);
 
         template.sendBodyAndHeaders("direct:start", null, headers);
         getMockEndpoint("mock:result").expectedMessageCount(3);
@@ -79,7 +78,7 @@ public class JBPMComponentIT extends CamelTestSupport {
         // lastly let's abort process instance we just created
         headers = new HashMap<>();
         headers.put(JBPMConstants.PROCESS_INSTANCE_ID, processInstanceId);
-        headers.put(JBPMConstants.OPERATION, JBPMConstants.OPERATION + 
Operation.abortProcessInstance);
+        headers.put(JBPMConstants.OPERATION, JBPMConstants.OPERATION + 
JBPMOperation.abortProcessInstance);
 
         template.sendBodyAndHeaders("direct:start", null, headers);
         getMockEndpoint("mock:result").expectedMessageCount(4);

Reply via email to