<?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</groupId>
        <artifactId>apache</artifactId>
        <version>31</version>
        <relativePath />
    </parent>
    <groupId>org.apache.nifi</groupId>
    <artifactId>nifi</artifactId>
    <version>2.0.0-SNAPSHOT</version>
    <packaging>pom</packaging>
    <description>Apache NiFi is an easy to use, powerful, and reliable system to process and distribute data.</description>
    <modules>
        <module>nifi-commons</module>
        <module>nifi-api</module>
        <module>nifi-bom</module>
        <module>nifi-framework-bundle</module>
        <module>nifi-framework-api</module>
        <module>nifi-server-api</module>
        <module>nifi-bootstrap</module>
        <module>nifi-code-coverage</module>
        <module>nifi-mock</module>
        <module>nifi-extension-bundles</module>
        <module>nifi-extension-bom</module>
        <module>nifi-assembly</module>
        <module>nifi-docs</module>
        <module>nifi-maven-archetypes</module>
        <module>nifi-docker</module>
        <module>nifi-system-tests</module>
        <module>minifi</module>
        <module>nifi-stateless</module>
        <module>nifi-registry</module>
        <module>nifi-toolkit</module>
        <module>nifi-manifest</module>
        <module>nifi-python-extensions</module>
        <module>c2</module>
    </modules>
    <url>https://nifi.apache.org</url>
    <organization>
        <name>Apache NiFi Project</name>
        <url>https://nifi.apache.org/</url>
    </organization>
    <licenses>
        <license>
            <name>Apache License, Version 2.0</name>
            <url>https://www.apache.org/licenses/LICENSE-2.0</url>
        </license>
    </licenses>
    <mailingLists>
        <mailingList>
            <name>Dev</name>
            <subscribe>dev-subscribe@nifi.apache.org</subscribe>
            <unsubscribe>dev-unsubscribe@nifi.apache.org</unsubscribe>
            <post>dev@nifi.apache.org</post>
            <archive>https://mail-archives.apache.org/mod_mbox/nifi-dev</archive>
        </mailingList>
        <mailingList>
            <name>Users</name>
            <subscribe>users-subscribe@nifi.apache.org</subscribe>
            <unsubscribe>users-unsubscribe@nifi.apache.org</unsubscribe>
            <post>users@nifi.apache.org</post>
            <archive>https://mail-archives.apache.org/mod_mbox/nifi-users</archive>
        </mailingList>
        <mailingList>
            <name>Commits</name>
            <subscribe>commits-subscribe@nifi.apache.org</subscribe>
            <unsubscribe>commits-unsubscribe@nifi.apache.org</unsubscribe>
            <post>commits@nifi.apache.org</post>
            <archive>https://mail-archives.apache.org/mod_mbox/nifi-commits</archive>
        </mailingList>
    </mailingLists>
    <scm>
        <connection>scm:git:git://git.apache.org/nifi.git</connection>
        <developerConnection>scm:git:https://git-wip-us.apache.org/repos/asf/nifi.git</developerConnection>
        <url>https://git-wip-us.apache.org/repos/asf?p=nifi.git</url>
        <tag>HEAD</tag>
    </scm>
    <issueManagement>
        <system>JIRA</system>
        <url>https://issues.apache.org/jira/browse/NIFI</url>
    </issueManagement>
    <properties>
        <maven.compiler.release>21</maven.compiler.release>
        <maven.compiler.showDeprecation>true</maven.compiler.showDeprecation>
        <!-- Set minimum Java version for maven-enforcer-plugin from parent POM -->
        <minimalJavaBuildVersion>21</minimalJavaBuildVersion>
        <maven.surefire.arguments />
        <!-- Disable maven-site-plugin from parent POM -->
        <maven.site.skip>true</maven.site.skip>
        <docker.jdk.image.name>bellsoft/liberica-openjdk-debian</docker.jdk.image.name>
        <docker.jre.image.name>bellsoft/liberica-openjre-debian</docker.jre.image.name>
        <docker.image.tag>21</docker.image.tag>
        <node.version>v22.1.0</node.version>
        <frontend.mvn.plugin.version>1.15.0</frontend.mvn.plugin.version>
        <nifi.nar.maven.plugin.version>1.5.1</nifi.nar.maven.plugin.version>
        <project.build.outputTimestamp>1706227889</project.build.outputTimestamp>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <inceptionYear>2014</inceptionYear>
        <com.amazonaws.version>1.12.718</com.amazonaws.version>
        <software.amazon.awssdk.version>2.25.48</software.amazon.awssdk.version>
        <gson.version>2.10.1</gson.version>
        <io.fabric8.kubernetes.client.version>6.12.1</io.fabric8.kubernetes.client.version>
        <kotlin.version>1.9.24</kotlin.version>
        <okhttp.version>4.12.0</okhttp.version>
        <okio.version>3.9.0</okio.version>
        <org.apache.commons.cli.version>1.7.0</org.apache.commons.cli.version>
        <org.apache.commons.codec.version>1.17.0</org.apache.commons.codec.version>
        <org.apache.commons.compress.version>1.26.1</org.apache.commons.compress.version>
        <com.github.luben.zstd-jni.version>1.5.6-3</com.github.luben.zstd-jni.version>
        <org.apache.commons.configuration.version>2.10.1</org.apache.commons.configuration.version>
        <org.apache.commons.lang3.version>3.14.0</org.apache.commons.lang3.version>
        <org.apache.commons.net.version>3.10.0</org.apache.commons.net.version>
        <org.apache.commons.io.version>2.16.1</org.apache.commons.io.version>
        <org.apache.commons.text.version>1.12.0</org.apache.commons.text.version>
        <org.apache.httpcomponents.httpclient.version>4.5.14</org.apache.httpcomponents.httpclient.version>
        <org.apache.httpcomponents.httpcore.version>4.4.16</org.apache.httpcomponents.httpcore.version>
        <org.bouncycastle.version>1.78.1</org.bouncycastle.version>
        <testcontainers.version>1.19.8</testcontainers.version>
        <org.slf4j.version>2.0.13</org.slf4j.version>
        <com.jayway.jsonpath.version>2.9.0</com.jayway.jsonpath.version>
        <derby.version>10.17.1.0</derby.version>
        <jetty.version>12.0.9</jetty.version>
        <jackson.bom.version>2.17.1</jackson.bom.version>
        <avro.version>1.11.3</avro.version>
        <jaxb.runtime.version>4.0.5</jaxb.runtime.version>
        <javax.annotation-api.version>1.3.2</javax.annotation-api.version>
        <jakarta.xml.bind-api.version>4.0.2</jakarta.xml.bind-api.version>
        <jakarta.ws.rs-api.version>3.1.0</jakarta.ws.rs-api.version>
        <json.smart.version>2.5.0</json.smart.version>
        <groovy.version>4.0.21</groovy.version>
        <surefire.version>3.2.5</surefire.version>
        <hadoop.version>3.4.0</hadoop.version>
        <ozone.version>1.2.1</ozone.version>
        <gcs.version>2.1.5</gcs.version>
        <aspectj.version>1.9.22</aspectj.version>
        <jersey.bom.version>3.1.6</jersey.bom.version>
        <log4j2.version>2.23.1</log4j2.version>
        <logback.version>1.5.6</logback.version>
        <mockito.version>5.11.0</mockito.version>
        <netty.3.version>3.10.6.Final</netty.3.version>
        <snakeyaml.version>2.2</snakeyaml.version>
        <netty.4.version>4.1.109.Final</netty.4.version>
        <servlet-api.version>6.0.0</servlet-api.version>
        <spring.version>6.1.6</spring.version>
        <spring.security.version>6.2.4</spring.security.version>
        <swagger.annotations.version>2.2.21</swagger.annotations.version>
        <h2.version>2.2.224</h2.version>
        <zookeeper.version>3.9.2</zookeeper.version>
        <caffeine.version>3.1.8</caffeine.version>
        <hapi.version>2.5.1</hapi.version>
        <commons.dbcp2.version>2.12.0</commons.dbcp2.version>
        <prometheus.version>0.16.0</prometheus.version>
    </properties>
    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.eclipse.jetty</groupId>
                <artifactId>jetty-bom</artifactId>
                <version>${jetty.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <dependency>
                <groupId>org.eclipse.jetty.ee10</groupId>
                <artifactId>jetty-ee10-bom</artifactId>
                <version>${jetty.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <dependency>
                <groupId>org.bouncycastle</groupId>
                <artifactId>bcprov-jdk18on</artifactId>
                <version>${org.bouncycastle.version}</version>
            </dependency>
            <dependency>
                <groupId>org.bouncycastle</groupId>
                <artifactId>bcpkix-jdk18on</artifactId>
                <version>${org.bouncycastle.version}</version>
            </dependency>
            <dependency>
                <groupId>org.bouncycastle</groupId>
                <artifactId>bcpg-jdk18on</artifactId>
                <version>${org.bouncycastle.version}</version>
            </dependency>
            <dependency>
                <groupId>org.bouncycastle</groupId>
                <artifactId>bcutil-jdk18on</artifactId>
                <version>${org.bouncycastle.version}</version>
            </dependency>
            <dependency>
                <groupId>org.bouncycastle</groupId>
                <artifactId>bcmail-jdk18on</artifactId>
                <version>${org.bouncycastle.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.avro</groupId>
                <artifactId>avro</artifactId>
                <version>${avro.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.avro</groupId>
                <artifactId>avro-ipc</artifactId>
                <version>${avro.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.avro</groupId>
                <artifactId>avro-mapred</artifactId>
                <version>${avro.version}</version>
            </dependency>
            <dependency>
                <groupId>commons-cli</groupId>
                <artifactId>commons-cli</artifactId>
                <version>${org.apache.commons.cli.version}</version>
            </dependency>
            <dependency>
                <groupId>commons-codec</groupId>
                <artifactId>commons-codec</artifactId>
                <version>${org.apache.commons.codec.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.commons</groupId>
                <artifactId>commons-compress</artifactId>
                <version>${org.apache.commons.compress.version}</version>
            </dependency>
            <dependency>
                <groupId>com.github.luben</groupId>
                <artifactId>zstd-jni</artifactId>
                <version>${com.github.luben.zstd-jni.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.commons</groupId>
                <artifactId>commons-configuration2</artifactId>
                <version>${org.apache.commons.configuration.version}</version>
                <exclusions>
                    <exclusion>
                        <groupId>commons-logging</groupId>
                        <artifactId>commons-logging</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>commons-io</groupId>
                <artifactId>commons-io</artifactId>
                <version>${org.apache.commons.io.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.commons</groupId>
                <artifactId>commons-lang3</artifactId>
                <version>${org.apache.commons.lang3.version}</version>
            </dependency>
            <dependency>
                <groupId>commons-net</groupId>
                <artifactId>commons-net</artifactId>
                <version>${org.apache.commons.net.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.commons</groupId>
                <artifactId>commons-text</artifactId>
                <version>${org.apache.commons.text.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.httpcomponents</groupId>
                <artifactId>httpclient</artifactId>
                <version>${org.apache.httpcomponents.httpclient.version}</version>
                <exclusions>
                    <exclusion>
                        <groupId>commons-logging</groupId>
                        <artifactId>commons-logging</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.apache.httpcomponents</groupId>
                <artifactId>httpcore</artifactId>
                <version>${org.apache.httpcomponents.httpcore.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.httpcomponents</groupId>
                <artifactId>fluent-hc</artifactId>
                <version>${org.apache.httpcomponents.httpclient.version}</version>
                <exclusions>
                    <exclusion>
                        <groupId>commons-logging</groupId>
                        <artifactId>commons-logging</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.junit</groupId>
                <artifactId>junit-bom</artifactId>
                <version>5.10.2</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <dependency>
                <groupId>org.slf4j</groupId>
                <artifactId>slf4j-bom</artifactId>
                <version>${org.slf4j.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <dependency>
                <groupId>ch.qos.logback</groupId>
                <artifactId>logback-classic</artifactId>
                <version>${logback.version}</version>
            </dependency>
            <dependency>
                <groupId>ch.qos.logback</groupId>
                <artifactId>logback-core</artifactId>
                <version>${logback.version}</version>
            </dependency>
            <dependency>
                <groupId>org.mockito</groupId>
                <artifactId>mockito-bom</artifactId>
                <version>${mockito.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <dependency>
                <groupId>org.apache.groovy</groupId>
                <artifactId>groovy-all</artifactId>
                <version>${groovy.version}</version>
                <type>pom</type>
                <exclusions>
                    <exclusion>
                        <groupId>org.apache.groovy</groupId>
                        <artifactId>groovy-test</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.apache.groovy</groupId>
                        <artifactId>groovy-test-junit5</artifactId>
                    </exclusion>
                    <exclusion>
                        <groupId>org.apache.ant</groupId>
                        <artifactId>ant-junit</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.testcontainers</groupId>
                <artifactId>testcontainers-bom</artifactId>
                <version>${testcontainers.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <dependency>
                <groupId>jakarta.ws.rs</groupId>
                <artifactId>jakarta.ws.rs-api</artifactId>
                <version>${jakarta.ws.rs-api.version}</version>
            </dependency>
            <dependency>
                <groupId>org.aspectj</groupId>
                <artifactId>aspectjweaver</artifactId>
                <version>${aspectj.version}</version>
            </dependency>
            <dependency>
                <groupId>com.google.code.gson</groupId>
                <artifactId>gson</artifactId>
                <version>${gson.version}</version>
            </dependency>
            <dependency>
                <groupId>io.swagger.core.v3</groupId>
                <artifactId>swagger-annotations</artifactId>
                <version>${swagger.annotations.version}</version>
            </dependency>
            <dependency>
                <groupId>io.fabric8</groupId>
                <artifactId>kubernetes-client-bom</artifactId>
                <type>pom</type>
                <scope>import</scope>
                <version>${io.fabric8.kubernetes.client.version}</version>
            </dependency>
            <dependency>
                <groupId>io.prometheus</groupId>
                <artifactId>simpleclient_bom</artifactId>
                <type>pom</type>
                <scope>import</scope>
                <version>${prometheus.version}</version>
            </dependency>
            <dependency>
                <groupId>org.yaml</groupId>
                <artifactId>snakeyaml</artifactId>
                <version>${snakeyaml.version}</version>
            </dependency>
            <dependency>
                <groupId>com.jayway.jsonpath</groupId>
                <artifactId>json-path</artifactId>
                <version>${com.jayway.jsonpath.version}</version>
            </dependency>
            <dependency>
                <groupId>com.amazonaws</groupId>
                <artifactId>aws-java-sdk-bom</artifactId>
                <version>${com.amazonaws.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <dependency>
                <groupId>com.amazonaws</groupId>
                <artifactId>aws-java-sdk-core</artifactId>
                <version>${com.amazonaws.version}</version>
                <exclusions>
                    <exclusion>
                        <groupId>commons-logging</groupId>
                        <artifactId>commons-logging</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>com.amazonaws</groupId>
                <artifactId>aws-java-sdk-bundle</artifactId>
                <version>${com.amazonaws.version}</version>
            </dependency>
            <dependency>
                <groupId>software.amazon.awssdk</groupId>
                <artifactId>bom</artifactId>
                <version>${software.amazon.awssdk.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <dependency>
                <groupId>com.fasterxml.jackson</groupId>
                <artifactId>jackson-bom</artifactId>
                <version>${jackson.bom.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
            <!-- Set snappy-java version for compatibility across multiple Java versions -->
            <dependency>
                <groupId>org.xerial.snappy</groupId>
                <artifactId>snappy-java</artifactId>
                <version>1.1.10.5</version>
            </dependency>
            <!-- Override Log4j 2 libraries for transitive dependencies -->
            <dependency>
                <groupId>org.apache.logging.log4j</groupId>
                <artifactId>log4j-bom</artifactId>
                <version>${log4j2.version}</version>
                <scope>import</scope>
                <type>pom</type>
            </dependency>
            <dependency>
                <groupId>io.netty</groupId>
                <artifactId>netty-bom</artifactId>
                <version>${netty.4.version}</version>
                <scope>import</scope>
                <type>pom</type>
            </dependency>
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-framework-bom</artifactId>
                <version>${spring.version}</version>
                <scope>import</scope>
                <type>pom</type>
            </dependency>
            <dependency>
                <groupId>org.springframework.security</groupId>
                <artifactId>spring-security-bom</artifactId>
                <version>${spring.security.version}</version>
                <scope>import</scope>
                <type>pom</type>
            </dependency>
            <dependency>
                <groupId>com.squareup.okhttp3</groupId>
                <artifactId>okhttp-bom</artifactId>
                <version>${okhttp.version}</version>
                <scope>import</scope>
                <type>pom</type>
            </dependency>
            <dependency>
                <groupId>com.squareup.okio</groupId>
                <artifactId>okio</artifactId>
                <version>${okio.version}</version>
            </dependency>
            <dependency>
                <groupId>com.squareup.okio</groupId>
                <artifactId>okio-fakefilesystem</artifactId>
                <version>${okio.version}</version>
            </dependency>
            <dependency>
                <groupId>org.jetbrains.kotlin</groupId>
                <artifactId>kotlin-bom</artifactId>
                <version>${kotlin.version}</version>
                <scope>import</scope>
                <type>pom</type>
            </dependency>
            <dependency>
                <groupId>org.glassfish.jersey</groupId>
                <artifactId>jersey-bom</artifactId>
                <version>${jersey.bom.version}</version>
                <scope>import</scope>
                <type>pom</type>
            </dependency>
            <dependency>
                <groupId>jakarta.xml.bind</groupId>
                <artifactId>jakarta.xml.bind-api</artifactId>
                <version>${jakarta.xml.bind-api.version}</version>
            </dependency>
            <dependency>
                <groupId>org.glassfish.jaxb</groupId>
                <artifactId>jaxb-runtime</artifactId>
                <version>${jaxb.runtime.version}</version>
            </dependency>
            <dependency>
                <groupId>com.sun.activation</groupId>
                <artifactId>javax.activation</artifactId>
                <version>1.2.0</version>
            </dependency>
            <dependency>
                <groupId>javax.annotation</groupId>
                <artifactId>javax.annotation-api</artifactId>
                <version>1.3.2</version>
            </dependency>
            <dependency>
                <groupId>org.jsoup</groupId>
                <artifactId>jsoup</artifactId>
                <version>1.17.2</version>
            </dependency>
            <dependency>
                <groupId>com.github.ben-manes.caffeine</groupId>
                <artifactId>caffeine</artifactId>
                <version>${caffeine.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.commons</groupId>
                <artifactId>commons-dbcp2</artifactId>
                <version>${commons.dbcp2.version}</version>
                <exclusions>
                    <exclusion>
                        <groupId>commons-logging</groupId>
                        <artifactId>commons-logging</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.apache.zookeeper</groupId>
                <artifactId>zookeeper</artifactId>
                <version>${zookeeper.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.zookeeper</groupId>
                <artifactId>zookeeper-jute</artifactId>
                <version>${zookeeper.version}</version>
            </dependency>
            <!-- Managed JUnit 4 version for transitive dependencies such as OkHttp MockWebServer -->
            <dependency>
                <groupId>junit</groupId>
                <artifactId>junit</artifactId>
                <version>4.13.2</version>
            </dependency>
            <dependency>
                <groupId>org.junit.platform</groupId>
                <artifactId>junit-platform-commons</artifactId>
                <version>1.10.2</version>
                <scope>test</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>
    <dependencies>
        <!--
        Top level dependencies beyond test scope should be avoided
        -->
        <dependency>
            <groupId>org.junit.jupiter</groupId>
            <artifactId>junit-jupiter-api</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.junit.jupiter</groupId>
            <artifactId>junit-jupiter-engine</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.junit.jupiter</groupId>
            <artifactId>junit-jupiter-params</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.mockito</groupId>
            <artifactId>mockito-core</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.mockito</groupId>
            <artifactId>mockito-junit-jupiter</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.junit.platform</groupId>
            <artifactId>junit-platform-commons</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-simple</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>
    <build>
        <pluginManagement>
            <plugins>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-compiler-plugin</artifactId>
                    <configuration>
                        <fork>true</fork>
                        <showDeprecation>${maven.compiler.showDeprecation}</showDeprecation>
                        <showWarnings>true</showWarnings>
                        <release>${maven.compiler.release}</release>
                    </configuration>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-surefire-plugin</artifactId>
                    <configuration>
                        <systemPropertyVariables>
                            <java.awt.headless>true</java.awt.headless>
                        </systemPropertyVariables>
                        <includes>
                            <include>**/*Test.class</include>
                            <include>**/Test*.class</include>
                            <include>**/*Spec.class</include>
                        </includes>
                        <excludes>
                            <exclude>**/*ITSpec.class</exclude>
                        </excludes>
                        <redirectTestOutputToFile>true</redirectTestOutputToFile>
                    </configuration>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-assembly-plugin</artifactId>
                    <configuration>
                        <tarLongFileMode>gnu</tarLongFileMode>
                    </configuration>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-antrun-plugin</artifactId>
                </plugin>
                <plugin>
                    <groupId>org.codehaus.mojo</groupId>
                    <artifactId>jaxb2-maven-plugin</artifactId>
                    <version>3.2.0</version>
                    <configuration>
                        <noGeneratedHeaderComments>true</noGeneratedHeaderComments>
                    </configuration>
                </plugin>
                <plugin>
                    <groupId>org.codehaus.mojo</groupId>
                    <artifactId>exec-maven-plugin</artifactId>
                    <version>3.2.0</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-javadoc-plugin</artifactId>
                    <configuration>
                        <failOnError>false</failOnError>
                        <quiet>true</quiet>
                        <show>private</show>
                        <encoding>UTF-8</encoding>
                        <quiet>true</quiet>
                        <javadocVersion>1.8</javadocVersion>
                        <additionalJOption>-J-Xmx512m</additionalJOption>
                        <doclint>none</doclint>
                    </configuration>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-release-plugin</artifactId>
                    <configuration>
                        <useReleaseProfile>true</useReleaseProfile>
                        <releaseProfiles>apache-release</releaseProfiles>
                        <autoVersionSubmodules>true</autoVersionSubmodules>
                        <goals>deploy</goals>
                        <!--suppress UnresolvedMavenProperty -->
                        <tagNameFormat>@{project.artifactId}-@{project.version}</tagNameFormat>
                        <pushChanges>false</pushChanges>
                        <localCheckout>true</localCheckout>
                    </configuration>
                    <executions>
                        <execution>
                            <id>default</id>
                            <goals>
                                <goal>perform</goal>
                            </goals>
                            <configuration>
                                <pomFileName>pom.xml</pomFileName>
                            </configuration>
                        </execution>
                    </executions>
                </plugin>
                <plugin>
                    <groupId>io.fabric8</groupId>
                    <artifactId>docker-maven-plugin</artifactId>
                    <version>0.43.4</version>
                </plugin>
                <plugin>
                    <groupId>org.codehaus.mojo</groupId>
                    <artifactId>buildnumber-maven-plugin</artifactId>
                    <version>3.2.0</version>
                </plugin>
                <plugin>
                    <groupId>org.antlr</groupId>
                    <artifactId>antlr3-maven-plugin</artifactId>
                    <version>3.5.3</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-checkstyle-plugin</artifactId>
                    <version>3.3.1</version>
                    <dependencies>
                        <dependency>
                            <groupId>com.puppycrawl.tools</groupId>
                            <artifactId>checkstyle</artifactId>
                            <version>10.16.0</version>
                        </dependency>
                    </dependencies>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-dependency-plugin</artifactId>
                </plugin>
                <plugin>
                    <groupId>org.codehaus.mojo</groupId>
                    <artifactId>versions-maven-plugin</artifactId>
                    <version>2.16.2</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.rat</groupId>
                    <artifactId>apache-rat-plugin</artifactId>
                </plugin>
                <plugin>
                    <groupId>org.apache.nifi</groupId>
                    <artifactId>nifi-nar-maven-plugin</artifactId>
                    <version>${nifi.nar.maven.plugin.version}</version>
                </plugin>
                <plugin>
                    <groupId>org.sonatype.plugins</groupId>
                    <artifactId>nexus-staging-maven-plugin</artifactId>
                    <version>1.6.13</version>
                </plugin>
                <plugin>
                    <groupId>org.patrodyne.jvnet</groupId>
                    <artifactId>hisrc-higherjaxb40-maven-plugin</artifactId>
                    <version>2.2.0</version>
                </plugin>
                <plugin>
                    <groupId>org.jacoco</groupId>
                    <artifactId>jacoco-maven-plugin</artifactId>
                    <version>0.8.12</version>
                </plugin>
                <plugin>
                    <groupId>io.swagger.core.v3</groupId>
                    <artifactId>swagger-maven-plugin-jakarta</artifactId>
                    <version>2.2.21</version>
                </plugin>
                <plugin>
                    <groupId>io.swagger.codegen.v3</groupId>
                    <artifactId>swagger-codegen-maven-plugin</artifactId>
                    <version>3.0.55</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-jar-plugin</artifactId>
                    <version>3.4.1</version>
                </plugin>
            </plugins>
        </pluginManagement>
        <plugins>
            <plugin>
                <groupId>org.apache.nifi</groupId>
                <artifactId>nifi-nar-maven-plugin</artifactId>
                <extensions>true</extensions>
                <configuration>
                    <enforceDocGeneration>true</enforceDocGeneration>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.sonatype.plugins</groupId>
                <artifactId>nexus-staging-maven-plugin</artifactId>
                <extensions>true</extensions>
                <configuration>
                    <stagingProgressTimeoutMinutes>15</stagingProgressTimeoutMinutes>
                    <serverId>repository.apache.org</serverId>
                    <nexusUrl>https://repository.apache.org/</nexusUrl>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.patrodyne.jvnet</groupId>
                <artifactId>hisrc-higherjaxb40-maven-plugin</artifactId>
                <configuration>
                    <noFileHeader>true</noFileHeader>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-enforcer-plugin</artifactId>
                <executions>
                    <execution>
                        <id>enforce-maven-version</id>
                        <goals>
                            <goal>enforce</goal>
                        </goals>
                        <configuration>
                            <rules>
                                <banDuplicatePomDependencyVersions />
                                <requireSameVersions>
                                    <plugins>
                                        <plugin>org.apache.maven.plugins:maven-surefire-plugin</plugin>
                                        <plugin>org.apache.maven.plugins:maven-failsafe-plugin</plugin>
                                        <plugin>org.apache.maven.plugins:maven-surefire-report-plugin</plugin>
                                    </plugins>
                                </requireSameVersions>
                                <requireMavenVersion>
                                    <version>3.9.6</version>
                                </requireMavenVersion>
                                <requireReleaseDeps>
                                    <message>Dependencies outside of Apache NiFi must not use SNAPSHOT versions</message>
                                    <failWhenParentIsSnapshot>false</failWhenParentIsSnapshot>
                                    <excludes>
                                        <exclude>org.apache.nifi:*</exclude>
                                        <exclude>org.apache.nifi.minifi:*</exclude>
                                        <exclude>org.apache.nifi.registry:*</exclude>
                                    </excludes>
                                </requireReleaseDeps>
                                <bannedDependencies>
                                    <excludes>
                                        <!-- JUnit 5 is the preferred test framework -->
                                        <exclude>org.testng:testng</exclude>
                                        <!-- Cat-X Deps -->
                                        <exclude>org.json:json:*:*:compile</exclude>
                                        <exclude>c3p0:c3p0:*:*:compile</exclude>
                                        <!-- Versions of JSR305 before 3.0.1 are not allowed https://github.com/findbugsproject/findbugs/issues/128 -->
                                        <exclude>com.google.code.findbugs:jsr305:[,3.0.0]:compile</exclude>
                                        <!-- SLF4J routing to Log4j 1.2 is a runtime implementation that conflicts with Logback -->
                                        <exclude>org.slf4j:slf4j-log4j12</exclude>
                                        <exclude>org.slf4j:slf4j-reload4j</exclude>
                                        <!-- Log4J excluded in favor of log4j-over-slf4j and logback -->
                                        <exclude>log4j:log4j:*</exclude>
                                        <!-- Log4j 2 log4j-core excluded in favor of log4j-to-slf4j routing to logback -->
                                        <exclude>org.apache.logging.log4j:log4j-core:*</exclude>
                                        <!-- Commons Logging excluded in favor of jcl-over-slf4j -->
                                        <exclude>commons-logging:commons-logging:*</exclude>
                                        <!-- Apache Xalan is no longer maintained and is bundled in the standard JRE -->
                                        <exclude>xalan:xalan</exclude>
                                        <!-- As of Bouncycastle 1.71 Java 8 is the minimum required so jdk15on artifacts not allowed -->
                                        <exclude>org.bouncycastle:bcprov-jdk15on</exclude>
                                        <exclude>org.bouncycastle:bcpg-jdk15on</exclude>
                                        <exclude>org.bouncycastle:bcpkix-jdk15on</exclude>
                                        <exclude>org.bouncycastle:bcutil-jdk15on</exclude>
                                        <exclude>org.bouncycastle:bcmail-jdk15on</exclude>
                                        <!-- Exclude SSHD 2.9.1 and earlier due to CVE-2022-45047 -->
                                        <exclude>org.apache.sshd:*:[,2.9.1]</exclude>
                                        <!-- The Spock Framework should not be used for testing -->
                                        <exclude>org.spockframework:*</exclude>
                                        <!-- Groovy should not be used for testing -->
                                        <exclude>org.apache.groovy:groovy-test</exclude>
                                        <!-- Hamcrest should not be used for testing -->
                                        <exclude>org.hamcrest:hamcrest</exclude>
                                    </excludes>
                                </bannedDependencies>
                            </rules>
                            <fail>true</fail>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-dependency-plugin</artifactId>
                <configuration>
                    <ignoredPackagings>
                        <ignoredPackaging>nar</ignoredPackaging>
                    </ignoredPackagings>
                    <ignoredDependencies combine.children="append">
                        <dependency>org.junit.jupiter:junit-jupiter-engine</dependency>
                        <dependency>org.junit.jupiter:junit-jupiter-params</dependency>
                        <dependency>org.junit.jupiter:junit-jupiter-api</dependency>
                        <dependency>org.mockito:mockito-core</dependency>
                        <dependency>org.mockito:mockito-junit-jupiter</dependency>
                        <dependency>org.junit.platform:junit-platform-commons</dependency>
                        <dependency>org.slf4j:slf4j-simple</dependency>
                    </ignoredDependencies>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>versions-maven-plugin</artifactId>
                <configuration>
                    <ruleSet>
                        <ignoreVersion>
                            <type>regex</type>
                            <version>(?i).*Alpha(?:-?\d+)?</version>
                        </ignoreVersion>
                        <ignoreVersion>
                            <type>regex</type>
                            <version>.+(alpha|beta).+</version>
                        </ignoreVersion>
                        <ignoreVersion>
                            <type>regex</type>
                            <version>(?i).*Beta(?:-?\d+)?</version>
                        </ignoreVersion>
                        <ignoreVersion>
                            <type>regex</type>
                            <version>(?i).*-B(?:-?\d+)?</version>
                        </ignoreVersion>
                        <ignoreVersion>
                            <type>regex</type>
                            <version>(?i).*RC(?:-?\d+)?</version>
                        </ignoreVersion>
                        <ignoreVersion>
                            <type>regex</type>
                            <version>(?i).*CR(?:-?\d+)?</version>
                        </ignoreVersion>
                        <ignoreVersion>
                            <type>regex</type>
                            <version>(?i).*M(?:-?\d+)?</version>
                        </ignoreVersion>
                    </ruleSet>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-checkstyle-plugin</artifactId>
                <configuration>
                    <configLocation>checkstyle.xml</configLocation>
                    <violationSeverity>warning</violationSeverity>
                    <includeTestSourceDirectory>true</includeTestSourceDirectory>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.rat</groupId>
                <artifactId>apache-rat-plugin</artifactId>
                <configuration>
                    <consoleOutput>true</consoleOutput>
                    <useIdeaDefaultExcludes>true</useIdeaDefaultExcludes>
                    <excludes>
                        <exclude>nb-configuration.xml</exclude> <!-- courtesy excludes for netbeans users -->
                        <exclude>nbactions.xml</exclude> <!-- courtesy excludes for netbeans users -->
                        <exclude>DEPENDENCIES</exclude> <!-- auto generated file by apache's maven config while building sources.zip -->
                    </excludes>
                </configuration>
            </plugin>
        </plugins>
    </build>
    <profiles>
        <!-- Configure build properties for modules with NAR packaging -->
        <profile>
            <id>nar-packaging</id>
            <activation>
                <property>
                    <name>packaging</name>
                    <value>nar</value>
                </property>
            </activation>
            <properties>
                <!-- Skip source and javadoc plugins for NAR bundles during release process -->
                <maven.source.skip>true</maven.source.skip>
                <maven.javadoc.skip>true</maven.javadoc.skip>
            </properties>
        </profile>

        <!-- Configure build properties for modules with WAR packaging -->
        <profile>
            <id>war-packaging</id>
            <activation>
                <property>
                    <name>packaging</name>
                    <value>war</value>
                </property>
            </activation>
            <properties>
                <!-- Skip source and javadoc plugins for WAR bundles during release process -->
                <maven.source.skip>true</maven.source.skip>
                <maven.javadoc.skip>true</maven.javadoc.skip>
            </properties>
        </profile>

        <profile>
            <!-- Performs execution of Integration Tests using the Maven
                FailSafe Plugin. The view of integration tests in this context are those
                tests interfacing with external sources and services requiring additional
                resources or credentials that cannot be explicitly provided. Also appropriate
                for tests which depend on inter-thread and/or network or having timing
                considerations which could make the tests brittle on various environments.-->
            <id>integration-tests</id>
            <build>
                <plugins>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-failsafe-plugin</artifactId>
                        <executions>
                            <execution>
                                <goals>
                                    <goal>integration-test</goal>
                                    <goal>verify</goal>
                                </goals>
                            </execution>
                        </executions>
                    </plugin>
                </plugins>
            </build>
        </profile>
        <profile>
            <!--
                always run the (failsafe default) IT*, *IT, *ITCase integration-tests
                skip individual failing ITs (some won't work in a CI environment)
            -->
            <id>integration-tests-ci</id>
            <build>
                <plugins>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-failsafe-plugin</artifactId>
                        <configuration>
                            <failIfNoSpecifiedTests>false</failIfNoSpecifiedTests>
                            <test>
                                IT*, *IT, *ITCase,
                                !AwsSecretsManagerSensitivePropertyProviderIT,
                                !AwsKmsSensitivePropertyProviderIT,
                                !AzureKeyVaultKeySensitivePropertyProviderIT,
                                !GcpKmsSensitivePropertyProviderIT,
                                !StandardHashiCorpVaultCommunicationServiceIT,
                                !ConversionWithSchemaInferenceIT#testXmlToAvro,
                                !ConversionWithSchemaInferenceIT#testXmlToJson,
                                !ConversionWithSchemaInferenceIT#testJsonToCsv,
                                !ConversionWithSchemaInferenceIT#testCsvToXml,
                                !ConversionWithSchemaInferenceIT#testXmlToAvroToXml,
                                !ConversionWithSchemaInferenceIT#testCsvToAvro,
                                !ConversionWithSchemaInferenceIT#testCsvToJson,
                                !ConversionWithSchemaInferenceIT#testJsonToAvroToJson,
                                !ConversionWithSchemaInferenceIT#testCsvToAvroToCsv,
                                !ConversionWithExplicitSchemaIT#testJsonToCsv,
                                !ConversionWithExplicitSchemaIT#testJsonToAvro,
                                !ConversionWithExplicitSchemaIT#testJsonToAvroToJson,
                                !ITConsumeKinesisStreamEndpointOverride,
                                !ITConsumeKinesisStreamConnectAWS,
                                !ITPutKinesisStream,
                                !ITPutKinesisStreamWithEndpointOverride#testIntegrationSuccess,
                                !ITPutKinesisFirehoseWithEndpointOverride#testIntegrationSuccess,
                                !ITPutKinesisFirehose,
                                !ITPutSNS#testPublish,
                                !ITPutSNS#testPublishWithCredentialsProviderService,
                                !ITPutLambda,
                                !GetMongoIT#testDatabaseEL,
                                !PutGridFSIT#testFileNameAndHashUniqueness,
                                !PutGridFSIT#testHashUniqueness,
                                !ITPutAzureCosmosDBRecord,
                                !ITListAzureBlobStorage_v12,
                                !ITPutAzureDataLakeStorage,
                                !ITFetchAzureDataLakeStorage,
                                !ITListAzureDataLakeStorage,
                                !ITCopyAzureBlobStorage_v12,
                                !ITFetchAzureBlobStorage_v12,
                                !ITPutAzureBlobStorage_v12,
                                !ITDeleteAzureDataLakeStorage,
                                !ITDeleteAzureBlobStorage_v12,
                                !ITMoveAzureDataLakeStorage,
                                !AzureGraphUserGroupProviderIT,
                                !GremlinClientServiceYamlSettingsAndBytecodeIT,
                                !GremlinClientServiceControllerSettingsIT,
                                !PrometheusReportingTaskIT#testNullLabel,
                                !SnowflakeConnectionPoolIT,
                                !SnowflakePipeIT,
                                !SalesforceRestServiceIT,
                                !QuerySalesforceObjectIT,
                                !PutSalesforceObjectIT,
                                !FetchDropboxIT,
                                !PutDropboxIT,
                                !ListDropboxIT,
                                !FetchBoxFileIT,
                                !PutBoxFileIT,
                                !ListBoxFileIT,
                                !JsonConfigBasedBoxClientServiceIT,
                                !QueryIoTDBIT,
                                !PutIoTDBRecordIT,
                                !StandardProcessSessionIT#testCloneThenWriteCountsClaimReferencesProperly,
                                !StandardProcessSessionIT#testUpdateFlowFileRepoFailsOnSessionCommit,
                                !JMSPublisherConsumerIT#testMultipleThreads,
                                !ITRedisDistributedMapCacheClientService,
                                !SecureDatabaseIT,
                                !SecureFileIT,
                                !SecureProxyIT#testAccessStatus,
                                !SecureProxyIT#testAccessStatusAsProxiedAdmin,
                                !SecureProxyIT#testAccessStatusUsingRegistryClient,
                                !SecureNiFiRegistryClientIT#testGetAccessStatus,
                                !SecureNiFiRegistryClientIT#testTenantsClientGroups,
                                !SecureNiFiRegistryClientIT#testTenantsClientUsers,
                                !SecureNiFiRegistryClientIT#testCrudOperations,
                                !UnsecuredNiFiRegistryClientIT#testFlowSnapshotsWithParameterContextAndEncodingVersion,
                                !UnsecuredNiFiRegistryClientIT#testNiFiRegistryClient,
                                !ITConnectionAccessControl,
                                !ITLabelAccessControl,
                                !ITOutputPortAccessControl,
                                !ITProcessorAccessControl,
                                !ITFlowAccessControl,
                                !ITFunnelAccessControl,
                                !ITInputPortAccessControl,
                                !ITCountersAccessControl,
                                !ITAllowProxiedAnonymousAccess,
                                !ITPreventProxiedAnonymousAccess,
                                !ITPreventDirectAnonymousAccess,
                                !ITAllowDirectAnonymousAccess,
                                !ITProcessGroupAccessControl,
                                !StatelessNiFiSinkTaskIT#testSimpleFlow,
                                !StatelessNiFiSinkTaskIT#testParameters,
                                !StatelessNiFiSinkTaskIT#testWrongOutputPort
                            </test>
                        </configuration>
                    </plugin>
                </plugins>
            </build>
        </profile>
        <profile>
            <!--
            Disabled Unit Tests executed through the surefire plugin. Intended to be used
            alongside the integration-tests profile to run *only* the tests configured for
            execution through the failsafe plugin
            -->
            <id>skip-unit-tests</id>
            <build>
                <plugins>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-surefire-plugin</artifactId>
                        <configuration>
                            <skipTests>true</skipTests>
                        </configuration>
                    </plugin>
                </plugins>
            </build>
        </profile>
        <profile>
            <id>contrib-check</id>
            <build>
                <plugins>
                    <plugin>
                        <groupId>org.apache.rat</groupId>
                        <artifactId>apache-rat-plugin</artifactId>
                        <executions>
                            <execution>
                                <goals>
                                    <goal>check</goal>
                                </goals>
                                <phase>validate</phase>
                            </execution>
                        </executions>
                    </plugin>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-checkstyle-plugin</artifactId>
                        <executions>
                            <execution>
                                <id>check-style</id>
                                <phase>validate</phase>
                                <configuration>
                                    <inputEncoding>UTF-8</inputEncoding>
                                    <excludes>**/generated-sources/**/*</excludes>
                                    <sourceDirectories>
                                        <sourceDirectory>${project.build.sourceDirectory}</sourceDirectory>
                                        <sourceDirectory>${project.build.testSourceDirectory}</sourceDirectory>
                                    </sourceDirectories>
                                </configuration>
                                <goals>
                                    <goal>check</goal>
                                </goals>
                            </execution>
                        </executions>
                    </plugin>
                </plugins>
            </build>
        </profile>
        <profile>
            <!-- Run "mvn validate -P dependency-check" to generate dependency-check-report.html in the target directory -->
            <!-- Report results require detailed analysis to determine whether the vulnerability impacts the application -->
            <id>dependency-check</id>
            <build>
                <plugins>
                    <plugin>
                        <groupId>org.owasp</groupId>
                        <artifactId>dependency-check-maven</artifactId>
                        <version>9.1.0</version>
                        <executions>
                            <execution>
                                <inherited>false</inherited>
                                <phase>validate</phase>
                                <goals>
                                    <goal>aggregate</goal>
                                </goals>
                                <configuration>
                                    <suppressionFiles>nifi-dependency-check-maven/suppressions.xml</suppressionFiles>
                                    <!-- Skip System Scope to avoid dependency resolution errors with jdk.tools on Java 8 -->
                                    <skipSystemScope>true</skipSystemScope>
                                    <!-- Disable .NET Assembly Analyzer to avoid non-applicable errors -->
                                    <assemblyAnalyzerEnabled>false</assemblyAnalyzerEnabled>
                                    <skipProvidedScope>true</skipProvidedScope>
                                </configuration>
                            </execution>
                        </executions>
                    </plugin>
                </plugins>
            </build>
        </profile>
    </profiles>
</project>
