<?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-server-parent</artifactId>
        <version>12.1.7.Final</version>
        <relativePath>../pom.xml</relativePath>
    </parent>

    <artifactId>infinispan-server-router</artifactId>
    <name>Infinispan Multi Tenant Router</name>
    <description>Infinispan Multi Tenant Router</description>

    <properties>
        <certificate.dname>CN=HotRod_1,OU=Infinispan,O=JBoss,L=Red Hat,ST=World,C=WW</certificate.dname>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.infinispan</groupId>
            <artifactId>infinispan-server-core</artifactId>
        </dependency>
        <dependency>
            <groupId>org.infinispan</groupId>
            <artifactId>infinispan-server-core</artifactId>
            <type>test-jar</type>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.infinispan</groupId>
            <artifactId>infinispan-client-hotrod</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.infinispan</groupId>
            <artifactId>infinispan-client-hotrod</artifactId>
            <type>test-jar</type>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.infinispan</groupId>
            <artifactId>infinispan-client-rest</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.infinispan</groupId>
            <artifactId>infinispan-server-hotrod</artifactId>
        </dependency>
        <dependency>
            <groupId>org.infinispan</groupId>
            <artifactId>infinispan-server-hotrod</artifactId>
            <type>test-jar</type>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.infinispan</groupId>
            <artifactId>infinispan-server-rest</artifactId>
        </dependency>
        <dependency>
            <groupId>org.infinispan</groupId>
            <artifactId>infinispan-server-rest</artifactId>
            <type>test-jar</type>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>io.netty</groupId>
            <artifactId>netty-codec-http</artifactId>
        </dependency>
        <dependency>
            <groupId>org.assertj</groupId>
            <artifactId>assertj-core</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.openjdk.jmh</groupId>
            <artifactId>jmh-core</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.openjdk.jmh</groupId>
            <artifactId>jmh-generator-annprocess</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>commons-logging</groupId>
            <artifactId>commons-logging</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.wildfly.openssl</groupId>
            <artifactId>wildfly-openssl</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.testng</groupId>
            <artifactId>testng</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-antrun-plugin</artifactId>
                <executions>
                    <execution>
                        <id>create-certificates</id>
                        <phase>process-test-resources</phase>
                        <goals>
                            <goal>run</goal>
                        </goals>
                        <configuration>
                            <target>
                                <macrodef name="keytool">
                                    <attribute name="command"/>
                                    <element name="args"/>
                                    <sequential>
                                        <exec executable="${server.jvm}/bin/keytool">
                                            <arg value="@{command}"/>
                                            <!-- common arguments -->
                                            <arg value="-validity"/>
                                            <arg value="365"/>
                                            <arg value="-keyalg"/>
                                            <arg value="RSA"/>
                                            <arg value="-keysize"/>
                                            <arg value="2048"/>
                                            <arg value="-noprompt"/>
                                            <arg value="-storepass"/>
                                            <arg value="secret"/>
                                            <arg value="-keypass"/>
                                            <arg value="secret"/>
                                            <!-- additional arguments -->
                                            <args/>
                                        </exec>
                                    </sequential>
                                </macrodef>
                                <delete quiet="true">
                                    <fileset dir="${project.build.testOutputDirectory}" includes="*.jks,*.csr,*.cer"/>
                                </delete>
                                <echo message="Generate the default certificate"/>
                                <keytool command="-genkeypair">
                                    <args>
                                        <arg value="-alias"/>
                                        <arg value="default"/>
                                        <arg value="-dname"/>
                                        <arg value="${certificate.dname}"/>
                                        <arg value="-keystore"/>
                                        <arg value="${project.build.testOutputDirectory}/default_server_keystore.jks"/>
                                    </args>
                                </keytool>
                                <echo message="Generate the SNI certificate"/>
                                <keytool command="-genkeypair">
                                    <args>
                                        <arg value="-alias"/>
                                        <arg value="default"/>
                                        <arg value="-dname"/>
                                        <arg value="${certificate.dname}"/>
                                        <arg value="-keystore"/>
                                        <arg value="${project.build.testOutputDirectory}/sni_server_keystore.jks"/>
                                    </args>
                                </keytool>
                                <keytool command="-importkeystore">
                                    <args>
                                        <arg value="-srckeystore"/>
                                        <arg value="${project.build.testOutputDirectory}/default_server_keystore.jks"/>
                                        <arg value="-srcstorepass"/>
                                        <arg value="secret"/>
                                        <arg value="-destkeystore"/>
                                        <arg value="${project.build.testOutputDirectory}/default_client_truststore.jks"/>
                                        <arg value="-deststorepass"/>
                                        <arg value="secret"/>
                                    </args>
                                </keytool>
                                <keytool command="-importkeystore">
                                    <args>
                                        <arg value="-srckeystore"/>
                                        <arg value="${project.build.testOutputDirectory}/sni_server_keystore.jks"/>
                                        <arg value="-srcstorepass"/>
                                        <arg value="secret"/>
                                        <arg value="-destkeystore"/>
                                        <arg value="${project.build.testOutputDirectory}/sni_client_truststore.jks"/>
                                        <arg value="-deststorepass"/>
                                        <arg value="secret"/>
                                    </args>
                                </keytool>
                            </target>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <configuration>
                    <trimStackTrace>false</trimStackTrace>
                    <parallel>suitesAndClasses</parallel>
                    <threadCount>${infinispan.test.parallel.threads}</threadCount>
                    <groups combine.self="override">${defaultJUnitGroups}</groups>
                    <excludedGroups combine.self="override">${defaultExcludedJUnitGroups}</excludedGroups>
                    <disableXmlReport>false</disableXmlReport>
                    <properties>
                        <!-- Deactivate the default listeners which may cause OOME. Jenkins uses the surefire generated XML file. -->
                        <usedefaultlisteners>false</usedefaultlisteners>
                        <listener>${junitListener}</listener>
                    </properties>
                    <argLine>${forkJvmArgs} ${testjvm.jdkSpecificArgs}</argLine>
                </configuration>
                <dependencies>
                    <dependency>
                        <groupId>org.apache.maven.surefire</groupId>
                        <artifactId>surefire-junit47</artifactId>
                        <version>${version.maven.surefire}</version>
                    </dependency>
                </dependencies>
            </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>
    </profiles>
</project>
