<?xml version="1.0" encoding="UTF-8"?>
<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>

	<parent>
		<groupId>org.springframework.data</groupId>
		<artifactId>spring-data-geode-parent</artifactId>
		<version>2.6.0</version>
	</parent>

	<artifactId>spring-data-geode</artifactId>
	<packaging>jar</packaging>

	<name>Spring Data for Apache Geode</name>
	<description>Spring Data for Apache Geode (a.k.a. Spring Data Geode or SDG)</description>
	<url>https://projects.spring.io/spring-data-geode/spring-data-geode</url>

	<properties>
		<project.root>${basedir}/..</project.root>
		<maven-compiler-plugin.version>3.8.1</maven-compiler-plugin.version>
		<maven-toolchains-plugin.version>3.0.0</maven-toolchains-plugin.version>
		<geode.version>1.14.0</geode.version>
		<spring-test-data-geode.version>0.0.28</spring-test-data-geode.version>
	</properties>

	<dependencies>

		<!-- Apache Geode -->
		<dependency>
			<groupId>org.apache.geode</groupId>
			<artifactId>geode-core</artifactId>
			<version>${geode.version}</version>
			<exclusions>
				<exclusion>
					<groupId>org.apache.logging.log4j</groupId>
					<artifactId>log4j-jcl</artifactId>
				</exclusion>
				<exclusion>
					<groupId>org.apache.logging.log4j</groupId>
					<artifactId>log4j-jul</artifactId>
				</exclusion>
				<exclusion>
					<groupId>org.apache.logging.log4j</groupId>
					<artifactId>log4j-slf4j-impl</artifactId>
				</exclusion>
			</exclusions>
		</dependency>

		<dependency>
			<groupId>org.apache.geode</groupId>
			<artifactId>geode-cq</artifactId>
			<version>${geode.version}</version>
		</dependency>

		<dependency>
			<groupId>org.apache.geode</groupId>
			<artifactId>geode-gfsh</artifactId>
			<version>${geode.version}</version>
			<scope>provided</scope>
		</dependency>

		<dependency>
			<groupId>org.apache.geode</groupId>
			<artifactId>geode-lucene</artifactId>
			<version>${geode.version}</version>
		</dependency>

		<dependency>
			<groupId>org.apache.geode</groupId>
			<artifactId>geode-wan</artifactId>
			<version>${geode.version}</version>
		</dependency>

		<!-- Java & Javax -->
		<dependency>
			<groupId>javax.cache</groupId>
			<artifactId>cache-api</artifactId>
			<version>${cache-api.version}</version>
			<optional>true</optional>
		</dependency>

		<!-- CDI -->
		<!-- Dependency order required to build against CDI 1.0 and test with CDI 2.0 -->
		<dependency>
			<groupId>org.apache.geronimo.specs</groupId>
			<artifactId>geronimo-jcdi_2.0_spec</artifactId>
			<version>1.0.1</version>
			<scope>test</scope>
		</dependency>

		<dependency>
			<groupId>javax.interceptor</groupId>
			<artifactId>javax.interceptor-api</artifactId>
			<version>1.2.1</version>
			<scope>test</scope>
		</dependency>

		<dependency>
			<groupId>javax.el</groupId>
			<artifactId>el-api</artifactId>
			<version>2.2</version>
			<scope>test</scope>
		</dependency>

		<dependency>
			<groupId>javax.enterprise</groupId>
			<artifactId>cdi-api</artifactId>
			<version>${cdi}</version>
			<optional>true</optional>
			<scope>provided</scope>
			<exclusions>
				<exclusion>
					<groupId>javax.annotation</groupId>
					<artifactId>jsr250-api</artifactId>
				</exclusion>
			</exclusions>
		</dependency>

		<!-- Spring Framework -->
		<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</groupId>
			<artifactId>spring-web</artifactId>
		</dependency>

		<!-- Spring Data Commons -->
		<dependency>
			<groupId>org.springframework.data</groupId>
			<artifactId>spring-data-commons</artifactId>
			<version>${springdata.commons}</version>
		</dependency>

		<!-- Spring Data for Apache Geode & GemFire common dependencies -->
		<dependency>
			<groupId>antlr</groupId>
			<artifactId>antlr</artifactId>
			<version>${antlr.version}</version>
			<scope>runtime</scope>
		</dependency>

		<dependency>
			<groupId>org.apache.shiro</groupId>
			<artifactId>shiro-spring</artifactId>
			<version>${apache-shiro.version}</version>
		</dependency>

		<!-- 3rd Party Dependencies -->
		<dependency>
			<groupId>org.aspectj</groupId>
			<artifactId>aspectjweaver</artifactId>
			<version>${aspectj}</version>
		</dependency>

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

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

		<!-- Logging -->
		<dependency>
			<groupId>ch.qos.logback</groupId>
			<artifactId>logback-classic</artifactId>
			<version>${logback}</version>
			<scope>test</scope>
		</dependency>

		<dependency>
			<groupId>org.apache.logging.log4j</groupId>
			<artifactId>log4j-to-slf4j</artifactId>
			<version>${log4j.version}</version>
			<scope>test</scope>
		</dependency>

		<!-- Test -->
		<dependency>
			<groupId>javax.annotation</groupId>
			<artifactId>javax.annotation-api</artifactId>
			<version>${javax-annotation-api}</version>
			<scope>test</scope>
		</dependency>

		<dependency>
			<groupId>org.apache.derby</groupId>
			<artifactId>derbyLocale_zh_TW</artifactId>
			<version>10.9.1.0</version>
			<scope>test</scope>
		</dependency>

		<dependency>
			<groupId>org.apache.openwebbeans</groupId>
			<artifactId>openwebbeans-se</artifactId>
			<version>${webbeans}</version>
			<scope>test</scope>
		</dependency>

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

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

		<dependency>
			<groupId>org.springframework.data</groupId>
			<artifactId>spring-data-geode-test</artifactId>
			<version>${spring-test-data-geode.version}</version>
			<scope>test</scope>
			<exclusions>
				<exclusion>
					<groupId>org.springframework.data</groupId>
					<artifactId>spring-data-geode</artifactId>
				</exclusion>
			</exclusions>
		</dependency>

		<dependency>
			<groupId>org.springframework.shell</groupId>
			<artifactId>spring-shell</artifactId>
			<version>${spring-shell.version}</version>
			<scope>test</scope>
			<exclusions>
				<exclusion>
					<groupId>com.google.guava</groupId>
					<artifactId>guava</artifactId>
				</exclusion>
			</exclusions>
		</dependency>

		<dependency>
			<groupId>edu.umd.cs.mtc</groupId>
			<artifactId>multithreadedtc</artifactId>
			<version>${multithreadedtc.version}</version>
			<scope>test</scope>
		</dependency>

	</dependencies>

	<build>
		<plugins>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-surefire-plugin</artifactId>
				<configuration>
					<includes>
						<include>**/*Tests.java</include>
						<include>**/*Test.java</include>
					</includes>
					<reuseForks>false</reuseForks>
					<systemProperties>
						<java.util.logging.config.file>${basedir}/src/test/resources/java-util-logging.properties</java.util.logging.config.file>
						<gemfire.disableShutdownHook>true</gemfire.disableShutdownHook>
						<logback.log.level>error</logback.log.level>
						<spring.profiles.active>apache-geode</spring.profiles.active>
					</systemProperties>
				</configuration>
			</plugin>
		</plugins>
	</build>

	<profiles>
		<profile>
			<id>local-java16</id>
			<build>
				<plugins>
					<plugin>
						<groupId>org.apache.maven.plugins</groupId>
						<artifactId>maven-surefire-plugin</artifactId>
						<configuration>
							<argLine>--add-opens java.base/java.nio=ALL-UNNAMED --add-opens java.base/java.util=ALL-UNNAMED</argLine>
							<includes>
								<include>**/*Tests.java</include>
								<include>**/*Test.java</include>
							</includes>
							<jdkToolchain>
								<version>16</version>
								<vendor>oracle</vendor>
							</jdkToolchain>
							<reuseForks>false</reuseForks>
							<systemProperties>
								<java.util.logging.config.file>${basedir}/src/test/resources/java-util-logging.properties</java.util.logging.config.file>
								<gemfire.disableShutdownHook>true</gemfire.disableShutdownHook>
								<logback.log.level>error</logback.log.level>
								<spring.profiles.active>apache-geode</spring.profiles.active>
							</systemProperties>
						</configuration>
					</plugin>
					<plugin>
						<groupId>org.apache.maven.plugins</groupId>
						<artifactId>maven-toolchains-plugin</artifactId>
						<version>${maven-toolchains-plugin.version}</version>
						<executions>
							<execution>
								<goals>
									<goal>toolchain</goal>
								</goals>
							</execution>
						</executions>
						<configuration>
							<toolchains>
								<jdk>
									<version>16</version>
									<vendor>oracle</vendor>
								</jdk>
							</toolchains>
						</configuration>
					</plugin>
				</plugins>
			</build>
		</profile>
		<profile>
			<id>remote-java17</id>
			<build>
				<plugins>
					<plugin>
						<groupId>org.apache.maven.plugins</groupId>
						<artifactId>maven-surefire-plugin</artifactId>
						<configuration>
							<argLine>--add-opens java.base/java.nio=ALL-UNNAMED --add-opens java.base/java.util=ALL-UNNAMED</argLine>
							<includes>
								<include>**/*Tests.java</include>
								<include>**/*Test.java</include>
							</includes>
							<reuseForks>false</reuseForks>
							<systemProperties>
								<java.util.logging.config.file>${basedir}/src/test/resources/java-util-logging.properties</java.util.logging.config.file>
								<gemfire.disableShutdownHook>true</gemfire.disableShutdownHook>
								<logback.log.level>error</logback.log.level>
								<spring.profiles.active>apache-geode</spring.profiles.active>
							</systemProperties>
						</configuration>
					</plugin>
				</plugins>
			</build>
		</profile>
	</profiles>

</project>
