use of io.camunda.zeebe.model.bpmn.Bpmn in project zeebe by camunda.
the class ActivateJobsTest method shouldActivateJobsFromProcess.
@Test
public void shouldActivateJobsFromProcess() {
// given
final int jobAmount = 10;
final String jobType = taskType;
final String jobType2 = Strings.newRandomValidBpmnId();
final String jobType3 = Strings.newRandomValidBpmnId();
AbstractFlowNodeBuilder<?, ?> builder = Bpmn.createExecutableProcess(PROCESS_ID).startEvent("start");
for (final String type : Arrays.asList(jobType, jobType2, jobType3)) {
builder = builder.serviceTask(type, b -> b.zeebeJobType(type));
}
ENGINE.deployment().withXmlResource(PROCESS_ID + ".bpmn", builder.done()).deploy();
final List<Long> processInstanceKeys = createProcessInstances(jobAmount, "{}");
// when activating and completing all jobs
waitForJobs(jobType, jobAmount, processInstanceKeys);
activateJobs(jobType, jobAmount).forEach(this::completeJob);
waitForJobs(jobType2, jobAmount, processInstanceKeys);
activateJobs(jobType2, jobAmount).forEach(this::completeJob);
waitForJobs(jobType3, jobAmount, processInstanceKeys);
activateJobs(jobType3, jobAmount).forEach(this::completeJob);
// then all process instances are completed
assertThat(processInstanceRecords(ProcessInstanceIntent.ELEMENT_COMPLETED).withBpmnProcessId(PROCESS_ID).filter(r -> processInstanceKeys.contains(r.getKey())).limit(jobAmount).count() == processInstanceKeys.size());
}
use of io.camunda.zeebe.model.bpmn.Bpmn in project zeebe by camunda-cloud.
the class CreateDeploymentTest method shouldRejectDeploymentWithDuplicateResources.
@Test
public void shouldRejectDeploymentWithDuplicateResources() {
// given
final BpmnModelInstance definition1 = Bpmn.createExecutableProcess("process1").startEvent().done();
final BpmnModelInstance definition2 = Bpmn.createExecutableProcess("process2").startEvent().done();
final BpmnModelInstance definition3 = Bpmn.createExecutableProcess("process2").startEvent().serviceTask("task", (t) -> t.zeebeJobType("j").zeebeTaskHeader("k", "v")).done();
// when
final Record<DeploymentRecordValue> deploymentRejection = ENGINE.deployment().withXmlResource("p1.bpmn", definition1).withXmlResource("p2.bpmn", definition2).withXmlResource("p3.bpmn", definition3).expectRejection().deploy();
// then
Assertions.assertThat(deploymentRejection).hasRejectionType(RejectionType.INVALID_ARGUMENT).hasRejectionReason("Expected to deploy new resources, but encountered the following errors:\n" + "Duplicated process id in resources 'p2.bpmn' and 'p3.bpmn'");
}
use of io.camunda.zeebe.model.bpmn.Bpmn in project zeebe-simple-monitor by camunda-community-hub.
the class InstancesAuditLogViewController method fillViewDetailsIntoDto.
@Override
protected void fillViewDetailsIntoDto(ProcessInstanceEntity instance, List<ElementInstanceEntity> events, List<IncidentEntity> incidents, Map<Long, String> elementIdsForKeys, Map<String, Object> model, Pageable pageable, ProcessInstanceDto dto) {
final var bpmnModelInstance = processRepository.findByKey(instance.getProcessDefinitionKey()).map(w -> new ByteArrayInputStream(w.getResource().getBytes())).map(Bpmn::readModelFromStream);
final Map<String, String> flowElements = new HashMap<>();
bpmnModelInstance.ifPresent(bpmn -> {
bpmn.getModelElementsByType(FlowElement.class).forEach(e -> flowElements.put(e.getId(), Optional.ofNullable(e.getName()).orElse("")));
dto.setBpmnElementInfos(getBpmnElementInfos(bpmn));
});
final List<AuditLogEntry> auditLogEntries = events.stream().skip((long) pageable.getPageSize() * pageable.getPageNumber()).map(e -> {
final AuditLogEntry entry = new AuditLogEntry();
entry.setKey(e.getKey());
entry.setFlowScopeKey(e.getFlowScopeKey());
entry.setElementId(e.getElementId());
entry.setElementName(flowElements.getOrDefault(e.getElementId(), ""));
entry.setBpmnElementType(e.getBpmnElementType());
entry.setState(e.getIntent());
entry.setTimestamp(Instant.ofEpochMilli(e.getTimestamp()).toString());
return entry;
}).limit(pageable.getPageSize()).collect(Collectors.toList());
dto.setAuditLogEntries(auditLogEntries);
addPaginationToModel(model, pageable, events.size());
}
use of io.camunda.zeebe.model.bpmn.Bpmn in project zeebe by zeebe-io.
the class ActivateJobsTest method shouldActivateJobsFromProcess.
@Test
public void shouldActivateJobsFromProcess() {
// given
final int jobAmount = 10;
final String jobType = taskType;
final String jobType2 = Strings.newRandomValidBpmnId();
final String jobType3 = Strings.newRandomValidBpmnId();
AbstractFlowNodeBuilder<?, ?> builder = Bpmn.createExecutableProcess(PROCESS_ID).startEvent("start");
for (final String type : Arrays.asList(jobType, jobType2, jobType3)) {
builder = builder.serviceTask(type, b -> b.zeebeJobType(type));
}
ENGINE.deployment().withXmlResource(PROCESS_ID + ".bpmn", builder.done()).deploy();
final List<Long> processInstanceKeys = createProcessInstances(jobAmount, "{}");
// when activating and completing all jobs
waitForJobs(jobType, jobAmount, processInstanceKeys);
activateJobs(jobType, jobAmount).forEach(this::completeJob);
waitForJobs(jobType2, jobAmount, processInstanceKeys);
activateJobs(jobType2, jobAmount).forEach(this::completeJob);
waitForJobs(jobType3, jobAmount, processInstanceKeys);
activateJobs(jobType3, jobAmount).forEach(this::completeJob);
// then all process instances are completed
assertThat(processInstanceRecords(ProcessInstanceIntent.ELEMENT_COMPLETED).withBpmnProcessId(PROCESS_ID).filter(r -> processInstanceKeys.contains(r.getKey())).limit(jobAmount).count() == processInstanceKeys.size());
}
use of io.camunda.zeebe.model.bpmn.Bpmn in project zeebe by zeebe-io.
the class CreateDeploymentTest method shouldRejectDeploymentWithDuplicateResources.
@Test
public void shouldRejectDeploymentWithDuplicateResources() {
// given
final BpmnModelInstance definition1 = Bpmn.createExecutableProcess("process1").startEvent().done();
final BpmnModelInstance definition2 = Bpmn.createExecutableProcess("process2").startEvent().done();
final BpmnModelInstance definition3 = Bpmn.createExecutableProcess("process2").startEvent().serviceTask("task", (t) -> t.zeebeJobType("j").zeebeTaskHeader("k", "v")).done();
// when
final Record<DeploymentRecordValue> deploymentRejection = ENGINE.deployment().withXmlResource("p1.bpmn", definition1).withXmlResource("p2.bpmn", definition2).withXmlResource("p3.bpmn", definition3).expectRejection().deploy();
// then
Assertions.assertThat(deploymentRejection).hasRejectionType(RejectionType.INVALID_ARGUMENT).hasRejectionReason("Expected to deploy new resources, but encountered the following errors:\n" + "Duplicated process id in resources 'p2.bpmn' and 'p3.bpmn'");
}
Aggregations