<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
  <parent>
    <artifactId>operaton-database-settings</artifactId>
    <groupId>org.operaton.bpm</groupId>
    <version>1.1.2</version>
    <relativePath>../database/pom.xml</relativePath>
  </parent>
  <modelVersion>4.0.0</modelVersion>
  <artifactId>operaton-engine</artifactId>
  <name>Operaton - Engine</name>
  <description>${project.name}</description>
  <build>
    <resources>
      <resource>
        <directory>src/main/resources</directory>
      </resource>
      <resource>
        <filtering>true</filtering>
        <directory>src/main/resources</directory>
        <includes>
          <include>org/operaton/bpm/engine/product-info.properties</include>
        </includes>
      </resource>
    </resources>
    <testResources>
      <testResource>
        <directory>src/test/resources</directory>
      </testResource>
      <testResource>
        <filtering>true</filtering>
        <directory>src/test/resources</directory>
        <includes>
          <include>**/operaton.cfg.xml</include>
          <include>**/*operaton.cfg.xml</include>
          <include>**/operaton.cfg.*.xml</include>
          <include>testconfig.properties</include>
          <include>database.properties</include>
          <include>**/testcontainers.properties</include>
        </includes>
      </testResource>
    </testResources>
    <pluginManagement>
      <plugins>
        <plugin>
          <groupId>org.eclipse.m2e</groupId>
          <artifactId>lifecycle-mapping</artifactId>
          <version>1.0.0</version>
          <configuration>
            <lifecycleMappingMetadata>
              <pluginExecutions>
                <pluginExecution>
                  <pluginExecutionFilter>
                    <groupId>org.apache.felix</groupId>
                    <artifactId>maven-bundle-plugin</artifactId>
                    <versionRange>[2.1.0,)</versionRange>
                    <goals>
                      <goal>cleanVersions</goal>
                      <goal>manifest</goal>
                    </goals>
                  </pluginExecutionFilter>
                  <action>
                    <ignore />
                  </action>
                </pluginExecution>
              </pluginExecutions>
            </lifecycleMappingMetadata>
          </configuration>
        </plugin>
      </plugins>
    </pluginManagement>
    <plugins>
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>build-helper-maven-plugin</artifactId>
        <executions>
          <execution>
            <id>add-sources</id>
            <phase>generate-sources</phase>
            <goals>
              <goal>add-source</goal>
            </goals>
            <configuration>
              <sources>
                <source>src/main/junit-shared</source>
                <source>src/main/junit4</source>
                <source>src/main/junit5</source>
              </sources>
            </configuration>
          </execution>
          <execution>
            <id>add-test-sources</id>
            <phase>generate-test-sources</phase>
            <goals>
              <goal>add-test-source</goal>
            </goals>
            <configuration>
              <sources>
                <source>src/test/junit5</source>
              </sources>
            </configuration>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <artifactId>maven-surefire-plugin</artifactId>
        <configuration>
          <failIfNoTests>false</failIfNoTests>
          <trimStackTrace>false</trimStackTrace>
          <redirectTestOutputToFile>true</redirectTestOutputToFile>
          <skip>${skipTests.operaton-engine}</skip>
          <includes>
            <include>%regex[.*(${test.includes}).*Test.*.class]</include>
          </includes>
          <excludes>
            <exclude>**/*TestCase.java</exclude>
            <exclude>%regex[.*(${test.excludes}).*Test.*.class]</exclude>
            <exclude>**/*NashornTest.java</exclude>
          </excludes>
          <dependenciesToScan>
            <dependency>org.operaton.bpm:operaton-bpm-archunit</dependency>
          </dependenciesToScan>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.apache.felix</groupId>
        <artifactId>maven-bundle-plugin</artifactId>
        <executions>
          <execution>
            <phase>generate-sources</phase>
            <goals>
              <goal>cleanVersions</goal>
            </goals>
          </execution>
          <execution>
            <id>bundle-manifest</id>
            <phase>process-classes</phase>
            <goals>
              <goal>manifest</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <artifactId>maven-jar-plugin</artifactId>
        <executions>
          <execution>
            <id>default-jar</id>
            <goals>
              <goal>jar</goal>
            </goals>
            <configuration>
              <excludes>
                <exclude>org/operaton/bpm/container/impl/jmx/deployment/Mock*.class</exclude>
                <exclude>org/operaton/bpm/engine/impl/test/*TestCase.class</exclude>
                <exclude>org/operaton/bpm/engine/test/**</exclude>
              </excludes>
            </configuration>
          </execution>
          <execution>
            <id>junit4-jar</id>
            <goals>
              <goal>jar</goal>
            </goals>
            <configuration>
              <classifier>junit4</classifier>
              <classesDirectory>${project.build.directory}/classes-junit4</classesDirectory>
            </configuration>
          </execution>
          <execution>
            <id>junit5-jar</id>
            <goals>
              <goal>jar</goal>
            </goals>
            <configuration>
              <includes>
                <include>org/operaton/bpm/container/impl/jmx/deployment/Mock*.class</include>
                <include>org/operaton/bpm/engine/impl/test/*TestCase.class</include>
                <include>org/operaton/bpm/engine/test/**</include>
              </includes>
              <classifier>junit5</classifier>
              <classesDirectory>${project.build.directory}/classes-junit5</classesDirectory>
            </configuration>
          </execution>
          <execution>
            <id>junit6-jar</id>
            <goals>
              <goal>jar</goal>
            </goals>
            <configuration>
              <includes>
                <include>org/operaton/bpm/container/impl/jmx/deployment/Mock*.class</include>
                <include>org/operaton/bpm/engine/impl/test/*TestCase.class</include>
                <include>org/operaton/bpm/engine/test/**</include>
              </includes>
              <classifier>junit6</classifier>
              <classesDirectory>${project.build.directory}/classes-junit6</classesDirectory>
            </configuration>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <artifactId>maven-compiler-plugin</artifactId>
        <executions>
          <execution>
            <id>default-compile</id>
            <phase>compile</phase>
            <goals>
              <goal>compile</goal>
            </goals>
            <configuration>
              <compileSourceRoots>
                <compileSourceRoot>${project.basedir}/src/main/java</compileSourceRoot>
                <compileSourceRoot>${project.basedir}/src/main/junit-shared</compileSourceRoot>
                <compileSourceRoot>${project.basedir}/src/main/junit4</compileSourceRoot>
                <compileSourceRoot>${project.basedir}/src/main/junit5</compileSourceRoot>
              </compileSourceRoots>
            </configuration>
          </execution>
          <execution>
            <id>default-testCompile</id>
            <phase>test-compile</phase>
            <goals>
              <goal>testCompile</goal>
            </goals>
            <configuration>
              <compileSourceRoots>
                <compileSourceRoot>${project.basedir}/src/main/java</compileSourceRoot>
                <compileSourceRoot>${project.basedir}/src/main/junit-shared</compileSourceRoot>
                <compileSourceRoot>${project.basedir}/src/main/junit4</compileSourceRoot>
                <compileSourceRoot>${project.basedir}/src/main/junit5</compileSourceRoot>
                <compileSourceRoot>${project.basedir}/src/test/java</compileSourceRoot>
                <compileSourceRoot>${project.basedir}/src/test/junit5</compileSourceRoot>
              </compileSourceRoots>
            </configuration>
          </execution>
          <execution>
            <id>junit4-Compile</id>
            <phase>compile</phase>
            <goals>
              <goal>compile</goal>
            </goals>
            <configuration>
              <compileSourceRoots>
                <compileSourceRoot>${project.basedir}/src/main/junit-shared</compileSourceRoot>
                <compileSourceRoot>${project.basedir}/src/main/junit4</compileSourceRoot>
              </compileSourceRoots>
              <outputDirectory>${project.build.directory}/classes-junit4</outputDirectory>
            </configuration>
          </execution>
          <execution>
            <id>junit5-compile</id>
            <phase>compile</phase>
            <goals>
              <goal>compile</goal>
            </goals>
            <configuration>
              <compileSourceRoots>
                <compileSourceRoot>${project.basedir}/src/main/junit-shared</compileSourceRoot>
                <compileSourceRoot>${project.basedir}/src/main/junit5</compileSourceRoot>
              </compileSourceRoots>
              <outputDirectory>${project.build.directory}/classes-junit5</outputDirectory>
            </configuration>
          </execution>
          <execution>
            <id>junit6-compile</id>
            <phase>compile</phase>
            <goals>
              <goal>compile</goal>
            </goals>
            <configuration>
              <compileSourceRoots>
                <compileSourceRoot>${project.basedir}/src/main/junit-shared</compileSourceRoot>
                <compileSourceRoot>${project.basedir}/src/main/junit5</compileSourceRoot>
              </compileSourceRoots>
              <outputDirectory>${project.build.directory}/classes-junit6</outputDirectory>
            </configuration>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <artifactId>maven-shade-plugin</artifactId>
        <configuration>
          <promoteTransitiveDependencies>false</promoteTransitiveDependencies>
          <createSourcesJar>true</createSourcesJar>
          <createDependencyReducedPom>true</createDependencyReducedPom>
          <keepDependenciesWithProvidedScope>true</keepDependenciesWithProvidedScope>
          <artifactSet>
            <excludes>
              <exclude>org.operaton.bpm.model:*</exclude>
              <exclude>org.operaton.bpm.dmn:*</exclude>
              <exclude>org.operaton.bpm.juel:*</exclude>
              <exclude>org.operaton.commons:*</exclude>
              <exclude>org.operaton.connect:*</exclude>
              <exclude>org.camunda.feel:*</exclude>
              <exclude>jakarta.*:*</exclude>
              <exclude>org.springframework:*</exclude>
              <exclude>org.slf4j:*</exclude>
              <exclude>org.mybatis:mybatis:*</exclude>
              <exclude>joda-time:*</exclude>
            </excludes>
          </artifactSet>
          <relocations>
            <relocation>
              <pattern>com.google.gson</pattern>
              <shadedPattern>operatonjar.impl.com.google.gson</shadedPattern>
            </relocation>
            <relocation>
              <pattern>com.cronutils</pattern>
              <shadedPattern>operatonjar.impl.com.cronutils</shadedPattern>
            </relocation>
          </relocations>
          <transformers>
            <transformer />
          </transformers>
          <shadeTestJar>true</shadeTestJar>
        </configuration>
      </plugin>
      <plugin>
        <artifactId>maven-antrun-plugin</artifactId>
        <executions>
          <execution>
            <id>copy-upgrade-scripts-liquibase</id>
            <phase>compile</phase>
            <goals>
              <goal>run</goal>
            </goals>
            <configuration>
              <target>
                <mkdir />
                <copy>
                  <fileset />
                </copy>
              </target>
            </configuration>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>
  <profiles>
    <profile>
      <id>database</id>
      <build>
        <plugins>
          <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>exec-maven-plugin</artifactId>
            <executions>
              <execution>
                <id>database-test-drop-schema-before-test</id>
                <phase>process-test-classes</phase>
                <goals>
                  <goal>java</goal>
                </goals>
              </execution>
              <execution>
                <id>database-test-drop-schema-after-test</id>
                <phase>prepare-package</phase>
                <goals>
                  <goal>java</goal>
                </goals>
              </execution>
            </executions>
            <configuration>
              <mainClass>org.operaton.bpm.engine.impl.db.DbSchemaDrop</mainClass>
              <classpathScope>test</classpathScope>
              <cleanupDaemonThreads>false</cleanupDaemonThreads>
            </configuration>
          </plugin>
        </plugins>
      </build>
    </profile>
    <profile>
      <id>cfghistoryaudit</id>
      <properties>
        <history.level>audit</history.level>
      </properties>
    </profile>
    <profile>
      <id>cfghistoryactivity</id>
      <properties>
        <history.level>activity</history.level>
      </properties>
    </profile>
    <profile>
      <id>cfghistorynone</id>
      <properties>
        <history.level>none</history.level>
      </properties>
    </profile>
    <profile>
      <id>cfgJdbcBatchProcessingOff</id>
      <properties>
        <jdbcBatchProcessing>false</jdbcBatchProcessing>
      </properties>
    </profile>
    <profile>
      <id>h2-in-memory</id>
      <build>
        <plugins>
          <plugin>
            <artifactId>maven-surefire-plugin</artifactId>
            <configuration>
              <failIfNoTests>false</failIfNoTests>
              <trimStackTrace>false</trimStackTrace>
              <redirectTestOutputToFile>true</redirectTestOutputToFile>
              <reuseForks>true</reuseForks>
              <systemPropertyVariables>
                <jdbcUrl>jdbc:h2:mem:operaton_${surefire.forkNumber};DB_CLOSE_DELAY=1000</jdbcUrl>
              </systemPropertyVariables>
            </configuration>
          </plugin>
        </plugins>
      </build>
    </profile>
    <profile>
      <id>mysql</id>
      <build>
        <plugins>
          <plugin>
            <artifactId>maven-surefire-plugin</artifactId>
            <configuration>
              <failIfNoTests>false</failIfNoTests>
              <trimStackTrace>false</trimStackTrace>
              <redirectTestOutputToFile>true</redirectTestOutputToFile>
              <excludes>
                <exclude>**/CompetingMessageCorrelationTest.java</exclude>
              </excludes>
            </configuration>
          </plugin>
        </plugins>
      </build>
    </profile>
    <profile>
      <id>sqlserver</id>
      <build>
        <plugins>
          <plugin>
            <artifactId>maven-surefire-plugin</artifactId>
            <configuration>
              <failIfNoTests>false</failIfNoTests>
              <trimStackTrace>false</trimStackTrace>
              <redirectTestOutputToFile>true</redirectTestOutputToFile>
              <excludes>
                <exclude>**/CompetingMessageCorrelationTest.java</exclude>
              </excludes>
            </configuration>
          </plugin>
        </plugins>
      </build>
    </profile>
    <profile>
      <id>mariadb</id>
      <build>
        <plugins>
          <plugin>
            <artifactId>maven-surefire-plugin</artifactId>
            <configuration>
              <failIfNoTests>false</failIfNoTests>
              <trimStackTrace>false</trimStackTrace>
              <redirectTestOutputToFile>true</redirectTestOutputToFile>
              <excludes>
                <exclude>**/CompetingMessageCorrelationTest.java</exclude>
              </excludes>
            </configuration>
          </plugin>
        </plugins>
      </build>
    </profile>
    <profile>
      <id>check-api-compatibility</id>
      <build>
        <plugins>
          <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>clirr-maven-plugin</artifactId>
            <executions>
              <execution>
                <id>restrictive</id>
                <configuration>
                  <ignoredDifferencesFile>.clirr-ignore.xml</ignoredDifferencesFile>
                </configuration>
              </execution>
            </executions>
            <configuration>
              <excludes>
                <exclude>org/operaton/bpm/*/impl/**</exclude>
                <exclude>org/operaton/bpm/engine/test/ProcessEngineRule</exclude>
                <exclude>operatonjar/**/*</exclude>
              </excludes>
            </configuration>
          </plugin>
        </plugins>
      </build>
    </profile>
    <profile>
      <id>check-plugins</id>
      <build>
        <plugins>
          <plugin>
            <artifactId>maven-antrun-plugin</artifactId>
            <executions>
              <execution>
                <id>copy-operaton-cfg</id>
                <phase>process-test-classes</phase>
                <goals>
                  <goal>run</goal>
                </goals>
                <configuration>
                  <target>
                    <echo />
                    <copy />
                  </target>
                </configuration>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
      <dependencies>
        <dependency>
          <groupId>org.operaton.bpm</groupId>
          <artifactId>operaton-engine-plugin-spin</artifactId>
        </dependency>
        <dependency>
          <groupId>org.operaton.spin</groupId>
          <artifactId>operaton-spin-dataformat-all</artifactId>
        </dependency>
        <dependency>
          <groupId>org.operaton.bpm</groupId>
          <artifactId>operaton-engine-plugin-connect</artifactId>
        </dependency>
        <dependency>
          <groupId>org.operaton.connect</groupId>
          <artifactId>operaton-connect-connectors-all</artifactId>
          <exclusions>
            <exclusion>
              <artifactId>operaton-connect-http-client</artifactId>
              <groupId>org.operaton.connect</groupId>
            </exclusion>
            <exclusion>
              <artifactId>operaton-connect-soap-http-client</artifactId>
              <groupId>org.operaton.connect</groupId>
            </exclusion>
          </exclusions>
        </dependency>
      </dependencies>
    </profile>
    <profile>
      <id>db-table-prefix</id>
      <build>
        <plugins>
          <plugin>
            <artifactId>maven-antrun-plugin</artifactId>
            <executions>
              <execution>
                <id>database-test-create-schema</id>
                <phase>process-test-classes</phase>
                <goals>
                  <goal>run</goal>
                </goals>
                <configuration>
                  <target>
                    <copy />
                  </target>
                </configuration>
              </execution>
            </executions>
          </plugin>
          <plugin>
            <artifactId>maven-surefire-plugin</artifactId>
            <configuration>
              <excludes>
                <exclude>**/*TestCase.java</exclude>
                <exclude>**/DeploymentAwareJobExecutorTest.java</exclude>
                <exclude>**/DatabaseTablePrefixTest.java</exclude>
                <exclude>**/DeploymentTest.java</exclude>
                <exclude>**/DeploymentAutoHistoryTest.java</exclude>
                <exclude>**/CustomHistoryLevelUserOperationLogTest.java</exclude>
                <exclude>**/CustomHistoryLevelWithoutUserOperationLogTest.java</exclude>
                <exclude>**/CustomHistoryLevelIncidentTest.java</exclude>
                <exclude>**/CustomHistoryLevelIdentityLinkTest.java</exclude>
                <exclude>**/removaltime/cleanup/HistoryCleanupScheduler*Test.java</exclude>
                <exclude>**/HistoryCleanupDisabledOnBootstrapTest.java</exclude>
                <exclude>**/LoginAttemptsTest.java</exclude>
                <exclude>**/ConcurrentHistoryCleanupUpdateOfFailingJobTest.java</exclude>
              </excludes>
            </configuration>
          </plugin>
        </plugins>
      </build>
    </profile>
    <profile>
      <id>testBpmn</id>
      <properties>
        <test.includes>bpmn</test.includes>
      </properties>
    </profile>
    <profile>
      <id>testCmmn</id>
      <properties>
        <test.includes>cmmn</test.includes>
      </properties>
    </profile>
    <profile>
      <id>testDmn</id>
      <properties>
        <test.includes>dmn</test.includes>
      </properties>
    </profile>
    <profile>
      <id>testBpmnCmmn</id>
      <properties>
        <test.includes>bpmn|cmmn</test.includes>
      </properties>
    </profile>
    <profile>
      <id>testExceptBpmn</id>
      <properties>
        <test.excludes>bpmn</test.excludes>
      </properties>
    </profile>
    <profile>
      <id>testExceptCmmn</id>
      <properties>
        <test.excludes>cmmn</test.excludes>
      </properties>
    </profile>
    <profile>
      <id>testExceptDmn</id>
      <properties>
        <test.excludes>dmn</test.excludes>
      </properties>
    </profile>
    <profile>
      <id>testExceptBpmnCmmn</id>
      <properties>
        <test.excludes>bpmn|cmmn</test.excludes>
      </properties>
    </profile>
  </profiles>
  <dependencies>
    <dependency>
      <groupId>org.operaton.bpm.model</groupId>
      <artifactId>operaton-bpmn-model</artifactId>
      <version>1.1.2</version>
      <scope>compile</scope>
    </dependency>
    <dependency>
      <groupId>org.operaton.bpm.model</groupId>
      <artifactId>operaton-cmmn-model</artifactId>
      <version>1.1.2</version>
      <scope>compile</scope>
    </dependency>
    <dependency>
      <groupId>org.operaton.bpm.juel</groupId>
      <artifactId>operaton-juel</artifactId>
      <version>1.1.2</version>
      <scope>compile</scope>
    </dependency>
    <dependency>
      <groupId>org.operaton.bpm.dmn</groupId>
      <artifactId>operaton-engine-dmn</artifactId>
      <version>1.1.2</version>
      <scope>compile</scope>
      <exclusions>
        <exclusion>
          <artifactId>fastparse_2.13</artifactId>
          <groupId>com.lihaoyi</groupId>
        </exclusion>
        <exclusion>
          <artifactId>sourcecode_2.13</artifactId>
          <groupId>com.lihaoyi</groupId>
        </exclusion>
        <exclusion>
          <artifactId>geny_2.13</artifactId>
          <groupId>com.lihaoyi</groupId>
        </exclusion>
        <exclusion>
          <artifactId>scala-library</artifactId>
          <groupId>org.scala-lang</groupId>
        </exclusion>
      </exclusions>
    </dependency>
    <dependency>
      <groupId>org.operaton.commons</groupId>
      <artifactId>operaton-commons-logging</artifactId>
      <version>1.1.2</version>
      <scope>compile</scope>
    </dependency>
    <dependency>
      <groupId>org.operaton.commons</groupId>
      <artifactId>operaton-commons-typed-values</artifactId>
      <version>1.1.2</version>
      <scope>compile</scope>
    </dependency>
    <dependency>
      <groupId>org.mybatis</groupId>
      <artifactId>mybatis</artifactId>
      <version>3.5.19</version>
      <scope>compile</scope>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-beans</artifactId>
      <version>6.2.18</version>
      <scope>compile</scope>
    </dependency>
    <dependency>
      <groupId>joda-time</groupId>
      <artifactId>joda-time</artifactId>
      <version>2.14.1</version>
      <scope>compile</scope>
    </dependency>
    <dependency>
      <groupId>com.google.code.gson</groupId>
      <artifactId>gson</artifactId>
      <version>2.13.2</version>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>org.junit.jupiter</groupId>
      <artifactId>junit-jupiter</artifactId>
      <version>5.14.3</version>
      <scope>provided</scope>
      <optional>true</optional>
    </dependency>
    <dependency>
      <groupId>org.junit.jupiter</groupId>
      <artifactId>junit-jupiter-api</artifactId>
      <version>5.14.3</version>
      <scope>provided</scope>
      <optional>true</optional>
    </dependency>
    <dependency>
      <groupId>org.junit.jupiter</groupId>
      <artifactId>junit-jupiter-params</artifactId>
      <version>5.14.3</version>
      <scope>provided</scope>
      <optional>true</optional>
    </dependency>
    <dependency>
      <groupId>org.junit-pioneer</groupId>
      <artifactId>junit-pioneer</artifactId>
      <version>2.3.0</version>
      <scope>test</scope>
      <exclusions>
        <exclusion>
          <artifactId>junit-platform-launcher</artifactId>
          <groupId>org.junit.platform</groupId>
        </exclusion>
      </exclusions>
    </dependency>
    <dependency>
      <groupId>org.assertj</groupId>
      <artifactId>assertj-core</artifactId>
      <version>3.27.7</version>
      <scope>provided</scope>
      <optional>true</optional>
    </dependency>
    <dependency>
      <groupId>org.junit.vintage</groupId>
      <artifactId>junit-vintage-engine</artifactId>
      <version>5.14.3</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.ant</groupId>
      <artifactId>ant</artifactId>
      <version>1.10.17</version>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>com.fasterxml.uuid</groupId>
      <artifactId>java-uuid-generator</artifactId>
      <version>5.2.0</version>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>jakarta.transaction</groupId>
      <artifactId>jakarta.transaction-api</artifactId>
      <version>2.0.1</version>
      <scope>provided</scope>
      <exclusions>
        <exclusion>
          <artifactId>*</artifactId>
          <groupId>*</groupId>
        </exclusion>
      </exclusions>
    </dependency>
    <dependency>
      <groupId>jakarta.servlet</groupId>
      <artifactId>jakarta.servlet-api</artifactId>
      <version>6.0.0</version>
      <scope>provided</scope>
      <exclusions>
        <exclusion>
          <artifactId>*</artifactId>
          <groupId>*</groupId>
        </exclusion>
      </exclusions>
    </dependency>
    <dependency>
      <groupId>jakarta.ejb</groupId>
      <artifactId>jakarta.ejb-api</artifactId>
      <version>4.0.1</version>
      <scope>provided</scope>
      <exclusions>
        <exclusion>
          <artifactId>*</artifactId>
          <groupId>*</groupId>
        </exclusion>
      </exclusions>
    </dependency>
    <dependency>
      <groupId>org.apache.tomcat</groupId>
      <artifactId>tomcat-catalina</artifactId>
      <version>11.0.21</version>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>org.jboss.logging</groupId>
      <artifactId>jboss-logging</artifactId>
      <version>3.6.3.Final</version>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>org.jboss</groupId>
      <artifactId>jboss-vfs</artifactId>
      <version>3.3.2.Final</version>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.commons</groupId>
      <artifactId>commons-email2-jakarta</artifactId>
      <version>2.0.0-M1</version>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>com.cronutils</groupId>
      <artifactId>cron-utils</artifactId>
      <version>9.2.1</version>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>ch.qos.logback</groupId>
      <artifactId>logback-core</artifactId>
      <version>1.5.32</version>
      <scope>provided</scope>
      <optional>true</optional>
    </dependency>
    <dependency>
      <groupId>ch.qos.logback</groupId>
      <artifactId>logback-classic</artifactId>
      <version>1.5.32</version>
      <scope>provided</scope>
      <optional>true</optional>
    </dependency>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.13.2</version>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>org.mockito</groupId>
      <artifactId>mockito-junit-jupiter</artifactId>
      <version>5.17.0</version>
      <scope>test</scope>
      <exclusions>
        <exclusion>
          <artifactId>mockito-core</artifactId>
          <groupId>org.mockito</groupId>
        </exclusion>
      </exclusions>
    </dependency>
    <dependency>
      <groupId>com.h2database</groupId>
      <artifactId>h2</artifactId>
      <version>2.4.240</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>commons-collections</groupId>
      <artifactId>commons-collections</artifactId>
      <version>3.2.2</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>io.github.frshdn</groupId>
      <artifactId>subethasmtp-java17</artifactId>
      <version>3.1.7</version>
      <scope>test</scope>
      <exclusions>
        <exclusion>
          <artifactId>jakarta.annotation-api</artifactId>
          <groupId>jakarta.annotation</groupId>
        </exclusion>
        <exclusion>
          <artifactId>jakarta.mail-api</artifactId>
          <groupId>jakarta.mail</groupId>
        </exclusion>
        <exclusion>
          <artifactId>jakarta.mail</artifactId>
          <groupId>org.eclipse.angus</groupId>
        </exclusion>
        <exclusion>
          <artifactId>jsr305</artifactId>
          <groupId>com.google.code.findbugs</groupId>
        </exclusion>
      </exclusions>
    </dependency>
    <dependency>
      <groupId>commons-io</groupId>
      <artifactId>commons-io</artifactId>
      <version>2.22.0</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-test</artifactId>
      <version>6.2.18</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.commons</groupId>
      <artifactId>commons-lang3</artifactId>
      <version>3.20.0</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.operaton.commons</groupId>
      <artifactId>operaton-commons-testing</artifactId>
      <version>1.1.2</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.operaton.bpm</groupId>
      <artifactId>operaton-test-utils-testcontainers</artifactId>
      <version>1.1.2</version>
      <scope>test</scope>
      <exclusions>
        <exclusion>
          <artifactId>testcontainers</artifactId>
          <groupId>org.testcontainers</groupId>
        </exclusion>
        <exclusion>
          <artifactId>testcontainers-mysql</artifactId>
          <groupId>org.testcontainers</groupId>
        </exclusion>
        <exclusion>
          <artifactId>testcontainers-mariadb</artifactId>
          <groupId>org.testcontainers</groupId>
        </exclusion>
        <exclusion>
          <artifactId>testcontainers-postgresql</artifactId>
          <groupId>org.testcontainers</groupId>
        </exclusion>
        <exclusion>
          <artifactId>testcontainers-mssqlserver</artifactId>
          <groupId>org.testcontainers</groupId>
        </exclusion>
        <exclusion>
          <artifactId>testcontainers-oracle-xe</artifactId>
          <groupId>org.testcontainers</groupId>
        </exclusion>
        <exclusion>
          <artifactId>testcontainers-db2</artifactId>
          <groupId>org.testcontainers</groupId>
        </exclusion>
      </exclusions>
    </dependency>
    <dependency>
      <groupId>org.slf4j</groupId>
      <artifactId>jcl-over-slf4j</artifactId>
      <version>2.0.17</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.slf4j</groupId>
      <artifactId>jul-to-slf4j</artifactId>
      <version>2.0.17</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.wiremock</groupId>
      <artifactId>wiremock-standalone</artifactId>
      <version>3.13.2</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.groovy</groupId>
      <artifactId>groovy-jsr223</artifactId>
      <version>4.0.31</version>
      <scope>test</scope>
      <exclusions>
        <exclusion>
          <artifactId>groovy</artifactId>
          <groupId>org.apache.groovy</groupId>
        </exclusion>
      </exclusions>
    </dependency>
    <dependency>
      <groupId>org.python</groupId>
      <artifactId>jython</artifactId>
      <version>2.7.4</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.jruby</groupId>
      <artifactId>jruby-complete</artifactId>
      <version>9.1.17.0</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.graalvm.polyglot</groupId>
      <artifactId>js</artifactId>
      <version>25.0.3</version>
      <type>pom</type>
      <scope>test</scope>
      <exclusions>
        <exclusion>
          <artifactId>js</artifactId>
          <groupId>org.graalvm.js</groupId>
        </exclusion>
      </exclusions>
    </dependency>
    <dependency>
      <groupId>org.graalvm.polyglot</groupId>
      <artifactId>polyglot</artifactId>
      <version>25.0.3</version>
      <scope>test</scope>
      <exclusions>
        <exclusion>
          <artifactId>collections</artifactId>
          <groupId>org.graalvm.sdk</groupId>
        </exclusion>
        <exclusion>
          <artifactId>nativeimage</artifactId>
          <groupId>org.graalvm.sdk</groupId>
        </exclusion>
      </exclusions>
    </dependency>
    <dependency>
      <groupId>org.graalvm.js</groupId>
      <artifactId>js-scriptengine</artifactId>
      <version>25.0.3</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.junit.platform</groupId>
      <artifactId>junit-platform-testkit</artifactId>
      <version>1.14.3</version>
      <scope>test</scope>
      <exclusions>
        <exclusion>
          <artifactId>junit-platform-launcher</artifactId>
          <groupId>org.junit.platform</groupId>
        </exclusion>
      </exclusions>
    </dependency>
    <dependency>
      <groupId>org.testcontainers</groupId>
      <artifactId>junit-jupiter</artifactId>
      <version>1.21.4</version>
      <scope>test</scope>
      <exclusions>
        <exclusion>
          <artifactId>testcontainers</artifactId>
          <groupId>org.testcontainers</groupId>
        </exclusion>
      </exclusions>
    </dependency>
    <dependency>
      <groupId>ch.martinelli.oss</groupId>
      <artifactId>testcontainers-mailpit</artifactId>
      <version>1.3.1</version>
      <scope>test</scope>
      <exclusions>
        <exclusion>
          <artifactId>jackson-databind</artifactId>
          <groupId>com.fasterxml.jackson.core</groupId>
        </exclusion>
        <exclusion>
          <artifactId>jackson-datatype-jsr310</artifactId>
          <groupId>com.fasterxml.jackson.datatype</groupId>
        </exclusion>
        <exclusion>
          <artifactId>testcontainers</artifactId>
          <groupId>org.testcontainers</groupId>
        </exclusion>
      </exclusions>
    </dependency>
    <dependency>
      <groupId>org.operaton.bpm</groupId>
      <artifactId>operaton-bpm-archunit</artifactId>
      <version>1.1.2</version>
      <scope>test</scope>
      <exclusions>
        <exclusion>
          <artifactId>archunit-junit4</artifactId>
          <groupId>com.tngtech.archunit</groupId>
        </exclusion>
      </exclusions>
    </dependency>
    <dependency>
      <groupId>org.awaitility</groupId>
      <artifactId>awaitility</artifactId>
      <version>4.3.0</version>
      <scope>provided</scope>
      <optional>true</optional>
    </dependency>
  </dependencies>
  <dependencyManagement>
    <dependencies>
      <dependency>
        <groupId>org.operaton.bpm</groupId>
        <artifactId>operaton-core-internal-dependencies</artifactId>
        <version>${project.version}</version>
        <type>pom</type>
        <scope>import</scope>
      </dependency>
    </dependencies>
  </dependencyManagement>
  <properties>
    <operaton.osgi.import.additional>!com.google.gson.*,
      junit*;resolution:=optional,
      org.junit*;resolution:=optional,
      com.sun*;resolution:=optional,
      javax.persistence*;resolution:=optional,
      javax.servlet*;resolution:=optional,
      javax.transaction*;resolution:=optional,
      javax.ejb*;resolution:=optional,
      javax.xml*;resolution:=optional,
      javax.mail*;resolution:=optional,
      org.apache.catalina*;resolution:=optional,
      org.apache.commons.mail;resolution:=optional,
      org.apache.tools.ant*;resolution:=optional,
      org.apache.xerces*;resolution:=optional,
      org.springframework*;resolution:=optional,
      com.fasterxml*;resolution:=optional,
      org.jboss.vfs*;resolution:=optional</operaton.osgi.import.additional>
    <skipTests.operaton-engine>false</skipTests.operaton-engine>
    <history.level>full</history.level>
    <authorizationCheckRevokes>auto</authorizationCheckRevokes>
    <operaton.artifact>org.operaton.bpm</operaton.artifact>
    <mail.server.port>5025</mail.server.port>
    <skip-third-party-bom>false</skip-third-party-bom>
    <test.excludes>$.</test.excludes>
    <jdbcBatchProcessing>true</jdbcBatchProcessing>
    <operaton.osgi.export.pkg>!${operaton.artifact}.engine.variable.*,
      ${operaton.artifact},
      ${operaton.artifact}.application.*,
      ${operaton.artifact}.container.*,
      ${operaton.artifact}.engine.*</operaton.osgi.export.pkg>
  </properties>
</project>
