<?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: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">
	<modelVersion>4.0.0</modelVersion>

	<parent>
		<groupId>io.gravitee.apim.rest.api</groupId>
		<artifactId>gravitee-apim-rest-api</artifactId>
		<version>4.9.7</version>
	</parent>

	<artifactId>gravitee-apim-rest-api-service</artifactId>
	<packaging>jar</packaging>

	<name>Gravitee.io APIM - Management API - Service</name>
	<description>Gravitee IO Manager Service</description>

	<dependencies>
		<!-- https://mvnrepository.com/artifact/com.googlecode.owasp-java-html-sanitizer/owasp-java-html-sanitizer -->
		<dependency>
			<groupId>com.googlecode.owasp-java-html-sanitizer</groupId>
			<artifactId>owasp-java-html-sanitizer</artifactId>
		</dependency>

		<dependency>
			<groupId>com.vladsch.flexmark</groupId>
			<artifactId>flexmark-html2md-converter</artifactId>
		</dependency>

		<!-- Gravitee Management dependencies -->
		<dependency>
			<groupId>io.gravitee.apim.rest.api</groupId>
			<artifactId>gravitee-apim-rest-api-model</artifactId>
			<version>${project.version}</version>
		</dependency>
		<dependency>
			<groupId>io.gravitee.apim.rest.api.idp</groupId>
			<artifactId>gravitee-apim-rest-api-idp-core</artifactId>
			<version>${project.version}</version>
		</dependency>
		<dependency>
			<groupId>io.gravitee.apim.rest.api</groupId>
			<artifactId>gravitee-apim-rest-api-fetcher</artifactId>
			<version>${project.version}</version>
		</dependency>
		<dependency>
			<groupId>io.gravitee.apim.rest.api</groupId>
			<artifactId>gravitee-apim-rest-api-spec-converter</artifactId>
			<version>${project.version}</version>
		</dependency>
        <dependency>
            <groupId>io.gravitee.fetcher</groupId>
            <artifactId>gravitee-fetcher-api</artifactId>
        </dependency>
        <dependency>
            <groupId>io.gravitee.policy</groupId>
            <artifactId>gravitee-policy-api</artifactId>
        </dependency>
        <dependency>
            <groupId>io.gravitee.exchange</groupId>
            <artifactId>gravitee-exchange-api</artifactId>
        </dependency>
		<dependency>
			<groupId>io.gravitee.cockpit</groupId>
			<artifactId>gravitee-cockpit-api</artifactId>
		</dependency>
		<dependency>
			<groupId>io.gravitee.integration</groupId>
			<artifactId>gravitee-integration-api</artifactId>
		</dependency>
    <dependency>
        <groupId>io.gravitee.scoring</groupId>
        <artifactId>gravitee-scoring-api</artifactId>
    </dependency>
    <dependency>
        <groupId>io.gravitee.spec.gen.api</groupId>
        <artifactId>gravitee-spec-gen-api</artifactId>
    </dependency>

		<!-- Gravitee Dependencies -->
		<dependency>
			<groupId>io.gravitee.apim.definition</groupId>
			<artifactId>gravitee-apim-definition-jackson</artifactId>
			<version>${project.version}</version>
		</dependency>

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

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

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

		<dependency>
			<groupId>io.gravitee.apim.repository</groupId>
			<artifactId>gravitee-apim-repository-api</artifactId>
		</dependency>

		<dependency>
			<groupId>io.gravitee.plugin</groupId>
			<artifactId>gravitee-plugin-policy</artifactId>
		</dependency>

		<dependency>
			<groupId>io.gravitee.plugin</groupId>
			<artifactId>gravitee-plugin-resource</artifactId>
		</dependency>

		<dependency>
			<groupId>io.gravitee.plugin</groupId>
			<artifactId>gravitee-plugin-fetcher</artifactId>
		</dependency>
		<dependency>
			<groupId>io.gravitee.plugin</groupId>
			<artifactId>gravitee-plugin-alert</artifactId>
		</dependency>

		<dependency>
			<groupId>io.gravitee.plugin</groupId>
			<artifactId>gravitee-plugin-service-discovery</artifactId>
		</dependency>

		<dependency>
			<groupId>io.gravitee.plugin</groupId>
			<artifactId>gravitee-plugin-notifier</artifactId>
		</dependency>

		<dependency>
			<groupId>io.gravitee.plugin</groupId>
			<artifactId>gravitee-plugin-cockpit</artifactId>
		</dependency>

		<dependency>
			<groupId>io.gravitee.plugin</groupId>
			<artifactId>gravitee-plugin-connector</artifactId>
		</dependency>

		<dependency>
			<groupId>io.gravitee.el</groupId>
			<artifactId>gravitee-expression-language</artifactId>
			<scope>provided</scope>
		</dependency>

		<dependency>
			<groupId>io.gravitee.kubernetes</groupId>
			<artifactId>gravitee-kubernetes-mapper</artifactId>
		</dependency>

		<dependency>
			<groupId>io.gravitee.json</groupId>
			<artifactId>gravitee-json-validation</artifactId>
            <exclusions>
                <exclusion>
                    <groupId>com.damnhandy</groupId>
                    <artifactId>handy-uri-templates</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>commons-validator</groupId>
                    <artifactId>commons-validator</artifactId>
                </exclusion>
            </exclusions>
		</dependency>

		<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.services</groupId>
			<artifactId>gravitee-node-services-upgrader</artifactId>
		</dependency>

		<dependency>
			<groupId>io.gravitee.node.services</groupId>
			<artifactId>gravitee-node-services-initializer</artifactId>
		</dependency>

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

		<!-- Lucene -->
		<dependency>
			<groupId>org.apache.lucene</groupId>
			<artifactId>lucene-core</artifactId>
		</dependency>
		<dependency>
			<groupId>org.apache.lucene</groupId>
			<artifactId>lucene-queryparser</artifactId>
		</dependency>
		<dependency>
			<groupId>org.apache.lucene</groupId>
			<artifactId>lucene-analysis-common</artifactId>
		</dependency>

		<!-- ClassGraph -->
		<dependency>
			<groupId>io.github.classgraph</groupId>
			<artifactId>classgraph</artifactId>
		</dependency>

		<!-- Spring dependencies -->
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-context</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-context-support</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-tx</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework.security</groupId>
			<artifactId>spring-security-core</artifactId>
		</dependency>
		<dependency>
			<groupId>commons-io</groupId>
			<artifactId>commons-io</artifactId>
		</dependency>

		<dependency>
			<groupId>org.eclipse.angus</groupId>
			<artifactId>angus-mail</artifactId>
		</dependency>
		<dependency>
			<groupId>jakarta.activation</groupId>
			<artifactId>jakarta.activation-api</artifactId>
		</dependency>
		<dependency>
			<groupId>org.freemarker</groupId>
			<artifactId>freemarker</artifactId>
		</dependency>

		<!-- HTML Parser -->
		<dependency>
			<groupId>org.jsoup</groupId>
			<artifactId>jsoup</artifactId>
		</dependency>

		<!-- Json parser -->
		<dependency>
			<groupId>com.google.code.gson</groupId>
			<artifactId>gson</artifactId>
		</dependency>

		<dependency>
			<groupId>com.github.java-json-tools</groupId>
			<artifactId>json-patch</artifactId>
		</dependency>

		<!-- Swagger parser -->
		<dependency>
			<groupId>io.swagger.parser.v3</groupId>
			<artifactId>swagger-parser</artifactId>
		</dependency>

		<dependency>
			<groupId>com.auth0</groupId>
			<artifactId>java-jwt</artifactId>
		</dependency>

		<!-- Vert.x -->
		<dependency>
			<groupId>io.vertx</groupId>
			<artifactId>vertx-core</artifactId>
			<scope>provided</scope>
			<exclusions>
				<exclusion>
					<groupId>com.fasterxml.jackson.core</groupId>
					<artifactId>*</artifactId>
				</exclusion>
			</exclusions>
		</dependency>
        <dependency>
            <groupId>io.vertx</groupId>
            <artifactId>vertx-web-client</artifactId>
            <scope>provided</scope>
            <exclusions>
                <exclusion>
                    <groupId>com.fasterxml.jackson.core</groupId>
                    <artifactId>*</artifactId>
                </exclusion>
            </exclusions>
        </dependency>

		<!-- Jaxrs -->
		<dependency>
			<groupId>org.glassfish.jersey.core</groupId>
			<artifactId>jersey-client</artifactId>
			<scope>provided</scope>
		</dependency>

		<!-- Test dependencies -->
		<dependency>
			<groupId>org.javassist</groupId>
			<artifactId>javassist</artifactId>
			<scope>test</scope>
		</dependency>
        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-text</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>net.javacrumbs.json-unit</groupId>
            <artifactId>json-unit-assertj</artifactId>
            <scope>test</scope>
        </dependency>

		<!-- Test -->
		<dependency>
			<groupId>io.gravitee.apim.rest.api</groupId>
			<artifactId>gravitee-apim-rest-api-test-fixtures</artifactId>
			<version>${project.version}</version>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>org.springframework.data</groupId>
			<artifactId>spring-data-mongodb</artifactId>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>io.gravitee.apim.definition</groupId>
			<artifactId>gravitee-apim-definition-model</artifactId>
			<version>${project.version}</version>
			<type>test-jar</type>
			<scope>test</scope>
		</dependency>
               <dependency>
                       <groupId>org.awaitility</groupId>
                       <artifactId>awaitility</artifactId>
                       <version>${awaitility.version}</version>
                       <scope>test</scope>
               </dependency>

		<!-- wiremock is late on jetty have to use its internal version to avoid classloading issues-->
		<dependency>
			<groupId>org.wiremock</groupId>
			<artifactId>wiremock-standalone</artifactId>
			<scope>test</scope>
		</dependency>

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

        <dependency>
            <groupId>org.jsoup</groupId>
            <artifactId>jsoup</artifactId>
        </dependency>

    </dependencies>

	<build>
		<plugins>
			<plugin>
				<groupId>org.jsonschema2pojo</groupId>
				<artifactId>jsonschema2pojo-maven-plugin</artifactId>
				<version>${jsonschema2pojo-maven-plugin.version}</version>
				<configuration>
					<sourceDirectory>${basedir}/src/main/resources/schema</sourceDirectory>
					<targetPackage>io.gravitee.rest.api.service.swagger.converter.extension</targetPackage>
				</configuration>
				<executions>
					<execution>
						<goals>
							<goal>generate</goal>
						</goals>
					</execution>
				</executions>
			</plugin>

			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-jar-plugin</artifactId>
				<executions>
					<execution>
						<goals>
							<goal>test-jar</goal>
						</goals>
						<configuration>
							<includes>
								<include>fakes/**</include>
								<include>inmemory/**</include>
								<include>fixtures/**</include>
							</includes>
						</configuration>
					</execution>
				</executions>
			</plugin>
		</plugins>
	</build>
</project>
