<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>
    <artifactId>blaze</artifactId>
    <packaging>pom</packaging>
    <name>${project.artifactId}</name>
    <version>2.0.0</version>

    <parent>
        <groupId>com.fizzed</groupId>
        <artifactId>maven-parent</artifactId>
        <version>3.2.0</version>
    </parent>

    <properties>
        <java.version>1.8</java.version>
        <!--<netbeans.compile.on.save>none</netbeans.compile.on.save>-->
        <!-- workaround travis ci maven version requirement -->
        <maven.enforce.version>3.2.5</maven.enforce.version>
        <jsch.agentproxy.version>0.0.9</jsch.agentproxy.version>
        <slf4j.version>2.0.17</slf4j.version>
        <crux.version>1.0.48</crux.version>
    </properties>

    <scm>
        <url>https://github.com/fizzed/blaze</url>
        <connection>scm:git:git@github.com:fizzed/blaze.git</connection>
        <tag>v2.0.0</tag>
    </scm>

    <modules>
        <module>blaze-core</module>
        <module>blaze-ivy</module>
        <module>blaze-nashorn</module>
        <module>blaze-groovy</module>
        <module>blaze-kotlin</module>
        <module>blaze-http</module>
        <module>blaze-archive</module>
        <module>blaze-postoffice</module>
        <module>blaze-ssh</module>
        <module>blaze-docker</module>
        <module>blaze-haproxy</module>
        <module>blaze-vagrant</module>
        <module>blaze-mysql</module>
        <module>blaze-lite</module>
    </modules>

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-jar-plugin</artifactId>
                <version>3.4.1</version>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <version>3.1.2</version>
                <configuration>
                    <!-- activate the use of TCP to transmit events to the plugin -->
                    <!-- fixes some forking issues on windows and mac of std in/out corrupted errors -->
                    <forkNode implementation="org.apache.maven.plugin.surefire.extensions.SurefireForkNodeFactory" />
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-failsafe-plugin</artifactId>
                <version>3.2.1</version>
            </plugin>
        </plugins>
    </build>

    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>com.fizzed</groupId>
                <artifactId>blaze-core</artifactId>
                <version>${project.version}</version>
            </dependency>

            <dependency>
                <groupId>com.fizzed</groupId>
                <artifactId>blaze-ivy</artifactId>
                <version>${project.version}</version>
            </dependency>

            <dependency>
                <groupId>com.fizzed</groupId>
                <artifactId>blaze-docker</artifactId>
                <version>${project.version}</version>
            </dependency>

            <dependency>
                <groupId>com.fizzed</groupId>
                <artifactId>blaze-ssh</artifactId>
                <version>${project.version}</version>
            </dependency>

            <dependency>
                <groupId>com.fizzed</groupId>
                <artifactId>blaze-vagrant</artifactId>
                <version>${project.version}</version>
            </dependency>

            <!-- logging -->
            <dependency>
                <groupId>org.slf4j</groupId>
                <artifactId>slf4j-api</artifactId>
                <version>${slf4j.version}</version>
            </dependency>

            <dependency>
                <groupId>org.slf4j</groupId>
                <artifactId>jcl-over-slf4j</artifactId>
                <version>${slf4j.version}</version>
            </dependency>

            <!--<dependency>
                <groupId>org.slf4j</groupId>
                <artifactId>slf4j-simple</artifactId>
                <version>${slf4j.version}</version>
            </dependency>-->

            <!-- configuration -->
            <dependency>
                <groupId>com.typesafe</groupId>
                <artifactId>config</artifactId>
                <version>1.4.3</version>
            </dependency>

            <!-- process handling -->
            <dependency>
                <groupId>org.zeroturnaround</groupId>
                <artifactId>zt-exec</artifactId>
                <version>1.12</version>
                <exclusions>
                    <exclusion>
                        <groupId>commons-io</groupId>
                        <artifactId>commons-io</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>

            <dependency>
                <groupId>commons-io</groupId>
                <artifactId>commons-io</artifactId>
                <version>2.20.0</version>
            </dependency>

            <!-- dependency management -->
            <dependency>
                <groupId>org.apache.ivy</groupId>
                <artifactId>ivy</artifactId>
                <version>2.5.3</version>
            </dependency>

            <!-- blaze-ssh dependencies -->
            <!-- jsch is no longer maintained, this is a compat version -->
            <dependency>
                <groupId>com.github.mwiede</groupId>
                <artifactId>jsch</artifactId>
                <version>2.27.4</version>
            </dependency>

            <dependency>
                <groupId>com.jcraft</groupId>
                <artifactId>jsch.agentproxy.sshagent</artifactId>
                <version>${jsch.agentproxy.version}</version>
                <exclusions>
                    <exclusion>
                        <groupId>com.jcraft</groupId>
                        <artifactId>jsch</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>

            <dependency>
                <groupId>com.jcraft</groupId>
                <artifactId>jsch.agentproxy.jsch</artifactId>
                <version>${jsch.agentproxy.version}</version>
                <exclusions>
                    <exclusion>
                        <groupId>com.jcraft</groupId>
                        <artifactId>jsch</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>

            <dependency>
                <groupId>com.jcraft</groupId>
                <artifactId>jsch.agentproxy.usocket-jna</artifactId>
                <version>${jsch.agentproxy.version}</version>
                <exclusions>
                    <exclusion>
                        <groupId>com.jcraft</groupId>
                        <artifactId>jsch</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>

            <!-- use better JNA version for improved platform support as opposed to what jsch-agentproxy is pulling in -->
            <dependency>
                <groupId>net.java.dev.jna</groupId>
                <artifactId>jna</artifactId>
                <version>5.13.0</version>
            </dependency>
            <dependency>
                <groupId>net.java.dev.jna</groupId>
                <artifactId>jna-platform</artifactId>
                <version>5.13.0</version>
            </dependency>

            <!-- blaze-vagrant dependencies -->
            <dependency>
                <groupId>com.fizzed</groupId>
                <artifactId>crux-vagrant</artifactId>
                <version>${crux.version}</version>
            </dependency>

            <!-- blaze-kotlin dependencies -->
            <dependency>
                <groupId>org.jetbrains.kotlin</groupId>
                <artifactId>kotlin-compiler-embeddable</artifactId>
                <version>2.2.20</version>
            </dependency>

            <dependency>
                <groupId>org.jetbrains.kotlin</groupId>
                <artifactId>kotlin-stdlib</artifactId>
                <version>2.2.20</version>
            </dependency>

            <!-- blaze-groovy dependencies -->
            <dependency>
                <groupId>org.apache.groovy</groupId>
                <artifactId>groovy</artifactId>
                <version>4.0.29</version>
                <!--<classifier>indy</classifier>-->
            </dependency>

            <!-- testing (hamcrest BEFORE junit important) -->

            <dependency>
                <groupId>org.hamcrest</groupId>
                <artifactId>hamcrest</artifactId>
                <version>2.2</version>
            </dependency>

            <dependency>
                <groupId>org.junit.jupiter</groupId>
                <artifactId>junit-jupiter</artifactId>
                <version>5.14.0</version>
            </dependency>

            <dependency>
                <groupId>org.mockito</groupId>
                <artifactId>mockito-core</artifactId>
                <version>4.11.0</version>
            </dependency>

            <dependency>
                <groupId>org.apache.sshd</groupId>
                <artifactId>sshd-core</artifactId>
                <version>3.0.0-M2</version>
            </dependency>

            <!-- we have our own internal slf4j logger we leverage
            <dependency>
                <groupId>ch.qos.logback</groupId>
                <artifactId>logback-classic</artifactId>
                <version>1.3.12</version>
            </dependency>-->

            <!-- to help with testing -->
            <dependency>
                <groupId>com.fizzed</groupId>
                <artifactId>crux-util</artifactId>
                <version>${crux.version}</version>
            </dependency>

            <dependency>
                <groupId>com.fizzed</groupId>
                <artifactId>jne</artifactId>
                <version>4.6.0</version>
            </dependency>

        </dependencies>
    </dependencyManagement>

</project>
