<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.camunda.bpm</groupId>
    <artifactId>camunda-root</artifactId>
    <version>7.21.0</version>
    <relativePath>../</relativePath>
  </parent>

  <artifactId>camunda-parent</artifactId>
  <name>Camunda Platform - Parent Pom</name>
  <inceptionYear>2013</inceptionYear>
  <packaging>pom</packaging>

  <description>
    This pom is the parent of all Camunda Platform projects
  </description>

  <properties>
    <version.quarkus>3.8.0</version.quarkus>
    <version.spring.framework>5.3.27</version.spring.framework>
    <version.spring.framework6>6.1.4</version.spring.framework6>
    <version.spring-boot>3.2.2</version.spring-boot>
    <version.resteasy>3.15.6.Final</version.resteasy>
    <version.jersey2>2.34</version.jersey2>
    <!-- use minimum version of resteasy and jersey -->
    <version.jaxrs.api>2.0.1.Final</version.jaxrs.api>
    <version.groovy>2.4.21</version.groovy>
    <version.graal.js>21.1.0</version.graal.js>
    <version.icu.icu4j>68.2</version.icu.icu4j>
    <version.gson>2.8.9</version.gson>
    <version.openjpa>2.4.3</version.openjpa>
    <version.hibernate>5.6.5.Final</version.hibernate>
    <version.hikaricp>4.0.3</version.hikaricp>
    <version.jackson>2.15.2</version.jackson>
    <version.xml.bind-api>2.3.3</version.xml.bind-api>
    <version.xml.jaxb-impl>2.3.6</version.xml.jaxb-impl>
    <version.xml.jaxb-impl4>4.0.5</version.xml.jaxb-impl4>
    <version.httpclient>4.5.14</version.httpclient>

    <version.slf4j>1.7.26</version.slf4j>
    <version.logback>1.2.11</version.logback>
    <version.junit>4.13.1</version.junit>
    <version.assertj>2.9.1</version.assertj>
    <version.mockito>5.10.0</version.mockito>
    <version.wiremock>2.27.2</version.wiremock>
    <version.wiremock-jre8>2.27.2</version.wiremock-jre8>
    <version.testcontainers>1.16.0</version.testcontainers>

    <version.commonj>1.1.0</version.commonj>
    <version.bouncycastle>1.47</version.bouncycastle>

    <!-- application servers -->
    <version.wildfly>31.0.0.Final</version.wildfly>
    <version.wildfly.core>23.0.1.Final</version.wildfly.core>

    <version.wildfly26>26.0.1.Final</version.wildfly26>
    <version.wildfly26.core>18.0.4.Final</version.wildfly26.core>

    <version.tomcat>9.0.85</version.tomcat>

    <version.arquillian>1.1.10.Final</version.arquillian>
    <version.shrinkwrap.resolvers>2.2.2</version.shrinkwrap.resolvers>
    <version.selenium>4.10.0</version.selenium>
    <version.freemarker>2.3.31</version.freemarker>

    <version.jboss-javaee-spec>3.0.2.Final</version.jboss-javaee-spec>
    <version.jakarta-ee-spec>10.0.0</version.jakarta-ee-spec>

    <version.eirslett.frontend.maven.plugin>1.12.1</version.eirslett.frontend.maven.plugin>
    <version.nodejs>17.9.1</version.nodejs>
    <version.npm>8.11.0</version.npm>

    <!-- OSGi bundles properties -->
    <camunda.artifact />
    <camunda.osgi.import.camunda.spin.version>version="[$(version;==;${camunda.spin.version.clean}),$(version;=+;${camunda.spin.version.clean}))"</camunda.osgi.import.camunda.spin.version>
    <camunda.osgi.import.camunda.connect.version>version="[$(version;==;${camunda.connect.version.clean}),$(version;=+;${camunda.connect.version.clean}))"</camunda.osgi.import.camunda.connect.version>
    <camunda.osgi.import.camunda.commons.version>version="[$(version;==;${camunda.commons.version.clean}),$(version;=+;${camunda.commons.version.clean}))"</camunda.osgi.import.camunda.commons.version>
    <camunda.osgi.import.camunda.version>version="[$(version;==;${camunda.osgi.version.clean}),$(version;=+;${camunda.osgi.version.clean}))"</camunda.osgi.import.camunda.version>
    <camunda.osgi.import.strict.version>version="[$(version;===;${camunda.osgi.version.clean}),$(version;==+;${camunda.osgi.version.clean}))"</camunda.osgi.import.strict.version>
    <camunda.osgi.import.default.version>[$(version;==;$(@)),$(version;+;$(@)))</camunda.osgi.import.default.version>
    <camunda.osgi.import.defaults>
    </camunda.osgi.import.defaults>
    <camunda.osgi.import.before.defaults />
    <camunda.osgi.import.additional />
    <camunda.osgi.import.pkg>
      ${camunda.osgi.import.before.defaults},
      ${camunda.osgi.import.defaults},
      ${camunda.osgi.import.additional},
      *
    </camunda.osgi.import.pkg>
    <camunda.osgi.activator />
    <camunda.osgi.failok>false</camunda.osgi.failok>
    <camunda.osgi.export>${camunda.osgi.export.pkg};${camunda.osgi.version};-noimport:=true</camunda.osgi.export>
    <!--
    <camunda.osgi.export.pkg>!*.impl;${camunda.artifact}*</camunda.osgi.export.pkg>
    <camunda.osgi.private.pkg>${camunda.artifact}*.impl</camunda.osgi.private.pkg>
    -->
    <camunda.osgi.export.pkg>${camunda.artifact}*</camunda.osgi.export.pkg>
    <camunda.osgi.private.pkg />
    <camunda.osgi.version>version=${project.version}</camunda.osgi.version>
    <camunda.osgi.split.pkg>-split-package:=first</camunda.osgi.split.pkg>
    <camunda.osgi.import>${camunda.osgi.import.pkg}</camunda.osgi.import>
    <camunda.osgi.dynamic />
    <camunda.osgi.symbolic.name>${camunda.artifact}</camunda.osgi.symbolic.name>
    <camunda.osgi.exclude.dependencies>false</camunda.osgi.exclude.dependencies>
    <camunda.osgi.remove.headers>Ignore-Package,Include-Resource,Private-Package,Bundle-DocURL</camunda.osgi.remove.headers>
    <camunda.osgi.include.resource>{maven-resources}</camunda.osgi.include.resource>
    <camunda.osgi.embed />
    <plugin.version.maven-bundle>5.1.9</plugin.version.maven-bundle> <!-- compatible with JDK 17 -->
  </properties>

  <dependencyManagement>
    <dependencies>

      <dependency>
        <groupId>org.camunda.bpm</groupId>
        <artifactId>camunda-bom</artifactId>
        <version>${project.version}</version>
        <type>pom</type>
        <scope>import</scope>
      </dependency>

    </dependencies>
  </dependencyManagement>

   <build>
    <pluginManagement>
      <plugins>
        <!-- test plugins -->
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-surefire-plugin</artifactId>
          <version>2.22.2</version>
          <configuration>
            <runOrder>hourly</runOrder>
            <systemPropertyVariables>
              <myWorkingDir>${project.build.directory}</myWorkingDir>
            </systemPropertyVariables>
            <argLine>-Xmx968m -Duser.language=en -Duser.region=US -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=${project.build.directory}/heap_dump.hprof</argLine>
            <redirectTestOutputToFile>true</redirectTestOutputToFile>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-failsafe-plugin</artifactId>
          <version>2.16</version>
          <configuration>
            <argLine>-Xmx968m</argLine>
            <runOrder>hourly</runOrder>
          </configuration>
          <executions>
              <execution>
                <goals>
                  <goal>integration-test</goal>
                  <goal>verify</goal>
                </goals>
              </execution>
            </executions>
        </plugin>

        <!-- code plugins -->
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-dependency-plugin</artifactId>
          <version>2.8</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-resources-plugin</artifactId>
          <version>2.6</version>
        </plugin>

        <!-- artifact plugins -->
        <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.maven.plugins</groupId>
          <artifactId>maven-antrun-plugin</artifactId>
          <version>1.8</version>
        </plugin>
        <plugin>
          <groupId>org.codehaus.mojo</groupId>
          <artifactId>build-helper-maven-plugin</artifactId>
          <version>1.9.1</version>
        </plugin>
        <plugin>
          <groupId>org.apache.felix</groupId>
          <artifactId>maven-bundle-plugin</artifactId>
          <version>${plugin.version.maven-bundle}</version>
          <configuration>
           <excludeDependencies>${camunda.osgi.exclude.dependencies}</excludeDependencies>
           <instructions>
             <Bundle-Name>${project.name}</Bundle-Name>
             <Bundle-SymbolicName>${camunda.osgi.symbolic.name}</Bundle-SymbolicName>
             <Bundle-Activator>${camunda.osgi.activator}</Bundle-Activator>
             <Export-Package>${camunda.osgi.export}</Export-Package>
             <Import-Package>${camunda.osgi.import}</Import-Package>
             <DynamicImport-Package>${camunda.osgi.dynamic}</DynamicImport-Package>
             <Private-Package>${camunda.osgi.private.pkg}</Private-Package>
             <Implementation-Title>camunda</Implementation-Title>
             <Implementation-Version>${project.version}</Implementation-Version>
             <Include-Resource>${camunda.osgi.include.resource}</Include-Resource>
             <_versionpolicy>${camunda.osgi.import.default.version}</_versionpolicy>
             <_removeheaders>${camunda.osgi.remove.headers}</_removeheaders>
             <_failok>${camunda.osgi.failok}</_failok>
             <Export-Service>${camunda.osgi.export.service}</Export-Service>
             <Import-Service>${camunda.osgi.import.service}</Import-Service>
             <Embed-Dependency>${camunda.osgi.embed}</Embed-Dependency>
            </instructions>
           <versions>
            <camunda.osgi.version.clean>${project.version}</camunda.osgi.version.clean>
            <camunda.connect.version.clean>${version.camunda.connect}</camunda.connect.version.clean>
            <camunda.spin.version.clean>${version.camunda.spin}</camunda.spin.version.clean>
            <camunda.commons.version.clean>${version.camunda.commons}</camunda.commons.version.clean>
           </versions>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.codehaus.cargo</groupId>
          <artifactId>cargo-maven3-plugin</artifactId>
          <version>1.10.9</version>
        </plugin>
        <plugin>
          <groupId>net.kennychua</groupId>
          <artifactId>maven-urlpoller-plugin</artifactId>
          <version>1.0.3</version>
        </plugin>
        <plugin>
          <groupId>org.codehaus.mojo</groupId>
          <artifactId>sql-maven-plugin</artifactId>
          <version>1.5</version>
          <configuration>
            <keepFormat>true</keepFormat>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.codehaus.mojo</groupId>
          <artifactId>clirr-maven-plugin</artifactId>
          <version>2.8</version>
        </plugin>
        <plugin>
          <groupId>org.codehaus.mojo</groupId>
          <artifactId>exec-maven-plugin</artifactId>
          <version>1.4.0</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-war-plugin</artifactId>
          <version>3.3.2</version>
        </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>Camunda Platform Javadocs ${project.version}</doctitle>
            <windowtitle>Camunda Platform Javadocs ${project.version}</windowtitle>
          </configuration>
        </plugin>

        <plugin>
          <groupId>org.eclipse.transformer</groupId>
          <artifactId>transformer-maven-plugin</artifactId>
          <version>0.5.0</version>
          <configuration>
            <rules>
              <jakartaDefaults>true</jakartaDefaults>
              <renames>
                <rename>jar:file:${org.camunda.bpm:camunda-engine:jar}!/META-INF/jakarta-renames.properties</rename>
                <rename>jar:file:${org.camunda.bpm:camunda-engine:jar}!/META-INF/camunda-renames.properties</rename>
              </renames>
            </rules>
            <classifier>jakarta</classifier>
          </configuration>
        </plugin>

        <plugin>
          <groupId>com.github.eirslett</groupId>
          <artifactId>frontend-maven-plugin</artifactId>
          <version>${version.eirslett.frontend.maven.plugin}</version>
          <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>
  </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>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
    </license>
  </licenses>

  <organization>
    <name>camunda services GmbH</name>
    <url>http://www.camunda.com</url>
  </organization>

  <url>http://www.camunda.org</url>
</project>


