<?xml version="1.0" encoding="UTF-8"?>
<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xmlns="http://maven.apache.org/POM/4.0.0"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">

    <parent>
        <groupId>com.mulesoft.connectors</groupId>
        <artifactId>mule4-connectors-parent</artifactId>
        <version>4.0.7</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>

    <groupId>org.mule.modules</groupId>
    <artifactId>mule-validation-module</artifactId>
    <packaging>mule-extension</packaging>
    <version>2.0.10</version>
    <name>Validations Module</name>
    <description>A Mule extension that provides functionality for performing validations</description>

    <properties>
        <commonsLangVersion>3.20.0</commonsLangVersion>
        <commonsValidatorVersion>1.10.1</commonsValidatorVersion>
        <guavaVersion>33.6.0-jre</guavaVersion>
        <mule-file-connector.version>1.5.6</mule-file-connector.version>
        <mule-vm-connector.version>2.0.2</mule-vm-connector.version>
        <muleSchedulerServiceVersion>1.12.0</muleSchedulerServiceVersion>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.mule.services</groupId>
            <artifactId>mule-service-scheduler</artifactId>
            <version>${muleSchedulerServiceVersion}</version>
            <classifier>mule-service</classifier>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>commons-validator</groupId>
            <artifactId>commons-validator</artifactId>
            <version>${commonsValidatorVersion}</version>
            <exclusions>
                <exclusion>
                    <groupId>commons-beanutils</groupId>
                    <artifactId>commons-beanutils</artifactId>
                </exclusion>
                <!--exported by runtime-->
                <exclusion>
                    <groupId>commons-logging</groupId>
                    <artifactId>commons-logging</artifactId>
                </exclusion>
                <!--excluded due to security vulnerabilities-->
                <exclusion>
                    <groupId>commons-collections</groupId>
                    <artifactId>commons-collections</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-lang3</artifactId>
            <version>${commonsLangVersion}</version>
        </dependency>
        <dependency>
            <groupId>com.google.guava</groupId>
            <artifactId>guava</artifactId>
            <version>${guavaVersion}</version>
            <exclusions>
                <!--exported by runtime, findbugs exports javax.annotations - see: https://github.com/google/guava/issues/2960-->
                <exclusion>
                    <groupId>com.google.code.findbugs</groupId>
                    <artifactId>jsr305</artifactId>
                </exclusion>
            </exclusions>
        </dependency>


        <!-- test dependencies -->
        <dependency>
            <groupId>org.mule.connectors</groupId>
            <artifactId>mule-file-connector</artifactId>
            <version>${mule-file-connector.version}</version>
            <classifier>mule-plugin</classifier>
            <scope>test</scope>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>com.mulesoft.munit</groupId>
                <artifactId>munit-extensions-maven-plugin</artifactId>
                <configuration>
                    <argLines>
                        <!-- The parent (mule4-connectors-parent) injects the JaCoCo coverage agent and
                             the aether syncContext arg through this same <argLines> element. A plugin
                             <configuration> replaces (does not merge) the inherited one, so these must
                             be repeated here or MUnit coverage (jacoco-munit.exec) is silently dropped. -->
                        <argLine>
                            -javaagent:${settings.localRepository}/org/jacoco/org.jacoco.agent/${jacoco.version}/org.jacoco.agent-${jacoco.version}-runtime.jar=destfile=${session.executionRootDirectory}/target/jacoco-munit.exec
                        </argLine>
                        <argLine>-Daether.syncContext.named.factory=noop</argLine>
                        <argLine>
                            -Dorg.mule.runtime.scheduler.cpuLight.threadPool.size=4
                        </argLine>
                    </argLines>
                </configuration>
                <dependencies>
                    <dependency>
                        <groupId>org.mule.connectors</groupId>
                        <artifactId>mule-vm-connector</artifactId>
                        <version>${mule-vm-connector.version}</version>
                        <classifier>mule-plugin</classifier>
                    </dependency>
                </dependencies>
            </plugin>
        </plugins>
    </build>
</project>
