<?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/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>

	<parent>
		<groupId>org.apache.flink</groupId>
		<artifactId>flink-examples</artifactId>
		<version>1.12.0-hw-ei-310003</version>
		<relativePath>..</relativePath>
	</parent>

	<name>Flink : Examples : Table</name>
	<artifactId>flink-examples-table_2.11</artifactId>
	<packaging>jar</packaging>

	<dependencies>

		<!-- Table ecosystem -->
		<dependency>
			<groupId>org.apache.flink</groupId>
			<artifactId>flink-table-api-java-bridge_2.11</artifactId>
			<version>${project.version}</version>
		</dependency>
		<dependency>
			<groupId>org.apache.flink</groupId>
			<artifactId>flink-table-api-scala-bridge_2.11</artifactId>
			<version>${project.version}</version>
		</dependency>
		<dependency>
			<groupId>org.apache.flink</groupId>
			<artifactId>flink-table-planner_2.11</artifactId>
			<version>${project.version}</version>
		</dependency>
		<dependency>
			<groupId>org.apache.flink</groupId>
			<artifactId>flink-table-planner-blink_2.11</artifactId>
			<version>${project.version}</version>
		</dependency>

		<!-- Table connectors and formats -->
		<dependency>
			<groupId>org.apache.flink</groupId>
			<artifactId>flink-csv</artifactId>
			<version>${project.version}</version>
		</dependency>

		<!-- Flink core -->
		<dependency>
			<groupId>org.apache.flink</groupId>
			<artifactId>flink-streaming-scala_2.11</artifactId>
			<version>${project.version}</version>
		</dependency>
		<dependency>
			<groupId>org.apache.flink</groupId>
			<artifactId>flink-clients_2.11</artifactId>
			<version>${project.version}</version>
		</dependency>

		<!-- Test dependencies -->
		<dependency>
			<groupId>org.apache.flink</groupId>
			<artifactId>flink-test-utils_2.11</artifactId>
			<version>${project.version}</version>
			<scope>test</scope>
		</dependency>
	</dependencies>

	<build>
		<plugins>
			<plugin>
				<groupId>net.alchim31.maven</groupId>
				<artifactId>scala-maven-plugin</artifactId>
				<executions>
					<execution>
						<id>scala-compile-first</id>
						<phase>process-resources</phase>
						<goals>
							<goal>add-source</goal>
							<goal>compile</goal>
						</goals>
					</execution>
					<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-jar-plugin</artifactId>
				<executions>

					<execution>
						<id>GettingStartedExample</id>
						<phase>package</phase>
						<goals>
							<goal>jar</goal>
						</goals>

						<configuration>
							<classifier>GettingStartedExample</classifier>

							<archive>
								<manifestEntries>
									<program-class>org.apache.flink.table.examples.java.basics.GettingStartedExample</program-class>
								</manifestEntries>
							</archive>

							<includes>
								<include>org/apache/flink/table/examples/java/basics/GettingStartedExample*</include>
							</includes>
						</configuration>
					</execution>

					<execution>
						<id>UpdatingTopCityExample</id>
						<phase>package</phase>
						<goals>
							<goal>jar</goal>
						</goals>

						<configuration>
							<classifier>UpdatingTopCityExample</classifier>

							<archive>
								<manifestEntries>
									<program-class>org.apache.flink.table.examples.java.basics.UpdatingTopCityExample</program-class>
								</manifestEntries>
							</archive>

							<includes>
								<include>org/apache/flink/table/examples/java/basics/UpdatingTopCityExample*</include>
							</includes>
						</configuration>
					</execution>

					<execution>
						<id>StreamSQLExample</id>
						<phase>package</phase>
						<goals>
							<goal>jar</goal>
						</goals>

						<configuration>
							<classifier>StreamSQLExample</classifier>

							<archive>
								<manifestEntries>
									<program-class>org.apache.flink.table.examples.java.basics.StreamSQLExample</program-class>
								</manifestEntries>
							</archive>

							<includes>
								<include>org/apache/flink/table/examples/java/basics/StreamSQLExample*</include>
							</includes>
						</configuration>
					</execution>

					<execution>
						<id>StreamWindowSQLExample</id>
						<phase>package</phase>
						<goals>
							<goal>jar</goal>
						</goals>

						<configuration>
							<classifier>StreamWindowSQLExample</classifier>

							<archive>
								<manifestEntries>
									<program-class>org.apache.flink.table.examples.java.basics.StreamWindowSQLExample</program-class>
								</manifestEntries>
							</archive>

							<includes>
								<include>org/apache/flink/table/examples/java/basics/StreamWindowSQLExample*</include>
							</includes>
						</configuration>
					</execution>

					<execution>
						<id>WordCountSQL</id>
						<phase>package</phase>
						<goals>
							<goal>jar</goal>
						</goals>

						<configuration>
							<classifier>WordCountSQL</classifier>

							<archive>
								<manifestEntries>
									<program-class>org.apache.flink.table.examples.java.basics.WordCountSQL</program-class>
								</manifestEntries>
							</archive>

							<includes>
								<include>org/apache/flink/table/examples/java/basics/WordCountSQL*</include>
							</includes>
						</configuration>
					</execution>

					<execution>
						<id>WordCountTable</id>
						<phase>package</phase>
						<goals>
							<goal>jar</goal>
						</goals>

						<configuration>
							<classifier>WordCountTable</classifier>

							<archive>
								<manifestEntries>
									<program-class>org.apache.flink.table.examples.java.basics.WordCountTable</program-class>
								</manifestEntries>
							</archive>

							<includes>
								<include>org/apache/flink/table/examples/java/basics/WordCountTable*</include>
							</includes>
						</configuration>
					</execution>

					<execution>
						<id>ChangelogSocketExample</id>
						<phase>package</phase>
						<goals>
							<goal>jar</goal>
						</goals>

						<configuration>
							<classifier>ChangelogSocketExample</classifier>

							<archive>
								<manifestEntries>
									<program-class>org.apache.flink.table.examples.java.connectors.ChangelogSocketExample</program-class>
								</manifestEntries>
							</archive>

							<includes>
								<include>org/apache/flink/table/examples/java/connectors/*</include>
								<include>**/META-INF/services/*</include>
							</includes>
						</configuration>
					</execution>

					<execution>
						<id>StreamTableExample</id>
						<phase>package</phase>
						<goals>
							<goal>jar</goal>
						</goals>

						<configuration>
							<classifier>StreamTableExample</classifier>

							<archive>
								<manifestEntries>
									<program-class>org.apache.flink.table.examples.scala.StreamTableExample</program-class>
								</manifestEntries>
							</archive>

							<includes>
								<include>org/apache/flink/table/examples/scala/StreamTableExample*</include>
							</includes>
						</configuration>
					</execution>

					<execution>
						<id>TPCHQuery3Table</id>
						<phase>package</phase>
						<goals>
							<goal>jar</goal>
						</goals>

						<configuration>
							<classifier>TPCHQuery3Table</classifier>

							<archive>
								<manifestEntries>
									<program-class>org.apache.flink.table.examples.scala.TPCHQuery3Table</program-class>
								</manifestEntries>
							</archive>

							<includes>
								<include>org/apache/flink/table/examples/scala/TPCHQuery3Table*</include>
							</includes>
						</configuration>
					</execution>
				</executions>
			</plugin>

			<!--simplify the name of example JARs for build-target/examples -->
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-antrun-plugin</artifactId>
				<executions>
					<execution>
						<id>rename</id>
						<configuration>
							<target>
								<copy file="${project.basedir}/target/flink-examples-table_2.11-${project.version}-GettingStartedExample.jar" tofile="${project.basedir}/target/GettingStartedExample.jar"/>
								<copy file="${project.basedir}/target/flink-examples-table_2.11-${project.version}-StreamSQLExample.jar" tofile="${project.basedir}/target/StreamSQLExample.jar"/>
								<copy file="${project.basedir}/target/flink-examples-table_2.11-${project.version}-StreamWindowSQLExample.jar" tofile="${project.basedir}/target/StreamWindowSQLExample.jar"/>
								<copy file="${project.basedir}/target/flink-examples-table_2.11-${project.version}-WordCountSQL.jar" tofile="${project.basedir}/target/WordCountSQL.jar"/>
								<copy file="${project.basedir}/target/flink-examples-table_2.11-${project.version}-WordCountTable.jar" tofile="${project.basedir}/target/WordCountTable.jar"/>
								<copy file="${project.basedir}/target/flink-examples-table_2.11-${project.version}-StreamTableExample.jar" tofile="${project.basedir}/target/StreamTableExample.jar"/>
								<copy file="${project.basedir}/target/flink-examples-table_2.11-${project.version}-TPCHQuery3Table.jar" tofile="${project.basedir}/target/TPCHQuery3Table.jar"/>
								<copy file="${project.basedir}/target/flink-examples-table_2.11-${project.version}-ChangelogSocketExample.jar" tofile="${project.basedir}/target/ChangelogSocketExample.jar"/>
							</target>
						</configuration>
					</execution>
				</executions>
			</plugin>
		</plugins>
	</build>
</project>
