<?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
	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
	xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

	<parent>
		<groupId>org.apache.flink</groupId>
		<artifactId>flink-connector-parent</artifactId>
		<version>1.1.0</version>
	</parent>

	<modelVersion>4.0.0</modelVersion>

	<artifactId>flink-connector-cassandra-parent</artifactId>
	<version>4.0-SNAPSHOT</version>
	<name>Flink : Connectors : Cassandra : Parent</name>
	<packaging>pom</packaging>
	<inceptionYear>2022</inceptionYear>

	<scm>
		<url>https://github.com/apache/flink-connector-cassandra</url>
		<connection>git@github.com:apache/flink-connector-cassandra.git</connection>
		<developerConnection>
			scm:git:https://gitbox.apache.org/repos/asf/flink-connector-cassandra.git
		</developerConnection>
	</scm>

	<properties>
		<flink.version>1.18.0</flink.version>
		<japicmp.referenceVersion>3.0.0-1.16</japicmp.referenceVersion>
	</properties>

	<modules>
		<module>flink-connector-cassandra</module>
	</modules>

	<build>
		<plugins>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-shade-plugin</artifactId>
			</plugin>

			<plugin>
				<groupId>org.codehaus.mojo</groupId>
				<artifactId>exec-maven-plugin</artifactId>
				<inherited>false</inherited>
				<dependencies>
					<dependency>
						<groupId>org.apache.flink</groupId>
						<artifactId>flink-ci-tools</artifactId>
						<version>${flink.version}</version>
					</dependency>
				</dependencies>
			</plugin>

			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-jar-plugin</artifactId>
			</plugin>

			<plugin>
				<!-- activate API compatibility checks -->
				<groupId>io.github.zentol.japicmp</groupId>
				<artifactId>japicmp-maven-plugin</artifactId>
			</plugin>

			<plugin>
				<groupId>org.apache.rat</groupId>
				<artifactId>apache-rat-plugin</artifactId>
				<inherited>false</inherited>
			</plugin>

			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-checkstyle-plugin</artifactId>
			</plugin>

			<plugin>
				<groupId>com.diffplug.spotless</groupId>
				<artifactId>spotless-maven-plugin</artifactId>
			</plugin>

			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-compiler-plugin</artifactId>
			</plugin>

			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-surefire-plugin</artifactId>
			</plugin>

			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-enforcer-plugin</artifactId>
			</plugin>
		</plugins>
	</build>
</project>
