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

	<packaging>pom</packaging>

	<artifactId>flink-end-to-end-tests</artifactId>
	<name>Flink : E2E Tests : </name>

	<properties>
		<excludeE2E/>
		<japicmp.skip>true</japicmp.skip>
	</properties>

	<modules>
		<module>flink-cli-test</module>
		<module>flink-parent-child-classloading-test-program</module>
		<module>flink-parent-child-classloading-test-lib-package</module>
		<module>flink-dataset-allround-test</module>
		<module>flink-dataset-fine-grained-recovery-test</module>
		<module>flink-datastream-allround-test</module>
		<module>flink-batch-sql-test</module>
		<module>flink-stream-sql-test</module>
		<module>flink-distributed-cache-via-blob-test</module>
		<module>flink-high-parallelism-iterations-test</module>
		<module>flink-stream-stateful-job-upgrade-test</module>
		<module>flink-queryable-state-test</module>
		<module>flink-local-recovery-and-allocation-test</module>
		<module>flink-elasticsearch6-test</module>
		<module>flink-quickstart-test</module>
		<module>flink-confluent-schema-registry</module>
		<module>flink-stream-state-ttl-test</module>
		<module>flink-sql-client-test</module>
		<module>flink-file-sink-test</module>
		<module>flink-state-evolution-test</module>
		<module>flink-rocksdb-state-memory-control-test</module>
		<module>flink-end-to-end-tests-common</module>
		<module>flink-metrics-availability-test</module>
		<module>flink-metrics-reporter-prometheus-test</module>
		<module>flink-heavy-deployment-stress-test</module>
		<module>flink-connector-gcp-pubsub-emulator-tests</module>
		<module>flink-streaming-kafka-test-base</module>
		<module>flink-streaming-kafka-test</module>
		<module>flink-plugins-test</module>
		<module>flink-tpch-test</module>
		<module>flink-streaming-kinesis-test</module>
		<module>flink-elasticsearch7-test</module>
		<module>flink-end-to-end-tests-common-kafka</module>
		<module>flink-tpcds-test</module>
		<module>flink-netty-shuffle-memory-control-test</module>
		<module>flink-python-test</module>
		<module>flink-end-to-end-tests-hbase</module>
		<module>flink-end-to-end-tests-pulsar</module>
		<module>flink-glue-schema-registry-avro-test</module>
		<module>flink-glue-schema-registry-json-test</module>
		<module>flink-end-to-end-tests-scala</module>
		<module>flink-end-to-end-tests-aws-kinesis-streams</module>
		<module>flink-end-to-end-tests-aws-kinesis-firehose</module>
		<module>flink-end-to-end-tests-sql</module>
	</modules>

	<dependencyManagement>
		<dependencies>
			<!-- We pick an arbitrary version of net.java.dev.jna:jna to satisfy dependency
				 convergence for org.testcontainers:testcontainers which transitively depends on
				 two different versions.-->
			<dependency>
				<groupId>net.java.dev.jna</groupId>
				<artifactId>jna</artifactId>
				<version>5.5.0</version>
			</dependency>
		</dependencies>
	</dependencyManagement>

	<dependencies>
		<dependency>
			<!-- this module depends on the flink-yarn-tests's "target/yarn.classpath" file -->
			<groupId>org.apache.flink</groupId>
			<artifactId>flink-yarn-tests</artifactId>
			<version>${project.version}</version>
			<scope>provided</scope>
			<exclusions>
				<exclusion>
					<groupId>*</groupId>
					<artifactId>*</artifactId>
				</exclusion>
			</exclusions>
		</dependency>
	</dependencies>

	<profiles>
		<profile>
			<id>run-end-to-end-tests</id>
			<build>
				<plugins>
					<plugin>
						<groupId>org.apache.maven.plugins</groupId>
						<artifactId>maven-surefire-plugin</artifactId>
						<executions>
							<execution>
								<id>end-to-end-tests</id>
								<phase>integration-test</phase>
								<goals>
									<goal>test</goal>
								</goals>
								<configuration>
									<includes>
										<include>**/*.*</include>
									</includes>
									<excludedGroups>${excludeE2E}</excludedGroups>
									<!-- E2E tests must not access flink-dist concurrently. -->
									<forkCount>1</forkCount>
									<systemPropertyVariables>
										<moduleDir>${project.basedir}</moduleDir>
									</systemPropertyVariables>
								</configuration>
							</execution>
						</executions>
					</plugin>
				</plugins>
			</build>
		</profile>
		<profile>
			<id>java11</id>
			<activation>
				<jdk>[11,)</jdk>
			</activation>
			<properties>
				<excludeE2E>org.apache.flink.testutils.junit.FailsOnJava11</excludeE2E>
			</properties>
		</profile>
	</profiles>

	<build>
		<plugins>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-deploy-plugin</artifactId>
				<configuration>
					<skip>true</skip>
				</configuration>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-surefire-plugin</artifactId>
				<executions>
					<execution>
						<id>default-test</id>
						<phase>none</phase>
					</execution>
					<execution>
						<id>integration-tests</id>
						<phase>none</phase>
					</execution>
				</executions>
			</plugin>
		</plugins>

		<pluginManagement>
			<plugins>
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-shade-plugin</artifactId>
					<configuration>
						<artifactSet>
							<excludes>
								<exclude>com.google.code.findbugs:jsr305</exclude>
								<exclude>org.slf4j:slf4j-api</exclude>
							</excludes>
						</artifactSet>
						<filters>
							<filter>
								<artifact>*:*</artifact>
								<excludes>
									<exclude>META-INF/*.SF</exclude>
									<exclude>META-INF/*.DSA</exclude>
									<exclude>META-INF/*.RSA</exclude>
								</excludes>
							</filter>
						</filters>
					</configuration>
				</plugin>
			</plugins>
		</pluginManagement>
	</build>
	
</project>
