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

	<artifactId>flink-streaming-connectors</artifactId>
	<name>flink-streaming-connectors</name>

	<packaging>pom</packaging>

	<modules>
		<module>flink-connector-flume</module>
		<module>flink-connector-kafka-base</module>
		<module>flink-connector-kafka-0.8</module>
		<module>flink-connector-kafka-0.9</module>
		<module>flink-connector-elasticsearch</module>
		<module>flink-connector-rabbitmq</module>
		<module>flink-connector-twitter</module>
		<module>flink-connector-nifi</module>
	</modules>

	<!-- See main pom.xml for explanation of profiles -->
	<profiles>
		<profile>
			<id>hadoop-2</id>
			<activation>
				<property>
					<!-- Please do not remove the 'hadoop2' comment. See ./tools/generate_specific_pom.sh -->
					<!--hadoop2--><name>!hadoop.profile</name>
				</property>
			</activation>
			<modules>
				<!-- Include the flink-fs-tests project only for HD2.
				 	The HDFS minicluster interfaces changed between the two versions.
				 -->
				<module>flink-connector-filesystem</module>
			</modules>
		</profile>
	</profiles>

</project>
