<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.github.solven-eu.pepper</groupId>
		<artifactId>pepper-parent</artifactId>
		<version>4.2</version>
	</parent>

	<artifactId>pepper-hadoop-parent</artifactId>
	<packaging>pom</packaging>

	<modules>
		<module>parquet</module>
		<module>spark</module>
	</modules>

	<properties>
		<!-- Most Spark distribution has this quite old Guava: as it easily leads -->
		<!-- to conflicts, we make sure we compile locally with this library -->
		<guava.version>14.0.1</guava.version>

		<hadoop.shortVersion>2.10</hadoop.shortVersion>
		<hadoop.version>3.3.1</hadoop.version>
	</properties>

	<dependencyManagement>
		<dependencies>
			<dependency>
				<!-- https://mvnrepository.com/artifact/com.google.guava/guava -->
				<groupId>com.google.guava</groupId>
				<artifactId>guava</artifactId>
				<version>${guava.version}</version>
			</dependency>

			<dependency>
				<!-- https://mvnrepository.com/artifact/org.apache.hadoop/hadoop-common -->
				<groupId>org.apache.hadoop</groupId>
				<artifactId>hadoop-common</artifactId>
				<version>${hadoop.version}</version>
				<exclusions>
					<!-- Hadoop-commons brings a ton of unexpected dependencies -->
					<exclusion>
						<!-- Do not force the logging framework -->
						<groupId>org.slf4j</groupId>
						<artifactId>slf4j-log4j12</artifactId>
					</exclusion>
					<exclusion>
						<!-- Hadoop-commons depends on servlet2.5 -->
						<groupId>javax.servlet</groupId>
						<artifactId>servlet-api</artifactId>
					</exclusion>
					<exclusion>
						<groupId>org.mortbay.jetty</groupId>
						<artifactId>jetty</artifactId>
					</exclusion>
					<exclusion>
						<!-- We do not rely on hadoop for Rest services -->
						<groupId>com.sun.jersey</groupId>
						<artifactId>jersey-core</artifactId>
					</exclusion>
					<exclusion>
						<!-- We do not rely on hadoop for Rest services -->
						<groupId>com.sun.jersey</groupId>
						<artifactId>jersey-json</artifactId>
					</exclusion>
					<exclusion>
						<groupId>com.sun.jersey</groupId>
						<artifactId>jersey-server</artifactId>
					</exclusion>
					<exclusion>
						<groupId>log4j</groupId>
						<artifactId>log4j</artifactId>
					</exclusion>
				</exclusions>
			</dependency>
			<!-- https://mvnrepository.com/artifact/org.apache.hadoop/hadoop-mapreduce-client-core -->
			<dependency>
				<!-- HadoopReadOptions -->
				<groupId>org.apache.hadoop</groupId>
				<artifactId>hadoop-mapreduce-client-core</artifactId>
				<version>${hadoop.version}</version>
				<exclusions>
					<exclusion>
						<groupId>log4j</groupId>
						<artifactId>log4j</artifactId>
					</exclusion>
					<exclusion>
						<groupId>org.slf4j</groupId>
						<artifactId>slf4j-log4j12</artifactId>
					</exclusion>
				</exclusions>
			</dependency>
		</dependencies>
	</dependencyManagement>

	<profiles>
		<profile>
			<id>hadoop-2.7</id>
			<properties>
				<guava.version>14.0.1</guava.version>
				<hadoop.shortVersion>2.7</hadoop.shortVersion>
				<hadoop.version>2.7.7</hadoop.version>
			</properties>
		</profile>
		<profile>
			<id>hadoop-2.10</id>
			<properties>
				<guava.version>14.0.1</guava.version>
				<hadoop.shortVersion>2.10</hadoop.shortVersion>
				<hadoop.version>2.10.1</hadoop.version>
			</properties>
		</profile>
		<profile>
			<id>hadoop-3.2</id>
			<properties>
				<guava.version>27.0-jre</guava.version>
				<hadoop.shortVersion>3.2</hadoop.shortVersion>
				<hadoop.version>3.2.2</hadoop.version>
			</properties>
		</profile>
		<profile>
			<id>hadoop-3.3</id>
			<properties>
				<guava.version>27.0-jre</guava.version>
				<hadoop.shortVersion>3.3</hadoop.shortVersion>
				<hadoop.version>3.3.1</hadoop.version>
			</properties>
		</profile>
	</profiles>
</project>