<?xml version="1.0" encoding="UTF-8" ?>
<!--

    Copyright © 2015 The Gravitee team (http://gravitee.io)

    Licensed under the Apache License, Version 2.0 (the "License");
    you may not use this file except in compliance with the License.
    You may obtain a copy of the License at

        http://www.apache.org/licenses/LICENSE-2.0

    Unless required by applicable law or agreed to in writing, software
    distributed under the License is distributed on an "AS IS" BASIS,
    WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    See the License for the specific language governing permissions and
    limitations under the License.

-->
<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>io.gravitee.apim.rest.api.standalone</groupId>
        <artifactId>gravitee-apim-rest-api-standalone</artifactId>
        <version>4.9.28</version>
    </parent>

    <artifactId>gravitee-apim-rest-api-standalone-container</artifactId>
    <name>Gravitee.io APIM - Management API - Standalone - Container</name>

    <dependencies>
        <!-- Gravitee.io -->
        <dependency>
            <groupId>io.gravitee.node</groupId>
            <artifactId>gravitee-node-api</artifactId>
        </dependency>

        <dependency>
            <groupId>io.gravitee.node</groupId>
            <artifactId>gravitee-node-container</artifactId>
        </dependency>

        <dependency>
            <groupId>io.gravitee.node</groupId>
            <artifactId>gravitee-node-license</artifactId>
        </dependency>

        <dependency>
            <groupId>io.gravitee.node</groupId>
            <artifactId>gravitee-node-vertx</artifactId>
        </dependency>

        <dependency>
            <groupId>io.gravitee.apim.common</groupId>
            <artifactId>gravitee-apim-common</artifactId>
            <version>${project.version}</version>
        </dependency>

        <dependency>
            <groupId>io.gravitee.apim.rest.api</groupId>
            <artifactId>gravitee-apim-rest-api-integration-controller</artifactId>
            <version>${project.version}</version>
        </dependency>

        <dependency>
            <groupId>io.gravitee.apim.rest.api.management</groupId>
            <artifactId>gravitee-apim-rest-api-management-rest</artifactId>
            <version>${project.version}</version>
        </dependency>

        <dependency>
            <groupId>io.gravitee.apim.rest.api.management.v2</groupId>
            <artifactId>gravitee-apim-rest-api-management-v2-rest</artifactId>
            <version>${project.version}</version>
        </dependency>

        <dependency>
            <groupId>io.gravitee.apim.rest.api.automation</groupId>
            <artifactId>gravitee-apim-rest-api-automation-rest</artifactId>
            <version>${project.version}</version>
        </dependency>

        <dependency>
            <groupId>io.gravitee.apim.rest.api.automation</groupId>
            <artifactId>gravitee-apim-rest-api-automation-security</artifactId>
            <version>${project.version}</version>
        </dependency>

        <dependency>
            <groupId>io.gravitee.apim.rest.api.portal</groupId>
            <artifactId>gravitee-apim-rest-api-portal-rest</artifactId>
            <version>${project.version}</version>
        </dependency>

        <dependency>
            <groupId>io.gravitee.apim.rest.api</groupId>
            <artifactId>gravitee-apim-rest-api-repository</artifactId>
            <version>${project.version}</version>
        </dependency>
        <dependency>
            <groupId>io.gravitee.resource</groupId>
            <artifactId>gravitee-resource-oauth2-provider-api</artifactId>
        </dependency>
        <dependency>
            <groupId>io.gravitee.resource</groupId>
            <artifactId>gravitee-resource-cache-provider-api</artifactId>
        </dependency>
        <dependency>
            <groupId>io.gravitee.resource</groupId>
            <artifactId>gravitee-resource-content-provider-api</artifactId>
        </dependency>
        <dependency>
            <groupId>io.gravitee.resource</groupId>
            <artifactId>gravitee-resource-auth-provider</artifactId>
        </dependency>
        <dependency>
            <groupId>io.gravitee.resource</groupId>
            <artifactId>gravitee-resource-storage-api</artifactId>
        </dependency>

        <!-- To override Spring commons-logging -->
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>jcl-over-slf4j</artifactId>
        </dependency>

        <!-- To bridge log4j-api to slf4j -->
        <dependency>
            <groupId>org.apache.logging.log4j</groupId>
            <artifactId>log4j-to-slf4j</artifactId>
        </dependency>

        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-databind</artifactId>
            <scope>compile</scope>
        </dependency>

        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-annotations</artifactId>
            <scope>compile</scope>
        </dependency>

        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-core</artifactId>
            <scope>compile</scope>
        </dependency>

        <!-- Vert.x -->
        <dependency>
            <groupId>io.vertx</groupId>
            <artifactId>vertx-core</artifactId>
        </dependency>

        <dependency>
            <groupId>io.vertx</groupId>
            <artifactId>vertx-web-client</artifactId>
        </dependency>

        <dependency>
            <groupId>io.vertx</groupId>
            <artifactId>vertx-rx-java3</artifactId>
        </dependency>

        <!-- As vertx-rx-java3 makes use of vertx-auth-jwt, it must be included to avoid classpath issue when auth-jwt is used -->
        <dependency>
            <groupId>io.vertx</groupId>
            <artifactId>vertx-auth-jwt</artifactId>
        </dependency>

        <!-- Jetty -->
        <dependency>
            <groupId>org.eclipse.jetty.ee10</groupId>
            <artifactId>jetty-ee10-webapp</artifactId>
        </dependency>
        <dependency>
            <groupId>org.eclipse.jetty.ee10</groupId>
            <artifactId>jetty-ee10-servlets</artifactId>
        </dependency>
        <dependency>
            <groupId>org.eclipse.jetty</groupId>
            <artifactId>jetty-jmx</artifactId>
        </dependency>

        <!-- Logging -->
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
            <scope>compile</scope>
        </dependency>
        <dependency>
            <groupId>ch.qos.logback</groupId>
            <artifactId>logback-classic</artifactId>
            <scope>compile</scope>
        </dependency>
        <dependency>
            <groupId>ch.qos.logback</groupId>
            <artifactId>logback-core</artifactId>
            <scope>compile</scope>
        </dependency>
        <dependency>
            <groupId>ch.qos.logback.contrib</groupId>
            <artifactId>logback-jackson</artifactId>
            <scope>compile</scope>
        </dependency>
        <dependency>
            <groupId>ch.qos.logback.contrib</groupId>
            <artifactId>logback-json-classic</artifactId>
            <scope>compile</scope>
        </dependency>
        <dependency>
            <groupId>ch.qos.logback.contrib</groupId>
            <artifactId>logback-json-core</artifactId>
            <scope>compile</scope>
        </dependency>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>jul-to-slf4j</artifactId>
            <scope>compile</scope>
        </dependency>

        <!-- Guava -->
        <dependency>
            <groupId>com.google.guava</groupId>
            <artifactId>guava</artifactId>
        </dependency>

        <dependency>
            <groupId>jakarta.xml.bind</groupId>
            <artifactId>jakarta.xml.bind-api</artifactId>
        </dependency>
        <dependency>
            <groupId>jakarta.activation</groupId>
            <artifactId>jakarta.activation-api</artifactId>
        </dependency>
        <dependency>
            <groupId>com.sun.xml.bind</groupId>
            <artifactId>jaxb-impl</artifactId>
        </dependency>
        <dependency>
            <groupId>org.eclipse.angus</groupId>
            <artifactId>angus-activation</artifactId>
        </dependency>

        <!-- 'javax' libraries may still be used by third party libraries. Spring 6 has migrated to jakarta but keeps detecting javax annotation. For that, the library must be present in the classpath.
        (see https://github.com/spring-projects/spring-framework/wiki/Upgrading-to-Spring-Framework-6.x)-->
        <dependency>
            <groupId>javax.annotation</groupId>
            <artifactId>javax.annotation-api</artifactId>
        </dependency>
        <dependency>
            <groupId>javax.inject</groupId>
            <artifactId>javax.inject</artifactId>
        </dependency>
        <dependency>
            <groupId>javax.xml.bind</groupId>
            <artifactId>jaxb-api</artifactId>
        </dependency>

        <!-- Json transformer (jolt) -->
        <dependency>
            <groupId>com.bazaarvoice.jolt</groupId>
            <artifactId>jolt-core</artifactId>
        </dependency>
        <dependency>
            <groupId>com.bazaarvoice.jolt</groupId>
            <artifactId>json-utils</artifactId>
        </dependency>

        <dependency>
            <groupId>io.projectreactor</groupId>
            <artifactId>reactor-core</artifactId>
        </dependency>

        <!--
            FIXME:
            Add this dependency because gravitee-expression-language parse a class in gravitee-gateway-api that uses a class from this package.
            It is only needed when instanciating the expression-language bean, but the management API fails with a ClassNotFoundException without this dependecy.
            We should find a way to white list resources in gravitee-expression-language without the need of third party libraries.
        -->
        <dependency>
            <groupId>org.bouncycastle</groupId>
            <artifactId>bcpkix-jdk18on</artifactId>
        </dependency>

        <!-- Mapstruct -->
        <dependency>
            <groupId>org.mapstruct</groupId>
            <artifactId>mapstruct</artifactId>
            <scope>runtime</scope>
        </dependency>
    </dependencies>

    <build>
        <resources>
            <resource>
                <directory>src/main/resources</directory>
                <filtering>true</filtering>
            </resource>
        </resources>
    </build>
</project>
