<?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-SNAPSHOT</version>
		<relativePath>..</relativePath>
	</parent>

	<artifactId>flink-sql-client</artifactId>
	<name>flink-sql-client</name>

	<packaging>jar</packaging>

	<dependencies>

		<!-- core dependencies -->

		<!-- Flink modules -->
		<dependency>
			<groupId>org.apache.flink</groupId>
			<artifactId>flink-core</artifactId>
			<version>${project.version}</version>
		</dependency>

		<dependency>
			<groupId>org.apache.flink</groupId>
			<!-- use a dedicated Scala version to not depend on it -->
			<artifactId>flink-clients_2.11</artifactId>
			<version>${project.version}</version>
		</dependency>

		<dependency>
			<groupId>org.apache.flink</groupId>
			<!-- use a dedicated Scala version to not depend on it -->
			<artifactId>flink-streaming-scala_2.11</artifactId>
			<version>${project.version}</version>
		</dependency>

		<dependency>
			<groupId>org.apache.flink</groupId>
			<!-- use a dedicated Scala version to not depend on it -->
			<artifactId>flink-table_2.11</artifactId>
			<version>${project.version}</version>
		</dependency>

		<!-- logging utilities -->
		<dependency>
			<groupId>org.slf4j</groupId>
			<artifactId>slf4j-log4j12</artifactId>
			<version>${slf4j.version}</version>
		</dependency>

		<dependency>
			<groupId>log4j</groupId>
			<artifactId>log4j</artifactId>
			<version>${log4j.version}</version>
		</dependency>

		<!-- logging -->
		<dependency>
			<groupId>org.slf4j</groupId>
			<artifactId>slf4j-api</artifactId>
			<version>${slf4j.version}</version>
		</dependency>

		<!-- CLI for SQL CLI client -->
		<dependency>
			<groupId>org.jline</groupId>
			<artifactId>jline-terminal</artifactId>
			<version>3.5.2</version>
		</dependency>

		<dependency>
			<groupId>org.jline</groupId>
			<artifactId>jline-reader</artifactId>
			<version>3.5.2</version>
		</dependency>

		<!-- configuration -->
		<dependency>
			<groupId>org.apache.flink</groupId>
			<artifactId>flink-shaded-jackson</artifactId>
		</dependency>

		<!-- test dependencies -->

		<dependency>
			<groupId>org.apache.flink</groupId>
			<!-- use a dedicated Scala version to not depend on it -->
			<artifactId>flink-runtime_2.11</artifactId>
			<version>${project.version}</version>
			<type>test-jar</type>
			<scope>test</scope>
		</dependency>

		<dependency>
			<groupId>org.apache.flink</groupId>
			<!-- use a dedicated Scala version to not depend on it -->
			<artifactId>flink-test-utils_2.11</artifactId>
			<version>${project.version}</version>
			<scope>test</scope>
		</dependency>

		<dependency>
			<groupId>org.apache.flink</groupId>
			<!-- use a dedicated Scala version to not depend on it -->
			<artifactId>flink-clients_2.11</artifactId>
			<version>${project.version}</version>
			<type>test-jar</type>
			<scope>test</scope>
		</dependency>

	</dependencies>

	<build>
		<plugins>
			<!-- Build flink-sql-client jar -->
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-shade-plugin</artifactId>
				<version>2.4.1</version>
				<executions>
					<!-- Exclude all flink-dist files and only include flink-table and flink-sql-client -->
					<execution>
						<phase>package</phase>
						<goals>
							<goal>shade</goal>
						</goals>
						<configuration>
							<filters>
								<filter>
									<artifact>*:*</artifact>
									<includes>
										<!-- flink-table + flink-sql-client -->
										<include>org/apache/calcite/**</include>
										<include>org/apache/flink/calcite/shaded/**</include>
										<include>org/apache/flink/table/**</include>
										<include>org.codehaus.commons.compiler.properties</include>
										<include>org/codehaus/janino/**</include>
										<include>org/codehaus/commons/**</include>
										<include>META-INF/services/org.apache.flink.table.sources.TableSourceFactory</include>
										<!-- flink-sql-client -->
										<include>org/jline/**</include>
										<include>com/fasterxml/jackson/**</include>
									</includes>
								</filter>
							</filters>
						</configuration>
					</execution>
				</executions>
			</plugin>

			<!-- Test dependency classloading -->
			<plugin>
				<artifactId>maven-assembly-plugin</artifactId>
				<version>2.4</version>
				<executions>
					<execution>
						<id>create-table-source-factory-jar</id>
						<phase>process-test-classes</phase>
						<goals>
							<goal>single</goal>
						</goals>
						<configuration>
							<finalName>table-source-factory</finalName>
							<attach>false</attach>
							<descriptors>
								<descriptor>src/test/assembly/test-table-source-factory.xml</descriptor>
							</descriptors>
						</configuration>
					</execution>
				</executions>
			</plugin>
		</plugins>
	</build>
</project>
