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

	<artifactId>flink-kubernetes_${scala.binary.version}</artifactId>
	<name>Flink : Kubernetes</name>
	<packaging>jar</packaging>

	<properties>
		<kubernetes.client.version>4.9.2</kubernetes.client.version>
	</properties>

	<!-- Set dependency version for transitive dependencies -->
	<dependencyManagement>
		<dependencies>
			<dependency>
				<groupId>com.squareup.okhttp3</groupId>
				<artifactId>okhttp</artifactId>
				<version>3.12.1</version>
			</dependency>
		</dependencies>
	</dependencyManagement>

	<dependencies>

		<!-- core dependencies  -->

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

		<dependency>
			<groupId>org.apache.flink</groupId>
			<artifactId>flink-runtime_${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>

		<dependency>
			<groupId>io.fabric8</groupId>
			<artifactId>kubernetes-client</artifactId>
			<version>${kubernetes.client.version}</version>
		</dependency>

		<!-- test dependencies -->
		<dependency>
			<groupId>io.fabric8</groupId>
			<artifactId>kubernetes-server-mock</artifactId>
			<version>${kubernetes.client.version}</version>
			<scope>test</scope>
		</dependency>

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

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

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

	</dependencies>

	<build>
		<plugins>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-surefire-plugin</artifactId>
				<configuration>
					<reuseForks>true</reuseForks>
					<forkCount>1</forkCount>
				</configuration>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-shade-plugin</artifactId>
				<executions>
					<execution>
						<id>shade-flink</id>
						<phase>package</phase>
						<goals>
							<goal>shade</goal>
						</goals>
						<configuration combine.children="append">
							<artifactSet>
								<includes combine.children="append">
									<include>io.fabric8:kubernetes-client</include>
									<include>io.fabric8:kubernetes-model</include>
									<include>io.fabric8:kubernetes-model-common</include>
									<include>io.fabric8:zjsonpatch</include>

									<!-- Shade all the dependencies of kubernetes client  -->
									<include>com.fasterxml.jackson.core:jackson-core</include>
									<include>com.fasterxml.jackson.core:jackson-annotations</include>
									<include>com.fasterxml.jackson.core:jackson-databind</include>
									<include>com.fasterxml.jackson.dataformat:jackson-dataformat-yaml</include>
									<include>com.fasterxml.jackson.datatype:jackson-datatype-jsr310</include>
									<include>com.squareup.okhttp3:*</include>
									<include>com.squareup.okio:okio</include>
									<include>org.yaml:*</include>
									<include>dk.brics.automaton:*</include>

									<include>META-INF/services/org.apache.flink.*</include>
								</includes>
							</artifactSet>
							<filters combine.children="append">
								<filter>
									<artifact>*:*</artifact>
									<excludes>
										<exclude>*.aut</exclude>
										<exclude>META-INF/maven/**</exclude>
										<exclude>META-INF/services/*com.fasterxml*</exclude>
										<exclude>META-INF/proguard/**</exclude>
										<exclude>OSGI-INF/**</exclude>
										<exclude>schema/**</exclude>
										<exclude>*.vm</exclude>
										<exclude>*.properties</exclude>
										<exclude>*.xml</exclude>
										<exclude>META-INF/jandex.idx</exclude>
										<exclude>license.header</exclude>
									</excludes>
								</filter>
							</filters>
							<relocations>
								<relocation>
									<pattern>com.fasterxml.jackson</pattern>
									<shadedPattern>org.apache.flink.kubernetes.shaded.com.fasterxml.jackson</shadedPattern>
								</relocation>
								<relocation>
									<pattern>okhttp3</pattern>
									<shadedPattern>org.apache.flink.kubernetes.shaded.okhttp3</shadedPattern>
								</relocation>
								<relocation>
									<pattern>okio</pattern>
									<shadedPattern>org.apache.flink.kubernetes.shaded.okio</shadedPattern>
								</relocation>
								<relocation>
									<pattern>org.yaml</pattern>
									<shadedPattern>org.apache.flink.kubernetes.shaded.org.yaml</shadedPattern>
								</relocation>
								<relocation>
									<pattern>dk.brics.automaton</pattern>
									<shadedPattern>org.apache.flink.kubernetes.shaded.dk.brics.automaton</shadedPattern>
								</relocation>
							</relocations>
						</configuration>
					</execution>
				</executions>
			</plugin>
		</plugins>
	</build>
</project>
