From e1832175e1ddedeca342e13681345fa4304d9d7d Mon Sep 17 00:00:00 2001 From: Tiago Dolphine Date: Wed, 6 Dec 2023 10:35:54 -0300 Subject: [PATCH] [KOGITO-9816] Adding ProcessDefinitionRegistration to springboot (#3310) * KOGITO-9816 adding ProcessDefinitionRegistration to springboot --- .../events/spring/KafkaEventPublisher.java | 4 +- .../ProcessDefinitionRegistration.java | 45 +++++++++++++++++++ 2 files changed, 46 insertions(+), 3 deletions(-) create mode 100644 springboot/starters/kogito-processes-spring-boot-starter/src/main/java/org/kie/kogito/process/ProcessDefinitionRegistration.java diff --git a/springboot/addons/events/kafka/src/main/java/org/kie/kogito/events/spring/KafkaEventPublisher.java b/springboot/addons/events/kafka/src/main/java/org/kie/kogito/events/spring/KafkaEventPublisher.java index d11aa00b702..1e164f255f4 100644 --- a/springboot/addons/events/kafka/src/main/java/org/kie/kogito/events/spring/KafkaEventPublisher.java +++ b/springboot/addons/events/kafka/src/main/java/org/kie/kogito/events/spring/KafkaEventPublisher.java @@ -75,9 +75,7 @@ public void publish(DataEvent event) { publishToTopic(event, USER_TASK_INSTANCES_TOPIC_NAME); break; case "ProcessDefinitionEvent": - if (processDefinitionEvents) { - publishToTopic(event, PROCESS_DEFINITIONS_TOPIC_NAME); - } + publishToTopic(event, PROCESS_DEFINITIONS_TOPIC_NAME); break; default: logger.debug("Unknown type of event '{}', ignoring for this publisher", event.getType()); diff --git a/springboot/starters/kogito-processes-spring-boot-starter/src/main/java/org/kie/kogito/process/ProcessDefinitionRegistration.java b/springboot/starters/kogito-processes-spring-boot-starter/src/main/java/org/kie/kogito/process/ProcessDefinitionRegistration.java new file mode 100644 index 00000000000..4fe52990ffd --- /dev/null +++ b/springboot/starters/kogito-processes-spring-boot-starter/src/main/java/org/kie/kogito/process/ProcessDefinitionRegistration.java @@ -0,0 +1,45 @@ +/* + * 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.kie.kogito.process; + +import org.kie.kogito.Application; +import org.kie.kogito.services.registry.ProcessDefinitionEventRegistry; +import org.springframework.beans.factory.InitializingBean; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Component; + +@Component +public class ProcessDefinitionRegistration implements InitializingBean { + Processes processes; + ProcessDefinitionEventRegistry processDefinitionRegistry; + + @Autowired + public ProcessDefinitionRegistration(Application application, @Value("kogito.service.url") String serviceUrl, @Autowired(required = false) Processes processes) { + this.processes = processes; + this.processDefinitionRegistry = new ProcessDefinitionEventRegistry(application, serviceUrl); + } + + @Override + public void afterPropertiesSet() { + if (processes != null) { + processDefinitionRegistry.register(processes); + } + } +}