You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@kie.apache.org by ri...@apache.org on 2024/01/18 11:48:20 UTC

(incubator-kie-kogito-runtimes) branch main updated: [Fix_#3337] Avoid creating duplicate consumer (#3357)

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

ricardozanini pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/incubator-kie-kogito-runtimes.git


The following commit(s) were added to refs/heads/main by this push:
     new cfc3361887 [Fix_#3337] Avoid creating duplicate consumer (#3357)
cfc3361887 is described below

commit cfc3361887c0f8edad9947f1b6d0f92c11342205
Author: Francisco Javier Tirado Sarti <65...@users.noreply.github.com>
AuthorDate: Thu Jan 18 12:48:15 2024 +0100

    [Fix_#3337] Avoid creating duplicate consumer (#3357)
---
 .../kie/kogito/codegen/process/ProcessCodegen.java  | 21 +++++++++++----------
 1 file changed, 11 insertions(+), 10 deletions(-)

diff --git a/kogito-codegen-modules/kogito-codegen-processes/src/main/java/org/kie/kogito/codegen/process/ProcessCodegen.java b/kogito-codegen-modules/kogito-codegen-processes/src/main/java/org/kie/kogito/codegen/process/ProcessCodegen.java
index faf545ed02..6f5ba05f7a 100644
--- a/kogito-codegen-modules/kogito-codegen-processes/src/main/java/org/kie/kogito/codegen/process/ProcessCodegen.java
+++ b/kogito-codegen-modules/kogito-codegen-processes/src/main/java/org/kie/kogito/codegen/process/ProcessCodegen.java
@@ -60,6 +60,7 @@ import org.kie.kogito.codegen.api.io.CollectedResource;
 import org.kie.kogito.codegen.core.AbstractGenerator;
 import org.kie.kogito.codegen.core.DashboardGeneratedFileUtils;
 import org.kie.kogito.codegen.process.config.ProcessConfigGenerator;
+import org.kie.kogito.codegen.process.events.ProcessCloudEventMeta;
 import org.kie.kogito.codegen.process.events.ProcessCloudEventMetaFactoryGenerator;
 import org.kie.kogito.internal.SupportedExtensions;
 import org.kie.kogito.internal.process.runtime.KogitoWorkflowProcess;
@@ -279,7 +280,7 @@ public class ProcessCodegen extends AbstractGenerator {
         List<ProcessInstanceGenerator> pis = new ArrayList<>();
         List<ProcessExecutableModelGenerator> processExecutableModelGenerators = new ArrayList<>();
         List<ProcessResourceGenerator> rgs = new ArrayList<>(); // REST resources
-        List<MessageConsumerGenerator> megs = new ArrayList<>(); // message endpoints/consumers
+        Map<ProcessCloudEventMeta, MessageConsumerGenerator> megs = new HashMap<>(); // message endpoints/consumers
         List<MessageProducerGenerator> mpgs = new ArrayList<>(); // message producers
 
         Map<String, ModelClassGenerator> processIdToModelGenerator = new HashMap<>();
@@ -372,14 +373,14 @@ public class ProcessCodegen extends AbstractGenerator {
 
                     // generate message consumers for processes with message start events
                     if (trigger.getType().equals(TriggerMetaData.TriggerType.ConsumeMessage)) {
-                        MessageConsumerGenerator messageConsumerGenerator = new MessageConsumerGenerator(
-                                context(),
-                                workFlowProcess,
-                                modelClassGenerator.className(),
-                                execModelGen.className(),
-                                applicationCanonicalName(),
-                                trigger);
-                        megs.add(messageConsumerGenerator);
+                        MessageConsumerGenerator messageConsumerGenerator =
+                                megs.computeIfAbsent(new ProcessCloudEventMeta(workFlowProcess.getId(), trigger), k -> new MessageConsumerGenerator(
+                                        context(),
+                                        workFlowProcess,
+                                        modelClassGenerator.className(),
+                                        execModelGen.className(),
+                                        applicationCanonicalName(),
+                                        trigger));
                         metaData.addConsumer(trigger.getName(), messageConsumerGenerator.compilationUnit());
                     } else if (trigger.getType().equals(TriggerMetaData.TriggerType.ProduceMessage)) {
                         MessageProducerGenerator messageProducerGenerator = new MessageProducerGenerator(
@@ -441,7 +442,7 @@ public class ProcessCodegen extends AbstractGenerator {
             }
         }
 
-        for (MessageConsumerGenerator messageConsumerGenerator : megs) {
+        for (MessageConsumerGenerator messageConsumerGenerator : megs.values()) {
             storeFile(MESSAGE_CONSUMER_TYPE, messageConsumerGenerator.generatedFilePath(),
                     messageConsumerGenerator.generate());
         }


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@kie.apache.org
For additional commands, e-mail: commits-help@kie.apache.org