<?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>
    <groupId>io.quarkus.qe</groupId>
    <artifactId>quarkus-test-parent</artifactId>
    <version>1.2.2.Final</version>
    <packaging>pom</packaging>
    <name>Quarkus - Test Framework - Parent</name>
    <description>Quarkus QE Test Framework is a library enabling the developers to easily deploy multiple Quarkus applications across different platforms in a single test.</description>
    <licenses>
        <license>
            <name>The Apache License, Version 2.0</name>
            <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
        </license>
    </licenses>
    <developers>
        <developer>
            <id>quarkus-qe</id>
            <name>Quarkus QE</name>
            <organization>Quarkus QE</organization>
            <url>https://github.com/quarkus-qe</url>
        </developer>
    </developers>
    <scm>
        <connection>scm:git:git@github.com:quarkus-qe/quarkus-test-framework.git</connection>
        <developerConnection>scm:git:git@github.com:quarkus-qe/quarkus-test-framework.git</developerConnection>
        <url>https://github.com/quarkus-qe/quarkus-test-framework</url>
        <tag>1.2.2.Final</tag>
    </scm>
    <url>https://github.com/quarkus-qe/quarkus-test-framework/</url>
    <properties>
        <compiler-plugin.version>3.10.1</compiler-plugin.version>
        <source-plugin.version>3.2.1</source-plugin.version>
        <javadoc-plugin.version>3.4.1</javadoc-plugin.version>
        <maven.compiler.parameters>true</maven.compiler.parameters>
        <maven.compiler.source>11</maven.compiler.source>
        <maven.compiler.target>11</maven.compiler.target>
        <maven.javadoc.failOnError>false</maven.javadoc.failOnError>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <surefire-plugin.version>2.22.2</surefire-plugin.version>
        <jacoco-maven-plugin.version>0.8.8</jacoco-maven-plugin.version>
        <jaeger.version>1.8.1</jaeger.version>
        <prometheus.simpleclient_pushgateway.version>0.16.0</prometheus.simpleclient_pushgateway.version>
        <maven-checkstyle-plugin.version>3.2.0</maven-checkstyle-plugin.version>
        <formatter-maven-plugin.version>2.21.0</formatter-maven-plugin.version>
        <impsort-maven-plugin.version>1.8.0</impsort-maven-plugin.version>
        <htmlunit.version>2.67.0</htmlunit.version>
        <quarkus.platform.artifact-id>quarkus-bom</quarkus.platform.artifact-id>
        <quarkus.platform.group-id>io.quarkus</quarkus.platform.group-id>
        <quarkus.platform.version>2.13.7.Final</quarkus.platform.version>
        <exclude.tests.with.tags>quarkus-cli</exclude.tests.with.tags>
        <include.tests>**/*IT.java</include.tests>
        <exclude.openshift.tests>**/OpenShift*IT.java</exclude.openshift.tests>
        <exclude.kubernetes.tests>**/Kubernetes*IT.java</exclude.kubernetes.tests>
        <!-- Format Settings -->
        <src.format.goal>format</src.format.goal>
        <src.sort.goal>sort</src.sort.goal>
        <checkstyle.version>10.5.0</checkstyle.version>
        <!-- Code Coverage Properties-->
        <jacoco.agent.argLine />
    </properties>
    <distributionManagement>
        <snapshotRepository>
            <id>ossrh</id>
            <url>https://oss.sonatype.org/content/repositories/snapshots/</url>
        </snapshotRepository>
        <repository>
            <id>oss.sonatype</id>
            <url>https://oss.sonatype.org/service/local/staging/deploy/maven2/</url>
        </repository>
    </distributionManagement>
    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>${quarkus.platform.group-id}</groupId>
                <artifactId>${quarkus.platform.artifact-id}</artifactId>
                <version>${quarkus.platform.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <dependency>
                <groupId>io.quarkus.qe</groupId>
                <artifactId>quarkus-test-core</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>io.quarkus.qe</groupId>
                <artifactId>quarkus-test-containers</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>io.quarkus.qe</groupId>
                <artifactId>quarkus-test-cli</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>io.quarkus.qe</groupId>
                <artifactId>quarkus-test-helm</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>io.quarkus.qe</groupId>
                <artifactId>quarkus-test-images</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>io.quarkus.qe</groupId>
                <artifactId>quarkus-test-openshift</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>io.quarkus.qe</groupId>
                <artifactId>quarkus-test-knative-events</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>io.quarkus.qe</groupId>
                <artifactId>quarkus-test-knative-events-spi</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>io.quarkus.qe</groupId>
                <artifactId>quarkus-test-knative-events-parent</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>io.quarkus.qe</groupId>
                <artifactId>quarkus-test-kubernetes</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>io.quarkus.qe</groupId>
                <artifactId>quarkus-test-service-consul</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>io.quarkus.qe</groupId>
                <artifactId>quarkus-test-service-keycloak</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>io.quarkus.qe</groupId>
                <artifactId>quarkus-test-service-kafka</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>io.quarkus.qe</groupId>
                <artifactId>quarkus-test-service-amq</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>io.quarkus.qe</groupId>
                <artifactId>quarkus-test-service-jaeger</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>io.quarkus.qe</groupId>
                <artifactId>quarkus-test-service-grpc</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>io.quarkus.qe</groupId>
                <artifactId>quarkus-test-service-database</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>io.quarkus.qe</groupId>
                <artifactId>quarkus-test-service-infinispan</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>io.jaegertracing</groupId>
                <artifactId>jaeger-client</artifactId>
                <version>${jaeger.version}</version>
                <exclusions>
                    <!-- CVE-2020-1938 // https://github.com/jaegertracing/jaeger-client-java/issues/800-->
                    <exclusion>
                        <groupId>org.apache.tomcat.embed</groupId>
                        <artifactId>tomcat-embed-core</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>net.sourceforge.htmlunit</groupId>
                <artifactId>htmlunit</artifactId>
                <version>${htmlunit.version}</version>
            </dependency>
            <dependency>
                <groupId>io.prometheus</groupId>
                <artifactId>simpleclient_pushgateway</artifactId>
                <version>${prometheus.simpleclient_pushgateway.version}</version>
            </dependency>
        </dependencies>
    </dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>io.quarkus</groupId>
            <artifactId>quarkus-junit5</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>io.rest-assured</groupId>
            <artifactId>rest-assured</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>
    <build>
        <pluginManagement>
            <plugins>
                <plugin>
                    <artifactId>maven-failsafe-plugin</artifactId>
                    <version>${surefire-plugin.version}</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-javadoc-plugin</artifactId>
                    <version>${javadoc-plugin.version}</version>
                    <executions>
                        <execution>
                            <id>attach-javadocs</id>
                            <goals>
                                <goal>jar</goal>
                            </goals>
                        </execution>
                    </executions>
                </plugin>
                <plugin>
                    <groupId>org.jacoco</groupId>
                    <artifactId>jacoco-maven-plugin</artifactId>
                    <version>${jacoco-maven-plugin.version}</version>
                </plugin>
            </plugins>
        </pluginManagement>
        <plugins>
            <plugin>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>${compiler-plugin.version}</version>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-source-plugin</artifactId>
                <version>${source-plugin.version}</version>
                <executions>
                    <execution>
                        <id>attach-sources</id>
                        <phase>verify</phase>
                        <goals>
                            <goal>jar-no-fork</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <groupId>net.revelc.code.formatter</groupId>
                <artifactId>formatter-maven-plugin</artifactId>
                <version>${formatter-maven-plugin.version}</version>
                <executions>
                    <execution>
                        <goals>
                            <goal>${src.format.goal}</goal>
                        </goals>
                    </execution>
                </executions>
                <dependencies>
                    <dependency>
                        <artifactId>quarkus-ide-config</artifactId>
                        <groupId>io.quarkus</groupId>
                        <version>${quarkus.platform.version}</version>
                    </dependency>
                </dependencies>
                <configuration>
                    <configFile>eclipse-format.xml</configFile>
                    <lineEnding>LF</lineEnding>
                </configuration>
            </plugin>
            <plugin>
                <groupId>net.revelc.code</groupId>
                <artifactId>impsort-maven-plugin</artifactId>
                <version>${impsort-maven-plugin.version}</version>
                <configuration>
                    <!-- store outside of target to speed up formatting when mvn clean is used -->
                    <cachedir>.cache</cachedir>
                    <groups>java.,javax.,org.,com.</groups>
                    <staticGroups>*</staticGroups>
                    <removeUnused>true</removeUnused>
                </configuration>
                <executions>
                    <execution>
                        <goals>
                            <goal>${src.sort.goal}</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-checkstyle-plugin</artifactId>
                <version>${maven-checkstyle-plugin.version}</version>
                <configuration>
                    <configLocation>checkstyle.xml</configLocation>
                    <encoding>UTF-8</encoding>
                    <consoleOutput>true</consoleOutput>
                    <failsOnError>true</failsOnError>
                    <linkXRef>true</linkXRef>
                </configuration>
                <executions>
                    <execution>
                        <id>validate</id>
                        <phase>validate</phase>
                        <goals>
                            <goal>check</goal>
                        </goals>
                    </execution>
                </executions>
                <dependencies>
                    <dependency>
                        <groupId>com.puppycrawl.tools</groupId>
                        <artifactId>checkstyle</artifactId>
                        <version>${checkstyle.version}</version>
                    </dependency>
                </dependencies>
            </plugin>
            <plugin>
                <artifactId>maven-failsafe-plugin</artifactId>
                <executions>
                    <execution>
                        <goals>
                            <goal>integration-test</goal>
                            <goal>verify</goal>
                        </goals>
                        <configuration>
                            <argLine>${jacoco.agent.argLine}</argLine>
                            <excludedGroups>${exclude.tests.with.tags}</excludedGroups>
                            <includes>
                                <include>${include.tests}</include>
                            </includes>
                            <excludes>
                                <exclude>${exclude.openshift.tests}</exclude>
                                <exclude>${exclude.kubernetes.tests}</exclude>
                            </excludes>
                        </configuration>
                    </execution>
                </executions>
                <configuration>
                    <trimStackTrace>false</trimStackTrace>
                </configuration>
            </plugin>
        </plugins>
    </build>
    <profiles>
        <profile>
            <id>framework</id>
            <activation>
                <activeByDefault>true</activeByDefault>
            </activation>
            <modules>
                <module>quarkus-test-core</module>
                <module>quarkus-test-cli</module>
                <module>quarkus-test-helm</module>
                <module>quarkus-test-containers</module>
                <module>quarkus-test-images</module>
                <module>quarkus-test-kubernetes</module>
                <module>quarkus-test-openshift</module>
                <module>quarkus-test-knative-events</module>
                <module>quarkus-test-service-consul</module>
                <module>quarkus-test-service-keycloak</module>
                <module>quarkus-test-service-kafka</module>
                <module>quarkus-test-service-amq</module>
                <module>quarkus-test-service-jaeger</module>
                <module>quarkus-test-service-database</module>
                <module>quarkus-test-service-infinispan</module>
                <module>quarkus-test-service-grpc</module>
            </modules>
        </profile>
        <profile>
            <id>examples</id>
            <activation>
                <activeByDefault>true</activeByDefault>
            </activation>
            <modules>
                <module>examples/quarkus-cli</module>
                <!-- TODO: https://github.com/quarkiverse/quarkus-helm/issues/114-->
                <!-- <module>examples/quarkus-helm</module>-->
                <module>examples/pingpong</module>
                <module>examples/restclient</module>
                <module>examples/greetings</module>
                <module>examples/blocking-reactive-model</module>
                <module>examples/https</module>
                <module>examples/grpc</module>
                <module>examples/consul</module>
                <module>examples/infinispan</module>
                <module>examples/microprofile</module>
                <module>examples/keycloak</module>
                <module>examples/kafka</module>
                <module>examples/kafka-registry</module>
                <module>examples/kafka-streams</module>
                <module>examples/amq-tcp</module>
                <module>examples/amq-amqp</module>
                <module>examples/jaeger</module>
                <module>examples/database-mysql</module>
                <module>examples/database-postgresql</module>
                <module>examples/database-oracle</module>
                <module>examples/external-applications</module>
                <module>examples/funqy-knative-events</module>
            </modules>
        </profile>
        <profile>
            <id>extensions</id>
            <activation>
                <activeByDefault>true</activeByDefault>
            </activation>
            <modules>
                <module>extensions/tracing</module>
                <module>extensions/metrics</module>
            </modules>
        </profile>
        <profile>
            <id>native</id>
            <activation>
                <property>
                    <name>native</name>
                </property>
            </activation>
            <build>
                <plugins>
                    <plugin>
                        <artifactId>maven-failsafe-plugin</artifactId>
                        <executions>
                            <execution>
                                <configuration>
                                    <systemProperties>
                                        <native.image.path>${project.build.directory}/${project.build.finalName}-runner</native.image.path>
                                        <quarkus.package.type>${quarkus.package.type}</quarkus.package.type>
                                        <quarkus.native.container-build>${quarkus.native.container-build}</quarkus.native.container-build>
                                        <quarkus.native.native-image-xmx>${quarkus.native.native-image-xmx}</quarkus.native.native-image-xmx>
                                    </systemProperties>
                                </configuration>
                            </execution>
                        </executions>
                    </plugin>
                </plugins>
            </build>
            <properties>
                <quarkus.package.type>native</quarkus.package.type>
                <quarkus.native.container-build>true</quarkus.native.container-build>
                <quarkus.native.native-image-xmx>5g</quarkus.native.native-image-xmx>
            </properties>
        </profile>
        <profile>
            <!-- You need to be connected to an OpenShift instance to activate 
                this profile! -->
            <id>openshift</id>
            <activation>
                <property>
                    <name>openshift</name>
                </property>
            </activation>
            <properties>
                <include.tests>**/OpenShift*IT.java</include.tests>
                <exclude.openshift.tests>no</exclude.openshift.tests>
            </properties>
        </profile>
        <profile>
            <!-- You need to be connected to a Kubernetes instance to activate 
                this profile! -->
            <id>kubernetes</id>
            <activation>
                <property>
                    <name>kubernetes</name>
                </property>
            </activation>
            <properties>
                <include.tests>**/Kubernetes*IT.java</include.tests>
                <exclude.kubernetes.tests>no</exclude.kubernetes.tests>
            </properties>
        </profile>
        <profile>
            <id>validate-format</id>
            <activation>
                <property>
                    <name>validate-format</name>
                </property>
            </activation>
            <properties>
                <src.format.goal>validate</src.format.goal>
                <src.sort.goal>check</src.sort.goal>
            </properties>
        </profile>
        <!-- This profile generates jacoco coverage files. -->
        <profile>
            <id>coverage</id>
            <properties>
                <!--suppress UnresolvedMavenProperty to ignore warnings in idea-->
                <jacoco.agent.argLine>${jacoco.generated.agent.argLine}</jacoco.agent.argLine>
            </properties>
            <build>
                <plugins>
                    <plugin>
                        <groupId>org.jacoco</groupId>
                        <artifactId>jacoco-maven-plugin</artifactId>
                        <executions>
                            <execution>
                                <id>agent</id>
                                <goals>
                                    <goal>prepare-agent</goal>
                                </goals>
                                <configuration>
                                    <includes>
                                        <include>io.quarkus.test*</include>
                                    </includes>
                                    <propertyName>jacoco.generated.agent.argLine</propertyName>
                                </configuration>
                            </execution>
                        </executions>
                    </plugin>
                </plugins>
            </build>
        </profile>
        <profile>
            <id>release</id>
            <build>
                <plugins>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-release-plugin</artifactId>
                        <configuration>
                            <autoVersionSubmodules>true</autoVersionSubmodules>
                            <tagNameFormat>@{project.version}</tagNameFormat>
                            <pushChanges>false</pushChanges>
                            <localCheckout>true</localCheckout>
                            <remoteTagging>false</remoteTagging>
                            <arguments>-DskipTests=true</arguments>
                        </configuration>
                    </plugin>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-gpg-plugin</artifactId>
                        <configuration>
                            <gpgArguments>
                                <arg>--pinentry-mode</arg>
                                <arg>loopback</arg>
                            </gpgArguments>
                        </configuration>
                        <executions>
                            <execution>
                                <id>sign-artifacts</id>
                                <phase>verify</phase>
                                <goals>
                                    <goal>sign</goal>
                                </goals>
                            </execution>
                        </executions>
                    </plugin>
                    <plugin>
                        <artifactId>maven-javadoc-plugin</artifactId>
                        <executions>
                            <execution>
                                <phase>package</phase>
                                <goals>
                                    <goal>jar</goal>
                                </goals>
                            </execution>
                        </executions>
                    </plugin>
                    <plugin>
                        <groupId>org.sonatype.plugins</groupId>
                        <artifactId>nexus-staging-maven-plugin</artifactId>
                        <version>1.6.13</version>
                        <extensions>true</extensions>
                        <configuration>
                            <nexusUrl>https://s01.oss.sonatype.org/</nexusUrl>
                            <serverId>ossrh</serverId>
                            <autoReleaseAfterClose>true</autoReleaseAfterClose>
                            <stagingProgressTimeoutMinutes>60</stagingProgressTimeoutMinutes>
                        </configuration>
                    </plugin>
                </plugins>
            </build>
        </profile>
        <profile>
            <id>run-cli-tests</id>
            <activation>
                <property>
                    <name>run-cli-tests</name>
                </property>
            </activation>
            <properties>
                <exclude.tests.with.tags />
            </properties>
        </profile>
    </profiles>
</project>
