Skip to content

Commit 980f9b6

Browse files
Pump version of io.vanillabp:spring-boot-support
1 parent cfd06af commit 980f9b6

4 files changed

Lines changed: 52 additions & 28 deletions

File tree

spring-boot/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@
2929
<dependency>
3030
<groupId>io.vanillabp</groupId>
3131
<artifactId>spring-boot-support</artifactId>
32-
<version>1.2.1</version>
32+
<version>1.2.3-SNAPSHOT</version>
3333
</dependency>
3434
<dependency>
3535
<groupId>org.camunda.bpm.springboot</groupId>

spring-boot/src/main/java/io/vanillabp/camunda7/deployment/Camunda7DeploymentAdapter.java

Lines changed: 23 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -8,17 +8,19 @@
88
import io.vanillabp.springboot.adapter.ModuleAwareBpmnDeployment;
99
import io.vanillabp.springboot.adapter.VanillaBpProperties;
1010
import jakarta.annotation.PostConstruct;
11+
import java.util.Map;
1112
import org.camunda.bpm.engine.ProcessEngine;
1213
import org.camunda.bpm.engine.repository.ResumePreviousBy;
1314
import org.camunda.bpm.engine.spring.application.SpringProcessApplication;
15+
import org.camunda.bpm.model.bpmn.BpmnModelInstance;
1416
import org.slf4j.Logger;
1517
import org.slf4j.LoggerFactory;
1618
import org.springframework.core.io.Resource;
1719
import org.springframework.transaction.annotation.Transactional;
1820

1921

2022
@Transactional
21-
public class Camunda7DeploymentAdapter extends ModuleAwareBpmnDeployment {
23+
public class Camunda7DeploymentAdapter extends ModuleAwareBpmnDeployment<BpmnModelInstance> {
2224

2325
private static final Logger logger = LoggerFactory.getLogger(Camunda7DeploymentAdapter.class);
2426

@@ -96,7 +98,7 @@ protected void doDeployment(
9698
}
9799

98100
boolean hasDeployables = false;
99-
101+
100102
for (final var resource : bpmns) {
101103
try (final var inputStream = resource.getInputStream()) {
102104
deploymentBuilder.addInputStream(resource.getFilename(), inputStream);
@@ -121,9 +123,21 @@ protected void doDeployment(
121123
// BPMNs which are new will be parsed and wired as part of the deployment
122124
final String deploymentId;
123125
if (hasDeployables) {
124-
deploymentId = deploymentBuilder
125-
.deployWithResult()
126-
.getId();
126+
final var result = deploymentBuilder
127+
.deployWithResult();
128+
deploymentId = result.getId();
129+
result
130+
.getDeployedProcessDefinitions()
131+
.stream()
132+
.map(definition -> Map.entry(
133+
definition.getResourceName(),
134+
processEngine
135+
.getRepositoryService()
136+
.getBpmnModelInstance(definition.getId())))
137+
.map(resourceModel -> Map.entry(
138+
resourceModel.getKey(),
139+
Map.entry(workflowModuleId, resourceModel.getValue())))
140+
.forEach(cacheItem -> bpmnModelCache.put(cacheItem.getKey(), cacheItem.getValue()));
127141
} else {
128142
deploymentId = "";
129143
}
@@ -144,7 +158,10 @@ protected void doDeployment(
144158
try {
145159
TaskWiringBpmnParseListener.setOldVersionBpmn(
146160
!definition.getDeploymentId().equals(deploymentId));
147-
processEngine.getRepositoryService().getProcessModel(definition.getId());
161+
final var model = processEngine.getRepositoryService().getBpmnModelInstance(definition.getId());
162+
bpmnModelCache.put(
163+
definition.getResourceName(),
164+
Map.entry(workflowModuleId, model));
148165
} finally {
149166
TaskWiringBpmnParseListener.setOldVersionBpmn(false);
150167
}

spring-boot/src/main/java/io/vanillabp/camunda7/wiring/Camunda7Connectable.java

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package io.vanillabp.camunda7.wiring;
22

33
import io.vanillabp.springboot.adapter.Connectable;
4+
import org.camunda.bpm.engine.repository.ProcessDefinition;
45

56
public class Camunda7Connectable implements Connectable {
67

@@ -10,22 +11,26 @@ public static enum Type {
1011

1112
private final Type type;
1213
private final String bpmnProcessId;
14+
private final String versionInfo;
1315
private final String elementId;
1416
private final String taskDefinition;
1517

1618
public Camunda7Connectable(
17-
final String bpmnProcessId,
19+
final ProcessDefinition processDefinition,
1820
final String elementId,
1921
final String taskDefinition,
2022
final Type type) {
2123

22-
this.bpmnProcessId = bpmnProcessId;
24+
this.bpmnProcessId = processDefinition.getKey();
25+
this.versionInfo = processDefinition.getVersionTag() != null
26+
? "%s (%d)".formatted(processDefinition.getVersionTag(), processDefinition.getVersion())
27+
: Integer.toString(processDefinition.getVersion());
2328
this.elementId = elementId;
2429
this.taskDefinition = taskDefinition;
2530
this.type = type;
2631

2732
}
28-
33+
2934
public boolean applies(
3035
final String elementId,
3136
final String taskDefinition) {
@@ -34,7 +39,14 @@ public boolean applies(
3439
|| getTaskDefinition().equals(taskDefinition);
3540

3641
}
37-
42+
43+
@Override
44+
public String getVersionInfo() {
45+
46+
return versionInfo;
47+
48+
}
49+
3850
@Override
3951
public boolean isExecutableProcess() {
4052

spring-boot/src/main/java/io/vanillabp/camunda7/wiring/TaskWiringBpmnParseListener.java

Lines changed: 12 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,10 @@
11
package io.vanillabp.camunda7.wiring;
22

33
import io.vanillabp.camunda7.Camunda7VanillaBpProperties;
4+
import java.util.LinkedList;
5+
import java.util.List;
6+
import java.util.regex.Pattern;
7+
import java.util.stream.Collectors;
48
import org.camunda.bpm.engine.impl.bpmn.behavior.DmnBusinessRuleTaskActivityBehavior;
59
import org.camunda.bpm.engine.impl.bpmn.behavior.UserTaskActivityBehavior;
610
import org.camunda.bpm.engine.impl.bpmn.listener.DelegateExpressionExecutionListener;
@@ -18,11 +22,6 @@
1822
import org.camunda.bpm.engine.impl.variable.VariableDeclaration;
1923
import org.springframework.util.StringUtils;
2024

21-
import java.util.LinkedList;
22-
import java.util.List;
23-
import java.util.regex.Pattern;
24-
import java.util.stream.Collectors;
25-
2625
@SuppressWarnings("deprecation")
2726
public class TaskWiringBpmnParseListener implements BpmnParseListener {
2827

@@ -148,10 +147,8 @@ public void parseUserTask(
148147
org.camunda.bpm.engine.delegate.TaskListener.EVENTNAME_DELETE,
149148
userTaskEventHandler);
150149

151-
final var bpmnProcessId = ((ProcessDefinitionEntity) activity.getProcessDefinition()).getKey();
152-
153150
final var connectable = new Camunda7Connectable(
154-
bpmnProcessId,
151+
(ProcessDefinitionEntity) activity.getProcessDefinition(),
155152
activity.getId(),
156153
taskDefinition.getFormKey() != null ? taskDefinition.getFormKey().getExpressionText() : null,
157154
Camunda7Connectable.Type.USERTASK);
@@ -169,10 +166,8 @@ private void connectListener(
169166
final Camunda7Connectable.Type type,
170167
final String expression) {
171168

172-
final var bpmnProcessId = ((ProcessDefinitionEntity) activity.getProcessDefinition()).getKey();
173-
174169
final var connectable = new Camunda7Connectable(
175-
bpmnProcessId,
170+
(ProcessDefinitionEntity) activity.getProcessDefinition(),
176171
activity.getId(),
177172
expression,
178173
type);
@@ -239,7 +234,7 @@ private boolean connectTaskLike(
239234
final ScopeImpl scope,
240235
final ActivityImpl activity) {
241236

242-
final var bpmnProcessId = ((ProcessDefinitionEntity) activity.getProcessDefinition()).getKey();
237+
final var processDefinition = (ProcessDefinitionEntity) activity.getProcessDefinition();
243238

244239
final var delegateExpression = element.attributeNS(
245240
BpmnParse.CAMUNDA_BPMN_EXTENSIONS_NS,
@@ -259,7 +254,7 @@ private boolean connectTaskLike(
259254
final var unwrappedDelegateExpression = unwrapExpression(activity, delegateExpression);
260255

261256
connectable = new Camunda7Connectable(
262-
bpmnProcessId,
257+
processDefinition,
263258
activity.getId(),
264259
unwrappedDelegateExpression,
265260
Camunda7Connectable.Type.DELEGATE_EXPRESSION);
@@ -269,15 +264,15 @@ private boolean connectTaskLike(
269264
final var unwrappedExpression = unwrapExpression(activity, expression);
270265

271266
connectable = new Camunda7Connectable(
272-
bpmnProcessId,
267+
processDefinition,
273268
activity.getId(),
274269
unwrappedExpression,
275270
Camunda7Connectable.Type.EXPRESSION);
276271

277272
} else if (StringUtil.hasText(topic)) {
278273

279274
connectable = new Camunda7Connectable(
280-
bpmnProcessId,
275+
processDefinition,
281276
activity.getId(),
282277
topic,
283278
Camunda7Connectable.Type.EXTERNAL_TASK);
@@ -646,8 +641,8 @@ public void parseRootElement(
646641
final var processService = taskWiring.wireService(
647642
tbw.workflowModuleId,
648643
tbw.bpmnProcessId,
649-
oldVersionBpmn.get().booleanValue() ? null : tbw.messageBasedStartEventsMessages,
650-
oldVersionBpmn.get().booleanValue() ? null : tbw.signalBasedStartEventsSignals);
644+
oldVersionBpmn.get() ? null : tbw.messageBasedStartEventsMessages,
645+
oldVersionBpmn.get() ? null : tbw.signalBasedStartEventsSignals);
651646
tbw.connectables
652647
.forEach(connectable -> taskWiring.wireTask(workflowModuleId.get(), processService, connectable));
653648
});

0 commit comments

Comments
 (0)