<?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-formats</artifactId>
		<version>1.12.5</version>
		<relativePath>..</relativePath>
	</parent>

	<artifactId>flink-sql-avro-confluent-registry</artifactId>
	<name>Flink : Formats : SQL Avro Confluent Registry</name>

	<packaging>jar</packaging>

	<dependencies>
		<dependency>
			<groupId>org.apache.flink</groupId>
			<artifactId>flink-avro-confluent-registry</artifactId>
			<version>${project.version}</version>
		</dependency>
	</dependencies>

	<build>
		<plugins>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-shade-plugin</artifactId>
				<executions>
					<execution>
						<id>shade-flink</id>
						<phase>package</phase>
						<goals>
							<goal>shade</goal>
						</goals>
						<configuration>
							<shadeTestJar>false</shadeTestJar>
							<artifactSet>
								<includes>
									<include>io.confluent:*</include>
									<!--we include only kafka-clients which is used in
									schema-registry-client (e.g. configuration classes). -->
									<include>org.apache.kafka:kafka-clients</include>
									<include>org.apache.flink:flink-avro</include>
									<include>org.apache.flink:flink-avro-confluent-registry</include>
									<include>org.apache.avro:avro</include>
									<include>com.fasterxml.jackson.core:*</include>
									<include>jakarta.ws.rs:jakarta.ws.rs-api</include>
									<include>jakarta.annotation:jakarta.annotation-api</include>
									<include>org.glassfish.jersey.core:jersey-common</include>
									<include>org.glassfish.hk2.external:jakarta.inject</include>
									<include>org.glassfish.hk2:osgi-resource-locator</include>
									<include>org.apache.commons:commons-compress</include>
								</includes>
							</artifactSet>
							<relocations combine.children="append">
								<relocation>
									<pattern>org.apache.kafka</pattern>
									<shadedPattern>org.apache.flink.avro.registry.confluent.shaded.org.apache.kafka</shadedPattern>
								</relocation>
								<relocation>
									<pattern>io.confluent</pattern>
									<shadedPattern>org.apache.flink.avro.registry.confluent.shaded.io.confluent</shadedPattern>
								</relocation>
								<!--The following modules must have the same shading pattern as in flink-sql-avro. It is needed to be able to put
									both the flink-sql-avro & flink-sql-avro-confluent on the classpath -->
								<relocation>
									<pattern>com.fasterxml.jackson</pattern>
									<shadedPattern>org.apache.flink.avro.shaded.com.fasterxml.jackson</shadedPattern>
								</relocation>
								<relocation>
									<pattern>org.apache.avro</pattern>
									<shadedPattern>org.apache.flink.avro.shaded.org.apache.avro</shadedPattern>
								</relocation>
								<relocation>
									<pattern>org.apache.commons.compress</pattern>
									<shadedPattern>org.apache.flink.avro.shaded.org.apache.commons.compress</shadedPattern>
								</relocation>
							</relocations>
							<filters>
								<filter>
									<artifact>org.glassfish.jersey.core:jersey-common</artifact>
									<excludes>
										<!-- exclude Java 9+ specific classes as otherwise the shade-plugin crashes -->
										<exclude>META-INF/versions/**</exclude>
									</excludes>
								</filter>
								<filter>
									<artifact>org.apache.kafka:*</artifact>
									<excludes>
										<exclude>kafka/kafka-version.properties</exclude>
										<exclude>LICENSE</exclude>
										<!-- Does not contain anything relevant.
											Cites a binary dependency on jersey, but this is neither reflected in the
											dependency graph, nor are any jersey files bundled. -->
										<exclude>NOTICE</exclude>
										<exclude>common/**</exclude>
									</excludes>
								</filter>
							</filters>
						</configuration>
					</execution>
				</executions>
			</plugin>
		</plugins>
	</build>
</project>
