<?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.jboss</groupId>
      <artifactId>jboss-parent</artifactId>
      <version>39</version>
      <!-- prevent the default ../pom.xml: the parent pom lives elsewhere -->
      <relativePath/>
   </parent>

   <groupId>org.infinispan</groupId>
   <artifactId>infinispan-build-configuration-parent</artifactId>
   <version>14.0.19.Final</version>
   <packaging>pom</packaging>

   <name>Infinispan Common Parent</name>
   <description>Infinispan common parent POM module</description>
   <url>http://www.infinispan.org</url>
   <organization>
      <name>JBoss, a division of Red Hat</name>
      <url>http://www.jboss.org</url>
   </organization>
   <licenses>
      <license>
         <name>Apache License 2.0</name>
         <url>http://www.apache.org/licenses/LICENSE-2.0</url>
         <distribution>repo</distribution>
      </license>
   </licenses>
   <developers>
      <developer>
         <id>placeholder</id>
         <name>See http://www.infinispan.org for a complete list of contributors</name>
      </developer>
   </developers>
   <mailingLists>
      <mailingList>
         <name>Infinispan Issues</name>
         <subscribe>https://lists.jboss.org/mailman/listinfo/infinispan-issues</subscribe>
         <unsubscribe>https://lists.jboss.org/mailman/listinfo/infinispan-issues</unsubscribe>
         <post>infinispan-issues@lists.jboss.org</post>
         <archive>http://lists.jboss.org/pipermail/infinispan-issues/</archive>
      </mailingList>
      <mailingList>
         <name>Infinispan Developers</name>
         <subscribe>https://lists.jboss.org/mailman/listinfo/infinispan-dev</subscribe>
         <unsubscribe>https://lists.jboss.org/mailman/listinfo/infinispan-dev</unsubscribe>
         <post>infinispan-dev@lists.jboss.org</post>
         <archive>http://lists.jboss.org/pipermail/infinispan-dev/</archive>
      </mailingList>
   </mailingLists>
   <scm>
      <connection>scm:git:git@github.com:infinispan/infinispan.git</connection>
      <developerConnection>scm:git:git@github.com:infinispan/infinispan.git</developerConnection>
      <url>https://github.com/infinispan/infinispan</url>
   </scm>
   <issueManagement>
      <system>jira</system>
      <url>https://issues.jboss.org/browse/ISPN</url>
   </issueManagement>
   <ciManagement>
      <system>Jenkins</system>
      <url>https://ci.infinispan.org</url>
      <notifiers>
         <notifier>
            <type>mail</type>
            <address>infinispan-commits@lists.jboss.org</address>
         </notifier>
      </notifiers>
   </ciManagement>
   <distributionManagement>
      <snapshotRepository>
         <id>${maven.snapshots.repo.id}</id>
         <url>${maven.snapshots.repo.url}</url>
      </snapshotRepository>
      <repository>
         <id>${maven.releases.repo.id}</id>
         <url>${maven.releases.repo.url}</url>
      </repository>
   </distributionManagement>

   <properties>
      <maven.compiler.source>11</maven.compiler.source>
      <maven.compiler.target>11</maven.compiler.target>
      <maven.compiler.release>11</maven.compiler.release>
      <maven.javadoc.skip>false</maven.javadoc.skip>
      <transform.skip>true</transform.skip>
      <transform.tests.skip>true</transform.tests.skip>

      <!-- === 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.codename>Flying Saucer</infinispan.codename>
      <infinispan.module.slot.prefix>ispn</infinispan.module.slot.prefix>
      <infinispan.base.version>14.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>
      <wildfly.brand.name>WildFly</wildfly.brand.name>
      <wildfly.brand.prefix>wildfly</wildfly.brand.prefix>

      <!-- maven repository urls -->
      <maven.releases.nexus.url>https://s01.oss.sonatype.org/</maven.releases.nexus.url>
      <maven.releases.repo.id>ossrh</maven.releases.repo.id>
      <maven.releases.repo.url>https://s01.oss.sonatype.org/service/local/staging/deploy/maven2/</maven.releases.repo.url>
      <maven.snapshots.repo.id>ossrh</maven.snapshots.repo.id>
      <maven.snapshots.repo.url>https://s01.oss.sonatype.org/content/repositories/snapshots</maven.snapshots.repo.url>

      <!-- === Application Server Configuration === -->

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

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

      <!-- Dependency versions -->
      <version.aesh>2.6</version.aesh>
      <version.aesh-readline>2.3</version.aesh-readline>
      <version.ant>1.10.7</version.ant>
      <version.ant-nodeps>1.8.1</version.ant-nodeps>
      <version.ant-contrib>1.0b3</version.ant-contrib>
      <version.antlr3>3.5.2</version.antlr3>
      <version.arquillian>1.6.0.Final</version.arquillian>
      <version.blockhound>1.0.6.RELEASE</version.blockhound>
      <version.bouncycastle>1.70</version.bouncycastle>
      <version.byteman>4.0.21</version.byteman>
      <version.caffeine>3.1.1</version.caffeine>
      <version.commons.compress>1.21</version.commons.compress>
      <version.console>14.0.13.Final</version.console>
      <version.fabric8.kubernetes-client>6.3.1</version.fabric8.kubernetes-client>
      <version.glassfish.jaxb>2.3.1</version.glassfish.jaxb>
      <version.glassfish.json>1.1.4</version.glassfish.json>
      <version.groovy>2.4.8</version.groovy>
      <version.hamcrest>1.3</version.hamcrest>
      <version.hibernate.core>6.2.0.Final</version.hibernate.core>
      <version.hibernate.search>6.1.5.Final</version.hibernate.search>
      <version.infinispan>14.0.19.Final</version.infinispan>
      <version.infinispan.arquillian>1.2.0.Beta3</version.infinispan.arquillian>
      <version.infinispan.doclets>1.4.0.Final</version.infinispan.doclets>
      <version.infinispan.maven-plugins>1.0.3.Final</version.infinispan.maven-plugins>
      <version.insights>1.0.11</version.insights>
      <version.io.agroal>1.16</version.io.agroal>
      <version.io.lettuce>6.2.0.RELEASE</version.io.lettuce>
      <version.io.mashona>1.0.0</version.io.mashona>
      <version.jackson>2.15.2</version.jackson>
      <version.jackson.databind>2.15.2</version.jackson.databind>
      <version.jacoco>0.8.7</version.jacoco>
      <version.jakarta.annotation-api>2.1.1</version.jakarta.annotation-api>
      <version.jakarta.transaction.legacy>1.3.3</version.jakarta.transaction.legacy>
      <version.jakarta.transaction>2.0.1</version.jakarta.transaction>
      <version.jakarta.enterprise.cdi>2.0.2</version.jakarta.enterprise.cdi>
      <version.jakarta.persistence>3.1.0</version.jakarta.persistence>
      <version.javax.cache>1.1.0</version.javax.cache>
      <version.jboss.logging>3.5.0.Final</version.jboss.logging>
      <version.jboss.marshalling>2.1.1.Final</version.jboss.marshalling>
      <version.jboss.naming>5.0.6.CR1</version.jboss.naming>
      <version.jboss.narayana>5.13.1.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.1.3</version.jboss.shrinkwrap.resolver>
      <version.jcip-annotations>1.0</version.jcip-annotations>
      <version.jgroups>5.2.19.Final</version.jgroups>
      <version.jgroups.raft>1.0.11.Final</version.jgroups.raft>
      <version.jsr107>1.1.0</version.jsr107>
      <version.junit>4.13.2</version.junit>
      <version.junit.platform>1.9.2</version.junit.platform>
      <version.junit5>5.9.2</version.junit5>
      <version.log4j>2.20.0</version.log4j>
      <version.lucene>8.11.1</version.lucene>
      <version.metainf-services>1.8</version.metainf-services>
      <version.micrometer>1.9.2</version.micrometer>
      <version.mockito>4.3.1</version.mockito>
      <version.mockito_dep.bytebuddy>1.9.7</version.mockito_dep.bytebuddy>
      <version.mockito_dep.objenesis>2.6</version.mockito_dep.objenesis>
      <version.nashorn>15.4</version.nashorn>
      <version.netty>4.1.100.Final</version.netty>
      <version.netty.incubator.iouring>0.0.19.Final</version.netty.incubator.iouring>
      <version.okhttp>3.14.9</version.okhttp>
      <version.openjdk.jmh>1.23</version.openjdk.jmh>
      <version.org.wildfly.arquillian>3.0.1.Final</version.org.wildfly.arquillian>
      <version.org.wildfly.core>16.0.1.Final</version.org.wildfly.core>
      <version.org.wildfly.elytron>1.20.4.Final</version.org.wildfly.elytron>
      <version.org.wildfly.openssl>2.2.5.Final</version.org.wildfly.openssl>
      <version.org.wildfly.openssl.natives>2.2.2.SP01</version.org.wildfly.openssl.natives>
      <version.org.wildfly.openssl.natives.linux_x86_64>2.2.2.SP01</version.org.wildfly.openssl.natives.linux_x86_64>
      <version.org.wildfly.openssl.natives.macos_x86_64>2.2.2.Final</version.org.wildfly.openssl.natives.macos_x86_64>
      <version.org.wildfly.openssl.natives.windows_x86_64>2.2.2.Final</version.org.wildfly.openssl.natives.windows_x86_64>
      <version.ow2.asm>9.3</version.ow2.asm>
      <version.picketbox>5.0.3.Final</version.picketbox>
      <version.picketlink>2.5.5.SP12</version.picketlink>
      <version.protostream>4.6.5.Final</version.protostream>
      <version.protostuff>1.6.2</version.protostuff>
      <version.reactivestreams>1.0.3</version.reactivestreams>
      <version.rocksdb>7.1.2</version.rocksdb>
      <version.rxjava>3.1.4</version.rxjava>
      <version.sshd>2.10.0</version.sshd>
      <version.testng.engine>1.0.4</version.testng.engine>

      <!-- these versions must be kept in sync with ${version.micrometer}: -->
      <version.io.prometheus>0.15.0</version.io.prometheus>
      <version.hdrhistogram>2.1.12</version.hdrhistogram>
      <version.latencyutils>2.0.3</version.latencyutils>

      <version.opentelemetry>1.15.0</version.opentelemetry>
      <version.opentelemetry.sdk-autoconfigure>1.15.0-alpha</version.opentelemetry.sdk-autoconfigure>

      <version.smallrye-mutiny>1.3.1</version.smallrye-mutiny>
      <!-- Defaults to Spring 5 and Spring Boot 2 -->
      <version.spring>5.3.28</version.spring>
      <version.spring.boot>2.7.13</version.spring.boot>
      <version.spring.session>2.7.2</version.spring.session>

      <!-- Spring 6, Spring Boot 3 versions -->
      <version.spring6>6.0.10</version.spring6>
      <version.spring.boot3>3.1.1</version.spring.boot3>
      <version.spring6.session>3.1.1</version.spring6.session>

      <version.kafka.client>3.5.0</version.kafka.client>
      <version.xom>1.3.7</version.xom>
      <version.xstream>1.4.20</version.xstream>

      <!-- Plugin dependencies -->
      <version.checkstyle.maven-plugin>3.3.0</version.checkstyle.maven-plugin>
      <version.maven>3.8.2</version.maven>
      <version.maven.antlr3>${version.antlr3}</version.maven.antlr3>
      <version.maven.antrun>3.1.0</version.maven.antrun>
      <version.maven.buildhelper>3.4.0</version.maven.buildhelper>
      <version.maven.bundle>4.2.1</version.maven.bundle>
      <version.maven.gpg>3.1.0</version.maven.gpg>
      <version.maven.clean>3.3.1</version.maven.clean>
      <version.maven-compiler-plugin>3.11.0</version.maven-compiler-plugin>
      <version.maven.enforcer>3.3.0</version.maven.enforcer>
      <version.maven.install>3.1.1</version.maven.install>
      <version.maven.invoker>3.6.0</version.maven.invoker>
      <version.maven.jar>3.3.0</version.maven.jar>
      <version.maven.javadoc>3.6.0</version.maven.javadoc>
      <version.maven-plugin-plugin>3.9.0</version.maven-plugin-plugin>
      <version.maven.release>3.0.1</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.shade>3.5.0</version.maven.shade>
      <version.maven.source>3.3.0</version.maven.source>
      <version.maven.surefire>3.1.2</version.maven.surefire>
      <version.org.jboss.galleon>4.2.8.Final</version.org.jboss.galleon>
      <version.org.wildfly.galleon-plugins>5.2.1.Final</version.org.wildfly.galleon-plugins>
      <version.sonatype.nexus-staging-plugin>1.6.13</version.sonatype.nexus-staging-plugin>
      <version.eclipse.transformer>0.5.0</version.eclipse.transformer>
      <!-- overwrite version in jboss-parent -->
      <version.pmd.plugin>3.21.0</version.pmd.plugin>
      <version.owasp-dependency-check-plugin>8.3.1</version.owasp-dependency-check-plugin>
      <version.spotbugs.plugin>4.7.3.5</version.spotbugs.plugin>
      <version.weld-servlet>2.4.8.Final</version.weld-servlet>
      <version.deploy.plugin>3.1.1</version.deploy.plugin>

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

      <!-- configuration properties -->
      <org.infinispan.attachServerZip>false</org.infinispan.attachServerZip>
   </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>org.sonatype.plugins</groupId>
               <artifactId>nexus-staging-maven-plugin</artifactId>
               <version>${version.sonatype.nexus-staging-plugin}</version>
               <configuration>
                  <autoReleaseAfterClose>true</autoReleaseAfterClose>
                  <stagingDescription>${infinispan.brand.name} ${project.version} release</stagingDescription>
                  <nexusUrl>${maven.releases.nexus.url}</nexusUrl>
                  <serverId>${maven.releases.repo.id}</serverId>
               </configuration>
            </plugin>
            <plugin>
               <groupId>org.apache.maven.plugins</groupId>
               <artifactId>maven-javadoc-plugin</artifactId>
               <version>${version.maven.javadoc}</version>
               <executions>
                  <execution>
                     <id>javadoc</id>
                     <phase>package</phase>
                     <goals>
                        <goal>jar</goal>
                     </goals>
                  </execution>
               </executions>
            </plugin>
            <plugin>
               <groupId>org.apache.maven.plugins</groupId>
               <artifactId>maven-gpg-plugin</artifactId>
               <version>${version.maven.gpg}</version>
               <executions>
                  <execution>
                     <id>sign-artifacts</id>
                     <phase>verify</phase>
                     <goals>
                        <goal>sign</goal>
                     </goals>
                     <configuration>
                        <keyname>${infinispan.gpg.key}</keyname>
                        <passphraseServerId>${infinispan.gpg.key}</passphraseServerId>
                     </configuration>
                  </execution>
               </executions>
            </plugin>
            <plugin>
               <groupId>org.eclipse.transformer</groupId>
               <artifactId>transformer-maven-plugin</artifactId>
               <version>${version.eclipse.transformer}</version>
            </plugin>
         </plugins>
      </pluginManagement>
   </build>

   <profiles>
      <profile>
         <id>jakarta-transform</id>
         <activation>
            <file>
               <exists>${basedir}/jakarta.txt</exists>
            </file>
         </activation>
         <build>
            <plugins>
               <plugin>
                  <groupId>org.codehaus.mojo</groupId>
                  <artifactId>build-helper-maven-plugin</artifactId>
                  <executions>
                     <execution>
                        <id>jakarta-transform</id>
                        <goals>
                           <goal>regex-property</goal>
                        </goals>
                        <configuration>
                           <name>original.artifactId</name>
                           <value>${project.artifactId}</value>
                           <regex>\-jakarta$</regex>
                           <failIfNoMatch>false</failIfNoMatch>
                        </configuration>
                     </execution>
                  </executions>
               </plugin>
               <plugin>
                  <groupId>org.eclipse.transformer</groupId>
                  <artifactId>transformer-maven-plugin</artifactId>
                  <extensions>true</extensions>
                  <configuration>
                     <rules>
                        <jakartaDefaults>true</jakartaDefaults>
                     </rules>
                  </configuration>
                  <executions>
                     <execution>
                        <id>default-jar</id>
                        <goals>
                           <goal>jar</goal>
                        </goals>
                        <phase>package</phase>
                        <configuration>
                           <artifact>
                              <groupId>${project.groupId}</groupId>
                              <artifactId>${original.artifactId}</artifactId>
                              <version>${project.version}</version>
                           </artifact>
                        </configuration>
                     </execution>
                     <execution>
                        <id>source-jar</id>
                        <goals>
                           <goal>jar</goal>
                        </goals>
                        <phase>package</phase>
                        <configuration>
                           <artifact>
                              <groupId>${project.groupId}</groupId>
                              <artifactId>${original.artifactId}</artifactId>
                              <version>${project.version}</version>
                              <classifier>sources</classifier>
                           </artifact>
                        </configuration>
                     </execution>
                     <execution>
                        <id>test-jar</id>
                        <goals>
                           <goal>jar</goal>
                        </goals>
                        <phase>package</phase>
                        <configuration>
                           <skip>${transform.tests.skip}</skip>
                           <artifact>
                              <groupId>${project.groupId}</groupId>
                              <artifactId>${original.artifactId}</artifactId>
                              <version>${project.version}</version>
                              <classifier>tests</classifier>
                           </artifact>
                        </configuration>
                     </execution>
                     <execution>
                        <id>test-source-jar</id>
                        <goals>
                           <goal>jar</goal>
                        </goals>
                        <phase>package</phase>
                        <configuration>
                           <skip>${transform.tests.skip}</skip>
                           <artifact>
                              <groupId>${project.groupId}</groupId>
                              <artifactId>${original.artifactId}</artifactId>
                              <version>${project.version}</version>
                              <classifier>test-sources</classifier>
                           </artifact>
                        </configuration>
                     </execution>
                  </executions>
               </plugin>
            </plugins>
         </build>
      </profile>
      <profile>
         <id>community-release</id>
         <activation>
            <activeByDefault>false</activeByDefault>
         </activation>
         <build>
            <plugins>
               <plugin>
                  <groupId>org.apache.maven.plugins</groupId>
                  <artifactId>maven-javadoc-plugin</artifactId>
                  <configuration>
                     <skip>${maven.javadoc.skip}</skip>
                     <detectOfflineLinks>false</detectOfflineLinks>
                  </configuration>
               </plugin>
               <plugin>
                  <groupId>org.eclipse.transformer</groupId>
                  <artifactId>transformer-maven-plugin</artifactId>
                  <configuration>
                     <rules>
                        <jakartaDefaults>true</jakartaDefaults>
                     </rules>
                  </configuration>
                  <executions>
                     <execution>
                        <id>javadoc-jar</id>
                        <goals>
                           <goal>jar</goal>
                        </goals>
                        <phase>package</phase>
                        <configuration>
                           <artifact>
                              <groupId>${project.groupId}</groupId>
                              <artifactId>${original.artifactId}</artifactId>
                              <version>${project.version}</version>
                              <classifier>javadoc</classifier>
                           </artifact>
                        </configuration>
                     </execution>
                  </executions>
               </plugin>
               <plugin>
                  <groupId>org.apache.maven.plugins</groupId>
                  <artifactId>maven-gpg-plugin</artifactId>
               </plugin>
            </plugins>
         </build>
      </profile>

      <profile>
         <!-- nexus-staging-maven-plugin blocks maven-deploy-plugin -->
         <id>nexus-staging</id>
         <activation>
            <property><name>!skipNexusStaging</name></property>
         </activation>
         <build>
            <plugins>
               <plugin>
                  <groupId>org.sonatype.plugins</groupId>
                  <artifactId>nexus-staging-maven-plugin</artifactId>
                  <extensions>false</extensions>
               </plugin>
            </plugins>
         </build>
      </profile>

   </profiles>

</project>
