Skip to content

Commit f992d69

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

5 files changed

Lines changed: 55 additions & 36 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: 22 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
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;
@@ -96,7 +97,7 @@ protected void doDeployment(
9697
}
9798

9899
boolean hasDeployables = false;
99-
100+
100101
for (final var resource : bpmns) {
101102
try (final var inputStream = resource.getInputStream()) {
102103
deploymentBuilder.addInputStream(resource.getFilename(), inputStream);
@@ -121,9 +122,22 @@ protected void doDeployment(
121122
// BPMNs which are new will be parsed and wired as part of the deployment
122123
final String deploymentId;
123124
if (hasDeployables) {
124-
deploymentId = deploymentBuilder
125-
.deployWithResult()
126-
.getId();
125+
final var result = deploymentBuilder
126+
.deployWithResult();
127+
deploymentId = result.getId();
128+
result
129+
.getDeployedProcessDefinitions()
130+
.stream()
131+
.map(definition -> Map.entry(
132+
definition.getResourceName(),
133+
processEngine
134+
.getRepositoryService()
135+
.getBpmnModelInstance(definition.getId())))
136+
.map(resourceModel -> Map.entry(
137+
resourceModel.getKey(),
138+
Map.<String, Object>entry(workflowModuleId, resourceModel.getValue())))
139+
.forEach(cacheItem -> ModuleAwareBpmnDeployment.bpmnModelCache.put(
140+
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+
ModuleAwareBpmnDeployment.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/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)