<?xml version='1.0' encoding='UTF-8'?>
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_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.server</groupId>
      <artifactId>infinispan-server-testsuite</artifactId>
      <version>5.3.0.Final</version>
      <relativePath>../pom.xml</relativePath>
   </parent>

   <artifactId>example-configuration-tests</artifactId>
   <packaging>jar</packaging>
   <name>Infinispan Server - Test Suite - Configuration Files</name>

   <dependencies>
      <dependency>
         <groupId>junit</groupId>
         <artifactId>junit</artifactId>
      </dependency>
      <dependency>
         <groupId>org.jboss.arquillian.junit</groupId>
         <artifactId>arquillian-junit-container</artifactId>
      </dependency>
      <dependency>
         <groupId>org.jboss.as</groupId>
         <artifactId>jboss-as-arquillian-container-managed</artifactId>
      </dependency>
      <dependency>
         <groupId>org.infinispan.arquillian.container</groupId>
         <artifactId>infinispan-arquillian-impl</artifactId>
      </dependency>
      <dependency>
         <groupId>org.infinispan</groupId>
         <artifactId>infinispan-client-hotrod</artifactId>
      </dependency>
   </dependencies>

   <properties>
      <ispnserver.ts.dir>${basedir}/..</ispnserver.ts.dir>
      <ispnserver.project.dir>${ispnserver.ts.dir}/..</ispnserver.project.dir>
      <server1.dist>${ispnserver.project.dir}/build/target/infinispan-server-${project.version}</server1.dist>
      <server2.dist>${ispnserver.project.dir}/build/target/infinispan-server-${project.version}-2</server2.dist>
      <server3.dist>${ispnserver.project.dir}/build/target/infinispan-server-${project.version}-3</server3.dist>
      <config.dir>${basedir}/src/test/resources</config.dir>
      <jvm.memory.args>-Xmx512m -XX:MaxPermSize=128m</jvm.memory.args>
      <jvm.ip.stack>-Djava.net.preferIPv4Stack=true</jvm.ip.stack>
      <server.jvm.args>${jvm.ip.stack} ${jvm.memory.args}</server.jvm.args>
   </properties>

   <build>
      <plugins>
         <plugin>
            <artifactId>maven-resources-plugin</artifactId>
            <executions>
               <execution>
                  <id>configs</id>
                  <phase>validate</phase>
                  <goals>
                     <goal>copy-resources</goal>
                  </goals>
                  <configuration>
                     <outputDirectory>${server1.dist}/standalone/configuration/</outputDirectory>
                     <resources>
                        <resource>
                           <directory>${server1.dist}/docs/examples/configs</directory>
                           <filtering>true</filtering>
                        </resource>
                        <resource>
                           <directory>${config.dir}</directory>
                           <includes>
                              <include>*.jks</include>
                           </includes>
                        </resource>
                     </resources>
                  </configuration>
               </execution>
               <execution>
                  <id>copy-server-dist</id>
                  <phase>validate</phase>
                  <goals>
                     <goal>copy-resources</goal>
                  </goals>
                  <configuration>
                     <outputDirectory>${server2.dist}</outputDirectory>
                     <resources>
                        <resource>
                           <directory>${server1.dist}</directory>
                        </resource>
                     </resources>
                  </configuration>
               </execution>
               <execution>
                  <id>copy-another-server-dist</id>
                  <phase>validate</phase>
                  <goals>
                     <goal>copy-resources</goal>
                  </goals>
                  <configuration>
                     <outputDirectory>${server3.dist}</outputDirectory>
                     <resources>
                        <resource>
                           <directory>${server1.dist}</directory>
                        </resource>
                     </resources>
                  </configuration>
               </execution>
            </executions>
         </plugin>
         <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>xml-maven-plugin</artifactId>
            <executions>
               <execution>
                  <id>changeConfiguration</id>
                  <phase>process-resources</phase>
                  <goals>
                     <goal>transform</goal>
                  </goals>
               </execution>
            </executions>
            <configuration>
               <transformationSets>
                  <transformationSet>
                     <dir>${server2.dist}/standalone/configuration/</dir>
                     <includes>
                        <include>clustered-xsite.xml</include>
                     </includes>
                     <outputDir>${server2.dist}/standalone/configuration</outputDir>
                     <stylesheet>${config.dir}/config-modifier.xsl</stylesheet>
                     <parameters>
                        <parameter>
                           <name>modifyInfinispan</name>
                           <value>file:///${basedir}/src/test/resources/xsite-server2.xml</value>
                        </parameter>
                     </parameters>
                  </transformationSet>
                  <transformationSet>
                     <dir>${server3.dist}/standalone/configuration/</dir>
                     <includes>
                        <include>clustered-xsite.xml</include>
                     </includes>
                     <outputDir>${server3.dist}/standalone/configuration/</outputDir>
                     <stylesheet>${config.dir}/config-modifier.xsl</stylesheet>
                     <parameters>
                        <parameter>
                           <name>modifyInfinispan</name>
                           <value>file:///${basedir}/src/test/resources/xsite-server3.xml</value>
                        </parameter>
                        <parameter>
                           <name>modifyRelay</name>
                           <value>file:///${basedir}/src/test/resources/xsite-relay-server3.xml</value>
                        </parameter>
                        <parameter>
                           <name>modifyMulticastAddress</name>
                           <value>file:///${basedir}/src/test/resources/xsite-multicast-address-server3.xml</value>
                        </parameter>
                     </parameters>
                  </transformationSet>
                  
                  <transformationSet>
                     <dir>${server1.dist}/standalone/configuration/</dir>
                     <includes>
                        <include>standalone-rcs-local.xml</include>
                     </includes>
                     <outputDir>${server1.dist}/standalone/configuration</outputDir>
                     <stylesheet>${config.dir}/config-modifier.xsl</stylesheet>
                     <parameters>
                        <parameter>
                           <name>modifyRemoteDestination</name>
                           <value>file:///${basedir}/src/test/resources/rcs-remote-destination.xml</value>
                        </parameter>
                     </parameters>
                  </transformationSet>
               </transformationSets>
            </configuration>
         </plugin>
         <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-surefire-plugin</artifactId>
            <configuration>
               <forkMode>once</forkMode>
               <skipTests>false</skipTests>
               <systemPropertyVariables>
                  <server1.dist>${server1.dist}</server1.dist>
                  <server2.dist>${server2.dist}</server2.dist>
                  <server3.dist>${server3.dist}</server3.dist>
                  <server.jvm.args>${server.jvm.args}</server.jvm.args>
               </systemPropertyVariables>
            </configuration>
            <executions>
               <execution>
                  <id>default-test</id>
                  <goals>
                     <goal>test</goal>
                  </goals>
                  <phase>none</phase>
               </execution>
               <execution>
                  <id>clustered-ccl.surefire</id>
                  <phase>test</phase>
                  <goals>
                     <goal>test</goal>
                  </goals>
                  <configuration>
                     <includes>
                        <include>org/infinispan/server/test/configs/ClusteredCacheLoaderConfigExampleTest.java</include>
                     </includes>
                     <systemPropertyVariables>
                        <arquillian.launch>clustered-ccl</arquillian.launch>
                     </systemPropertyVariables>
                  </configuration>
               </execution>
               <execution>
                  <id>clustered-jdbc.surefire</id>
                  <phase>test</phase>
                  <goals>
                     <goal>test</goal>
                  </goals>
                  <configuration>
                     <includes>
                        <include>org/infinispan/server/test/configs/JdbcCacheStoreConfigExampleTest.java</include>
                     </includes>
                     <systemPropertyVariables>
                        <arquillian.launch>clustered-jdbc</arquillian.launch>
                     </systemPropertyVariables>
                  </configuration>
               </execution>
               <execution>
                  <id>clustered-storage-only.surefire</id>
                  <phase>test</phase>
                  <goals>
                     <goal>test</goal>
                  </goals>
                  <configuration>
                     <includes>
                        <include>org/infinispan/server/test/configs/StorageOnlyConfigExampleTest.java</include>
                     </includes>
                     <systemPropertyVariables>
                        <arquillian.launch>clustered-storage-only</arquillian.launch>
                     </systemPropertyVariables>
                  </configuration>
               </execution>
               <execution>
                  <id>clustered-topology.surefire</id>
                  <phase>test</phase>
                  <goals>
                     <goal>test</goal>
                  </goals>
                  <configuration>
                     <includes>
                        <include>org/infinispan/server/test/configs/TopologyConfigExampleTest.java</include>
                     </includes>
                     <systemPropertyVariables>
                        <arquillian.launch>clustered-topology</arquillian.launch>
                     </systemPropertyVariables>
                  </configuration>
               </execution>
               <execution>
                  <id>clustered-two-nodes.surefire</id>
                  <phase>test</phase>
                  <goals>
                     <goal>test</goal>
                  </goals>
                  <configuration>
                     <includes>
                        <include>org/infinispan/server/test/configs/TwoNodesConfigExampleTest.java</include>
                     </includes>
                     <systemPropertyVariables>
                        <arquillian.launch>clustered-two-nodes</arquillian.launch>
                     </systemPropertyVariables>
                  </configuration>
               </execution>
               <execution>
                  <id>clustered-xsite.surefire</id>
                  <phase>test</phase>
                  <goals>
                     <goal>test</goal>
                  </goals>
                  <configuration>
                     <includes>
                        <include>org/infinispan/server/test/configs/XsiteConfigExampleTest.java</include>
                     </includes>
                     <systemPropertyVariables>
                        <arquillian.launch>clustered-xsite</arquillian.launch>
                     </systemPropertyVariables>
                  </configuration>
               </execution>
               <execution>
                  <id>standalone-fcs-local.surefire</id>
                  <phase>test</phase>
                  <goals>
                     <goal>test</goal>
                  </goals>
                  <configuration>
                     <includes>
                        <include>org/infinispan/server/test/configs/FileCacheStoreConfigExampleTest.java</include>
                     </includes>
                     <systemPropertyVariables>
                        <arquillian.launch>standalone-fcs-local</arquillian.launch>
                     </systemPropertyVariables>
                  </configuration>
               </execution>
               <execution>
                  <id>standalone-hotrod-multiple.surefire</id>
                  <phase>test</phase>
                  <goals>
                     <goal>test</goal>
                  </goals>
                  <configuration>
                     <includes>
                        <include>org/infinispan/server/test/configs/MultiHotRodConfigExampleTest.java</include>
                     </includes>
                     <systemPropertyVariables>
                        <arquillian.launch>standalone-hotrod-multiple</arquillian.launch>
                     </systemPropertyVariables>
                  </configuration>
               </execution>
               <execution>
                  <id>standalone-rcs-local.surefire</id>
                  <phase>test</phase>
                  <goals>
                     <goal>test</goal>
                  </goals>
                  <configuration>
                     <includes>
                        <include>org/infinispan/server/test/configs/RemoteCacheStoreConfigExampleTest.java</include>
                     </includes>
                     <systemPropertyVariables>
                        <arquillian.launch>standalone-rcs-local</arquillian.launch>
                     </systemPropertyVariables>
                  </configuration>
               </execution>
               <execution>
                  <id>standalone-hotrod-ssl.surefire</id>
                  <phase>test</phase>
                  <goals>
                     <goal>test</goal>
                  </goals>
                  <configuration>
                     <includes>
                        <include>org/infinispan/server/test/configs/SslHotRodConfigExampleTest.java</include>
                     </includes>
                     <systemPropertyVariables>
                        <arquillian.launch>standalone-hotrod-ssl</arquillian.launch>
                     </systemPropertyVariables>
                  </configuration>
               </execution>
            </executions>
         </plugin>
      </plugins>
   </build>

</project>