<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/maven-v4_0_0.xsd">

    <modelVersion>4.0.0</modelVersion>

    <parent>
        <groupId>com.mulesoft.anypoint</groupId>
        <artifactId>api-gateway-parent</artifactId>
        <version>4.13.1</version>
        <relativePath/>
    </parent>

    <artifactId>api-gateway</artifactId>
    <version>4.13.1</version>
    <packaging>pom</packaging>
    <name>API Gateway</name>

    <modules>
        <module>unit</module>
        <module>core</module>
        <module>modules</module>
        <module>tests</module>
    </modules>

    <!-- Build -->
    <scm>
        <connection>scm:git:git://github.com/mulesoft/api-gateway.git</connection>
        <developerConnection>scm:git:git@github.com:mulesoft/api-gateway.git</developerConnection>
        <url>http://github.com/mulesoft/api-gateway</url>
    </scm>

    <properties>
        <tita.unit.api.version>2.10.3</tita.unit.api.version>
        <api.gateway.backoff.version>1.9.1</api.gateway.backoff.version>
        <commonsIoVersion>2.16.0</commonsIoVersion>
        <javaxWsRsApiVersion>2.0</javaxWsRsApiVersion>
        <mockitoVersion>4.11.0</mockitoVersion>
        <handlebarsVersion>4.5.2</handlebarsVersion>
        <commonsTextVersion>1.10.0</commonsTextVersion>
        <runtimeDiscoveryCoreVersion>3.1.1</runtimeDiscoveryCoreVersion>
        <snakeYamlVersion>2.6</snakeYamlVersion>
        <h2Version>2.2.224</h2Version>
        <jaxbVersion>2.3.0</jaxbVersion>
        <javaxActivationApiVersion>1.2.0</javaxActivationApiVersion>
        <scalaLibraryVersion>2.12.21</scalaLibraryVersion>
        <poiVersion>5.4.0</poiVersion>
        <maven.surefire.plugin.version>3.5.6</maven.surefire.plugin.version>
        <!-- When set to the argLine property, this adds the opens in the maven surefire plugin in api-gateway parent for the AbstractMuleTestCases to work properly -->
        <surefire.test.unit.open.args>-XX:+IgnoreUnrecognizedVMOptions --add-opens=java.base/java.lang=ALL-UNNAMED</surefire.test.unit.open.args>
    </properties>

    <repositories>
        <!--
            This repository definition is redundant as it's already present in the
            parent pom.

            However, when building the Enterprise modules with an empty local repository
            for the first time, the build *has* to know where to get its parent from and
            there's no way around this repo definition.
        -->
        <repository>
            <id>mule-ee-releases</id>
            <name>Internal Release Repo</name>
            <url>https://repository.mulesoft.org/nexus/content/repositories/ci-releases/</url>
            <snapshots>
                <enabled>false</enabled>
            </snapshots>
        </repository>
        <repository>
            <id>mule-ee-snapshots</id>
            <name>Internal Release Repo</name>
            <url>https://repository.mulesoft.org/nexus/content/repositories/ci-snapshots/</url>
            <releases>
                <enabled>false</enabled>
            </releases>
            <snapshots>
                <enabled>true</enabled>
                <updatePolicy>daily</updatePolicy>
                <checksumPolicy>warn</checksumPolicy>
            </snapshots>
        </repository>
    </repositories>

    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.mule.distributions</groupId>
                <artifactId>mule-services-all</artifactId>
                <version>${project.version}</version>
                <type>pom</type>
            </dependency>
            <dependency>
                <groupId>org.apache.httpcomponents</groupId>
                <artifactId>httpclient</artifactId>
                <version>${httpclientVersion}</version>
            </dependency>
            <dependency>
                <groupId>org.codehaus.jackson</groupId>
                <artifactId>jackson-core-asl</artifactId>
                <version>${jacksonVersion}</version>
            </dependency>
            <dependency>
                <groupId>org.codehaus.jackson</groupId>
                <artifactId>jackson-mapper-asl</artifactId>
                <version>${jacksonVersion}</version>
            </dependency>
            <dependency>
                <groupId>io.qameta.allure</groupId>
                <artifactId>allure-junit4</artifactId>
                <version>${allureJavaVersion}</version>
            </dependency>
            <!-- Apache Commons dependencies for mule-core utils migration -->
            <dependency>
                <groupId>commons-io</groupId>
                <artifactId>commons-io</artifactId>
                <version>${commonsIoVersion}</version>
            </dependency>
            <dependency>
                <groupId>com.mulesoft.anypoint</groupId>
                <artifactId>tita-http-unit</artifactId>
                <version>${tita.unit.api.version}</version>
            </dependency>
            <dependency>
                <groupId>com.mulesoft.anypoint</groupId>
                <artifactId>api-gateway-backoff</artifactId>
                <version>${api.gateway.backoff.version}</version>
            </dependency>
            <dependency>
                <groupId>com.mulesoft.anypoint</groupId>
                <artifactId>api-gateway-api</artifactId>
                <version>${apiGatewayApiVersion}</version>
            </dependency>
            <dependency>
                <groupId>com.mulesoft.anypoint</groupId>
                <artifactId>api-gateway-contract-service-api</artifactId>
                <version>${contractsServiceApiVersion}</version>
            </dependency>
            <dependency>
                <groupId>com.mulesoft.anypoint</groupId>
                <artifactId>api-gateway-test-utils</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>com.mulesoft.anypoint</groupId>
                <artifactId>tita-reflection-unit</artifactId>
                <version>${tita.unit.api.version}</version>
            </dependency>
            <dependency>
                <groupId>com.mulesoft.anypoint</groupId>
                <artifactId>tita-tests-unit</artifactId>
                <version>${tita.unit.api.version}</version>
            </dependency>
            <dependency>
                <groupId>com.mulesoft.anypoint</groupId>
                <artifactId>tita-unit</artifactId>
                <version>${apiGatewayTitaVersion}</version>
            </dependency>
            <dependency>
                <groupId>org.mapdb</groupId>
                <artifactId>mapdb</artifactId>
                <version>${mapdbVersion}</version>
            </dependency>
            <dependency>
                <groupId>com.mulesoft.anypoint</groupId>
                <artifactId>api-gateway-core</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>com.mulesoft.anypoint</groupId>
                <artifactId>api-gateway-tests-unit</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>javax.ws.rs</groupId>
                <artifactId>javax.ws.rs-api</artifactId>
                <version>${javaxWsRsApiVersion}</version>
            </dependency>
            <dependency>
                <groupId>com.mulesoft.anypoint</groupId>
                <artifactId>api-gateway-client</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.mockito</groupId>
                <artifactId>mockito-core</artifactId>
                <version>${mockitoVersion}</version>
            </dependency>
            <dependency>
                <groupId>org.mockito</groupId>
                <artifactId>mockito-inline</artifactId>
                <version>${mockitoVersion}</version>
            </dependency>
            <dependency>
                <groupId>com.mulesoft.anypoint</groupId>
                <artifactId>mule-module-autodiscovery</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>com.mulesoft.anypoint</groupId>
                <artifactId>mule-module-hdp</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>com.mulesoft.anypoint</groupId>
                <artifactId>mule-gatekeeper-policy-template</artifactId>
                <version>${project.version}</version>
                <classifier>mule-policy</classifier>
            </dependency>
            <dependency>
                <groupId>com.github.jknack</groupId>
                <artifactId>handlebars</artifactId>
                <version>${handlebarsVersion}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.httpcomponents</groupId>
                <artifactId>fluent-hc</artifactId>
                <version>${httpclientVersion}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.commons</groupId>
                <artifactId>commons-text</artifactId>
                <version>${commonsTextVersion}</version>
            </dependency>
            <dependency>
                <groupId>com.mulesoft.anypoint</groupId>
                <artifactId>api-gateway-backoff</artifactId>
                <version>${api.gateway.backoff.version}</version>
                <type>test-jar</type>
            </dependency>
            <dependency>
                <groupId>com.mulesoft.anypoint</groupId>
                <artifactId>api-gateway-core</artifactId>
                <version>${project.version}</version>
                <type>test-jar</type>
            </dependency>
            <dependency>
                <groupId>com.mulesoft.anypoint</groupId>
                <artifactId>mule-module-policies</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>com.mulesoft.anypoint</groupId>
                <artifactId>mule-module-metrics-collector</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>com.mulesoft.anypoint</groupId>
                <artifactId>mule-module-api-deployment</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>com.mulesoft.anypoint</groupId>
                <artifactId>mule-module-analytics-gw</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>com.mulesoft.anypoint</groupId>
                <artifactId>mule-analytics-policy-template</artifactId>
                <version>${project.version}</version>
                <classifier>mule-policy</classifier>
            </dependency>
            <dependency>
                <groupId>com.mulesoft.anypoint</groupId>
                <artifactId>api-gateway-events-collector-service-api</artifactId>
                <version>${apiGatewayEventsCollectorsApi}</version>
            </dependency>
            <dependency>
                <groupId>com.mulesoft.anypoint</groupId>
                <artifactId>tita-core-api</artifactId>
                <version>${apiGatewayTitaVersion}</version>
            </dependency>
            <dependency>
                <groupId>com.mulesoft.anypoint</groupId>
                <artifactId>tita-core</artifactId>
                <version>${apiGatewayTitaVersion}</version>
            </dependency>
            <dependency>
                <groupId>com.mulesoft.anypoint</groupId>
                <artifactId>runtime-discovery-core</artifactId>
                <version>${runtimeDiscoveryCoreVersion}</version>
            </dependency>
            <dependency>
                <groupId>com.mulesoft.anypoint</groupId>
                <artifactId>api-gateway-contract-service</artifactId>
                <version>${contractsServiceVersion}</version>
                <classifier>mule-service</classifier>
            </dependency>
            <dependency>
                <groupId>com.mulesoft.anypoint</groupId>
                <artifactId>api-gateway-events-collector-service</artifactId>
                <version>${apiGatewayEventsCollectors}</version>
                <classifier>mule-service</classifier>
            </dependency>
            <dependency>
                <groupId>com.mulesoft.services</groupId>
                <artifactId>mule-service-weave-ee</artifactId>
                <version>${weaveVersion}</version>
                <classifier>mule-service</classifier>
            </dependency>
            <dependency>
                <groupId>org.yaml</groupId>
                <artifactId>snakeyaml</artifactId>
                <version>${snakeYamlVersion}</version>
            </dependency>
            <dependency>
                <groupId>com.h2database</groupId>
                <artifactId>h2</artifactId>
                <version>${h2Version}</version>
            </dependency>
            <dependency>
                <groupId>javax.xml.bind</groupId>
                <artifactId>jaxb-api</artifactId>
                <version>${jaxbVersion}</version>
            </dependency>
            <dependency>
                <groupId>javax.activation</groupId>
                <artifactId>javax.activation-api</artifactId>
                <version>${javaxActivationApiVersion}</version>
            </dependency>
            <dependency>
                <groupId>org.scala-lang</groupId>
                <artifactId>scala-library</artifactId>
                <version>${scalaLibraryVersion}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.poi</groupId>
                <artifactId>poi</artifactId>
                <version>${poiVersion}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.poi</groupId>
                <artifactId>poi-ooxml</artifactId>
                <version>${poiVersion}</version>
            </dependency>
            <dependency>
                <groupId>com.mulesoft.anypoint</groupId>
                <artifactId>api-gateway-tests-infrastructure</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>com.mulesoft.anypoint</groupId>
                <artifactId>s3-service-provider-gw</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>com.mulesoft.anypoint.tita</groupId>
                <artifactId>test-dependencies</artifactId>
                <version>${apiGatewayTitaArtifactsVersion}</version>
            </dependency>
        </dependencies>
    </dependencyManagement>
</project>
