This example demonstrates how you can build a Spring Boot Web application with the following configured:
- Embedded Camunda engine accessible via REST
- Process application and one BPMN process deployed
- Spring Boot Security basic authentication
It also contains a couple of integration tests, showing how this can be tested.
- Java 17/21
- To embed the Camunda Engine accessible via REST API you must add following dependency to your
pom.xml
:
...
<dependency>
<groupId>org.camunda.bpm.springboot</groupId>
<artifactId>camunda-bpm-spring-boot-starter-rest</artifactId>
<version>7.22.0</version>
</dependency>
...
- With Spring Boot you usually create an "application" class annotated with
@SpringBootApplication
. In order to have the Camunda process application registered, you can simply add an annotation@EnableProcessApplication
to the same class and also includeprocesses.xml
file to yourMETA-INF
folder:
@SpringBootApplication
@EnableProcessApplication
public class RestApplication {
public static void main(final String... args) throws Exception {
SpringApplication.run(RestApplication.class, args);
}
}
- You can also put BPMN, CMMN and DMN files in your classpath, they will be automatically deployed and registered within a process application.
Note: Basic authentication is configured on Spring Boot level, this is NOT a Camunda Engine authentication. Check this docs to configure Basic Authentication for Camunda Engine REST API.
You can then build the application with mvn clean install
and then run it with java -jar
command.
Then you can access the REST API in the browser through: http://localhost:8080/engine-rest/engine
(provide login/password from application.yaml
, default: demo/demo).
Another endpoint to test: http://localhost:8080/engine-rest/engine/default/process-definition
- this will show you the deployed process definition.