use of io.camunda.zeebe.model.bpmn.builder.AbstractFlowNodeBuilder 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.builder.AbstractFlowNodeBuilder in project zeebe by camunda.
the class SubProcessBlockBuilder method buildFlowNodes.
@Override
public AbstractFlowNodeBuilder<?, ?> buildFlowNodes(final AbstractFlowNodeBuilder<?, ?> nodeBuilder) {
final SubProcessBuilder subProcessBuilderStart = nodeBuilder.subProcess(subProcessId);
AbstractFlowNodeBuilder<?, ?> workInProgress = subProcessBuilderStart.embeddedSubProcess().startEvent(subProcessStartEventId);
if (embeddedSubProcessBuilder != null) {
workInProgress = embeddedSubProcessBuilder.buildFlowNodes(workInProgress);
}
final var subProcessBuilderDone = workInProgress.endEvent(subProcessEndEventId).subProcessDone();
AbstractFlowNodeBuilder result = subProcessBuilderDone;
if (hasBoundaryEvents) {
final BoundaryEventBuilder boundaryEventBuilder = new BoundaryEventBuilder(subProcessId, subProcessBuilderDone);
if (hasBoundaryTimerEvent) {
result = boundaryEventBuilder.connectBoundaryTimerEvent(subProcessBoundaryTimerEventId);
}
}
return result;
}
use of io.camunda.zeebe.model.bpmn.builder.AbstractFlowNodeBuilder in project zeebe by zeebe-io.
the class SubProcessBlockBuilder method buildFlowNodes.
@Override
public AbstractFlowNodeBuilder<?, ?> buildFlowNodes(final AbstractFlowNodeBuilder<?, ?> nodeBuilder) {
final SubProcessBuilder subProcessBuilderStart = nodeBuilder.subProcess(subProcessId);
AbstractFlowNodeBuilder<?, ?> workInProgress = subProcessBuilderStart.embeddedSubProcess().startEvent(subProcessStartEventId);
if (embeddedSubProcessBuilder != null) {
workInProgress = embeddedSubProcessBuilder.buildFlowNodes(workInProgress);
}
final var subProcessBuilderDone = workInProgress.endEvent(subProcessEndEventId).subProcessDone();
AbstractFlowNodeBuilder result = subProcessBuilderDone;
if (hasBoundaryEvents) {
final BoundaryEventBuilder boundaryEventBuilder = new BoundaryEventBuilder(subProcessId, subProcessBuilderDone);
if (hasBoundaryTimerEvent) {
result = boundaryEventBuilder.connectBoundaryTimerEvent(subProcessBoundaryTimerEventId);
}
}
return result;
}
use of io.camunda.zeebe.model.bpmn.builder.AbstractFlowNodeBuilder 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.builder.AbstractFlowNodeBuilder in project zeebe by camunda-cloud.
the class SubProcessBlockBuilder method buildFlowNodes.
@Override
public AbstractFlowNodeBuilder<?, ?> buildFlowNodes(final AbstractFlowNodeBuilder<?, ?> nodeBuilder) {
final SubProcessBuilder subProcessBuilderStart = nodeBuilder.subProcess(subProcessId);
AbstractFlowNodeBuilder<?, ?> workInProgress = subProcessBuilderStart.embeddedSubProcess().startEvent(subProcessStartEventId);
if (embeddedSubProcessBuilder != null) {
workInProgress = embeddedSubProcessBuilder.buildFlowNodes(workInProgress);
}
final var subProcessBuilderDone = workInProgress.endEvent(subProcessEndEventId).subProcessDone();
AbstractFlowNodeBuilder result = subProcessBuilderDone;
if (hasBoundaryEvents) {
final BoundaryEventBuilder boundaryEventBuilder = new BoundaryEventBuilder(subProcessId, subProcessBuilderDone);
if (hasBoundaryTimerEvent) {
result = boundaryEventBuilder.connectBoundaryTimerEvent(subProcessBoundaryTimerEventId);
}
}
return result;
}
Aggregations