<?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>

    <parent>
        <groupId>org.jboss</groupId>
        <artifactId>jboss-parent</artifactId>
        <version>39</version>
    </parent>

    <groupId>org.wildfly</groupId>
    <artifactId>wildfly-channel-tools-parent</artifactId>
    <version>1.0.25</version>
    <packaging>pom</packaging>

    <name>Wildfly Channel Tools - Root Project</name>

    <scm>
        <connection>scm:git:git@github.com:wildfly-extras/wildfly-channel-maven-plugin.git</connection>
        <developerConnection>scm:git:git@github.com:wildfly-extras/wildfly-channel-maven-plugin.git</developerConnection>
        <url>https://github.com/wildfly-extras/wildfly-channel-maven-plugin</url>
        <tag>1.0.25</tag>
    </scm>
    <distributionManagement>
        <repository>
            <id>jboss-releases-repository</id>
            <name>JBoss Releases Repository</name>
            <url>https://repository.jboss.org/nexus/service/local/staging/deploy/maven2/</url>
        </repository>
    </distributionManagement>

    <modules>
        <module>plugin</module>
        <module>integration-tests</module>
        <module>core</module>
    </modules>

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

        <maven.version>3.6.3</maven.version> <!-- Note that PME depends on 3.5.0 -->
        <maven-resolver.version>1.6.2</maven-resolver.version>
        <pme.version>4.7</pme.version>
        <channel.version>1.2.1.Final</channel.version>
        <jupiter.version>5.7.2</jupiter.version>
        <assertj.version>3.22.0</assertj.version>
        <itf.version>0.13.1</itf.version>
    </properties>

    <dependencyManagement>
        <dependencies>

            <!-- Logging -->
            <dependency>
                <groupId>org.jboss.logging</groupId>
                <artifactId>jboss-logging</artifactId>
                <version>3.4.3.Final</version>
            </dependency>

            <!-- Maven dependencies -->
            <dependency>
                <groupId>org.apache.maven</groupId>
                <artifactId>maven-plugin-api</artifactId>
                <version>${maven.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.maven</groupId>
                <artifactId>maven-model</artifactId>
                <version>${maven.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.maven</groupId>
                <artifactId>maven-artifact</artifactId>
                <version>${maven.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.maven.plugin-tools</groupId>
                <artifactId>maven-plugin-annotations</artifactId>
                <version>3.6.0</version>
            </dependency>
            <dependency>
                <groupId>org.apache.maven</groupId>
                <artifactId>maven-core</artifactId>
                <version>${maven.version}</version>
            </dependency>
            <dependency>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>versions-maven-plugin</artifactId>
                <version>2.17.0</version>
                <exclusions>
                    <exclusion>
                        <groupId>org.eclipse.aether</groupId>
                        <artifactId>aether-api</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.eclipse.aether</groupId>
                        <artifactId>aether-util</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>

            <!-- Following are needed for ChannelMavenResolver impl -->
            <dependency>
                <groupId>org.apache.maven</groupId>
                <artifactId>maven-resolver-provider</artifactId>
                <version>${maven.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.maven.resolver</groupId>
                <artifactId>maven-resolver-api</artifactId>
                <version>${maven-resolver.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.maven.resolver</groupId>
                <artifactId>maven-resolver-connector-basic</artifactId>
                <version>${maven-resolver.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.maven.resolver</groupId>
                <artifactId>maven-resolver-transport-wagon</artifactId>
                <version>${maven-resolver.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.maven.resolver</groupId>
                <artifactId>maven-resolver-transport-file</artifactId>
                <version>${maven-resolver.version}</version>
            </dependency>

            <!-- wildfly-channel -->
            <dependency>
                <groupId>org.wildfly.channel</groupId>
                <artifactId>channel-core</artifactId>
                <version>${channel.version}</version>
            </dependency>
            <dependency>
                <groupId>org.wildfly.channel</groupId>
                <artifactId>maven-resolver</artifactId>
                <version>${channel.version}</version>
            </dependency>

            <!-- POM manipulation extension - developed as part of PNC project -->
            <dependency>
                <groupId>org.commonjava.maven.ext</groupId>
                <artifactId>pom-manipulation-common</artifactId>
                <version>${pme.version}</version>
                <exclusions>
                    <exclusion>
                        <groupId>com.fasterxml.jackson.core</groupId>
                        <artifactId>*</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.commonjava.maven.ext</groupId>
                <artifactId>pom-manipulation-core</artifactId>
                <version>${pme.version}</version>
                <exclusions>
                    <exclusion>
                        <groupId>com.fasterxml.jackson.core</groupId>
                        <artifactId>*</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.commonjava.maven.ext</groupId>
                <artifactId>pom-manipulation-io</artifactId>
                <version>${pme.version}</version>
                <exclusions>
                    <exclusion>
                        <groupId>com.fasterxml.jackson.core</groupId>
                        <artifactId>*</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.yaml</groupId>
                        <artifactId>snakeyaml</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>

            <!-- Dependency tree generation -->
            <dependency>
                <groupId>org.apache.maven.shared</groupId>
                <artifactId>maven-dependency-tree</artifactId>
                <version>3.2.0</version>
            </dependency>

            <!-- Table formatting -->
            <dependency>
                <groupId>hu.vissy.plain-text-table</groupId>
                <artifactId>ptt-core</artifactId>
                <version>3.0.0</version>
            </dependency>

            <!-- Testing -->
            <dependency>
                <groupId>org.junit.jupiter</groupId>
                <artifactId>junit-jupiter-api</artifactId>
                <version>${jupiter.version}</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>org.junit.jupiter</groupId>
                <artifactId>junit-jupiter-params</artifactId>
                <version>${jupiter.version}</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>org.junit.jupiter</groupId>
                <artifactId>junit-jupiter-engine</artifactId>
                <version>${jupiter.version}</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>org.assertj</groupId>
                <artifactId>assertj-core</artifactId>
                <version>${assertj.version}</version>
                <scope>test</scope>
            </dependency>

            <dependency>
                <groupId>org.mockito</groupId>
                <artifactId>mockito-core</artifactId>
                <version>5.11.0</version>
                <scope>test</scope>
            </dependency>

            <!-- Maven plugin test tooling -->
            <dependency>
                <groupId>com.soebes.itf.jupiter.extension</groupId>
                <artifactId>itf-extension-maven</artifactId>
                <version>${itf.version}</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>com.soebes.itf.jupiter.extension</groupId>
                <artifactId>itf-assertj</artifactId>
                <version>${itf.version}</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>com.soebes.itf.jupiter.extension</groupId>
                <artifactId>itf-jupiter-extension</artifactId>
                <version>${itf.version}</version>
                <scope>test</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-release-plugin</artifactId>
                <version>${version.release.plugin}</version>
                <configuration>
                    <autoVersionSubmodules>true</autoVersionSubmodules>
                    <tagNameFormat>@{project.version}</tagNameFormat>
                    <preparationGoals>verify</preparationGoals>
                    <pushChanges>true</pushChanges>
                    <localCheckout>true</localCheckout>
                    <remoteTagging>true</remoteTagging>
                    <arguments>-DskipTests ${release.arguments}</arguments>
                </configuration>
            </plugin>
        </plugins>
    </build>
</project>
