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

	<properties>
		<flink.format.parquet.version>1.11.1</flink.format.parquet.version>
	</properties>

	<artifactId>flink-formats</artifactId>
	<name>Flink : Formats : </name>
	<packaging>pom</packaging>

	<modules>
		<module>flink-avro</module>
		<module>flink-json</module>
		<module>flink-avro-confluent-registry</module>
		<module>flink-parquet</module>
		<module>flink-sequence-file</module>
		<module>flink-compress</module>
		<module>flink-csv</module>
		<module>flink-orc</module>
		<module>flink-orc-nohive</module>
		<module>flink-hadoop-bulk</module>
	</modules>

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

	<dependencies>
		<dependency>
			<groupId>org.slf4j</groupId>
			<artifactId>slf4j-api</artifactId>
			<scope>provided</scope>
		</dependency>

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

	<profiles>

		<!-- Create SQL Client uber jars by default -->
		<profile>
			<id>sql-jars</id>
			<activation>
				<property>
					<name>!skipSqlJars</name>
				</property>
			</activation>
			<modules>
				<module>flink-sql-orc</module>
				<module>flink-sql-parquet</module>
				<module>flink-sql-avro</module>
				<module>flink-sql-avro-confluent-registry</module>
			</modules>
		</profile>
	</profiles>

</project>
