<?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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <parent>
        <groupId>org.apache.nifi</groupId>
        <artifactId>nifi-standard-shared-bom</artifactId>
        <version>2.10.0</version>
        <relativePath>../nifi-standard-shared-bundle/nifi-standard-shared-bom</relativePath>
    </parent>

    <artifactId>nifi-azure-bundle</artifactId>
    <packaging>pom</packaging>

    <properties>
        <!-- when changing the Azure SDK version, also update msal4j to the version that is required by azure-identity -->
        <msal4j.version>1.23.1</msal4j.version>
        <qpid.proton.version>0.34.1</qpid.proton.version>
    </properties>

    <modules>
        <module>nifi-azure-processors</module>
        <module>nifi-azure-reporting-task</module>
        <module>nifi-azure-nar</module>
        <module>nifi-azure-services-api</module>
        <module>nifi-azure-services-api-nar</module>
        <module>nifi-azure-parameter-providers</module>
        <module>nifi-azure-registry-clients</module>
    </modules>

    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>com.azure</groupId>
                <artifactId>azure-sdk-bom</artifactId>
                <version>${azure.sdk.bom.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <dependency>
                <groupId>com.google.guava</groupId>
                <artifactId>guava</artifactId>
                <version>33.6.0-jre</version>
            </dependency>
            <!-- Override Apache Qpid Proton J for Azure EventHubs to resolve PROTON-2347 -->
            <dependency>
                <groupId>org.apache.qpid</groupId>
                <artifactId>proton-j</artifactId>
                <version>${qpid.proton.version}</version>
            </dependency>
            <!-- Set msal4j version for azure-identity -->
            <dependency>
                <groupId>com.microsoft.azure</groupId>
                <artifactId>msal4j</artifactId>
                <version>${msal4j.version}</version>
            </dependency>
            <!-- Override nimbus-jose-jwt from msal4j -->
            <dependency>
                <groupId>com.nimbusds</groupId>
                <artifactId>nimbus-jose-jwt</artifactId>
                <version>${nimbus-jose-jwt.version}</version>
            </dependency>
            <!-- Override Reactor Core Netty from azure-core-netty-http -->
            <dependency>
                <groupId>io.projectreactor.netty</groupId>
                <artifactId>reactor-netty-http</artifactId>
                <version>1.3.6</version>
                <exclusions>
                    <!--
                        Reactor Netty 1.3 includes HTTP/3 support requiring native QUIC libraries.
                        Exclude netty-codec-http3 to prevent HTTP/3 initialization.
                        Explicitly add netty-codec-classes-quic below so Http3.isHttp3Available() can run and
                        properly detect that native QUIC support is unavailable.
                    -->
                    <exclusion>
                        <groupId>io.netty</groupId>
                        <artifactId>netty-codec-http3</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <!--
                Required for reactor-netty-http Http3.isHttp3Available() to detect
                that native QUIC support is unavailable. This is a transitive dependency
                of netty-codec-http3, which is excluded above, so it must be added explicitly.
            -->
            <dependency>
                <groupId>io.netty</groupId>
                <artifactId>netty-codec-classes-quic</artifactId>
                <version>${netty.4.version}</version>
            </dependency>
        </dependencies>
    </dependencyManagement>
</project>
