<?xml version="1.0" encoding="UTF-8"?>
<!--
This file has been modified from the original.

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-connectors</artifactId>
		<version>1.8.2</version>
		<relativePath/>
	</parent>

	<groupId>software.amazon.kinesis</groupId>
	<artifactId>amazon-kinesis-connector-flink</artifactId>
	<version>1.4.0</version>
	<name>Amazon Kinesis Connector for Apache Flink</name>

	<properties>
		<aws.sdk.version>1.12.7</aws.sdk.version>
		<aws.sdkv2.version>2.16.86</aws.sdkv2.version>
		<aws.kinesis-kcl.version>1.14.0</aws.kinesis-kcl.version>
		<aws.kinesis-kpl.version>0.14.0</aws.kinesis-kpl.version>
		<aws.dynamodbstreams-kinesis-adapter.version>1.5.3</aws.dynamodbstreams-kinesis-adapter.version>
		<httpclient.version>4.5.9</httpclient.version>
		<httpcore.version>4.4.11</httpcore.version>
		<guava.version>29.0-jre</guava.version>
		<jackson2.version>2.12.1</jackson2.version>
	</properties>

	<scm>
		<connection>scm:git:https://github.com/awslabs/amazon-kinesis-connector-flink.git</connection>
		<developerConnection>scm:git:git@github.com:awslabs/amazon-kinesis-connector-flink.git</developerConnection>
		<url>https://github.com/awslabs/amazon-kinesis-connector-flink/tree/master</url>
	</scm>

	<packaging>jar</packaging>

	<dependencyManagement>
		<dependencies>
			<dependency>
				<groupId>org.apache.flink</groupId>
				<artifactId>flink-test-utils-junit</artifactId>
				<version>${project.parent.version}</version>
				<scope>test</scope>
			</dependency>
			<dependency>
				<groupId>com.fasterxml.jackson.core</groupId>
				<artifactId>jackson-core</artifactId>
				<version>${jackson2.version}</version>
			</dependency>
			<dependency>
				<groupId>com.fasterxml.jackson.core</groupId>
				<artifactId>jackson-databind</artifactId>
				<version>${jackson2.version}</version>
			</dependency>
			<dependency>
				<groupId> com.fasterxml.jackson.core</groupId>
				<artifactId>jackson-annotations</artifactId>
				<version>${jackson2.version}</version>
			</dependency>
			<dependency>
				<groupId>com.fasterxml.jackson.dataformat</groupId>
				<artifactId>jackson-dataformat-cbor</artifactId>
				<version>${jackson2.version}</version>
			</dependency>
		</dependencies>
	</dependencyManagement>

	<dependencies>

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

		<dependency>
			<groupId>com.google.guava</groupId>
			<artifactId>guava</artifactId>
			<version>${guava.version}</version>
		</dependency>

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

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

		<dependency>
			<groupId>org.apache.flink</groupId>
			<artifactId>flink-streaming-java_${scala.binary.version}</artifactId>
			<version>${project.parent.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.parent.version}</version>
			<scope>test</scope>
		</dependency>

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

		<dependency>
			<groupId>com.amazonaws</groupId>
			<artifactId>amazon-kinesis-aggregator</artifactId>
			<version>1.0.3</version>
			<scope>test</scope>
		</dependency>

		<!-- Amazon AWS SDK v1.x dependencies -->
		<dependency>
			<groupId>com.amazonaws</groupId>
			<artifactId>aws-java-sdk-kinesis</artifactId>
			<version>${aws.sdk.version}</version>
		</dependency>

		<dependency>
			<groupId>com.amazonaws</groupId>
			<artifactId>aws-java-sdk-sts</artifactId>
			<version>${aws.sdk.version}</version>
		</dependency>

		<dependency>
			<groupId>com.amazonaws</groupId>
			<artifactId>aws-java-sdk-kms</artifactId>
			<version>${aws.sdk.version}</version>
		</dependency>

		<dependency>
			<groupId>com.amazonaws</groupId>
			<artifactId>aws-java-sdk-s3</artifactId>
			<version>${aws.sdk.version}</version>
		</dependency>

		<dependency>
			<groupId>com.amazonaws</groupId>
			<artifactId>aws-java-sdk-cloudwatch</artifactId>
			<version>${aws.sdk.version}</version>
		</dependency>

		<dependency>
			<groupId>com.amazonaws</groupId>
			<artifactId>aws-java-sdk-dynamodb</artifactId>
			<version>${aws.sdk.version}</version>
		</dependency>

		<dependency>
			<groupId>com.amazonaws</groupId>
			<artifactId>amazon-kinesis-producer</artifactId>
			<version>${aws.kinesis-kpl.version}</version>
		</dependency>

		<dependency>
			<groupId>com.amazonaws</groupId>
			<artifactId>amazon-kinesis-client</artifactId>
			<version>${aws.kinesis-kcl.version}</version>
		</dependency>

		<dependency>
			<groupId>com.amazonaws</groupId>
			<artifactId>dynamodb-streams-kinesis-adapter</artifactId>
			<version>${aws.dynamodbstreams-kinesis-adapter.version}</version>
		</dependency>

		<!-- Amazon AWS SDK v2.x dependencies -->
		<dependency>
			<groupId>software.amazon.awssdk</groupId>
			<artifactId>kinesis</artifactId>
			<version>${aws.sdkv2.version}</version>
		</dependency>

		<dependency>
			<groupId>software.amazon.awssdk</groupId>
			<artifactId>netty-nio-client</artifactId>
			<version>${aws.sdkv2.version}</version>
		</dependency>

		<dependency>
			<groupId>software.amazon.awssdk</groupId>
			<artifactId>sts</artifactId>
			<version>${aws.sdkv2.version}</version>
		</dependency>

		<dependency>
			<groupId>org.apache.httpcomponents</groupId>
			<artifactId>httpclient</artifactId>
			<version>${httpclient.version}</version>
		</dependency>
		<dependency>
			<groupId>org.apache.httpcomponents</groupId>
			<artifactId>httpcore</artifactId>
			<version>${httpcore.version}</version>
		</dependency>
	</dependencies>

	<build>
		<plugins>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-checkstyle-plugin</artifactId>
				<configuration>
					<suppressionsLocation>tools/maven/suppressions.xml</suppressionsLocation>
					<configLocation>tools/maven/checkstyle.xml</configLocation>
				</configuration>
			</plugin>

			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-shade-plugin</artifactId>
				<executions>
					<execution>
						<id>shade</id>
						<phase>package</phase>
						<goals>
							<goal>shade</goal>
						</goals>
						<configuration>
							<promoteTransitiveDependencies>true</promoteTransitiveDependencies>
							<artifactSet combine.children="append">
								<includes>
									<include>com.amazonaws:*</include>
									<include>com.google.protobuf:*</include>
									<include>org.apache.httpcomponents:*</include>
									<include>software.amazon.awssdk:*</include>
									<include>software.amazon.eventstream:*</include>
									<include>software.amazon.ion:*</include>
									<include>org.reactivestreams:*</include>
									<include>io.netty:*</include>
									<include>com.typesafe.netty:*</include>
								</includes>
							</artifactSet>
							<relocations combine.children="override">
								<!-- DO NOT RELOCATE GUAVA IN THIS PACKAGE -->
								<relocation>
									<pattern>com.google.protobuf</pattern>
									<shadedPattern>software.amazon.kinesis.shaded.com.google.protobuf</shadedPattern>
								</relocation>
								<relocation>
									<pattern>com.amazonaws</pattern>
									<shadedPattern>software.amazon.kinesis.shaded.com.amazonaws</shadedPattern>
								</relocation>
								<relocation>
									<pattern>org.apache.http</pattern>
									<shadedPattern>software.amazon.kinesis.shaded.org.apache.http</shadedPattern>
								</relocation>
								<relocation>
									<pattern>software.amazon.awssdk</pattern>
									<shadedPattern>software.amazon.kinesis.shaded.software.amazon.awssdk</shadedPattern>
								</relocation>
								<relocation>
									<pattern>software.amazon.eventstream</pattern>
									<shadedPattern>software.amazon.kinesis.shaded.software.amazon.eventstream</shadedPattern>
								</relocation>
								<relocation>
									<pattern>software.amazon.ion</pattern>
									<shadedPattern>software.amazon.kinesis.shaded.software.amazon.ion</shadedPattern>
								</relocation>
								<relocation>
									<pattern>io.netty</pattern>
									<shadedPattern>software.amazon.kinesis.shaded.io.netty</shadedPattern>
								</relocation>
								<relocation>
									<pattern>com.typesafe.netty</pattern>
									<shadedPattern>software.amazon.kinesis.shaded.com.typesafe.netty</shadedPattern>
								</relocation>
								<relocation>
									<pattern>org.reactivestreams</pattern>
									<shadedPattern>software.amazon.kinesis.shaded.org.reactivestreams</shadedPattern>
								</relocation>
							</relocations>
							<filters>
								<filter>
									<artifact>com.amazonaws:amazon-kinesis-producer</artifact>
									<excludes>
										<exclude>META-INF/THIRD_PARTY_NOTICES</exclude>
									</excludes>
								</filter>
							</filters>
						</configuration>
					</execution>
				</executions>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-surefire-plugin</artifactId>
				<configuration>
					<argLine>${surefireArgLine} -Xmx2048m</argLine>
				</configuration>
			</plugin>
			<plugin>
				<groupId>org.jacoco</groupId>
				<artifactId>jacoco-maven-plugin</artifactId>
				<version>0.8.5</version>
				<executions>
					<execution>
						<goals>
							<goal>prepare-agent</goal>
						</goals>
					</execution>
					<!-- attached to Maven test phase -->
					<execution>
						<id>report</id>
						<phase>test</phase>
						<goals>
							<goal>report</goal>
						</goals>
					</execution>
				</executions>
				<configuration>
					<destFile>${sonar.jacoco.reportPath}</destFile>
					<!-- Sets the VM argument line used when unit tests are run. -->
					<propertyName>surefireArgLine</propertyName>
				</configuration>
			</plugin>
		</plugins>
	</build>
</project>
