Setup a Spring Project

First, let’s set up the project in the IDE of your choice, the following description uses Eclipse.

Requirements

The project requires Java 17 or later.

Set Up a Java Project

Create a new Maven Project

Create a new Maven WAR project, either using Eclipse’s File > New > Maven Project wizard, or by hand.

Add EximeeBPMS Platform & Spring Dependencies

We import the eximeebpms-bom and the spring-framework-bom via dependency management, and declare dependencies on eximeebpms-engine, eximeebpms-engine-spring-6, and the Spring modules the embedded process engine configuration needs:

<properties>
  <eximeebpms.version>1.3.0</eximeebpms.version>
  <spring.version>7.0.8</spring.version>
  <h2.version>2.3.232</h2.version>
  <slf4j.version>2.0.18</slf4j.version>
  <maven.compiler.release>17</maven.compiler.release>
</properties>

<dependencyManagement>
  <dependencies>
    <dependency>
      <groupId>org.eximeebpms.bpm</groupId>
      <artifactId>eximeebpms-bom</artifactId>
      <version>${eximeebpms.version}</version>
      <scope>import</scope>
      <type>pom</type>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-framework-bom</artifactId>
      <version>${spring.version}</version>
      <scope>import</scope>
      <type>pom</type>
    </dependency>
  </dependencies>
</dependencyManagement>

<dependencies>
  <dependency>
    <groupId>org.eximeebpms.bpm</groupId>
    <artifactId>eximeebpms-engine</artifactId>
  </dependency>
  <dependency>
    <groupId>org.eximeebpms.bpm</groupId>
    <artifactId>eximeebpms-engine-spring-6</artifactId>
  </dependency>
  <dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-context</artifactId>
  </dependency>
  <dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-jdbc</artifactId>
  </dependency>
  <dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-tx</artifactId>
  </dependency>
  <dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-orm</artifactId>
  </dependency>
  <dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-web</artifactId>
  </dependency>
  <dependency>
    <groupId>com.h2database</groupId>
    <artifactId>h2</artifactId>
    <version>${h2.version}</version>
  </dependency>
  <dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-jdk14</artifactId>
    <version>${slf4j.version}</version>
  </dependency>
</dependencies>

Bootstrap a plain Spring Web Application Context

The web.xml bootstraps a plain Spring AnnotationConfigWebApplicationContext, pointed at a configuration class we are about to write:

<context-param>
  <param-name>contextClass</param-name>
  <param-value>org.springframework.web.context.support.AnnotationConfigWebApplicationContext</param-value>
</context-param>
<context-param>
  <param-name>contextConfigLocation</param-name>
  <param-value>org.eximeebpms.bpm.getstarted.loanapproval.LoanApplicationContext</param-value>
</context-param>

<listener>
  <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>

That configuration class is still empty at this point:

@Configuration
public class LoanApplicationContext {

}

Build and Run

Build the WAR file with mvn package and deploy it to a servlet container of your choice.

On this page