<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<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 https://maven.apache.org/xsd/maven-4.0.0.xsd">

	<modelVersion>4.0.0</modelVersion>

	<artifactId>spring-data-r2dbc</artifactId>
	<version>3.0.0-SNAPSHOT</version>

	<name>Spring Data R2DBC</name>
	<description>Spring Data module for R2DBC</description>
	<url>https://projects.spring.io/spring-data-r2dbc</url>

	<parent>
		<groupId>org.springframework.data</groupId>
		<artifactId>spring-data-relational-parent</artifactId>
		<version>3.0.0-SNAPSHOT</version>
	</parent>

	<properties>

		<dist.id>spring-data-r2dbc</dist.id>

		<java-module-name>spring.data.r2dbc</java-module-name>
		<sonar.dynamicAnalysis>reuseReports</sonar.dynamicAnalysis>

		<degraph-check.version>0.1.4</degraph-check.version>
		<postgresql.version>42.2.25</postgresql.version>
		<mysql.version>8.0.21</mysql.version>
		<r2dbc-spi-test.version>0.9.1.RELEASE</r2dbc-spi-test.version>
		<mssql-jdbc.version>7.1.2.jre8-preview</mssql-jdbc.version>
		<mariadb-jdbc.version>2.5.4</mariadb-jdbc.version>
		<r2dbc-releasetrain.version>Borca-RELEASE</r2dbc-releasetrain.version>
		<reactive-streams.version>1.0.3</reactive-streams.version>
		<netty>4.1.73.Final</netty>
	</properties>

	<inceptionYear>2018</inceptionYear>

	<developers>
		<developer>
			<id>mpaluch</id>
			<name>Mark Paluch</name>
			<email>mpaluch(at)pivotal.io</email>
			<organization>Pivotal Software, Inc.</organization>
			<organizationUrl>https://pivotal.io</organizationUrl>
			<roles>
				<role>Project Lead</role>
			</roles>
			<timezone>+1</timezone>
		</developer>
		<developer>
			<id>ogierke</id>
			<name>Oliver Gierke</name>
			<email>ogierke(at)pivotal.io</email>
			<organization>Pivotal Software, Inc.</organization>
			<organizationUrl>https://pivotal.io</organizationUrl>
			<roles>
				<role>Project Lead</role>
			</roles>
			<timezone>+1</timezone>
		</developer>
	</developers>

	<dependencyManagement>
		<dependencies>
			<dependency>
				<groupId>io.r2dbc</groupId>
				<artifactId>r2dbc-bom</artifactId>
				<version>${r2dbc-releasetrain.version}</version>
				<type>pom</type>
				<scope>import</scope>
			</dependency>
			<dependency>
				<groupId>org.testcontainers</groupId>
				<artifactId>testcontainers-bom</artifactId>
				<version>${testcontainers}</version>
				<type>pom</type>
				<scope>import</scope>
			</dependency>
			<dependency>
				<groupId>io.netty</groupId>
				<artifactId>netty-bom</artifactId>
				<version>${netty}</version>
				<type>pom</type>
				<scope>import</scope>
			</dependency>
		</dependencies>
	</dependencyManagement>

	<dependencies>

		<dependency>
			<groupId>${project.groupId}</groupId>
			<artifactId>spring-data-relational</artifactId>
			<version>${project.version}</version>
		</dependency>

		<dependency>
			<groupId>${project.groupId}</groupId>
			<artifactId>spring-data-commons</artifactId>
			<version>${springdata.commons}</version>
		</dependency>

		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-tx</artifactId>
		</dependency>

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

		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-beans</artifactId>
		</dependency>

		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-jdbc</artifactId>
		</dependency>

		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-core</artifactId>
		</dependency>

		<dependency>
			<groupId>org.springframework</groupId>
			<artifactId>spring-r2dbc</artifactId>
		</dependency>

		<dependency>
			<groupId>io.r2dbc</groupId>
			<artifactId>r2dbc-spi</artifactId>
		</dependency>

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

		<!-- Kotlin extension -->
		<dependency>
			<groupId>org.jetbrains.kotlin</groupId>
			<artifactId>kotlin-stdlib</artifactId>
			<optional>true</optional>
		</dependency>

		<dependency>
			<groupId>org.jetbrains.kotlin</groupId>
			<artifactId>kotlin-reflect</artifactId>
			<optional>true</optional>
		</dependency>

		<dependency>
			<groupId>org.jetbrains.kotlinx</groupId>
			<artifactId>kotlinx-coroutines-core</artifactId>
			<optional>true</optional>
		</dependency>

		<dependency>
			<groupId>org.jetbrains.kotlinx</groupId>
			<artifactId>kotlinx-coroutines-reactor</artifactId>
			<optional>true</optional>
		</dependency>

		<dependency>
			<groupId>org.assertj</groupId>
			<artifactId>assertj-core</artifactId>
			<version>${assertj}</version>
			<scope>test</scope>
		</dependency>

		<dependency>
			<groupId>io.projectreactor</groupId>
			<artifactId>reactor-test</artifactId>
			<scope>test</scope>
		</dependency>

		<!-- JDBC Drivers -->

		<dependency>
			<groupId>org.postgresql</groupId>
			<artifactId>postgresql</artifactId>
			<version>${postgresql.version}</version>
			<scope>test</scope>
		</dependency>

		<dependency>
			<groupId>mysql</groupId>
			<artifactId>mysql-connector-java</artifactId>
			<version>${mysql.version}</version>
			<scope>test</scope>
		</dependency>

		<dependency>
			<groupId>org.mariadb.jdbc</groupId>
			<artifactId>mariadb-java-client</artifactId>
			<version>${mariadb-jdbc.version}</version>
			<scope>test</scope>
		</dependency>

		<dependency>
			<groupId>com.microsoft.sqlserver</groupId>
			<artifactId>mssql-jdbc</artifactId>
			<version>${mssql-jdbc.version}</version>
			<scope>test</scope>
		</dependency>

		<dependency>
			<groupId>com.oracle.database.jdbc</groupId>
			<artifactId>ojdbc11</artifactId>
			<version>21.4.0.0.1</version>
			<scope>test</scope>
		</dependency>

		<!-- R2DBC Drivers -->

		<dependency>
			<groupId>org.postgresql</groupId>
			<artifactId>r2dbc-postgresql</artifactId>
			<optional>true</optional>
		</dependency>

		<dependency>
			<groupId>io.r2dbc</groupId>
			<artifactId>r2dbc-h2</artifactId>
			<scope>test</scope>
		</dependency>

		<dependency>
			<groupId>io.r2dbc</groupId>
			<artifactId>r2dbc-mssql</artifactId>
			<scope>test</scope>
		</dependency>

		<dependency>
			<groupId>org.mariadb</groupId>
			<artifactId>r2dbc-mariadb</artifactId>
			<scope>test</scope>
		</dependency>

		<dependency>
			<groupId>com.oracle.database.r2dbc</groupId>
			<artifactId>oracle-r2dbc</artifactId>
			<version>0.4.0</version>
			<scope>test</scope>
		</dependency>

		<dependency>
			<groupId>io.r2dbc</groupId>
			<artifactId>r2dbc-spi-test</artifactId>
			<version>${r2dbc-spi-test.version}</version>
			<scope>test</scope>
		</dependency>

		<!-- Testcontainers -->

		<dependency>
			<groupId>org.testcontainers</groupId>
			<artifactId>mysql</artifactId>
			<scope>test</scope>
			<exclusions>
				<exclusion>
					<groupId>org.slf4j</groupId>
					<artifactId>jcl-over-slf4j</artifactId>
				</exclusion>
			</exclusions>
		</dependency>

		<dependency>
			<groupId>org.testcontainers</groupId>
			<artifactId>mariadb</artifactId>
			<scope>test</scope>
			<exclusions>
				<exclusion>
					<groupId>org.slf4j</groupId>
					<artifactId>jcl-over-slf4j</artifactId>
				</exclusion>
			</exclusions>
		</dependency>

		<dependency>
			<groupId>org.testcontainers</groupId>
			<artifactId>oracle-xe</artifactId>
			<scope>test</scope>
		</dependency>

		<dependency>
			<groupId>org.testcontainers</groupId>
			<artifactId>postgresql</artifactId>
			<scope>test</scope>
		</dependency>

		<dependency>
			<groupId>de.schauderhaft.degraph</groupId>
			<artifactId>degraph-check</artifactId>
			<version>${degraph-check.version}</version>
			<scope>test</scope>
		</dependency>

		<dependency>
			<groupId>io.mockk</groupId>
			<artifactId>mockk</artifactId>
			<version>${mockk}</version>
			<scope>test</scope>
		</dependency>

		<dependency>
			<groupId>org.awaitility</groupId>
			<artifactId>awaitility</artifactId>
			<version>${awaitility.version}</version>
			<scope>test</scope>
		</dependency>

	</dependencies>

	<build>

		<plugins>

			<!--
				 Jacoco plugin redeclared to make sure it's downloaded and
				 the agents can be explicitly added to the test executions.
			-->
			<plugin>
				<groupId>org.jacoco</groupId>
				<artifactId>jacoco-maven-plugin</artifactId>
				<version>${jacoco}</version>
				<configuration>
					<destFile>${jacoco.destfile}</destFile>
				</configuration>
				<executions>
					<execution>
						<id>jacoco-initialize</id>
						<goals>
							<goal>prepare-agent</goal>
						</goals>
					</execution>
				</executions>
			</plugin>

			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-javadoc-plugin</artifactId>
				<configuration>
					<links>
						<link>https://docs.spring.io/spring/docs/${spring}/javadoc-api/
						</link>
						<link>
							https://docs.spring.io/spring-data/commons/docs/current/api/
						</link>
						<link>https://docs.oracle.com/javase/8/docs/api/</link>
						<link>https://r2dbc.io/spec/0.9.1.RELEASE/api/</link>
					</links>
				</configuration>
			</plugin>

			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-surefire-plugin</artifactId>
				<executions>
					<execution>
						<id>default-test</id>
						<configuration>
							<includes>
								<include>**/*Tests.java</include>
							</includes>
						</configuration>
					</execution>
				</executions>
			</plugin>

			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-assembly-plugin</artifactId>
			</plugin>

			<plugin>
				<groupId>org.asciidoctor</groupId>
				<artifactId>asciidoctor-maven-plugin</artifactId>
				<configuration>
					<sourceDirectory>${project.root}/src/main/asciidoc</sourceDirectory>
					<sourceDocumentName>index.adoc</sourceDocumentName>
					<doctype>book</doctype>
					<attributes>
						<version>${project.version}</version>
						<projectName>${project.name}</projectName>
						<projectVersion>${project.version}</projectVersion>
						<aspectjVersion>${aspectj}</aspectjVersion>
						<querydslVersion>${querydsl}</querydslVersion>
						<springVersion>${spring}</springVersion>
						<r2dbcVersion>${r2dbc-releasetrain.version}</r2dbcVersion>
						<reactiveStreamsVersion>${reactive-streams.version}
						</reactiveStreamsVersion>
						<releasetrainVersion>${releasetrain}</releasetrainVersion>
						<allow-uri-read>true</allow-uri-read>
						<toclevels>3</toclevels>
						<numbered>true</numbered>
					</attributes>
				</configuration>
			</plugin>

			<plugin>
				<groupId>org.codehaus.mojo</groupId>
				<artifactId>flatten-maven-plugin</artifactId>
				<version>1.1.0</version>
				<executions>
					<execution>
						<id>flatten</id>
						<phase>process-resources</phase>
						<goals>
							<goal>flatten</goal>
						</goals>
						<configuration>
							<updatePomFile>true</updatePomFile>
							<flattenMode>oss</flattenMode>
							<pomElements>
								<pluginManagement>keep</pluginManagement>
								<properties>keep</properties>
								<parent>expand</parent>
								<repositories>remove</repositories>
							</pomElements>
						</configuration>
					</execution>
					<execution>
						<id>flatten-clean</id>
						<phase>clean</phase>
						<goals>
							<goal>clean</goal>
						</goals>
					</execution>
				</executions>
			</plugin>
		</plugins>
	</build>

	<profiles>
		<profile>
			<id>no-jacoco</id>
			<build>
				<plugins>
					<plugin>
						<groupId>org.jacoco</groupId>
						<artifactId>jacoco-maven-plugin</artifactId>
						<executions>
							<execution>
								<id>jacoco-initialize</id>
								<phase>none</phase>
							</execution>
						</executions>
					</plugin>
				</plugins>
			</build>
		</profile>

	</profiles>

</project>
