<?xml version='1.0' encoding='UTF-8'?>
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
   <modelVersion>4.0.0</modelVersion>

   <parent>
      <groupId>org.infinispan</groupId>
      <artifactId>infinispan-parent</artifactId>
      <version>9.2.2.Final</version>
      <relativePath>../../../pom.xml</relativePath>
   </parent>

   <groupId>org.infinispan.server</groupId>
   <artifactId>infinispan-server-versions</artifactId>
   <packaging>pom</packaging>

   <name>Infinispan Server - BOM</name>
   <description>Infinispan Server - BOM</description>

   <properties>
      <product.version>${project.version}</product.version>
      <product.name>infinispan-server</product.name>
      <maven.compiler.target>1.8</maven.compiler.target>
      <maven.compiler.source>1.8</maven.compiler.source>
      <server.output.dir.prefix>infinispan-server</server.output.dir.prefix>
      <forkJvmArgs>-Xmx500m ${testjvm.commonArgs}</forkJvmArgs>
      <testjvm.jigsawArgs/>
      <module.skipMavenRemoteResource>true</module.skipMavenRemoteResource>

      <version.org.jboss.marshalling.jboss-marshalling>2.0.2.Final</version.org.jboss.marshalling.jboss-marshalling>
      <version.org.infinispan.infinispan-management-console>9.2.0.Final</version.org.infinispan.infinispan-management-console>
      <version.org.infinispan.arquillian.container>1.2.0.Beta3</version.org.infinispan.arquillian.container>
      <version.org.infinispan.server-build.old>8.2.7.Final</version.org.infinispan.server-build.old>
      <version.org.slf4j>1.7.2</version.org.slf4j>
      <version.org.apache.logging.log4j>2.3</version.org.apache.logging.log4j>
      <version.jcl.over.slf4j>1.7.22</version.jcl.over.slf4j>

      <!-- Infinispan Server dependencies -->
      <version.org.wildfly.extras.creaper>1.1.0</version.org.wildfly.extras.creaper>
      <version.xml.maven.plugin>1.0</version.xml.maven.plugin>
      <version.http.client>4.5</version.http.client>
      <version.xpp3>1.1.4c</version.xpp3>
      <version.karaf>4.1.2</version.karaf>
      <version.pax.exam>4.11.0</version.pax.exam>
      <version.h2.database>1.3.173</version.h2.database>
      <version.jest>2.0.4</version.jest>
      <version.gson>2.6.2</version.gson>
      <version.jboss.aesh>0.66.13</version.jboss.aesh>
      <!-- Jolokia and Prometheus support -->
      <version.agent-bond>1.0.2</version.agent-bond>
   </properties>

   <dependencyManagement>
      <dependencies>
         <dependency>
            <groupId>org.wildfly</groupId>
            <artifactId>wildfly-feature-pack</artifactId>
            <type>pom</type>
            <version>${version.org.wildfly}</version>
         </dependency>

         <dependency>
            <groupId>org.wildfly</groupId>
            <artifactId>wildfly-feature-pack</artifactId>
            <type>zip</type>
            <version>${version.org.wildfly}</version>
         </dependency>

         <dependency>
            <groupId>org.wildfly</groupId>
            <artifactId>wildfly-naming</artifactId>
            <version>${version.org.wildfly}</version>
         </dependency>

         <dependency>
            <groupId>org.wildfly</groupId>
            <artifactId>wildfly-security</artifactId>
            <version>${version.org.wildfly}</version>
         </dependency>

         <dependency>
            <groupId>org.wildfly</groupId>
            <artifactId>wildfly-transactions</artifactId>
            <version>${version.org.wildfly}</version>
         </dependency>

         <dependency>
            <groupId>org.wildfly</groupId>
            <artifactId>wildfly-dist</artifactId>
            <type>zip</type>
            <version>${version.org.wildfly}</version>
         </dependency>

         <dependency>
            <groupId>org.wildfly</groupId>
            <artifactId>wildfly-clustering-common</artifactId>
            <version>${version.org.wildfly}</version>
            <scope>test</scope>
            <classifier>tests</classifier>
         </dependency>

         <dependency>
            <groupId>org.wildfly.core</groupId>
            <artifactId>wildfly-controller</artifactId>
            <version>${version.org.wildfly.core}</version>
         </dependency>

         <dependency>
            <groupId>org.wildfly.core</groupId>
            <artifactId>wildfly-controller-client</artifactId>
            <version>${version.org.wildfly.core}</version>
            <scope>provided</scope>
         </dependency>

         <dependency>
            <groupId>org.wildfly.extras.creaper</groupId>
            <artifactId>creaper-core</artifactId>
            <version>${version.org.wildfly.extras.creaper}</version>
            <exclusions>
               <exclusion>
                  <groupId>org.jboss.as</groupId>
                  <artifactId>jboss-as-controller-client</artifactId>
               </exclusion>
               <exclusion>
                  <groupId>org.jboss.as</groupId>
                  <artifactId>jboss-as-cli</artifactId>
               </exclusion>
            </exclusions>
         </dependency>

         <dependency>
            <groupId>org.wildfly.core</groupId>
            <artifactId>wildfly-cli</artifactId>
            <version>${version.org.wildfly.core}</version>
            <scope>compile</scope>
         </dependency>

         <dependency>
            <groupId>org.jboss.aesh</groupId>
            <artifactId>aesh</artifactId>
            <version>${version.jboss.aesh}</version>
            <scope>test</scope>
         </dependency>

         <dependency>
            <groupId>org.wildfly.extras.creaper</groupId>
            <artifactId>creaper-commands</artifactId>
            <version>${version.org.wildfly.extras.creaper}</version>
            <exclusions>
               <exclusion>
                  <groupId>org.wildfly</groupId>
                  <artifactId>wildfly-patching</artifactId>
               </exclusion>
            </exclusions>
         </dependency>

         <dependency>
            <groupId>org.jboss.marshalling</groupId>
            <artifactId>jboss-marshalling-parent</artifactId>
            <version>${version.org.jboss.marshalling.jboss-marshalling}</version>
            <type>pom</type>
         </dependency>

         <dependency>
            <groupId>org.infinispan.server</groupId>
            <artifactId>infinispan-server-commons</artifactId>
            <version>${project.version}</version>
            <type>test-jar</type>
         </dependency>

         <dependency>
            <groupId>org.infinispan.server</groupId>
            <artifactId>infinispan-server-jgroups</artifactId>
            <version>${project.version}</version>
            <type>test-jar</type>
         </dependency>

         <dependency>
            <groupId>org.infinispan.server</groupId>
            <artifactId>infinispan-server-infinispan</artifactId>
            <version>${project.version}</version>
            <type>test-jar</type>
         </dependency>

         <dependency>
            <groupId>org.infinispan.server</groupId>
            <artifactId>infinispan-server-feature-pack</artifactId>
            <version>${project.version}</version>
            <type>zip</type>
         </dependency>

         <dependency>
            <groupId>org.jboss.logmanager</groupId>
            <artifactId>jboss-logmanager-log4j</artifactId>
            <version>${version.org.jboss.logmanager.jboss-logmanager-log4j}</version>
         </dependency>

         <dependency>
            <groupId>org.infinispan</groupId>
            <artifactId>infinispan</artifactId>
            <version>${project.version}</version>
            <classifier>javadoc</classifier>
         </dependency>

         <dependency>
            <groupId>org.infinispan</groupId>
            <artifactId>infinispan-client-hotrod</artifactId>
            <classifier>javadoc</classifier>
            <version>${project.version}</version>
         </dependency>

         <dependency>
            <groupId>org.infinispan</groupId>
            <artifactId>infinispan-management-console</artifactId>
            <version>${version.org.infinispan.infinispan-management-console}</version>
         </dependency>

         <dependency>
            <groupId>org.sonatype.oss</groupId>
            <artifactId>oss-parent</artifactId>
            <version>${version.org.sonatype.oss.parent}</version>
            <type>pom</type>
         </dependency>

         <dependency>
            <groupId>org.wildfly.arquillian</groupId>
            <artifactId>wildfly-arquillian-common</artifactId>
            <version>${version.org.wildfly.arquillian}</version>
            <scope>test</scope>
         </dependency>

         <dependency>
            <groupId>org.wildfly.arquillian</groupId>
            <artifactId>wildfly-arquillian-container-managed</artifactId>
            <version>${version.org.wildfly.arquillian}</version>
            <scope>provided</scope>
         </dependency>

         <dependency>
            <groupId>org.wildfly.arquillian</groupId>
            <artifactId>wildfly-arquillian-common-domain</artifactId>
            <version>${version.org.wildfly.arquillian}</version>
            <scope>test</scope>
         </dependency>

         <dependency>
            <groupId>org.wildfly.arquillian</groupId>
            <artifactId>wildfly-arquillian-container-domain-managed</artifactId>
            <scope>test</scope>
            <version>${version.org.wildfly.arquillian}</version>
         </dependency>

         <dependency>
            <groupId>org.infinispan.arquillian.container</groupId>
            <artifactId>infinispan-arquillian-impl</artifactId>
            <version>${version.org.infinispan.arquillian.container}</version>
            <scope>test</scope>
         </dependency>

         <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>jul-to-slf4j</artifactId>
            <version>${version.org.slf4j}</version>
            <scope>test</scope>
         </dependency>

         <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>jcl-over-slf4j</artifactId>
            <version>${version.jcl.over.slf4j}</version>
            <scope>test</scope>
         </dependency>

         <dependency>
            <groupId>org.apache.logging.log4j</groupId>
            <artifactId>log4j-slf4j-impl</artifactId>
            <version>${version.org.apache.logging.log4j}</version>
            <scope>test</scope>
         </dependency>

         <dependency>
            <groupId>org.apache.logging.log4j</groupId>
            <artifactId>log4j</artifactId>
            <version>${version.org.apache.logging.log4j}</version>
            <scope>test</scope>
         </dependency>

         <dependency>
            <groupId>ant-contrib</groupId>
            <artifactId>ant-contrib</artifactId>
            <version>${version.ant-contrib}</version>
            <scope>test</scope>
         </dependency>

         <dependency>
            <groupId>org.apache.httpcomponents</groupId>
            <artifactId>httpclient</artifactId>
            <version>${version.http.client}</version>
         </dependency>

         <dependency>
            <groupId>xpp3</groupId>
            <artifactId>xpp3</artifactId>
            <version>${version.xpp3}</version>
         </dependency>

         <dependency>
            <groupId>org.apache.karaf</groupId>
            <artifactId>apache-karaf</artifactId>
            <version>${version.karaf}</version>
            <type>zip</type>
            <scope>test</scope>
         </dependency>

         <dependency>
            <groupId>org.ops4j.pax.exam</groupId>
            <artifactId>pax-exam-container-karaf</artifactId>
            <version>${version.pax.exam}</version>
            <scope>test</scope>
         </dependency>

         <dependency>
            <groupId>org.ops4j.pax.exam</groupId>
            <artifactId>pax-exam-junit4</artifactId>
            <version>${version.pax.exam}</version>
            <scope>test</scope>
         </dependency>

         <dependency>
            <groupId>org.ops4j.pax.exam</groupId>
            <artifactId>pax-exam</artifactId>
            <version>${version.pax.exam}</version>
            <scope>test</scope>
         </dependency>

         <dependency>
            <groupId>org.ops4j.pax.exam</groupId>
            <artifactId>pax-exam-inject</artifactId>
            <version>${version.pax.exam}</version>
            <scope>test</scope>
         </dependency>

         <dependency>
            <groupId>com.h2database</groupId>
            <artifactId>h2</artifactId>
            <scope>test</scope>
            <version>${version.h2.database}</version>
         </dependency>

         <dependency>
            <groupId>org.infinispan</groupId>
            <artifactId>infinispan-security-integrationtests</artifactId>
            <version>${project.version}</version>
            <classifier>tests</classifier>
            <scope>test</scope>
         </dependency>

         <dependency>
            <groupId>org.infinispan.server</groupId>
            <artifactId>infinispan-server-build</artifactId>
            <type>pom</type>
            <version>${project.version}</version>
            <scope>test</scope>
         </dependency>

         <dependency>
            <groupId>org.infinispan.server</groupId>
            <artifactId>infinispan-server-build</artifactId>
            <type>zip</type>
            <version>${project.version}</version>
            <scope>test</scope>
         </dependency>

         <dependency>
            <groupId>org.apache.directory.server</groupId>
            <artifactId>apacheds-all</artifactId>
            <version>${version.apache.ds}</version>
            <scope>test</scope>
         </dependency>

         <dependency>
            <groupId>org.apache.lucene</groupId>
            <artifactId>lucene-core</artifactId>
            <version>${version.lucene}</version>
         </dependency>

         <dependency>
            <groupId>org.apache.lucene</groupId>
            <artifactId>lucene-queryparser</artifactId>
            <version>${version.lucene}</version>
         </dependency>

         <dependency>
            <groupId>org.apache.lucene</groupId>
            <artifactId>lucene-queries</artifactId>
            <version>${version.lucene}</version>
         </dependency>

         <dependency>
            <groupId>org.apache.lucene</groupId>
            <artifactId>lucene-highlighter</artifactId>
            <version>${version.lucene}</version>
         </dependency>

         <dependency>
            <groupId>org.apache.lucene</groupId>
            <artifactId>lucene-grouping</artifactId>
            <version>${version.lucene}</version>
         </dependency>

         <dependency>
            <groupId>org.apache.lucene</groupId>
            <artifactId>lucene-facet</artifactId>
            <version>${version.lucene}</version>
         </dependency>

         <dependency>
            <groupId>io.searchbox</groupId>
            <artifactId>jest</artifactId>
            <version>${version.jest}</version>
         </dependency>

         <dependency>
            <groupId>io.searchbox</groupId>
            <artifactId>jest-common</artifactId>
            <version>${version.jest}</version>
         </dependency>

         <dependency>
            <groupId>com.google.code.gson</groupId>
            <artifactId>gson</artifactId>
            <version>${version.gson}</version>
         </dependency>

         <dependency>
            <groupId>io.fabric8</groupId>
            <artifactId>agent-bond-agent</artifactId>
            <version>${version.agent-bond}</version>
         </dependency>

      </dependencies>

   </dependencyManagement>

   <build>
      <finalName>${project.artifactId}-${project.version}</finalName>
      <pluginManagement>
         <plugins>
            <plugin>
               <groupId>org.codehaus.mojo</groupId>
               <artifactId>xml-maven-plugin</artifactId>
               <version>${version.xml.maven.plugin}</version>
            </plugin>
            <plugin>
               <groupId>org.apache.maven.plugins</groupId>
               <artifactId>maven-surefire-plugin</artifactId>
               <configuration>
                  <trimStackTrace>false</trimStackTrace>
                  <argLine>${forkJvmArgs} ${testjvm.jigsawArgs}</argLine>
               </configuration>
            </plugin>
            <plugin>
               <groupId>org.apache.maven.plugins</groupId>
               <artifactId>maven-enforcer-plugin</artifactId>
               <version>3.0.0-M1</version>
            </plugin>
         </plugins>
      </pluginManagement>
      <plugins>
         <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>${version.maven-compiler-plugin}</version>
            <configuration>
               <useIncrementalCompilation>false</useIncrementalCompilation>
            </configuration>
         </plugin>
         <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-enforcer-plugin</artifactId>
            <version>1.3.1</version>
            <executions>
               <execution>
                  <id>enforce-java</id>
                  <goals>
                     <goal>enforce</goal>
                  </goals>
                  <configuration>
                     <rules>
                        <requireJavaVersion>
                           <version>[${version.java},)</version>
                        </requireJavaVersion>
                        <requireMavenVersion>
                           <version>[3.0.5,)</version>
                        </requireMavenVersion>
                     </rules>
                  </configuration>
               </execution>
            </executions>
         </plugin>
         <plugin>
            <groupId>org.apache.servicemix.tooling</groupId>
            <artifactId>depends-maven-plugin</artifactId>
            <version>1.2</version>
          </plugin>
      </plugins>
   </build>

   <profiles>
      <profile>
         <id>smoke</id>
         <build>
            <plugins>
               <plugin>
                  <groupId>org.apache.maven.plugins</groupId>
                  <artifactId>maven-surefire-plugin</artifactId>
                  <executions>
                     <execution>
                        <id>default-test</id>
                        <phase>none</phase>
                     </execution>
                  </executions>
               </plugin>
            </plugins>
         </build>
      </profile>

      <profile>
         <id>distribution</id>
         <activation>
            <activeByDefault>false</activeByDefault>
         </activation>
         <properties>
            <skipTests>true</skipTests>
         </properties>
      </profile>

      <profile>
         <id>customForkJvmArgs</id>
         <activation>
            <activeByDefault>false</activeByDefault>
            <property>
               <name>env.MAVEN_FORK_OPTS</name>
            </property>
         </activation>
         <properties>
            <forkJvmArgs>${env.MAVEN_FORK_OPTS}</forkJvmArgs>
         </properties>
      </profile>
      <profile>
         <id>jigsaw</id>
         <activation>
            <jdk>[9,)</jdk>
         </activation>
         <properties>
            <!--
              java.lang, java.util, java.io, java.lang.invoke, java.lang, reflect, java.util.concurrent, java.time:
                core externalizers for JDK types
              java.nio, jdk.internal.ref: Netty, server/hotrod
              com.sun.security.sasl: CRAM-MD5 mechanism, server/hotrod
              java.text, java.awt.font: XStream, server/rest
              java.security: Wildfly, server/integration/*
            -->
            <testjvm.jigsawArgs>
               -Dsun.reflect.debugModuleAccessChecks=true
               --add-opens=java.base/java.lang=ALL-UNNAMED
               --add-opens=java.base/java.util=ALL-UNNAMED
               --add-opens=java.base/java.io=ALL-UNNAMED
               --add-opens=java.base/java.lang.invoke=ALL-UNNAMED
               --add-opens=java.base/java.lang.reflect=ALL-UNNAMED
               --add-opens=java.base/java.util.concurrent=ALL-UNNAMED
               --add-opens=java.base/java.time=ALL-UNNAMED
               --add-opens=java.base/java.nio=ALL-UNNAMED
               --add-opens=java.base/jdk.internal.ref=ALL-UNNAMED
               --add-modules=java.xml.bind
               --add-opens=java.security.sasl/com.sun.security.sasl=ALL-UNNAMED
               --add-opens=java.base/java.text=ALL-UNNAMED
               --add-opens=java.desktop/java.awt.font=ALL-UNNAMED
               --add-opens=java.base/java.security=ALL-UNNAMED
               --add-exports=jdk.security.jgss/com.sun.security.sasl.gsskerb=ALL-UNNAMED
               --add-exports=java.base/sun.nio.ch=ALL-UNNAMED
               --add-opens=java.base/sun.nio.ch=ALL-UNNAMED
               --add-exports=java.security.sasl/com.sun.security.sasl.digest=ALL-UNNAMED
               --add-exports=java.security.sasl/com.sun.security.sasl.ntlm=ALL-UNNAMED
               --add-exports=java.naming/com.sun.jndi.ldap=ALL-UNNAMED
               --add-opens=java.management/javax.management=ALL-UNNAMED
            </testjvm.jigsawArgs>
         </properties>
         <build>
            <pluginManagement>
               <plugins>
                  <plugin>
                     <groupId>org.apache.maven.plugins</groupId>
                     <artifactId>maven-compiler-plugin</artifactId>
                     <configuration>
                        <!-- fork is needed so compiler args can be used -->
                        <fork>true</fork>
                        <compilerArgs>
                           <arg>-J--add-modules</arg>
                           <arg>-Jjava.xml.ws.annotation</arg>
                        </compilerArgs>
                     </configuration>
                  </plugin>
               </plugins>
            </pluginManagement>
         </build>
      </profile>
   </profiles>

</project>
