<?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>36</version>
    </parent>
    <groupId>org.wildfly.glow</groupId>
    <artifactId>wildfly-glow-parent</artifactId>
    <version>1.2.0.Final</version>
    <packaging>pom</packaging>
    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <maven.compiler.source>11</maven.compiler.source>
        <maven.compiler.target>11</maven.compiler.target>
        <wildfly.glow.galleon.feature-packs.url>https://raw.githubusercontent.com/wildfly/wildfly-galleon-feature-packs/release/</wildfly.glow.galleon.feature-packs.url>

        <!-- versions -->
        <version.info.picocli>4.7.5</version.info.picocli>
        <version.org.ow2.asm>9.7.1</version.org.ow2.asm>
        <version.biz.aQute.bnd>6.4.0</version.biz.aQute.bnd>
        <version.org.wildfly.plugins.wildfly-plugin-tools>1.2.0.Final</version.org.wildfly.plugins.wildfly-plugin-tools>
        <version.org.wildfly.common.wildfly-common>1.7.0.Final</version.org.wildfly.common.wildfly-common>
        <version.com.puppycrawl.tools.checkstyle>8.18</version.com.puppycrawl.tools.checkstyle>
        <version.com.fasterxml.jackson.core>2.17.2</version.com.fasterxml.jackson.core>
        <version.io.smallrye.jandex>3.1.6</version.io.smallrye.jandex>
        <version.org.apache.maven>3.8.6</version.org.apache.maven>
        <version.org.apache.maven.checkstyle>3.0.0</version.org.apache.maven.checkstyle>
        <version.org.apache.maven.resolver>1.6.3</version.org.apache.maven.resolver>
        <version.org.jboss.galleon>6.0.4.Final</version.org.jboss.galleon>
        <version.org.wildfly.channel>1.2.1.Final</version.org.wildfly.channel>
        <version.org.jboss.logging.slf4j-jboss-logging>1.2.1.Final</version.org.jboss.logging.slf4j-jboss-logging>
        <version.org.yaml.snakeyaml>2.2</version.org.yaml.snakeyaml>
        <version.org.apache.commons>3.12.0</version.org.apache.commons>
        <version.org.apache.maven.maven-core>3.6.2</version.org.apache.maven.maven-core>
        <version.org.apache.maven.core>3.8.4</version.org.apache.maven.core>
        <version.org.apache.maven.plugin-tools>3.6.4</version.org.apache.maven.plugin-tools>
        <version.org.apache.maven.plugin-plugin>3.6.4</version.org.apache.maven.plugin-plugin>
        <version.org.apache.maven.shared>3.2.1</version.org.apache.maven.shared>
        <version.org.apache.surefire.plugin>2.22.2</version.org.apache.surefire.plugin>
        <version.io.fabric8>6.10.0</version.io.fabric8>
        <!-- arquillian plugin -->
        <version.org.jboss.arquillian.core>1.9.1.Final</version.org.jboss.arquillian.core>
        <version.org.jboss.shrinkwrap.descriptors>2.0.0</version.org.jboss.shrinkwrap.descriptors>
        <version.org.jboss.shrinkwrap.resolvers>2.2.7</version.org.jboss.shrinkwrap.resolvers>
        <version.org.jboss.shrinkwrap.shrinkwrap>1.2.6</version.org.jboss.shrinkwrap.shrinkwrap>

        <version.org.asciidoctor>2.0.0</version.org.asciidoctor>
        <version.adoc-maven-plugin-descriptor>1.0.0.Alpha3</version.adoc-maven-plugin-descriptor>
        <version.org.apache.maven.plugins.assemble>3.1.0</version.org.apache.maven.plugins.assemble>
        <!-- Override this property in each module for the proper checkstyle.xml location -->
        <location.checkstyle.xml>config/checkstyle.xml</location.checkstyle.xml>

        <galleon.fork.embedded>true</galleon.fork.embedded>

        <!-- Test dependency versions -->
        <version.org.wildfly.galleon-plugins>7.3.1.Final</version.org.wildfly.galleon-plugins>
        <version.jakarta.annotation.jakarta-annotation-api>2.1.1</version.jakarta.annotation.jakarta-annotation-api>
        <version.jakarta.ejb.jakarta-ejb-api>4.0.1</version.jakarta.ejb.jakarta-ejb-api>
        <version.jakarta.enterprise.cdi-api>4.0.1</version.jakarta.enterprise.cdi-api>
        <version.jakarta.servlet.jakarta-servlet-api>6.0.0</version.jakarta.servlet.jakarta-servlet-api>
        <version.jakarta.transaction.jakarta-transaction-api>2.0.1</version.jakarta.transaction.jakarta-transaction-api>
        <version.junit>4.13.1</version.junit>
        <version.org.eclipse.microprofile.microprofile-config-api>3.0.2</version.org.eclipse.microprofile.microprofile-config-api>
        <version.org.eclipse.microprofile.reactive.microprofile-reactive-messaging-api>3.0</version.org.eclipse.microprofile.reactive.microprofile-reactive-messaging-api>
        <version.org.jboss.logmanager.jboss-logmanager>2.1.19.Final</version.org.jboss.logmanager.jboss-logmanager>



        <!-- Surefire arguments -->
        <testLogToFile>true</testLogToFile>
        <maven.test.redirectTestOutputToFile>${testLogToFile}</maven.test.redirectTestOutputToFile>

    </properties>
    <build>
        <pluginManagement>
            <plugins>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-plugin-plugin</artifactId>
                    <version>${version.org.apache.maven.plugin-plugin}</version>
                </plugin>    
                <plugin>
                    <groupId>com.atlassian.plugin</groupId>
                    <artifactId>atlassian-spring-scanner-maven-plugin</artifactId>
                    <version>${version.atlassian.spring.scanner}</version>
                    <executions>
                        <execution>
                            <goals>
                                <goal>atlassian-spring-scanner</goal>
                            </goals>
                            <phase>process-classes</phase>
                        </execution>
                    </executions>
                    <configuration>
                        <scannedDependencies>
                            <dependency>
                                <groupId>com.atlassian.plugin</groupId>
                                <artifactId>atlassian-spring-scanner-external-jar</artifactId>
                            </dependency>
                        </scannedDependencies>
                        <verbose>false</verbose>
                    </configuration>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-checkstyle-plugin</artifactId>
                    <version>${version.org.apache.maven.checkstyle}</version>
                    <dependencies>
                        <dependency>
                            <groupId>com.puppycrawl.tools</groupId>
                            <artifactId>checkstyle</artifactId>
                            <version>${version.com.puppycrawl.tools.checkstyle}</version>
                            <exclusions>
                                <exclusion>
                                    <groupId>com.sun</groupId>
                                    <artifactId>tools</artifactId>
                                </exclusion>
                            </exclusions>
                        </dependency>
                    </dependencies>
                    <executions>
                        <execution>
                            <id>check-style</id>
                            <phase>compile</phase>
                            <goals>
                                <goal>checkstyle</goal>
                            </goals>
                            <configuration>
                                <configLocation>${location.checkstyle.xml}</configLocation>
                                <consoleOutput>true</consoleOutput>
                                <failsOnError>true</failsOnError>
                                <includeTestSourceDirectory>true</includeTestSourceDirectory>
                                <useFile></useFile>
                                <excludes>**/*$logger.java,**/*$bundle.java,**/HelpMojo.java</excludes>
                            </configuration>
                        </execution>
                    </executions>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-surefire-plugin</artifactId>
                    <version>${version.org.apache.surefire.plugin}</version>
                    <configuration>
                        <redirectTestOutputToFile>${maven.test.redirectTestOutputToFile}</redirectTestOutputToFile>
                        <enableAssertions>true</enableAssertions>
                        <systemPropertyVariables>
                            <java.util.logging.manager>org.jboss.logmanager.LogManager</java.util.logging.manager>
                            <jdk.xml.enableTemplatesImplDeserialization>true</jdk.xml.enableTemplatesImplDeserialization>
                        </systemPropertyVariables>
                    </configuration>
                </plugin>
                <plugin>
                    <groupId>org.wildfly.galleon-plugins</groupId>
                    <artifactId>wildfly-galleon-maven-plugin</artifactId>
                    <version>${version.org.wildfly.galleon-plugins}</version>
                </plugin>
            </plugins>
        </pluginManagement>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-checkstyle-plugin</artifactId>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-enforcer-plugin</artifactId>
                <executions>
                    <execution>
                        <id>enforce-java</id>
                        <goals>
                            <goal>enforce</goal>
                        </goals>
                        <configuration>
                            <rules>
                                <requireJavaVersion>
                                    <version>11</version>
                                </requireJavaVersion>
                            </rules>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>
    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>${project.groupId}</groupId>
                <artifactId>wildfly-glow-maven-resolver</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>${project.groupId}</groupId>
                <artifactId>wildfly-glow-core</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>${project.groupId}</groupId>
                <artifactId>wildfly-glow</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>${project.groupId}</groupId>
                <artifactId>wildfly-glow-cli-support</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>${project.groupId}</groupId>
                <artifactId>wildfly-glow-test-galleon-pack</artifactId>
                <type>zip</type>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>${project.groupId}</groupId>
                <artifactId>wildfly-glow-test-feature-pack-classes</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>${project.groupId}</groupId>
                <artifactId>wildfly-glow-arquillian-plugin-scanner</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>${project.groupId}</groupId>
                <artifactId>wildfly-glow-openshift-deployment-api</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>${project.groupId}</groupId>
                <artifactId>wildfly-glow-openshift-deployment-postgresql</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
              <groupId>${project.groupId}</groupId>
              <artifactId>wildfly-glow-openshift-deployment-mysql</artifactId>
              <version>${project.version}</version>
            </dependency>
            <dependency>
              <groupId>${project.groupId}</groupId>
              <artifactId>wildfly-glow-openshift-deployment-mariadb</artifactId>
              <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>${project.groupId}</groupId>
                <artifactId>wildfly-glow-openshift-deployment-amq</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>${project.groupId}</groupId>
                <artifactId>wildfly-glow-openshift-deployment-keycloak</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>info.picocli</groupId>
                <artifactId>picocli</artifactId>
                <version>${version.info.picocli}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.commons</groupId>
                <artifactId>commons-lang3</artifactId>
                <version>${version.org.apache.commons}</version>
            </dependency>
            <dependency>
                <groupId>com.fasterxml.jackson.core</groupId>
                <artifactId>jackson-databind</artifactId>
                <version>${version.com.fasterxml.jackson.core}</version>
            </dependency>
            <dependency>
                <groupId>biz.aQute.bnd</groupId>
                <artifactId>biz.aQute.bnd.transform</artifactId>
                <version>${version.biz.aQute.bnd}</version>
            </dependency>
            <dependency>
                <groupId>org.ow2.asm</groupId>
                <artifactId>asm</artifactId>
                <version>${version.org.ow2.asm}</version>
            </dependency>
            <dependency>
                <groupId>org.ow2.asm</groupId>
                <artifactId>asm-util</artifactId>
                <version>${version.org.ow2.asm}</version>
            </dependency>
            <dependency>
                <groupId>org.wildfly.plugins</groupId>
                <artifactId>wildfly-plugin-tools</artifactId>
                <version>${version.org.wildfly.plugins.wildfly-plugin-tools}</version>
                <!-- Excluding all. WildFly core dependencies can conflict when scanning with the Arquillian Maven plugin -->
                <exclusions>
                    <exclusion>
                        <groupId>*</groupId>
                        <artifactId>*</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <!-- A wildfly-plugin-tools dependency required to build bootable jar. -->
            <dependency>
                <groupId>org.wildfly.common</groupId>
                <artifactId>wildfly-common</artifactId>
                <version>${version.org.wildfly.common.wildfly-common}</version>
            </dependency>
            <dependency>
                <groupId>org.wildfly.galleon-plugins</groupId>
                <artifactId>wildfly-galleon-plugins</artifactId>
                <version>${version.org.wildfly.galleon-plugins}</version>
                <exclusions>
                    <exclusion>
                        <groupId>org.jboss.galleon</groupId>
                        <artifactId>*</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.yaml</groupId>
                <artifactId>snakeyaml</artifactId>
                <version>${version.org.yaml.snakeyaml}</version>
            </dependency>
            <dependency>
                <groupId>io.smallrye</groupId>
                <artifactId>jandex</artifactId>
                <version>${version.io.smallrye.jandex}</version>
            </dependency>
            <dependency>
                <groupId>org.jboss.galleon</groupId>
                <artifactId>galleon-api</artifactId>
                <version>${version.org.jboss.galleon}</version>
            </dependency>
            <dependency>
                <groupId>org.jboss.galleon</groupId>
                <artifactId>galleon-maven-plugin</artifactId>
                <version>${version.org.jboss.galleon}</version>
                <exclusions>
                    <exclusion>
                        <groupId>org.apache.maven.shared</groupId>
                        <artifactId>maven-artifact-transfer</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.apache.maven</groupId>
                        <artifactId>maven-artifact</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.eclipse.aether</groupId>
                        <artifactId>aether-api</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.eclipse.aether</groupId>
                        <artifactId>aether-util</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.apache.maven.resolver</groupId>
                <artifactId>maven-resolver-api</artifactId>
                <version>${version.org.apache.maven.resolver}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.maven.resolver</groupId>
                <artifactId>maven-resolver-impl</artifactId>
                <version>${version.org.apache.maven.resolver}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.maven.resolver</groupId>
                <artifactId>maven-resolver-connector-basic</artifactId>
                <version>${version.org.apache.maven.resolver}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.maven.resolver</groupId>
                <artifactId>maven-resolver-transport-file</artifactId>
                <version>${version.org.apache.maven.resolver}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.maven.resolver</groupId>
                <artifactId>maven-resolver-transport-http</artifactId>
                <version>${version.org.apache.maven.resolver}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.maven</groupId>
                <artifactId>maven-resolver-provider</artifactId>
                <version>${version.org.apache.maven}</version>
                <exclusions>
                    <exclusion>
                        <groupId>org.apache.maven.resolver</groupId>
                        <artifactId>*</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.apache.maven.plugin-tools</groupId>
                <artifactId>maven-plugin-annotations</artifactId>
                <version>${version.org.apache.maven.plugin-tools}</version>
                <scope>provided</scope>
            </dependency>
            <dependency>
                <groupId>org.apache.maven</groupId>
                <artifactId>maven-plugin-api</artifactId>
                <scope>provided</scope>
                <version>${version.org.apache.maven.core}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.maven</groupId>
                <artifactId>maven-core</artifactId>
                <version>${version.org.apache.maven.maven-core}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.maven.shared</groupId>
                <artifactId>maven-shared-utils</artifactId>
                <version>${version.org.apache.maven.shared}</version>
            </dependency>
            <dependency>
                <groupId>org.jboss.arquillian.container</groupId>
                <artifactId>arquillian-container-test-spi</artifactId>
                <version>${version.org.jboss.arquillian.core}</version>
            </dependency>
            <dependency>
                <groupId>org.jboss.logmanager</groupId>
                <artifactId>jboss-logmanager</artifactId>
                <version>${version.org.jboss.logmanager.jboss-logmanager}</version>
            </dependency>
            <dependency>
                <groupId>org.jboss.shrinkwrap</groupId>
                <artifactId>shrinkwrap-api</artifactId>
                <version>${version.org.jboss.shrinkwrap.shrinkwrap}</version>
            </dependency>
            <dependency>
                <groupId>org.jboss.shrinkwrap</groupId>
                <artifactId>shrinkwrap-impl-base</artifactId>
                <version>${version.org.jboss.shrinkwrap.shrinkwrap}</version>
            </dependency>
            <!-- to fix slf4j warning when provisioning -->
            <dependency>
                <groupId>org.jboss.slf4j</groupId>
                <artifactId>slf4j-jboss-logging</artifactId>
                <version>${version.org.jboss.logging.slf4j-jboss-logging}</version>
            </dependency>
            <dependency>
                <groupId>org.wildfly.channel</groupId>
                <artifactId>channel-core</artifactId>
                <version>${version.org.wildfly.channel}</version>
            </dependency>
            <dependency>
                <groupId>org.wildfly.channel</groupId>
                <artifactId>maven-resolver</artifactId>
                <version>${version.org.wildfly.channel}</version>
            </dependency>
            <dependency>
                <groupId>io.fabric8</groupId>
                <artifactId>openshift-client</artifactId>
                <version>${version.io.fabric8}</version>
            </dependency>
            <!-- Test dependencies -->
            <dependency>
                <groupId>jakarta.annotation</groupId>
                <artifactId>jakarta.annotation-api</artifactId>
                <version>${version.jakarta.annotation.jakarta-annotation-api}</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>jakarta.ejb</groupId>
                <artifactId>jakarta.ejb-api</artifactId>
                <version>${version.jakarta.ejb.jakarta-ejb-api}</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>jakarta.enterprise</groupId>
                <artifactId>jakarta.enterprise.cdi-api</artifactId>
                <version>${version.jakarta.enterprise.cdi-api}</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>jakarta.servlet</groupId>
                <artifactId>jakarta.servlet-api</artifactId>
                <version>${version.jakarta.servlet.jakarta-servlet-api}</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>jakarta.transaction</groupId>
                <artifactId>jakarta.transaction-api</artifactId>
                <version>${version.jakarta.transaction.jakarta-transaction-api}</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>org.eclipse.microprofile.config</groupId>
                <artifactId>microprofile-config-api</artifactId>
                <version>${version.org.eclipse.microprofile.microprofile-config-api}</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>org.eclipse.microprofile.reactive.messaging</groupId>
                <artifactId>microprofile-reactive-messaging-api</artifactId>
                <version>${version.org.eclipse.microprofile.reactive.microprofile-reactive-messaging-api}</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>junit</groupId>
                <artifactId>junit</artifactId>
                <version>${version.junit}</version>
                <scope>test</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>
    <!-- When building the test feature-pack, there is an offline resolution of the wildfly-galleon-plugins 
        that has already been downloaded when resolving the maven plugin using jboss-public-repository (in jboss-parent pom). So we need to set
        te same repository for the dependencies resolution otherwise it is not found -->
    <repositories>
      <repository>
        <id>jboss-public-repository</id>
        <name>JBoss Public Maven Repository</name>
        <url>https://repository.jboss.org/nexus/content/groups/public/</url>
        <layout>default</layout>
        <releases>
          <enabled>true</enabled>
        </releases>
        <snapshots>
          <enabled>false</enabled>
        </snapshots>
      </repository>
    </repositories>
    <modules>
        <module>arquillian-plugin</module>
        <module>arquillian-plugin-scanner</module>
        <module>core</module>
        <module>cli</module>
        <module>cli-support</module>
        <module>docs</module>
        <module>doc-plugin</module>
        <module>openshift-deployment</module>
        <module>maven-resolver</module>
        <module>tests</module>
    </modules>
</project>