Skip to content

Commit 56ef464

Browse files
Pump version of io.vanillabp:spring-boot-support
Pump versions of spring-boot-support and camunda client
1 parent 0d77d50 commit 56ef464

6 files changed

Lines changed: 61 additions & 37 deletions

File tree

pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717

1818
<properties>
1919
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
20-
<camunda.version>7.20.0</camunda.version>
20+
<camunda.version>7.24.0</camunda.version>
2121
<version.java>17</version.java>
2222
</properties>
2323

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</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: 27 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,9 @@
88
import io.vanillabp.springboot.adapter.ModuleAwareBpmnDeployment;
99
import io.vanillabp.springboot.adapter.VanillaBpProperties;
1010
import jakarta.annotation.PostConstruct;
11+
import java.util.Collection;
12+
import java.util.Map;
13+
import java.util.Optional;
1114
import org.camunda.bpm.engine.ProcessEngine;
1215
import org.camunda.bpm.engine.repository.ResumePreviousBy;
1316
import org.camunda.bpm.engine.spring.application.SpringProcessApplication;
@@ -22,6 +25,8 @@ public class Camunda7DeploymentAdapter extends ModuleAwareBpmnDeployment {
2225

2326
private static final Logger logger = LoggerFactory.getLogger(Camunda7DeploymentAdapter.class);
2427

28+
public static final String MODELCACHE_PREFIX = "C7_";
29+
2530
private final ProcessEngine processEngine;
2631

2732
private final SpringProcessApplication processApplication;
@@ -96,7 +101,7 @@ protected void doDeployment(
96101
}
97102

98103
boolean hasDeployables = false;
99-
104+
100105
for (final var resource : bpmns) {
101106
try (final var inputStream = resource.getInputStream()) {
102107
deploymentBuilder.addInputStream(resource.getFilename(), inputStream);
@@ -121,9 +126,23 @@ protected void doDeployment(
121126
// BPMNs which are new will be parsed and wired as part of the deployment
122127
final String deploymentId;
123128
if (hasDeployables) {
124-
deploymentId = deploymentBuilder
125-
.deployWithResult()
126-
.getId();
129+
final var result = deploymentBuilder
130+
.deployWithResult();
131+
deploymentId = result.getId();
132+
Optional
133+
.ofNullable(result.getDeployedProcessDefinitions())
134+
.stream()
135+
.flatMap(Collection::stream)
136+
.map(definition -> Map.entry(
137+
definition.getResourceName(),
138+
processEngine
139+
.getRepositoryService()
140+
.getBpmnModelInstance(definition.getId())))
141+
.map(resourceModel -> Map.entry(
142+
MODELCACHE_PREFIX + resourceModel.getKey(),
143+
Map.<String, Object>entry(workflowModuleId, resourceModel.getValue())))
144+
.forEach(cacheItem -> ModuleAwareBpmnDeployment.bpmnModelCache.put(
145+
cacheItem.getKey(), cacheItem.getValue()));
127146
} else {
128147
deploymentId = "";
129148
}
@@ -144,7 +163,10 @@ protected void doDeployment(
144163
try {
145164
TaskWiringBpmnParseListener.setOldVersionBpmn(
146165
!definition.getDeploymentId().equals(deploymentId));
147-
processEngine.getRepositoryService().getProcessModel(definition.getId());
166+
final var model = processEngine.getRepositoryService().getBpmnModelInstance(definition.getId());
167+
ModuleAwareBpmnDeployment.bpmnModelCache.put(
168+
MODELCACHE_PREFIX + definition.getResourceName(),
169+
Map.entry(workflowModuleId, model));
148170
} finally {
149171
TaskWiringBpmnParseListener.setOldVersionBpmn(false);
150172
}

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/ProcessEntityAwareExpressionManager.java

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

33
import io.vanillabp.camunda7.service.Camunda7ProcessService;
4+
import java.util.Collection;
5+
import java.util.HashMap;
6+
import java.util.function.Supplier;
47
import org.camunda.bpm.engine.spring.SpringExpressionManager;
58
import org.camunda.bpm.impl.juel.jakarta.el.CompositeELResolver;
69
import org.camunda.bpm.impl.juel.jakarta.el.ELResolver;
710
import org.springframework.context.ApplicationContext;
811

9-
import java.util.Collection;
10-
import java.util.HashMap;
11-
import java.util.function.Supplier;
12-
1312
/*
1413
* Custom expression manager to resolve process entities and @WorkflowTask annotated methods
1514
*/
@@ -38,11 +37,7 @@ protected ELResolver createElResolver() {
3837
processEntityELResolver = new ProcessEntityELResolver(
3938
connectableServices);
4039

41-
toBeConnected
42-
.entrySet()
43-
.stream()
44-
.forEach(entry -> processEntityELResolver
45-
.addTaskHandler(entry.getKey(), entry.getValue()));
40+
toBeConnected.forEach(processEntityELResolver::addTaskHandler);
4641
toBeConnected.clear();
4742

4843
}

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)