<?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.infinispan</groupId>
      <artifactId>infinispan-bom</artifactId>
      <version>16.0.3</version>
      <relativePath>../bom/pom.xml</relativePath>
   </parent>

   <artifactId>infinispan-build-configuration-parent</artifactId>
   <version>16.0.3</version>
   <packaging>pom</packaging>

   <name>Infinispan Build Configuration</name>
   <description>Infinispan build configuration</description>
   <url>https://infinispan.org</url>
   <licenses>
      <license>
         <name>Apache License 2.0</name>
         <url>http://www.apache.org/licenses/LICENSE-2.0</url>
         <distribution>repo</distribution>
      </license>
   </licenses>

   <properties>
      <maven.compiler.source>17</maven.compiler.source>
      <maven.compiler.target>17</maven.compiler.target>
      <maven.compiler.release>17</maven.compiler.release>

      <project.build.outputTimestamp>2025-12-01T14:52:46Z</project.build.outputTimestamp>

      <!-- === Branding Configuration === -->
      <infinispan.brand.name>Infinispan</infinispan.brand.name>
      <infinispan.brand.prefix>infinispan</infinispan.brand.prefix>
      <infinispan.brand.short-name>infinispan</infinispan.brand.short-name>
      <infinispan.brand.version>${project.version}</infinispan.brand.version>
      <infinispan.unbranded.version>${project.version}</infinispan.unbranded.version>
      <infinispan.codename>Keep Rollin'</infinispan.codename>
      <infinispan.module.slot.prefix>ispn</infinispan.module.slot.prefix>
      <infinispan.base.version>16.0</infinispan.base.version>
      <infinispan.module.slot>${infinispan.module.slot.prefix}-${infinispan.base.version}</infinispan.module.slot>
      <infinispan.core.schema.version>${infinispan.base.version}</infinispan.core.schema.version>
      <infinispan.olm.openshift.source>community-operators</infinispan.olm.openshift.source>
      <infinispan.olm.k8s.source>operatorhubio-catalog</infinispan.olm.k8s.source>
      <infinispan.olm.name>infinispan</infinispan.olm.name>
      <infinispan.gpg.key>9E31AB27445478DB</infinispan.gpg.key>
      <!-- This should be updated to a stable version from the previous release -->
      <infinispan.old.version>16.0.0.Dev04</infinispan.old.version>

      <wildfly.brand.name>WildFly</wildfly.brand.name>
      <wildfly.brand.prefix>wildfly</wildfly.brand.prefix>

      <!-- org.wildfly / org.jboss.eap -->
      <appserver.groupId>org.wildfly</appserver.groupId>
      <appserver.version>37.0.1.Final</appserver.version>

      <!-- Java source/target version -->
      <maven.min.version>3.9.0</maven.min.version>
      <jdk.min.version>17</jdk.min.version>

      <!-- Dependency versions -->
      <version.aesh>2.8.4</version.aesh>
      <version.aesh-readline>2.6</version.aesh-readline>
      <version.ant>1.10.15</version.ant>
      <version.ant-nodeps>1.8.1</version.ant-nodeps>
      <version.ant-contrib>1.0b3</version.ant-contrib>
      <version.antlr3>3.5.3</version.antlr3>
      <version.arquillian>1.8.1.Final</version.arquillian>
      <version.awaitility>4.3.0</version.awaitility>
      <version.blockhound>1.0.15.RELEASE</version.blockhound>
      <version.bouncycastle>1.70</version.bouncycastle>
      <version.byteman>4.0.26</version.byteman>
      <version.caffeine>3.2.3</version.caffeine>
      <version.checker-qual>3.52.0</version.checker-qual>
      <version.commons.compress>1.28.0</version.commons.compress>
      <version.console>${versionx.org.infinispan.infinispan-console}</version.console>
      <version.ehcache.sizeof>0.3.0</version.ehcache.sizeof>
      <version.fabric8.docker-maven-plugin>0.46.0</version.fabric8.docker-maven-plugin>
      <version.fabric8.kubernetes-client>7.4.0</version.fabric8.kubernetes-client>
      <version.gdx-jnigen-loader>2.5.2</version.gdx-jnigen-loader>
      <version.glassfish.jaxb>4.0.6</version.glassfish.jaxb>
      <version.groovy>2.4.21</version.groovy>
      <version.hamcrest>2.2</version.hamcrest>
      <version.hibernate.core>6.6.37.Final</version.hibernate.core>
      <version.hibernate.search>8.1.2.Final</version.hibernate.search>
      <version.hibernate.models>1.0.1</version.hibernate.models>
      <version.infinispan>16.0.3</version.infinispan>
      <version.infinispan.doclets>1.4.0.Final</version.infinispan.doclets>
      <version.infinispan.maven-plugins>1.0.9.Final</version.infinispan.maven-plugins>
      <version.insights>2.0.4</version.insights>
      <version.io.agroal>2.8</version.io.agroal>
      <version.io.lettuce>6.8.1.RELEASE</version.io.lettuce>
      <version.vertx>4.5.21</version.vertx>
      <version.io.mashona>1.1.0</version.io.mashona>
      <version.jackson>2.19.2</version.jackson>
      <version.jackson.databind>2.16.0</version.jackson.databind>
      <version.jacoco>0.8.14</version.jacoco>
      <version.jakarta.annotation-api>2.1.1</version.jakarta.annotation-api>
      <version.jakarta.json>2.0.1</version.jakarta.json>
      <version.jakarta.transaction>2.0.1</version.jakarta.transaction>
      <version.jakarta.enterprise.cdi>4.1.0</version.jakarta.enterprise.cdi>
      <version.jakarta.persistence>3.1.0</version.jakarta.persistence>
      <version.javax.cache>1.1.1</version.javax.cache>
      <version.jboss.logging>3.6.1.Final</version.jboss.logging>
      <version.jboss.logging.processor>3.0.4.Final</version.jboss.logging.processor>
      <version.jboss.marshalling>2.2.3.Final</version.jboss.marshalling>
      <version.jboss.naming>5.0.6.CR1</version.jboss.naming>
      <version.jboss.narayana>7.3.3.Final</version.jboss.narayana>
      <version.jboss.security>3.0.6.Final</version.jboss.security>
      <version.jboss.shrinkwrap>1.2.6</version.jboss.shrinkwrap>
      <version.jboss.shrinkwrap.descriptors>2.0.0</version.jboss.shrinkwrap.descriptors>
      <version.jboss.shrinkwrap.resolver>3.3.4</version.jboss.shrinkwrap.resolver>
      <version.jboss.threads>3.9.1</version.jboss.threads>
      <version.jgroups>5.5.1.Final</version.jgroups>
      <version.jgroups.raft>1.1.3.Final</version.jgroups.raft>
      <version.json-path>2.10.0</version.json-path>
      <version.json-smart>2.6.0</version.json-smart>
      <version.jsr107>1.1.0</version.jsr107>
      <version.junit>4.13.2</version.junit>
      <version.junit5>5.14.1</version.junit5>
      <version.log4j>2.25.2</version.log4j>
      <!-- version.lucene is defined in the lucene profiles below -->
      <version.metainf-services>1.11</version.metainf-services>
      <version.micrometer>1.16.0</version.micrometer>
      <version.mockito>5.20.0</version.mockito>
      <version.nashorn>15.7</version.nashorn>
      <version.netty>4.1.128.Final</version.netty>
      <version.netty.incubator.iouring>0.0.26.Final</version.netty.incubator.iouring>
      <version.openjdk.jmh>1.37</version.openjdk.jmh>
      <version.org.wildfly.arquillian>5.1.0.Final</version.org.wildfly.arquillian>
      <version.org.wildfly.elytron>2.7.0.Final</version.org.wildfly.elytron>
      <version.ow2.asm>9.9</version.ow2.asm>
      <version.party.iroiro.luajava>4.0.2</version.party.iroiro.luajava>
      <version.infinispan.lua.natives>1.0.0</version.infinispan.lua.natives>
      <version.reactivestreams>1.0.4</version.reactivestreams>
      <version.rocksdb>9.11.2</version.rocksdb>
      <version.rxjava>3.1.12</version.rxjava>
      <version.sshd>2.16.0</version.sshd>
      <version.testng.engine>1.1.0</version.testng.engine>

      <!-- these versions must be kept in sync with ${version.micrometer}: -->
      <version.io.prometheus.server>1.3.10</version.io.prometheus.server>
      <version.io.prometheus.client>0.16.0</version.io.prometheus.client>
      <version.hdrhistogram>2.2.2</version.hdrhistogram>
      <version.latencyutils>2.0.3</version.latencyutils>

      <version.quarkus>3.27.1</version.quarkus>
      <version.graalvm>25.0.1</version.graalvm>
      <version.jandex>3.5.2</version.jandex>

      <version.opentelemetry>1.39.0</version.opentelemetry>
      <!-- used by the opentelemetry autoconfigure module as incubator runtime dependency -->
      <version.opentelemetry.alpha>1.39.0-alpha</version.opentelemetry.alpha>

      <version.smallrye-mutiny>2.9.5</version.smallrye-mutiny>
      <!-- Spring 6, Spring Boot 3 versions -->
      <version.spring>6.2.14</version.spring>
      <version.spring.boot>3.5.8</version.spring.boot>
      <version.spring.session>3.5.3</version.spring.session>

      <version.xstream>1.4.21</version.xstream>

      <!-- Plugin dependencies -->
      <version.checkstyle.maven-plugin>3.6.0</version.checkstyle.maven-plugin>
      <version.native.maven.plugin>0.11.3</version.native.maven.plugin>
      <version.maven>3.9.11</version.maven>
      <version.maven.antlr3>3.5.2</version.maven.antlr3>
      <version.maven.antrun>3.2.0</version.maven.antrun>
      <version.maven.archetype>3.4.1</version.maven.archetype>
      <version.maven.assembly>3.7.1</version.maven.assembly>
      <version.maven.buildhelper>3.6.1</version.maven.buildhelper>
      <version.maven.bundle>4.2.1</version.maven.bundle>
      <version.maven.clean>3.5.0</version.maven.clean>
      <version.maven.compiler>3.14.1</version.maven.compiler>
      <version.maven.dependency>3.9.0</version.maven.dependency>
      <version.maven.deploy>3.1.4</version.maven.deploy>
      <version.maven.enforcer>3.6.2</version.maven.enforcer>
      <version.maven.exec>3.6.2</version.maven.exec>
      <version.maven.extra-enforcer-rules>1.11.0</version.maven.extra-enforcer-rules>
      <version.maven.git-commit-id>9.0.2</version.maven.git-commit-id>
      <version.maven.help>3.5.1</version.maven.help>
      <version.maven.install>3.1.4</version.maven.install>
      <version.maven.invoker>3.9.1</version.maven.invoker>
      <version.maven.japicmp>0.25.0</version.maven.japicmp>
      <version.maven.jar>3.5.0</version.maven.jar>
      <version.maven-plugin-plugin>3.15.2</version.maven-plugin-plugin>
      <version.maven.project-info-reports>3.9.0</version.maven.project-info-reports>
      <version.maven.os>1.7.1</version.maven.os>
      <version.maven.release>3.2.0</version.maven.release>
      <version.maven.remote.resource>3.1.0</version.maven.remote.resource>
      <version.maven.resources>3.3.1</version.maven.resources>
      <version.maven.scm>2.2.1</version.maven.scm>
      <version.maven.shade>3.6.1</version.maven.shade>
      <version.maven.source>3.3.1</version.maven.source>
      <version.maven.surefire>3.5.4</version.maven.surefire>
      <version.maven.war>3.5.0</version.maven.war>
      <version.org.jboss.galleon>6.1.1.Final</version.org.jboss.galleon>
      <version.org.wildfly.galleon-plugins>7.4.0.Final</version.org.wildfly.galleon-plugins>
      <version.pmd.plugin>3.28.0</version.pmd.plugin>
      <version.owasp-dependency-check-plugin>9.2.0</version.owasp-dependency-check-plugin>
      <version.spotbugs.plugin>4.9.8.1</version.spotbugs.plugin>
      <version.weld-servlet>5.1.3.Final</version.weld-servlet>

      <!-- versionx -->
      <versionx.com.puppycrawl.tools.checkstyle>12.1.2</versionx.com.puppycrawl.tools.checkstyle>
      <versionx.net.sourceforge.pmd>7.0.0-rc3</versionx.net.sourceforge.pmd>

      <!-- configuration properties -->
      <org.infinispan.attachServerZip>true</org.infinispan.attachServerZip>
      <!-- empty by default, means no profiles for upstream or downstream release are enabled. -->
      <!-- upstream: enables profiles for community release -->
      <!-- downstream: enables profiles for downstream/product release -->
      <release-mode/>
   </properties>

   <build>
      <pluginManagement>
         <plugins>
            <plugin>
               <groupId>com.github.spotbugs</groupId>
               <artifactId>spotbugs-maven-plugin</artifactId>
               <version>${version.spotbugs.plugin}</version>
            </plugin>
            <plugin>
               <groupId>org.owasp</groupId>
               <artifactId>dependency-check-maven</artifactId>
               <version>${version.owasp-dependency-check-plugin}</version>
            </plugin>
            <plugin>
               <groupId>io.github.git-commit-id</groupId>
               <artifactId>git-commit-id-maven-plugin</artifactId>
               <version>${version.maven.git-commit-id}</version>
               <executions>
                  <execution>
                     <id>git</id>
                     <goals>
                        <goal>revision</goal>
                     </goals>
                     <phase>initialize</phase>
                  </execution>
               </executions>
               <configuration>
                  <dateFormatTimeZone>UTC</dateFormatTimeZone>
                  <runOnlyOnce>true</runOnlyOnce>
                  <skipPoms>false</skipPoms>
                  <useNativeGit>true</useNativeGit>
               </configuration>
            </plugin>
         </plugins>
      </pluginManagement>
      <plugins>
         <plugin>
            <groupId>io.github.git-commit-id</groupId>
            <artifactId>git-commit-id-maven-plugin</artifactId>
         </plugin>
      </plugins>
   </build>

   <profiles>
      <profile>
         <id>lucene9</id>
         <activation>
            <activeByDefault>true</activeByDefault>
         </activation>
         <properties>
            <version.lucene>9.12.3</version.lucene>
            <hibernate.search.backend.artifactId>hibernate-search-backend-lucene</hibernate.search.backend.artifactId>
         </properties>
      </profile>
      <profile>
         <id>lucene10</id>
         <properties>
            <version.lucene>10.2.2</version.lucene>
            <hibernate.search.backend.artifactId>hibernate-search-backend-lucene-next</hibernate.search.backend.artifactId>
         </properties>
      </profile>
   </profiles>
</project>
