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

    Copyright (C) 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</groupId>
		<artifactId>gravitee-parent</artifactId>
		<version>20.0</version>
	</parent>

	<groupId>io.gravitee.elasticsearch</groupId>
	<artifactId>gravitee-elasticsearch</artifactId>
    <version>3.9.2</version>
	<packaging>pom</packaging>

	<name>Gravitee.io APIM - Elasticsearch Connector</name>

	<properties>
		<gravitee-bom.version>1.1</gravitee-bom.version>
		<gravitee-gateway-api.version>1.22.0</gravitee-gateway-api.version>
		<gravitee-common.version>1.20.5</gravitee-common.version>
		<gravitee-reporter-api.version>1.19.0</gravitee-reporter-api.version>
		<gravitee-policy-api.version>1.10.0</gravitee-policy-api.version>
		<gravitee-apim-repository-api.version>3.12.6</gravitee-apim-repository-api.version>
		<gravitee-node.version>1.10.2</gravitee-node.version>
		<freemarker.version>2.3.31</freemarker.version>
		<commons-validator.version>1.7</commons-validator.version>
	</properties>

	<modules>
		<module>gravitee-common-elasticsearch</module>
		<module>gravitee-repository-elasticsearch</module>
		<module>gravitee-reporter-elasticsearch</module>
	</modules>

	<dependencyManagement>
		<dependencies>
			<!-- Import bom to properly inherit all dependencies -->
			<dependency>
				<groupId>io.gravitee</groupId>
				<artifactId>gravitee-bom</artifactId>
				<version>${gravitee-bom.version}</version>
				<scope>import</scope>
				<type>pom</type>
			</dependency>

			<dependency>
				<groupId>io.gravitee.gateway</groupId>
				<artifactId>gravitee-gateway-api</artifactId>
				<version>${gravitee-gateway-api.version}</version>
				<scope>provided</scope>
			</dependency>
			<dependency>
				<groupId>io.gravitee.reporter</groupId>
				<artifactId>gravitee-reporter-api</artifactId>
				<version>${gravitee-reporter-api.version}</version>
				<scope>provided</scope>
			</dependency>
			<dependency>
				<groupId>io.gravitee.policy</groupId>
				<artifactId>gravitee-policy-api</artifactId>
				<version>${gravitee-policy-api.version}</version>
				<scope>provided</scope>
			</dependency>
			<dependency>
				<groupId>io.gravitee.apim.repository</groupId>
				<artifactId>gravitee-apim-repository-api</artifactId>
				<version>${gravitee-apim-repository-api.version}</version>
				<scope>provided</scope>
			</dependency>
			<dependency>
				<groupId>io.gravitee.node</groupId>
				<artifactId>gravitee-node-api</artifactId>
				<version>${gravitee-node.version}</version>
				<scope>provided</scope>
			</dependency>
			<dependency>
				<groupId>commons-validator</groupId>
				<artifactId>commons-validator</artifactId>
				<version>${commons-validator.version}</version>
			</dependency>
        </dependencies>
	</dependencyManagement>

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

		<dependency>
			<groupId>io.gravitee.common</groupId>
			<artifactId>gravitee-common</artifactId>
			<version>${gravitee-common.version}</version>
			<scope>provided</scope>
		</dependency>

		<!-- Vert.x dependencies -->
		<dependency>
			<groupId>io.vertx</groupId>
			<artifactId>vertx-rx-java2</artifactId>
			<scope>provided</scope>
		</dependency>

		<dependency>
			<groupId>io.vertx</groupId>
			<artifactId>vertx-core</artifactId>
			<scope>provided</scope>
		</dependency>

		<!-- Spring dependencies -->
		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-beans</artifactId>
			<scope>provided</scope>
		</dependency>

		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-context</artifactId>
			<scope>provided</scope>
		</dependency>

		<!-- Logging -->
		<dependency>
			<groupId>org.slf4j</groupId>
			<artifactId>slf4j-api</artifactId>
		</dependency>
		<dependency>
			<groupId>ch.qos.logback</groupId>
			<artifactId>logback-classic</artifactId>
		</dependency>
		<dependency>
			<groupId>ch.qos.logback</groupId>
			<artifactId>logback-core</artifactId>
		</dependency>

		<dependency>
			<groupId>javax.annotation</groupId>
			<artifactId>javax.annotation-api</artifactId>
			<version>1.3.2</version>
			<scope>provided</scope>
		</dependency>

		<!-- Unit Tests -->
		<dependency>
			<groupId>junit</groupId>
			<artifactId>junit</artifactId>
		</dependency>

		<dependency>
			<groupId>org.mockito</groupId>
			<artifactId>mockito-core</artifactId>
		</dependency>
	</dependencies>

	<build>
		<plugins>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-surefire-plugin</artifactId>
				<configuration>
					<systemPropertyVariables>
						<es.set.netty.runtime.available.processors>false</es.set.netty.runtime.available.processors>
						<vertx.disableFileCPResolving>false</vertx.disableFileCPResolving>
					</systemPropertyVariables>
				</configuration>
				<executions>
					<execution>
						<id>default-test</id>
						<configuration>
							<skip>true</skip>
						</configuration>
					</execution>
					<execution>
						<id>es5x</id>
						<goals>
							<goal>test</goal>
						</goals>
						<configuration>
							<systemPropertyVariables>
								<elasticsearch>5x</elasticsearch>
							</systemPropertyVariables>
						</configuration>
					</execution>
					<execution>
						<id>es6x</id>
						<goals>
							<goal>test</goal>
						</goals>
						<configuration>
							<systemPropertyVariables>
								<elasticsearch>6x</elasticsearch>
							</systemPropertyVariables>
						</configuration>
					</execution>
					<execution>
						<id>es7x</id>
						<goals>
							<goal>test</goal>
						</goals>
						<configuration>
							<systemPropertyVariables>
								<elasticsearch>7x</elasticsearch>
							</systemPropertyVariables>
						</configuration>
					</execution>
				</executions>
			</plugin>
		</plugins>
	</build>

	<profiles>
		<profile>
			<id>es-5x</id>
			<activation>
				<activeByDefault>true</activeByDefault>
				<property>
					<name>elasticsearch</name>
					<value>5x</value>
				</property>
			</activation>
			<properties>
				<elasticsearch.version>5.6.3</elasticsearch.version>
			</properties>
			<dependencies>
				<dependency>
					<groupId>org.elasticsearch</groupId>
					<artifactId>elasticsearch</artifactId>
					<version>${elasticsearch.version}</version>
					<scope>test</scope>
				</dependency>

				<dependency>
					<groupId>org.elasticsearch.client</groupId>
					<artifactId>transport</artifactId>
					<version>${elasticsearch.version}</version>
					<scope>test</scope>
				</dependency>

				<dependency>
					<groupId>io.netty</groupId>
					<artifactId>netty-all</artifactId>
					<version>4.1.13.Final</version>
					<scope>test</scope>
				</dependency>

				<dependency>
					<groupId>org.apache.logging.log4j</groupId>
					<artifactId>log4j-core</artifactId>
					<version>2.9.1</version>
					<scope>test</scope>
				</dependency>
			</dependencies>
		</profile>
		<profile>
			<id>es-6x</id>
			<activation>
				<property>
					<name>elasticsearch</name>
					<value>6x</value>
				</property>
			</activation>
			<properties>
				<elasticsearch.version>6.2.2</elasticsearch.version>
			</properties>
			<dependencies>
				<dependency>
					<groupId>org.elasticsearch</groupId>
					<artifactId>elasticsearch</artifactId>
					<version>${elasticsearch.version}</version>
					<scope>test</scope>
				</dependency>

				<dependency>
					<groupId>org.elasticsearch.client</groupId>
					<artifactId>transport</artifactId>
					<version>${elasticsearch.version}</version>
					<scope>test</scope>
				</dependency>

				<dependency>
					<groupId>io.netty</groupId>
					<artifactId>netty-all</artifactId>
					<version>4.1.13.Final</version>
					<scope>test</scope>
				</dependency>

				<dependency>
					<groupId>org.apache.logging.log4j</groupId>
					<artifactId>log4j-core</artifactId>
					<version>2.9.1</version>
					<scope>test</scope>
				</dependency>
			</dependencies>
		</profile>
		<profile>
			<id>es-7x</id>
			<activation>
				<property>
					<name>elasticsearch</name>
					<value>7x</value>
				</property>
			</activation>
			<properties>
				<elasticsearch.version>7.3.0</elasticsearch.version>
			</properties>
			<dependencies>
				<dependency>
					<groupId>org.elasticsearch</groupId>
					<artifactId>elasticsearch</artifactId>
					<version>${elasticsearch.version}</version>
					<scope>test</scope>
				</dependency>

				<dependency>
					<groupId>org.elasticsearch.client</groupId>
					<artifactId>transport</artifactId>
					<version>${elasticsearch.version}</version>
					<scope>test</scope>
				</dependency>

				<dependency>
					<groupId>io.netty</groupId>
					<artifactId>netty-all</artifactId>
					<version>4.1.36.Final</version>
					<scope>test</scope>
				</dependency>

				<dependency>
					<groupId>org.apache.logging.log4j</groupId>
					<artifactId>log4j-core</artifactId>
					<version>2.9.1</version>
					<scope>test</scope>
				</dependency>
			</dependencies>
		</profile>
	</profiles>
</project>
