<?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/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <parent>
    <groupId>org.operaton.bpm</groupId>
    <artifactId>operaton-root</artifactId>
    <version>1.0.3</version>
  </parent>
  <artifactId>operaton-parent</artifactId>
  <packaging>pom</packaging>
  <name>Operaton - Parent POM</name>
  <description>
    This pom is the parent of all Operaton projects
  </description>
  <properties>
    <operaton.version.old>1.0.0-beta-4</operaton.version.old>
    <version.resteasy>3.6.3.SP1</version.resteasy>
    <!-- must be in synch with transitive version from org.springframework.boot:spring-boot-starter-jersey -->
    <version.jersey3>3.1.11</version.jersey3>
    <!-- use minimum version of resteasy and jersey -->
    <version.jaxrs.api>2.0.1.Final</version.jaxrs.api>
    <version.groovy>5.0.4</version.groovy>
    <version.jython>2.7.4</version.jython>
    <version.graal.js>25.0.2</version.graal.js>
    <version.nashorn>15.7</version.nashorn>
    <version.icu.icu4j>71.1</version.icu.icu4j>
    <!-- json-smart and accessors-smart are runtime dependencies of json-path -->
    <version.json-path>2.9.0</version.json-path>
    <version.json-smart>2.5.2</version.json-smart>
    <version.accessors-smart>2.5.2</version.accessors-smart>
    <version.commons-codec>1.19.0</version.commons-codec>
    <version.gson>2.13.2</version.gson>
    <version.hibernate>6.6.10.Final</version.hibernate>
    <version.jackson>2.20.2</version.jackson>
    <version.httpclient>4.5.14</version.httpclient>
    <version.httpclient5>5.5.1</version.httpclient5>
    <version.httpcore5>5.3.6</version.httpcore5>
    <version.cronutils>9.2.1</version.cronutils>
    <version.unirest-java>3.14.5</version.unirest-java>
    <version.junit5>5.14.2</version.junit5>
    <version.assertj>3.27.6</version.assertj>
    <version.mockito>5.20.0</version.mockito>
    <version.jna>5.18.1</version.jna>
    <version.testcontainers>1.21.4</version.testcontainers>
    <version.unirest-java>3.14.5</version.unirest-java>
    <version.commonj>1.1.0</version.commonj>
    <!-- application servers -->
    <version.wildfly>37.0.1.Final</version.wildfly>
    <version.tomcat>11.0.12</version.tomcat>
    <version.arquillian>1.10.0.Final</version.arquillian>
    <version.shrinkwrap.resolvers>3.3.4</version.shrinkwrap.resolvers>
    <version.selenium>4.36.0</version.selenium>
    <version.slf4j>2.0.17</version.slf4j>
    <version.logback>1.5.25</version.logback>
    <version.freemarker>2.3.34</version.freemarker>
    <version.jboss-javaee-spec>3.0.2.Final</version.jboss-javaee-spec>
    <version.nodejs>22.13.0</version.nodejs>
    <version.npm>11.0.0</version.npm>
    <jacoco.argLine/>
    <surefire.memArgs>-Xmx1024m -XX:MetaspaceSize=128m</surefire.memArgs>
    <surefire.argLine>${jacoco.argLine} ${surefire.memArgs} -Duser.language=en -Duser.region=US -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=${project.build.directory}/heap_dump.hprof</surefire.argLine>
    <surefire.forkCount>1</surefire.forkCount>
    <!-- profile activation properties -->
    <with-sources>false</with-sources>
    <with-javadocs>false</with-javadocs>
    <!-- OSGi bundles properties -->
    <operaton.artifact/>
    <operaton.osgi.import.operaton.spin.version>version="[$(version;==;${operaton.spin.version.clean}),$(version;=+;${operaton.spin.version.clean}))"</operaton.osgi.import.operaton.spin.version>
    <operaton.osgi.import.operaton.connect.version>version="[$(version;==;${operaton.connect.version.clean}),$(version;=+;${operaton.connect.version.clean}))"</operaton.osgi.import.operaton.connect.version>
    <operaton.osgi.import.operaton.commons.version>version="[$(version;==;${operaton.commons.version.clean}),$(version;=+;${operaton.commons.version.clean}))"</operaton.osgi.import.operaton.commons.version>
    <operaton.osgi.import.operaton.version>version="[$(version;==;${operaton.osgi.version.clean}),$(version;=+;${operaton.osgi.version.clean}))"</operaton.osgi.import.operaton.version>
    <operaton.osgi.import.strict.version>version="[$(version;===;${operaton.osgi.version.clean}),$(version;==+;${operaton.osgi.version.clean}))"</operaton.osgi.import.strict.version>
    <operaton.osgi.import.default.version>[$(version;==;$(@)),$(version;+;$(@)))</operaton.osgi.import.default.version>
    <operaton.osgi.import.defaults>
    </operaton.osgi.import.defaults>
    <operaton.osgi.import.before.defaults/>
    <operaton.osgi.import.additional/>
    <operaton.osgi.import.pkg>
      ${operaton.osgi.import.before.defaults},
      ${operaton.osgi.import.defaults},
      ${operaton.osgi.import.additional},
      *
    </operaton.osgi.import.pkg>
    <operaton.osgi.activator/>
    <operaton.osgi.failok>false</operaton.osgi.failok>
    <operaton.osgi.export>${operaton.osgi.export.pkg};${operaton.osgi.version};-noimport:=true</operaton.osgi.export>
    <!--
    <operaton.osgi.export.pkg>!*.impl;${operaton.artifact}*</operaton.osgi.export.pkg>
    <operaton.osgi.private.pkg>${operaton.artifact}*.impl</operaton.osgi.private.pkg>
    -->
    <operaton.osgi.export.pkg>${operaton.artifact}*</operaton.osgi.export.pkg>
    <operaton.osgi.private.pkg/>
    <operaton.osgi.version>version=${project.version}</operaton.osgi.version>
    <operaton.osgi.split.pkg>-split-package:=first</operaton.osgi.split.pkg>
    <operaton.osgi.import>${operaton.osgi.import.pkg}</operaton.osgi.import>
    <operaton.osgi.dynamic/>
    <operaton.osgi.symbolic.name>${operaton.artifact}</operaton.osgi.symbolic.name>
    <operaton.osgi.exclude.dependencies>false</operaton.osgi.exclude.dependencies>
    <operaton.osgi.remove.headers>Ignore-Package,Include-Resource,Private-Package,Bundle-DocURL</operaton.osgi.remove.headers>
    <operaton.osgi.include.resource>{maven-resources}</operaton.osgi.include.resource>
    <operaton.osgi.embed/>
  </properties>
  <dependencyManagement>
    <dependencies>
      <dependency>
        <groupId>org.operaton.bpm</groupId>
        <artifactId>operaton-bom</artifactId>
        <version>${project.parent.version}</version>
        <type>pom</type>
        <scope>import</scope>
      </dependency>
    </dependencies>
  </dependencyManagement>
  <inceptionYear>2024</inceptionYear>
  <build>
    <pluginManagement>
      <plugins>
        <!-- test plugins -->
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-surefire-plugin</artifactId>
          <configuration>
            <runOrder>hourly</runOrder>
            <systemPropertyVariables>
              <myWorkingDir>${project.build.directory}</myWorkingDir>
            </systemPropertyVariables>
            <redirectTestOutputToFile>true</redirectTestOutputToFile>
            <forkCount>${surefire.forkCount}</forkCount>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-failsafe-plugin</artifactId>
          <configuration>
            <runOrder>hourly</runOrder>
          </configuration>
          <executions>
            <execution>
              <goals>
                <goal>integration-test</goal>
                <goal>verify</goal>
              </goals>
            </execution>
          </executions>
        </plugin>
        <!-- artifact plugins -->
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-assembly-plugin</artifactId>
          <configuration>
            <archive>
              <manifest>
                <addDefaultImplementationEntries>true</addDefaultImplementationEntries>
              </manifest>
            </archive>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-jar-plugin</artifactId>
          <version>3.4.2</version>
          <configuration>
            <skipIfEmpty>true</skipIfEmpty>
            <archive>
              <!-- explicitly specify manifestFile because otherwise it overrides the generated one from bundle-plugin -->
              <manifest>
                <addDefaultImplementationEntries>true</addDefaultImplementationEntries>
              </manifest>
            </archive>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-ejb-plugin</artifactId>
          <configuration>
            <ejbVersion>3.1</ejbVersion>
            <archive>
              <manifest>
                <addDefaultImplementationEntries>true</addDefaultImplementationEntries>
              </manifest>
            </archive>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-ear-plugin</artifactId>
          <configuration>
            <archive>
              <manifest>
                <addDefaultImplementationEntries>true</addDefaultImplementationEntries>
              </manifest>
            </archive>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-rar-plugin</artifactId>
          <configuration>
            <archive>
              <manifest>
                <addDefaultImplementationEntries>true</addDefaultImplementationEntries>
              </manifest>
            </archive>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-war-plugin</artifactId>
          <configuration>
            <archive>
              <manifest>
                <addDefaultImplementationEntries>true</addDefaultImplementationEntries>
              </manifest>
            </archive>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-shade-plugin</artifactId>
          <configuration>
            <createSourcesJar>true</createSourcesJar>
          </configuration>
          <executions>
            <execution>
              <phase>package</phase>
              <goals>
                <goal>shade</goal>
              </goals>
            </execution>
          </executions>
        </plugin>
        <plugin>
          <groupId>org.apache.felix</groupId>
          <artifactId>maven-bundle-plugin</artifactId>
          <configuration>
            <excludeDependencies>${operaton.osgi.exclude.dependencies}</excludeDependencies>
            <instructions>
              <Bundle-Name>${project.name}</Bundle-Name>
              <Bundle-SymbolicName>${operaton.osgi.symbolic.name}</Bundle-SymbolicName>
              <Bundle-Activator>${operaton.osgi.activator}</Bundle-Activator>
              <Export-Package>${operaton.osgi.export}</Export-Package>
              <Import-Package>${operaton.osgi.import}</Import-Package>
              <DynamicImport-Package>${operaton.osgi.dynamic}</DynamicImport-Package>
              <Private-Package>${operaton.osgi.private.pkg}</Private-Package>
              <Implementation-Title>operaton</Implementation-Title>
              <Implementation-Version>${project.version}</Implementation-Version>
              <Include-Resource>${operaton.osgi.include.resource}</Include-Resource>
              <_versionpolicy>${operaton.osgi.import.default.version}</_versionpolicy>
              <_removeheaders>${operaton.osgi.remove.headers}</_removeheaders>
              <_failok>${operaton.osgi.failok}</_failok>
              <Export-Service>${operaton.osgi.export.service}</Export-Service>
              <Import-Service>${operaton.osgi.import.service}</Import-Service>
              <Embed-Dependency>${operaton.osgi.embed}</Embed-Dependency>
            </instructions>
            <versions>
              <operaton.osgi.version.clean>${project.version}</operaton.osgi.version.clean>
              <operaton.connect.version.clean>${project.version}</operaton.connect.version.clean>
              <operaton.spin.version.clean>${project.version}</operaton.spin.version.clean>
              <operaton.commons.version.clean>${project.version}</operaton.commons.version.clean>
            </versions>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.codehaus.mojo</groupId>
          <artifactId>sql-maven-plugin</artifactId>
          <configuration>
            <keepFormat>true</keepFormat>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-javadoc-plugin</artifactId>
          <configuration>
            <failOnError>false</failOnError>
            <additionalJOptions>
              <additionalJOption>-Xdoclint:none</additionalJOption>
              <additionalJOption>--ignore-source-errors</additionalJOption>
            </additionalJOptions>
            <doctitle>Operaton Javadocs ${project.version}</doctitle>
            <windowtitle>Operaton Javadocs ${project.version}</windowtitle>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.eclipse.transformer</groupId>
          <artifactId>transformer-maven-plugin</artifactId>
          <configuration>
            <rules>
              <jakartaDefaults>true</jakartaDefaults>
              <renames>
                <rename>jar:file:${org.operaton.bpm:operaton-engine:jar}!/META-INF/operaton-renames.properties</rename>
              </renames>
            </rules>
            <classifier>jakarta</classifier>
          </configuration>
        </plugin>
        <plugin>
          <groupId>com.github.eirslett</groupId>
          <artifactId>frontend-maven-plugin</artifactId>
          <configuration>
            <nodeVersion>v${version.nodejs}</nodeVersion>
            <npmVersion>${version.npm}</npmVersion>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.springframework.boot</groupId>
          <artifactId>spring-boot-maven-plugin</artifactId>
          <configuration>
            <!-- https://github.com/camunda/camunda-bpm-platform/issues/3996 -->
            <wait>750</wait>
          </configuration>
        </plugin>
      </plugins>
    </pluginManagement>
  </build>
  <profiles>
    <profile>
      <id>license-header-check</id>
      <build>
        <plugins>
          <plugin>
            <groupId>com.mycila</groupId>
            <artifactId>license-maven-plugin</artifactId>
          </plugin>
        </plugins>
      </build>
    </profile>
    <profile>
      <id>coverage</id>
      <activation>
        <file>
          <!-- files generated by 'build.yml' pipeline -->
          <exists>target/executeJacoco</exists>
        </file>
      </activation>
      <build>
        <plugins>
          <plugin>
            <groupId>org.jacoco</groupId>
            <artifactId>jacoco-maven-plugin</artifactId>
            <executions>
              <execution>
                <id>prepare-agent</id>
                <goals>
                  <goal>prepare-agent</goal>
                </goals>
              </execution>
              <execution>
                <id>report</id>
                <phase>test</phase>
                <goals>
                  <goal>report</goal>
                </goals>
              </execution>
            </executions>
            <configuration>
              <propertyName>${jacoco.argLine}</propertyName>
            </configuration>
          </plugin>
        </plugins>
      </build>
    </profile>
    <profile>
      <id>coverage-not-enabled</id>
      <activation>
        <file>
          <missing>target/executeJacoco</missing>
        </file>
      </activation>
      <properties>
        <jacoco.argLine/>
      </properties>
    </profile>
    <profile>
      <id>docker</id>
      <activation>
        <property>
          <name>env.DOCKER_HOST</name>
        </property>
      </activation>
    </profile>
    <profile>
      <id>sonatype-oss-release</id>
      <properties>
        <with-sources>true</with-sources>
        <with-javadocs>true</with-javadocs>
      </properties>
    </profile>
    <profile>
      <id>sources</id>
      <activation>
        <property>
          <name>with-sources</name>
          <value>true</value>
        </property>
      </activation>
      <build>
        <plugins>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-source-plugin</artifactId>
            <executions>
              <execution>
                <id>attach-sources</id>
                <goals>
                  <goal>jar</goal>
                </goals>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </profile>
    <profile>
      <id>javadocs</id>
      <activation>
        <property>
          <name>with-javadocs</name>
          <value>true</value>
        </property>
      </activation>
      <build>
        <plugins>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-javadoc-plugin</artifactId>
            <configuration>
              <failOnError>false</failOnError>
              <additionalJOptions>
                <additionalJOption>-Xdoclint:none</additionalJOption>
                <additionalJOption>--ignore-source-errors</additionalJOption>
              </additionalJOptions>
              <doctitle>Operaton Javadocs ${project.version}</doctitle>
              <windowtitle>Operaton Javadocs ${project.version}</windowtitle>
            </configuration>
            <executions>
              <execution>
                <id>attach-javadocs</id>
                <goals>
                  <goal>jar</goal>
                </goals>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </profile>
    <profile>
      <id>check-api-compatibility</id>
      <activation>
        <activeByDefault>true</activeByDefault>
      </activation>
      <properties>
        <clirr.failOnWarning.restrictive>true</clirr.failOnWarning.restrictive>
        <clirr.comparisonVersion>${operaton.version.old}</clirr.comparisonVersion>
      </properties>
      <build>
        <plugins>
          <plugin>
            <artifactId>maven-antrun-plugin</artifactId>
            <executions>
              <execution>
                <id>initialize-clirr-dirs</id>
                <phase>initialize</phase>
                <goals>
                  <goal>run</goal>
                </goals>
                <configuration>
                  <target>
                    <mkdir dir="${maven.multiModuleProjectDirectory}/target/reports/clirr/all"/>
                    <mkdir dir="${maven.multiModuleProjectDirectory}/target/reports/clirr/restrictive"/>
                  </target>
                </configuration>
              </execution>
            </executions>
          </plugin>
        </plugins>
        <pluginManagement>
          <plugins>
            <plugin>
              <groupId>org.codehaus.mojo</groupId>
              <artifactId>clirr-maven-plugin</artifactId>
              <configuration>
                <skip>false</skip>
                <comparisonVersion>${clirr.comparisonVersion}</comparisonVersion>
                <logResults>true</logResults>
              </configuration>
              <executions>
                <execution>
                  <id>all</id>
                  <phase>verify</phase>
                  <goals>
                    <goal>check-no-fork</goal>
                  </goals>
                  <configuration>
                    <textOutputFile>${maven.multiModuleProjectDirectory}/target/reports/clirr/all/${project.artifactId}.txt</textOutputFile>
                    <failOnWarning>false</failOnWarning>
                    <failOnError>false</failOnError>
                  </configuration>
                </execution>
                <execution>
                  <id>restrictive</id>
                  <phase>verify</phase>
                  <goals>
                    <goal>check-no-fork</goal>
                  </goals>
                  <configuration>
                    <textOutputFile>${maven.multiModuleProjectDirectory}/target/reports/clirr/restrictive/${project.artifactId}.txt</textOutputFile>
                    <failOnWarning>${clirr.failOnWarning.restrictive}</failOnWarning>
                    <failOnError>${clirr.failOnWarning.restrictive}</failOnError>
                    <ignoredDifferencesFile>${maven.multiModuleProjectDirectory}/.devenv/clirr-ignore.xml</ignoredDifferencesFile>
                  </configuration>
                </execution>
              </executions>
            </plugin>
          </plugins>
        </pluginManagement>
      </build>
    </profile>
    <profile>
      <id>skip-deploy</id>
      <activation>
        <file>
          <exists>.skip-deploy</exists>
        </file>
      </activation>
      <build>
        <pluginManagement>
          <plugins>
            <plugin>
              <groupId>org.apache.maven.plugins</groupId>
              <artifactId>maven-deploy-plugin</artifactId>
              <configuration>
                <skip>true</skip>
              </configuration>
            </plugin>
          </plugins>
        </pluginManagement>
      </build>
    </profile>
  </profiles>
  <repositories>
    <repository>
      <id>JBoss public</id>
      <name>jboss</name>
      <url>https://repository.jboss.org/nexus/content/groups/public/</url>
    </repository>
  </repositories>
  <licenses>
    <license>
      <name>The Apache Software License, Version 2.0</name>
      <url>https://www.apache.org/licenses/LICENSE-2.0.txt</url>
    </license>
  </licenses>
  <organization>
    <name>Operaton</name>
    <url>https://www.operaton.org</url>
  </organization>
  <url>https://www.operaton.org</url>
</project>
