Resource Deployments
This section documents how to perform process engine deployments with a Quarkus application containing an embedded process engine. The documentation assumes some familiarity with Quarkus CDI support and the Camunda DeploymentBuilder API.
The Camunda Engine Quarkus Extension only supports programmatic deployments. A user can observe for the
CamundaEngineStartupEvent
CDI event. The CamundaEngineStartupEvent
signals that a process engine has been
successfully bootstrapped, and a deployment can be performed.
The following example shows how a single process engine deployment can be performed in a Quarkus application:
@ApplicationScoped
public class MyConfig {
@Inject
RepositoryService repositoryService;
public void createDeployment(@Observes CamundaEngineStartupEvent event) {
repositoryService.createDeployment()
.addClasspathResource("resources/bpmn/simpleProcess.bpmn")
.deploy();
}
}
However, a Quarkus application doesn’t have to be limited to a single process engine deployment. You can observe for
the CamundaEngineStartupEvent
in multiple methods, and perform multiple deployments with a finer-grained control
over the deployed resources.
@ApplicationScoped
public class MyConfig {
@Inject
RepositoryService repositoryService;
public void createDeployment1(@Observes CamundaEngineStartupEvent event) {
repositoryService.createDeployment()
.name("deployment-1")
.addClasspathResource("resources/bpmn/one/simpleProcess1.bpmn")
.deploy();
}
public void createDeployment2(@Observes CamundaEngineStartupEvent event) {
repositoryService.createDeployment()
.name("deployment-2")
.addClasspathResource("resources/bpmn/two/simpleProcess2.bpmn")
.deploy();
}
}