<?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>15.1.7.Final</version>
      <relativePath>../pom.xml</relativePath>
   </parent>
   <artifactId>infinispan-distribution</artifactId>
   <name>Infinispan Distribution</name>
   <packaging>pom</packaging>

   <dependencies>
      <dependency>
         <groupId>org.infinispan</groupId>
         <artifactId>infinispan-core</artifactId>
      </dependency>

      <dependency>
         <groupId>org.infinispan</groupId>
         <artifactId>infinispan-query</artifactId>
      </dependency>

      <dependency>
         <groupId>org.infinispan</groupId>
         <artifactId>infinispan-cachestore-remote</artifactId>
      </dependency>

      <dependency>
         <groupId>org.infinispan</groupId>
         <artifactId>infinispan-tools</artifactId>
      </dependency>

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

      <dependency>
         <groupId>jakarta.enterprise</groupId>
         <artifactId>jakarta.enterprise.cdi-api</artifactId>
         <scope>provided</scope>
      </dependency>

   </dependencies>

   <build>
      <plugins>
         <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-resources-plugin</artifactId>
            <executions>
               <execution>
                  <id>copy-licenses-xml</id>
                  <phase>prepare-package</phase>
                  <goals>
                     <goal>copy-resources</goal>
                  </goals>
                  <configuration>
                     <outputDirectory>${project.build.directory}/docs/licenses</outputDirectory>
                     <resources>
                        <resource>
                           <directory>${project.basedir}/src/main/resources/template</directory>
                           <includes>
                              <include>licenses.xml</include>
                              <include>licenses.css</include>
                           </includes>
                           <filtering>false</filtering>
                        </resource>
                        <resource>
                           <directory>${project.basedir}/src/main/resources/licenses</directory>
                           <includes>
                              <include>*</include>
                           </includes>
                           <filtering>false</filtering>
                        </resource>
                     </resources>
                  </configuration>
               </execution>
            </executions>
         </plugin>
         <!-- Collect licenses -->
         <plugin>
            <groupId>org.wildfly.maven.plugins</groupId>
            <artifactId>licenses-plugin</artifactId>
            <version>${versionx.org.wildfly.maven.plugins.licenses-plugin}</version>
            <inherited>false</inherited>
            <executions>
               <execution>
                  <id>update-licenses-xml</id>
                  <goals>
                     <goal>insert-versions</goal>
                  </goals>
                  <phase>prepare-package</phase>
                  <configuration>
                     <sortByGroupIdAndArtifactId>true</sortByGroupIdAndArtifactId>
                     <licensesOutputFile>${project.build.directory}/docs/licenses/licenses.xml</licensesOutputFile>
                     <excludedGroups>org.kohsuke</excludedGroups>
                     <excludedArtifacts>jboss-logging-processor|jdeparser|jcip-annotations|jboss-logging-annotations</excludedArtifacts>
                     <excludedScopes>system,test,runtime</excludedScopes>
                  </configuration>
               </execution>
            </executions>
         </plugin>
         <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-antrun-plugin</artifactId>
            <executions>
               <execution>
                  <!-- Build the Schema documentation -->
                  <id>xsdocgen</id>
                  <phase>package</phase>
                  <goals>
                     <goal>run</goal>
                  </goals>
                  <configuration>
                     <target>
                        <property name="plugin_classpath" refid="maven.plugin.classpath" />
                        <echo level="info" message="Base dir: ${basedir}" />
                        <path id="xsd.fileset.path">
                           <fileset casesensitive="yes" dir="${basedir}/..">
                              <!-- make sure core comes first -->
                              <include name="core/target/classes/schema/infinispan-config-${infinispan.core.schema.version}.xsd" />
                              <include name="persistence/*/target/classes/schema/*-${infinispan.core.schema.version}.xsd" />
                              <include name="server/runtime/target/classes/schema/*-${infinispan.core.schema.version}.xsd" />
                              <include name="counter/target/classes/schema/*-${infinispan.core.schema.version}.xsd" />
                              <include name="lock/target/classes/schema/*-${infinispan.core.schema.version}.xsd" />
                           </fileset>
                        </path>
                        <pathconvert pathsep=" " property="xsd.fileset" refid="xsd.fileset.path" />
                        <echo level="info" message="XSDs: ${xsd.fileset}" />
                        <java classname="org.infinispan.tools.xsd.XSDoc">
                           <arg value="-o" />
                           <arg value="${project.build.directory}/site/configdocs" />
                           <arg value="-s" />
                           <!-- file contains only abstract types. Skip rendering to HTML-->
                           <arg value="infinispan-cachestore-jdbc-common-config-${infinispan.core.schema.version}.xsd" />
                           <arg line="${xsd.fileset}" />
                           <classpath>
                              <pathelement path="${plugin_classpath}" />
                           </classpath>
                        </java>
                     </target>
                  </configuration>
               </execution>
            </executions>
            <dependencies>
               <dependency>
                  <groupId>org.infinispan</groupId>
                  <artifactId>infinispan-tools</artifactId>
                  <version>${version.infinispan}</version>
               </dependency>
            </dependencies>
         </plugin>
         <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-assembly-plugin</artifactId>
            <executions>
               <execution>
                  <id>assemble</id>
                  <phase>package</phase>
                  <goals>
                     <goal>single</goal>
                  </goals>
                  <configuration>
                     <descriptors>
                        <descriptor>src/main/assemblies/src.xml</descriptor>
                     </descriptors>
                     <finalName>${infinispan.brand.prefix}-${infinispan.brand.version}</finalName>
                  </configuration>
               </execution>
               <execution>
                  <id>assemble-server</id>
                  <phase>package</phase>
                  <goals>
                     <goal>single</goal>
                  </goals>
                  <configuration>
                     <descriptors>
                        <descriptor>src/main/assemblies/server.xml</descriptor>
                     </descriptors>
                     <finalName>${infinispan.brand.prefix}-server-${infinispan.brand.version}</finalName>
                     <appendAssemblyId>false</appendAssemblyId>
                  </configuration>
               </execution>
            </executions>
            <configuration>
               <outputDirectory>${project.build.directory}/distribution</outputDirectory>
               <workDirectory>${project.build.directory}/assembly/work</workDirectory>
               <!-- (Do not attach ZIP files to the Maven repository) -->
               <attach>${org.infinispan.attachServerZip}</attach>
            </configuration>
         </plugin>
      </plugins>
   </build>

   <profiles>
      <profile>
         <id>nexus-staging</id>
         <activation>
            <property><name>deployServerZip</name></property>
         </activation>
         <properties>
            <!-- Default repositoryId and url for maven-deploy-plugin. Can be overwritten using -DrepositoryId and -Durl (product) -->
            <repositoryId>${maven.snapshots.repo.id}</repositoryId>
            <url>${maven.snapshots.repo.url}</url>
         </properties>
         <build>
            <plugins>
               <!-- Deploy the file we've explicitly installed.
                    MUST provide properties repositoryId and url
               -->
               <plugin>
                  <groupId>org.apache.maven.plugins</groupId>
                  <artifactId>maven-deploy-plugin</artifactId>
                  <executions>
                     <execution>
                        <id>deploy-fat-server</id>
                        <phase>deploy</phase>
                        <goals>
                           <goal>deploy-file</goal>
                        </goals>
                        <configuration>
                           <groupId>org.infinispan.server</groupId>
                           <artifactId>infinispan-server</artifactId>
                           <version>${project.version}</version>
                           <packaging>zip</packaging>
                           <file>${project.build.directory}/distribution/${infinispan.brand.prefix}-server-${infinispan.brand.version}.zip</file>
                           <generatePom>false</generatePom>
                        </configuration>
                     </execution>
                  </executions>
               </plugin>
            </plugins>
         </build>
      </profile>
   </profiles>
</project>
