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


	<artifactId>flink-connectors</artifactId>
	<name>Flink : Connectors : </name>
	<packaging>pom</packaging>

	<modules>
		<module>flink-hadoop-compatibility</module>
		<module>flink-hcatalog</module>
		<module>flink-connector-elasticsearch-base</module>
		<module>flink-connector-elasticsearch6</module>
		<module>flink-connector-elasticsearch7</module>
		<module>flink-connector-hbase-base</module>
		<module>flink-connector-hbase-1.4</module>
		<module>flink-connector-hbase-2.2</module>
		<module>flink-connector-hive</module>
		<module>flink-connector-jdbc</module>
		<module>flink-connector-rabbitmq</module>
		<module>flink-connector-nifi</module>
		<module>flink-connector-cassandra</module>
		<module>flink-connector-kafka</module>
		<module>flink-connector-gcp-pubsub</module>
		<module>flink-connector-aws-base</module>
		<module>flink-connector-kinesis</module>
		<module>flink-connector-aws-kinesis-streams</module>
		<module>flink-connector-aws-kinesis-firehose</module>
		<module>flink-connector-base</module>
		<module>flink-file-sink-common</module>
		<module>flink-connector-files</module>
		<module>flink-connector-pulsar</module>
	</modules>

	<!-- override these root dependencies as 'provided', so they don't end up
		in the jars-with-dependencies (uber jars) of connectors and
		user programs that depend on the connectors -->

	<dependencies>
		<dependency>
			<groupId>org.slf4j</groupId>
			<artifactId>slf4j-api</artifactId>
			<scope>provided</scope>
		</dependency>
		<dependency>
			<groupId>com.google.code.findbugs</groupId>
			<artifactId>jsr305</artifactId>
			<scope>provided</scope>
		</dependency>

		<dependency>
			<groupId>org.apache.flink</groupId>
			<artifactId>flink-test-utils-junit</artifactId>
		</dependency>
	</dependencies>

	<!-- See main pom.xml for explanation of profiles -->
	<profiles>

		<!-- Create SQL Client uber jars by default -->
		<profile>
			<id>sql-jars</id>
			<activation>
				<property>
					<name>!skipSqlJars</name>
				</property>
			</activation>
			<modules>
				<module>flink-sql-connector-elasticsearch6</module>
				<module>flink-sql-connector-elasticsearch7</module>
				<module>flink-sql-connector-hbase-1.4</module>
				<module>flink-sql-connector-hbase-2.2</module>
				<module>flink-sql-connector-hive-1.2.2</module>
				<module>flink-sql-connector-hive-2.2.0</module>
				<module>flink-sql-connector-hive-2.3.6</module>
				<module>flink-sql-connector-hive-3.1.2</module>
				<module>flink-sql-connector-kafka</module>
				<module>flink-sql-connector-aws-kinesis-streams</module>
				<module>flink-sql-connector-aws-kinesis-firehose</module>
				<module>flink-sql-connector-kinesis</module>
				<module>flink-sql-connector-pulsar</module>
				<module>flink-sql-connector-rabbitmq</module>
			</modules>
		</profile>
	</profiles>

	<build>
		<plugins>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-enforcer-plugin</artifactId>
				<executions>
					<execution>
						<id>dependency-convergence</id>
						<goals>
							<goal>enforce</goal>
						</goals>
						<configuration>
							<skip>true</skip>
						</configuration>
					</execution>
				</executions>
			</plugin>
		</plugins>
	</build>

</project>
