<?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>org.wildfly.qa</groupId>
    <artifactId>tooling-provisioning</artifactId>
    <version>2.0.0</version>
    <packaging>pom</packaging>

    <scm>
        <connection>scm:git:git@github.com:jboss-eap-qe/tooling-provisioning.git</connection>
        <url>scm:git:git@github.com:jboss-eap-qe/tooling-provisioning.git</url>
        <developerConnection>scm:git:git@github.com:jboss-eap-qe/tooling-provisioning.git</developerConnection>
      <tag>v2.0.0</tag>
  </scm>

    <modules>
        <module>tooling-channel-faker</module>
        <module>tooling-maven-faker</module>
        <module>tooling-maven-invocation</module>
        <module>tooling-process-execution</module>
        <module>tooling-resource-utils</module>
        <module>tooling-string-utils</module>
        <module>tooling-feature-pack</module>
        <module>tooling-pairwise</module>
    </modules>

    <properties>
        <maven.compiler.source>17</maven.compiler.source>
        <maven.compiler.target>17</maven.compiler.target>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

        <version.org.apache.maven.plugins.maven-source-plugin>3.3.1</version.org.apache.maven.plugins.maven-source-plugin>
        <version.org.apache.maven.plugins.maven-javadoc-plugin>3.11.2</version.org.apache.maven.plugins.maven-javadoc-plugin>
        <version.org.apache.maven.plugins.maven-release-plugin>3.1.1</version.org.apache.maven.plugins.maven-release-plugin>

        <version.org.apache.commons.commons-exec>1.4.0</version.org.apache.commons.commons-exec>
        <version.org.apache.maven.shared.maven-invoker>3.3.0</version.org.apache.maven.shared.maven-invoker>
        <version.commons-io.commons-io>2.18.0</version.commons-io.commons-io>
        <version.commons-codec>1.17.1</version.commons-codec>
        <version.org.apache.maven.plugins.maven-checkstyle-plugin>3.6.0</version.org.apache.maven.plugins.maven-checkstyle-plugin>
        <version.org.wildfly.checkstyle-config>1.0.8.Final</version.org.wildfly.checkstyle-config>
        <version.maven.invoker>3.2.0</version.maven.invoker>
        <version.channel.library>1.2.1.Final</version.channel.library>
        <version.slf4j>2.0.16</version.slf4j>
        <version.org.jboss.shrinkwrap.resolver>3.3.1</version.org.jboss.shrinkwrap.resolver>
        <version.org.wildfly.extras.creaper>2.0.3</version.org.wildfly.extras.creaper>
        <version.org.wildfly.core>20.0.0.Final</version.org.wildfly.core>
        <version.plexus-archiver>4.10.0</version.plexus-archiver>
        <version.plexus-utils>4.0.2</version.plexus-utils>
        <version.surefire>3.5.2</version.surefire>
        <version.junit>5.11.4</version.junit>
        <version.org.jboss.galleon>5.2.0.Final</version.org.jboss.galleon>
        <!-- Community WildFly version used for integration tests (e.g. ServerProcess IT) -->
        <version.wildfly.test>41.0.1.Final</version.wildfly.test>
    </properties>

    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.apache.maven.shared</groupId>
                <artifactId>maven-invoker</artifactId>
                <version>${version.org.apache.maven.shared.maven-invoker}</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>org.jboss.shrinkwrap.resolver</groupId>
                <artifactId>shrinkwrap-resolver-depchain</artifactId>
                <version>${version.org.jboss.shrinkwrap.resolver}</version>
                <type>pom</type>
            </dependency>
            <dependency>
                <groupId>org.apache.commons</groupId>
                <artifactId>commons-exec</artifactId>
                <version>${version.org.apache.commons.commons-exec}</version>
            </dependency>
            <dependency>
                <groupId>commons-io</groupId>
                <artifactId>commons-io</artifactId>
                <version>${version.commons-io.commons-io}</version>
            </dependency>
            <dependency>
                <groupId>commons-codec</groupId>
                <artifactId>commons-codec</artifactId>
                <version>${version.commons-codec}</version>
            </dependency>
            <!-- channel library, which partially depends on slf4j library -->
            <dependency>
                <groupId>org.wildfly.channel</groupId>
                <artifactId>channel-core</artifactId>
                <version>${version.channel.library}</version>
            </dependency>
            <dependency>
                <groupId>org.slf4j</groupId>
                <artifactId>slf4j-api</artifactId>
                <version>${version.slf4j}</version>
            </dependency>
            <dependency>
                <groupId>org.slf4j</groupId>
                <artifactId>slf4j-simple</artifactId>
                <version>${version.slf4j}</version>
            </dependency>
            <!--modules-->
            <dependency>
                <groupId>org.wildfly.qa</groupId>
                <artifactId>tooling-maven-faker</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.wildfly.qa</groupId>
                <artifactId>tooling-channel-faker</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.wildfly.qa</groupId>
                <artifactId>tooling-process-execution</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.wildfly.qa</groupId>
                <artifactId>tooling-maven-invocation</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.wildfly.qa</groupId>
                <artifactId>tooling-resource-utils</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.wildfly.qa</groupId>
                <artifactId>tooling-string-utils</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.codehaus.plexus</groupId>
                <artifactId>plexus-archiver</artifactId>
                <version>${version.plexus-archiver}</version>
            </dependency>
            <dependency>
                <groupId>org.codehaus.plexus</groupId>
                <artifactId>plexus-utils</artifactId>
                <version>${version.plexus-utils}</version>
            </dependency>
            <!--creaper-->
            <dependency>
                <groupId>org.wildfly.extras.creaper</groupId>
                <artifactId>creaper-core</artifactId>
                <version>${version.org.wildfly.extras.creaper}</version>
            </dependency>
            <dependency>
                <groupId>org.wildfly.core</groupId>
                <artifactId>wildfly-controller-client</artifactId>
                <version>${version.org.wildfly.core}</version>
            </dependency>
            <dependency>
                <groupId>org.wildfly.core</groupId>
                <artifactId>wildfly-cli</artifactId>
                <version>${version.org.wildfly.core}</version>
            </dependency>
            <!--junit-->
            <dependency>
                <groupId>org.junit.jupiter</groupId>
                <artifactId>junit-jupiter-engine</artifactId>
                <version>${version.junit}</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>org.junit.jupiter</groupId>
                <artifactId>junit-jupiter-params</artifactId>
                <version>${version.junit}</version>
                <scope>test</scope>
            </dependency>
            <!--galleon-core for feature pack builder-->
            <dependency>
                <groupId>org.jboss.galleon</groupId>
                <artifactId>galleon-core</artifactId>
                <version>${version.org.jboss.galleon}</version>
            </dependency>
            <dependency>
                <groupId>org.jboss.galleon</groupId>
                <artifactId>galleon-maven-universe</artifactId>
                <version>${version.org.jboss.galleon}</version>
            </dependency>
        </dependencies>
    </dependencyManagement>

    <distributionManagement>
        <repository>
            <id>jbossqe-eap-releases-repository</id>
            <name>JBoss QE EAP releases repository</name>
            <url>https://repository.jboss.org/nexus/repository/jbossqe-eap/</url>
        </repository>
        <snapshotRepository>
            <id>jboss-snapshots-repository</id>
            <name>JBoss snapshots repository</name>
            <url>https://repository.jboss.org/nexus/repository/snapshots/</url>
        </snapshotRepository>
    </distributionManagement>

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-release-plugin</artifactId>
                <version>${version.org.apache.maven.plugins.maven-release-plugin}</version>
                <configuration>
                    <tagNameFormat>@{project.version}</tagNameFormat>
                    <autoVersionSubmodules>true</autoVersionSubmodules>
                    <remoteTagging>false</remoteTagging>
                    <releaseProfiles>attach-sources,attach-javadoc,sign-artifacts</releaseProfiles>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <version>${version.surefire}</version>
            </plugin>
        </plugins>
    </build>

    <profiles>
        <profile>
            <!--definition of profile attaching sources to a release to include them in the released bits-->
            <id>attach-sources</id>
            <build>
                <plugins>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-source-plugin</artifactId>
                        <version>${version.org.apache.maven.plugins.maven-source-plugin}</version>
                        <executions>
                            <execution>
                                <id>attach-sources</id>
                                <phase>verify</phase>
                                <goals>
                                    <goal>jar-no-fork</goal>
                                </goals>
                            </execution>
                        </executions>
                    </plugin>
                </plugins>
            </build>
        </profile>
        <profile>
            <!--definition of profile attaching javadoc to a release to include it in the released bits-->
            <id>attach-javadoc</id>
            <build>
                <plugins>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-javadoc-plugin</artifactId>
                        <version>${version.org.apache.maven.plugins.maven-javadoc-plugin}</version>
                        <executions>
                            <execution>
                                <id>attach-javadocs</id>
                                <phase>verify</phase>
                                <goals>
                                    <goal>jar</goal>
                                </goals>
                            </execution>
                        </executions>
                    </plugin>
                </plugins>
            </build>
        </profile>
        <profile>
            <id>sign-artifacts</id>
            <build>
                <plugins>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-gpg-plugin</artifactId>
                        <version>3.2.7</version>
                        <executions>
                            <execution>
                                <id>sign-artifacts</id>
                                <phase>verify</phase>
                                <goals>
                                    <goal>sign</goal>
                                </goals>
                            </execution>
                        </executions>
                    </plugin>
                </plugins>
            </build>
        </profile>
    </profiles>

</project>