<?xml version="1.0" encoding="UTF-8"?>
<!--
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements.  See the NOTICE file
distributed with this work for additional information
regarding copyright ownership.  The ASF licenses this file
to you 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/maven-v4_0_0.xsd">

	<modelVersion>4.0.0</modelVersion>

	<parent>
		<groupId>org.apache.flink</groupId>
		<artifactId>flink-libraries</artifactId>
		<version>1.5.1</version>
		<relativePath>..</relativePath>
	</parent>

	<artifactId>flink-table_${scala.binary.version}</artifactId>
	<name>flink-table</name>

	<packaging>jar</packaging>

	<dependencyManagement>
		<dependencies>
			<!-- Common dependency of calcite-core and flink-test-utils -->
			<dependency>
				<groupId>com.google.guava</groupId>
				<artifactId>guava</artifactId>
				<version>19.0</version>
			</dependency>
			<!-- Common dependency among commons-configuration -->
			<dependency>
				<groupId>commons-beanutils</groupId>
				<artifactId>commons-beanutils</artifactId>
				<version>1.8.3</version>
			</dependency>
			<!-- Common dependency of calcite-core and janino -->
			<dependency>
				<groupId>org.codehaus.janino</groupId>
				<artifactId>commons-compiler</artifactId>
				<version>3.0.7</version>
			</dependency>
			<!-- Common dependency of aggdesigner-algorithm and commons-configuration -->
			<dependency>
				<groupId>commons-lang</groupId>
				<artifactId>commons-lang</artifactId>
				<version>2.6</version>
			</dependency>
			<!-- Common dependency of calcite-core and flink-table -->
			<dependency>
				<groupId>org.codehaus.janino</groupId>
				<artifactId>janino</artifactId>
				<version>3.0.7</version>
			</dependency>
		</dependencies>
	</dependencyManagement>

	<dependencies>

		<!-- core dependencies -->

		<dependency>
			<groupId>org.apache.flink</groupId>
			<artifactId>flink-streaming-scala_${scala.binary.version}</artifactId>
			<version>${project.version}</version>
			<scope>provided</scope>
		</dependency>

		<dependency>
			<groupId>org.apache.flink</groupId>
			<artifactId>flink-shaded-jackson</artifactId>
			<scope>provided</scope>
		</dependency>

		<!-- Used for TableType configuration -->
		<dependency>
			<groupId>commons-configuration</groupId>
			<artifactId>commons-configuration</artifactId>
		</dependency>
		<dependency>
			<groupId>org.slf4j</groupId>
			<artifactId>jcl-over-slf4j</artifactId>
			<version>${slf4j.version}</version>
		</dependency>

		<!-- Used for base64 encoding of UDFs -->
		<dependency>
			<groupId>commons-codec</groupId>
			<artifactId>commons-codec</artifactId>
		</dependency>

		<!-- Used for code generation -->
		<dependency>
			<groupId>org.apache.commons</groupId>
			<artifactId>commons-lang3</artifactId>
		</dependency>

		<!-- Used for code generation -->
		<dependency>
			<groupId>org.codehaus.janino</groupId>
			<artifactId>janino</artifactId>
		</dependency>

		<!-- Used for translation of table programs -->
		<dependency>
			<groupId>org.apache.calcite</groupId>
			<artifactId>calcite-core</artifactId>
			<!-- When updating the Calcite version, make sure to update the dependency exclusions -->
			<version>1.16.0</version>
			<exclusions>
				<!-- Dependencies that are not needed for how we use Calcite right now -->
				<exclusion>
					<groupId>org.apache.calcite.avatica</groupId>
					<artifactId>avatica-metrics</artifactId>
				</exclusion>
				<exclusion>
					<groupId>com.fasterxml.jackson.core</groupId>
					<artifactId>jackson-core</artifactId>
				</exclusion>
				<exclusion>
					<groupId>com.fasterxml.jackson.core</groupId>
					<artifactId>jackson-annotations</artifactId>
				</exclusion>
				<exclusion>
					<groupId>com.fasterxml.jackson.core</groupId>
					<artifactId>jackson-databind</artifactId>
				</exclusion>
				<exclusion>
					<groupId>com.google.protobuf</groupId>
					<artifactId>protobuf-java</artifactId>
				</exclusion>
				<exclusion>
					<groupId>org.apache.httpcomponents</groupId>
					<artifactId>httpclient</artifactId>
				</exclusion>
				<exclusion>
					<groupId>org.apache.httpcomponents</groupId>
					<artifactId>httpcore</artifactId>
				</exclusion>
				<exclusion>
					<groupId>commons-dbcp</groupId>
					<artifactId>commons-dbcp</artifactId>
				</exclusion>
			</exclusions>
		</dependency>

		<!-- Used for TableType classpath discovery -->
		<dependency>
			<groupId>org.reflections</groupId>
			<artifactId>reflections</artifactId>
			<version>0.9.10</version>
			<exclusions>
				<exclusion>
					<groupId>com.google.code.findbugs</groupId>
					<artifactId>annotations</artifactId>
				</exclusion>
				<exclusion>
					<groupId>com.google.guava</groupId>
					<artifactId>guava</artifactId>
				</exclusion>
			</exclusions>
			<scope>compile</scope>
		</dependency>

		<!-- Used for date/time formatting -->
		<dependency>
			<groupId>joda-time</groupId>
			<artifactId>joda-time</artifactId>
		</dependency>

		<!-- test dependencies -->

		<dependency>
			<groupId>org.apache.flink</groupId>
			<artifactId>flink-test-utils_${scala.binary.version}</artifactId>
			<version>${project.version}</version>
			<scope>test</scope>
		</dependency>

		<dependency>
			<groupId>org.apache.flink</groupId>
			<artifactId>flink-tests_${scala.binary.version}</artifactId>
			<version>${project.version}</version>
			<type>test-jar</type>
			<scope>test</scope>
		</dependency>

		<dependency>
			<groupId>org.apache.flink</groupId>
			<artifactId>flink-core</artifactId>
			<version>${project.version}</version>
			<type>test-jar</type>
			<scope>test</scope>
		</dependency>

		<dependency>
			<groupId>org.apache.flink</groupId>
			<artifactId>flink-statebackend-rocksdb_${scala.binary.version}</artifactId>
			<version>${project.version}</version>
			<scope>test</scope>
		</dependency>

		<dependency>
			<groupId>org.apache.flink</groupId>
			<artifactId>flink-streaming-java_${scala.binary.version}</artifactId>
			<version>${project.version}</version>
			<type>test-jar</type>
			<scope>test</scope>
		</dependency>

		<dependency>
			<groupId>org.apache.flink</groupId>
			<artifactId>flink-runtime_${scala.binary.version}</artifactId>
			<version>${project.version}</version>
			<scope>test</scope>
			<type>test-jar</type>
		</dependency>

		<dependency>
			<groupId>org.apache.flink</groupId>
			<artifactId>flink-avro</artifactId>
			<version>${project.version}</version>
			<scope>test</scope>
			<type>test-jar</type>
		</dependency>

		<dependency>
			<groupId>org.apache.flink</groupId>
			<artifactId>flink-avro</artifactId>
			<version>${project.version}</version>
			<scope>test</scope>
		</dependency>
	</dependencies>

	<build>
		<plugins>
			<!-- Scala Compiler -->
			<plugin>
				<groupId>net.alchim31.maven</groupId>
				<artifactId>scala-maven-plugin</artifactId>
				<executions>
					<!-- Run scala compiler in the process-resources phase, so that dependencies on
						scala classes can be resolved later in the (Java) compile phase -->
					<execution>
						<id>scala-compile-first</id>
						<phase>process-resources</phase>
						<goals>
							<goal>add-source</goal>
							<goal>compile</goal>
						</goals>
					</execution>

					<!-- Run scala compiler in the process-test-resources phase, so that dependencies on
						 scala classes can be resolved later in the (Java) test-compile phase -->
					<execution>
						<id>scala-test-compile</id>
						<phase>process-test-resources</phase>
						<goals>
							<goal>testCompile</goal>
						</goals>
					</execution>
				</executions>
			</plugin>

			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-shade-plugin</artifactId>
				<executions>
					<execution>
						<id>shade-flink</id>
						<configuration>
							<filters>
								<filter>
									<artifact>*:*</artifact>
									<excludes>
										<!-- excluded all these files for a clean flink-table jar -->
										<exclude>org-apache-calcite-jdbc.properties</exclude>
										<exclude>common.proto</exclude>
										<exclude>requests.proto</exclude>
										<exclude>responses.proto</exclude>
										<exclude>mozilla/**</exclude>
										<exclude>codegen/**</exclude>
										<exclude>google/**</exclude>
										<exclude>META-INF/*.SF</exclude>
										<exclude>META-INF/*.DSA</exclude>
										<exclude>META-INF/*.RSA</exclude>
										<exclude>META-INF/services/java.sql.Driver</exclude>
										<exclude>properties.dtd</exclude>
										<exclude>PropertyList-1.0.dtd</exclude>
										<exclude>digesterRules.xml</exclude>
										<!-- not relocated for now, because it is needed by Calcite -->
										<!--<exclude>org.codehaus.commons.compiler.properties</exclude>-->
									</excludes>
								</filter>
							</filters>
							<artifactSet>
								<includes combine.children="append">
									<include>org.apache.calcite:*</include>
									<include>org.apache.calcite.avatica:*</include>

									<!-- Calcite's dependencies -->
									<include>com.google.guava:guava</include>
									<include>net.hydromatic:*</include>
									<include>com.esri.geometry:*</include>

									<!-- flink-table dependencies -->
									<include>commons-configuration:*</include>
									<include>org.slf4j:jcl-over-slf4j</include>
									<include>commons-lang:*</include>
									<include>commons-codec:*</include>
									<include>commons-collections:*</include>
									<include>org.apache.commons:commons-lang3</include>
									<include>org.codehaus.janino:*</include>
									<include>org.reflections:*</include>
									<include>joda-time:*</include>
								</includes>
							</artifactSet>
							<relocations>
								<!-- Calcite is not relocated for now, because we expose it at some locations such as CalciteConfig -->
								<!--<relocation>
									<pattern>org.apache.calcite</pattern>
									<shadedPattern>org.apache.flink.calcite.shaded.org.apache.calcite</shadedPattern>
								</relocation>-->

								<!-- Calcite's dependencies -->
								<relocation>
									<pattern>com.google</pattern>
									<shadedPattern>org.apache.flink.calcite.shaded.com.google</shadedPattern>
								</relocation>
								<relocation>
									<pattern>org.pentaho</pattern>
									<shadedPattern>org.apache.flink.calcite.shaded.org.pentaho</shadedPattern>
								</relocation>
								<relocation>
									<pattern>com.esri</pattern>
									<shadedPattern>org.apache.flink.calcite.shaded.com.esri</shadedPattern>
								</relocation>

								<!-- flink-table dependencies -->
								<relocation>
									<pattern>org.apache.commons</pattern>
									<shadedPattern>org.apache.flink.table.shaded.org.apache.commons</shadedPattern>
								</relocation>
								<relocation>
									<pattern>org.reflections</pattern>
									<shadedPattern>org.apache.flink.table.shaded.org.reflections</shadedPattern>
								</relocation>
								<relocation>
									<pattern>org.joda.time</pattern>
									<shadedPattern>org.apache.flink.table.shaded.org.joda.time</shadedPattern>
								</relocation>
								<!-- not relocated for now, because we need to change the contents of the properties field otherwise -->
								<!--<relocation>
									<pattern>org.codehaus</pattern>
									<shadedPattern>org.apache.flink.table.shaded.org.codehaus</shadedPattern>
								</relocation>-->
							</relocations>
						</configuration>
					</execution>
				</executions>
			</plugin>

			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-jar-plugin</artifactId>
				<executions>
					<execution>
						<goals>
							<goal>test-jar</goal>
						</goals>
					</execution>
				</executions>
			</plugin>

			<!-- Scala Code Style, most of the configuration done via plugin management -->
			<plugin>
				<groupId>org.scalastyle</groupId>
				<artifactId>scalastyle-maven-plugin</artifactId>
				<configuration>
					<configLocation>${project.basedir}/../../tools/maven/scalastyle-config.xml</configLocation>
				</configuration>
			</plugin>
		</plugins>
	</build>
</project>
