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
<[email protected]>
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: [email protected]
For additional commands, e-mail: [email protected]