diff --git a/spring-boot/src/main/java/io/vanillabp/camunda8/Camunda8AdapterConfiguration.java b/spring-boot/src/main/java/io/vanillabp/camunda8/Camunda8AdapterConfiguration.java index ab35c18..43b280c 100644 --- a/spring-boot/src/main/java/io/vanillabp/camunda8/Camunda8AdapterConfiguration.java +++ b/spring-boot/src/main/java/io/vanillabp/camunda8/Camunda8AdapterConfiguration.java @@ -110,8 +110,8 @@ public Camunda8TaskWiring camunda8TaskWiring( springDataUtil, applicationContext, springBeanUtil, - applicationName, workerId, + camunda8Properties, userTaskHandler, taskHandlers, getConnectableServices()); diff --git a/spring-boot/src/main/java/io/vanillabp/camunda8/wiring/Camunda8TaskWiring.java b/spring-boot/src/main/java/io/vanillabp/camunda8/wiring/Camunda8TaskWiring.java index c5e8d36..1c2104a 100644 --- a/spring-boot/src/main/java/io/vanillabp/camunda8/wiring/Camunda8TaskWiring.java +++ b/spring-boot/src/main/java/io/vanillabp/camunda8/wiring/Camunda8TaskWiring.java @@ -9,7 +9,9 @@ import io.camunda.zeebe.model.bpmn.instance.zeebe.ZeebeFormDefinition; import io.camunda.zeebe.model.bpmn.instance.zeebe.ZeebeLoopCharacteristics; import io.camunda.zeebe.model.bpmn.instance.zeebe.ZeebeTaskDefinition; +import io.vanillabp.camunda8.Camunda8VanillaBpProperties; import io.vanillabp.camunda8.deployment.Camunda8DeploymentAdapter; +import io.vanillabp.camunda8.deployment.DeployedBpmn; import io.vanillabp.camunda8.service.Camunda8ProcessService; import io.vanillabp.camunda8.wiring.Camunda8Connectable.Type; import io.vanillabp.camunda8.wiring.parameters.Camunda8MethodParameterFactory; @@ -31,6 +33,8 @@ import java.util.HashSet; import java.util.LinkedList; import java.util.List; +import java.util.Map; +import java.util.Objects; import java.util.Set; import java.util.function.Consumer; import java.util.stream.Stream; @@ -48,31 +52,31 @@ public class Camunda8TaskWiring extends TaskWiringBase workers = new LinkedList<>(); private Set userTaskTenantIds = new HashSet<>(); + private final Camunda8VanillaBpProperties camunda8Properties; + public Camunda8TaskWiring( final SpringDataUtil springDataUtil, final ApplicationContext applicationContext, final SpringBeanUtil springBeanUtil, - final String applicationName, final String workerId, + final Camunda8VanillaBpProperties camunda8Properties, final Camunda8UserTaskHandler userTaskHandler, final ObjectProvider taskHandlers, final Collection> connectableServices) { super(applicationContext, springBeanUtil, new Camunda8MethodParameterFactory()); this.workerId = workerId; - this.applicationName = applicationName; this.springDataUtil = springDataUtil; this.taskHandlers = taskHandlers; this.userTaskHandler = userTaskHandler; this.connectableServices = connectableServices; + this.camunda8Properties = camunda8Properties; } @@ -85,7 +89,7 @@ protected Class getAnnotationType() { /** * Called by - * {@link Camunda8DeploymentAdapter#processBpmnModel(BpmnModelInstanceImpl)} to + * {@link Camunda8DeploymentAdapter#processBpmnModel(String, Map, DeployedBpmn, BpmnModelInstanceImpl, boolean)} to * ensure client is available before using wire-methods. */ @Override @@ -107,7 +111,7 @@ public void openWorkers() { .handler(userTaskHandler) .timeout(Integer.MAX_VALUE) // user-tasks are not fetched more than once .name(workerId) - .tenantIds(userTaskTenantIds.stream().toList())); + .tenantIds(userTaskTenantIds.stream().filter(Objects::nonNull).toList())); } workers @@ -219,6 +223,7 @@ protected void connectToBpms( final var repository = processService.getWorkflowAggregateRepository(); final var idPropertyName = getWorkflowAggregateIdPropertyName( processService.getWorkflowAggregateClass()); + final var tenantId = camunda8Properties.getTenantId(workflowModuleId); final var taskHandler = taskHandlers.getObject( springDataUtil, @@ -232,7 +237,6 @@ protected void connectToBpms( if (connectable.getType() == Type.USERTASK) { - final var tenantId = workflowModuleId == null ? applicationName : workflowModuleId; userTaskHandler.addTaskHandler( tenantId, connectable.getBpmnProcessId(), @@ -245,7 +249,6 @@ protected void connectToBpms( final var variablesToFetch = getVariablesToFetch(idPropertyName, parameters); - final var tenantId = workflowModuleId == null ? applicationName : workflowModuleId; final var worker = client .newWorker() .jobType(connectable.getTaskDefinition())