@dirkw65 based on activity type, you can get extension properties from DelegateTask/Delegate Execution or by parsing the whole process definition xml itself.
Example to get extension properties from DelegateTask/DelegateExecution:
UserTask:
UserTaskImpl userTaskImpl = bpmnModelElementInstance.getModelInstance().getModelElementById(modelElementId);
ExtensionElements userTaskExtensionElements = userTaskImpl.getExtensionElements();
Collection<CamundaProperty> userTaskProperties = userTaskExtensionElements.getElementsQuery()
.filterByType(CamundaProperties.class).singleResult().getCamundaProperties();
StartEvent:
StartEventImpl startEventImpl = bpmnModelElementInstance.getModelInstance().getModelElementById(modelElementId);
ExtensionElements startEventExtensionElements = startEventImpl.getExtensionElements();
Collection<CamundaProperty> startEventProperties = startEventExtensionElements.getElementsQuery()
.filterByType(CamundaProperties.class).singleResult().getCamundaProperties();
Parsing whole bpmn file:
public Collection<CamundaProperty> parseBpmn(String xml) {
try (InputStream bpmn20XMLStream = new ByteArrayInputStream(bpmn20XML.getBytes(StandardCharsets.UTF_8))) {
BpmnModelInstance bpmnModelInstance = Bpmn.readModelFromStream(xml);
Collection<UserTask> userTasks = bpmnModelInstance.getModelElementsByType(UserTask.class);
userTasks.stream().forEach(userTask -> {
if (userTask instanceof UserTask) {
return userTask.getExtensionElements().getElementsQuery()
.filterByType(CamundaProperties.class).singleResult().getCamundaProperties();
});
}}