<?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">
	<parent>
		<artifactId>flink-end-to-end-tests</artifactId>
		<groupId>org.apache.flink</groupId>
		<version>1.15.4</version>
	</parent>
	<modelVersion>4.0.0</modelVersion>

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

	<properties>
		<pulsar.version>2.10.2</pulsar.version>
		<bouncycastle.version>1.69</bouncycastle.version>
		<jaxb-api.version>2.3.1</jaxb-api.version>
	</properties>

	<dependencies>
		<dependency>
			<groupId>org.apache.flink</groupId>
			<artifactId>flink-end-to-end-tests-common</artifactId>
			<version>${project.version}</version>
		</dependency>
		<dependency>
			<groupId>org.apache.flink</groupId>
			<artifactId>flink-connector-test-utils</artifactId>
			<version>${project.version}</version>
			<exclusions>
				<exclusion>
					<groupId>com.google.guava</groupId>
					<artifactId>guava</artifactId>
				</exclusion>
			</exclusions>
		</dependency>
		<dependency>
			<groupId>org.apache.flink</groupId>
			<artifactId>flink-connector-pulsar</artifactId>
			<version>${project.version}</version>
		</dependency>
		<!-- pulsar-client-all requires jaxb-api for javax.xml.bind.annotation.XmlElement -->
		<!-- packaged in flink-dist but not provided in e2e environment. -->
		<dependency>
			<groupId>javax.xml.bind</groupId>
			<artifactId>jaxb-api</artifactId>
			<version>${jaxb.api.version}</version>
		</dependency>
		<dependency>
			<groupId>org.apache.flink</groupId>
			<artifactId>flink-connector-pulsar</artifactId>
			<version>${project.version}</version>
			<type>test-jar</type>
		</dependency>
		<dependency>
			<groupId>org.testcontainers</groupId>
			<artifactId>pulsar</artifactId>
		</dependency>
	</dependencies>

	<build>
		<plugins>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-surefire-plugin</artifactId>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-dependency-plugin</artifactId>
				<executions>
					<execution>
						<id>copy</id>
						<phase>pre-integration-test</phase>
						<goals>
							<goal>copy</goal>
						</goals>
					</execution>
				</executions>
				<configuration>
					<artifactItems>
						<artifactItem>
							<groupId>org.apache.flink</groupId>
							<artifactId>flink-connector-test-utils</artifactId>
							<version>${project.version}</version>
							<destFileName>flink-connector-testing.jar</destFileName>
							<type>jar</type>
							<outputDirectory>${project.build.directory}/dependencies
							</outputDirectory>
						</artifactItem>
						<artifactItem>
							<groupId>org.apache.flink</groupId>
							<artifactId>flink-connector-pulsar</artifactId>
							<version>${project.version}</version>
							<destFileName>pulsar-connector.jar</destFileName>
							<type>jar</type>
							<outputDirectory>${project.build.directory}/dependencies</outputDirectory>
						</artifactItem>
						<artifactItem>
							<groupId>org.apache.pulsar</groupId>
							<artifactId>pulsar-client-all</artifactId>
							<version>${pulsar.version}</version>
							<destFileName>pulsar-client-all.jar</destFileName>
							<type>jar</type>
							<outputDirectory>${project.build.directory}/dependencies</outputDirectory>
						</artifactItem>
						<artifactItem>
							<groupId>org.apache.pulsar</groupId>
							<artifactId>pulsar-client-api</artifactId>
							<version>${pulsar.version}</version>
							<destFileName>pulsar-client-api.jar</destFileName>
							<type>jar</type>
							<outputDirectory>${project.build.directory}/dependencies</outputDirectory>
						</artifactItem>
						<artifactItem>
							<groupId>org.apache.pulsar</groupId>
							<artifactId>pulsar-client-admin-api</artifactId>
							<version>${pulsar.version}</version>
							<destFileName>pulsar-admin-api.jar</destFileName>
							<type>jar</type>
							<outputDirectory>${project.build.directory}/dependencies</outputDirectory>
						</artifactItem>
						<dependency>
							<groupId>org.apache.pulsar</groupId>
							<artifactId>bouncy-castle-bc</artifactId>
							<version>${pulsar.version}</version>
							<destFileName>bouncy-castle-bc.jar</destFileName>
							<type>jar</type>
							<outputDirectory>${project.build.directory}/dependencies</outputDirectory>
						</dependency>
						<dependency>
							<groupId>org.bouncycastle</groupId>
							<artifactId>bcpkix-jdk15on</artifactId>
							<version>${bouncycastle.version}</version>
							<destFileName>bcpkix-jdk15on.jar</destFileName>
							<type>jar</type>
							<outputDirectory>${project.build.directory}/dependencies</outputDirectory>
						</dependency>
						<dependency>
							<groupId>org.bouncycastle</groupId>
							<artifactId>bcprov-jdk15on</artifactId>
							<version>${bouncycastle.version}</version>
							<destFileName>bcprov-jdk15on.jar</destFileName>
							<type>jar</type>
							<outputDirectory>${project.build.directory}/dependencies</outputDirectory>
						</dependency>
						<dependency>
							<groupId>org.bouncycastle</groupId>
							<artifactId>bcutil-jdk15on</artifactId>
							<version>${bouncycastle.version}</version>
							<destFileName>bcutil-jdk15on.jar</destFileName>
							<type>jar</type>
							<outputDirectory>${project.build.directory}/dependencies</outputDirectory>
						</dependency>
						<dependency>
							<groupId>org.bouncycastle</groupId>
							<artifactId>bcprov-ext-jdk15on</artifactId>
							<version>${bouncycastle.version}</version>
							<destFileName>bcprov-ext-jdk15on.jar</destFileName>
							<type>jar</type>
							<outputDirectory>${project.build.directory}/dependencies</outputDirectory>
						</dependency>
						<dependency>
							<groupId>javax.xml.bind</groupId>
							<artifactId>jaxb-api</artifactId>
							<version>${jaxb-api.version}</version>
							<destFileName>jaxb-api.jar</destFileName>
							<type>jar</type>
							<outputDirectory>${project.build.directory}/dependencies</outputDirectory>
						</dependency>
						<artifactItem>
							<groupId>org.slf4j</groupId>
							<artifactId>jul-to-slf4j</artifactId>
							<version>${slf4j.version}</version>
							<destFileName>jul-to-slf4j.jar</destFileName>
							<type>jar</type>
							<outputDirectory>${project.build.directory}/dependencies</outputDirectory>
						</artifactItem>
					</artifactItems>
				</configuration>
			</plugin>
		</plugins>
	</build>
</project>
