<?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>23</version>
        <relativePath />
    </parent>
    <groupId>org.apache.nifi</groupId>
    <artifactId>nifi</artifactId>
    <version>1.13.1-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-framework-api</module>
        <module>nifi-server-api</module>
        <module>nifi-bootstrap</module>
        <module>nifi-mock</module>
        <module>nifi-nar-bundles</module>
        <module>nifi-assembly</module>
        <module>nifi-docs</module>
        <module>nifi-maven-archetypes</module>
        <module>nifi-external</module>
        <module>nifi-toolkit</module>
        <module>nifi-docker</module>
        <module>nifi-system-tests</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.source>1.8</maven.compiler.source>
        <maven.compiler.target>1.8</maven.compiler.target>
        <maven.surefire.arguments />
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <inceptionYear>2014</inceptionYear>
        <org.bouncycastle.version>1.68</org.bouncycastle.version>
        <org.slf4j.version>1.7.30</org.slf4j.version>
        <ranger.version>2.1.0</ranger.version>
        <jetty.version>9.4.35.v20201120</jetty.version>
        <jackson.version>2.9.10</jackson.version>
        <jackson-databind.version>2.9.10.8</jackson-databind.version>
        <nifi.registry.version>0.8.0</nifi.registry.version>
        <nifi.groovy.version>2.5.4</nifi.groovy.version>
        <surefire.version>2.22.2</surefire.version>
        <!-- The Hadoop version used by nifi-hadoop-libraries-nar and any NARs that depend on it, other NARs that need
            a specific version should override this property, or use a more specific property like abc.hadoop.version -->
        <hadoop.version>3.2.1</hadoop.version>
        <ozone.version>1.0.0</ozone.version>
        <gcs.version>2.1.5</gcs.version>
        <aspectj.version>1.9.6</aspectj.version>
    </properties>

    <repositories>
        <repository>
            <id>central</id>
            <!-- This should be at top, it makes maven try the central repo
                first and then others and hence faster dep resolution -->
            <name>Maven Repository</name>
            <url>https://repo1.maven.org/maven2</url>
            <releases>
                <enabled>true</enabled>
            </releases>
            <snapshots>
                <enabled>false</enabled>
            </snapshots>
        </repository>
        <repository>
            <id>apache-repo</id>
            <name>Apache Repository</name>
            <url>https://repository.apache.org/content/repositories/releases</url>
            <releases>
                <enabled>true</enabled>
            </releases>
            <snapshots>
                <enabled>false</enabled>
            </snapshots>
        </repository>
        <repository>
            <id>jcenter</id>
            <url>https://jcenter.bintray.com</url>
            <snapshots>
                <enabled>false</enabled>
            </snapshots>
            <releases>
                <enabled>true</enabled>
            </releases>
        </repository>
        <repository>
            <id>Shibboleth</id>
            <name>Shibboleth</name>
            <url>https://build.shibboleth.net/nexus/content/repositories/releases/</url>
        </repository>
    </repositories>

    <pluginRepositories>
        <pluginRepository>
            <id>gcs-maven-central-mirror</id>
            <!--
              Google Mirror of Maven Central, placed first so that it's used instead of flaky Maven Central.
              See https://storage-download.googleapis.com/maven-central/index.html
            -->
            <name>GCS Maven Central mirror</name>
            <url>https://maven-central.storage-download.googleapis.com/repos/central/data/</url>
            <releases>
                <enabled>true</enabled>
            </releases>
            <snapshots>
                <enabled>false</enabled>
            </snapshots>
        </pluginRepository>
        <pluginRepository>
            <id>central</id>
            <name>Central Repository</name>
            <url>https://repo.maven.apache.org/maven2</url>
            <layout>default</layout>
            <snapshots>
                <enabled>false</enabled>
            </snapshots>
            <releases>
                <updatePolicy>never</updatePolicy>
            </releases>
        </pluginRepository>
        <pluginRepository>
            <id>bintray</id>
            <name>Groovy Bintray</name>
            <url>https://dl.bintray.com/groovy/maven</url>
            <releases>
                <updatePolicy>never</updatePolicy>
            </releases>
            <snapshots>
                <enabled>false</enabled>
            </snapshots>
        </pluginRepository>
    </pluginRepositories>

    <dependencyManagement>
        <dependencies>
            <!-- The following dependency management entries exist because these are jars
            that live in the top-level lib directory and will be present in the parent-first
            classloading of all child nars.  Therefore we dont want child nars using different
            versions anyway.-->

            <!-- javax.servlet-api handling this explicitly  Must be in root lib -->
            <dependency>
                <groupId>javax.servlet</groupId>
                <artifactId>javax.servlet-api</artifactId>
                <version>3.1.0</version>
                <scope>provided</scope>
            </dependency>
            <!-- jetty-schemas-3.1.jar handling this explicitly  Must be in root lib -->
            <dependency>
                <groupId>org.eclipse.jetty.toolchain</groupId>
                <artifactId>jetty-schemas</artifactId>
                <version>3.1</version>
                <scope>provided</scope>
            </dependency>
            <!-- logback-classic, logback-core, log4j-over-slf4j, jul-to-slf4j,jcl-over-slf4j,slf4j-api handling this explicitly  Must be in root lib -->
            <dependency>
                <groupId>ch.qos.logback</groupId>
                <artifactId>logback-classic</artifactId>
                <version>1.2.3</version>
                <scope>provided</scope>
            </dependency>
            <dependency>
                <groupId>ch.qos.logback</groupId>
                <artifactId>jcl-over-slf4j</artifactId>
                <version>1.2.3</version>
                <scope>provided</scope>
                <exclusions>
                    <exclusion>
                        <groupId>org.slf4j</groupId>
                        <artifactId>slf4j-api</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.slf4j</groupId>
                <artifactId>jcl-over-slf4j</artifactId>
                <version>${org.slf4j.version}</version>
                <scope>provided</scope>
            </dependency>
            <dependency>
                <groupId>org.slf4j</groupId>
                <artifactId>log4j-over-slf4j</artifactId>
                <version>${org.slf4j.version}</version>
                <scope>provided</scope>
            </dependency>
            <dependency>
                <groupId>org.slf4j</groupId>
                <artifactId>jul-to-slf4j</artifactId>
                <version>${org.slf4j.version}</version>
                <scope>provided</scope>
            </dependency>
            <dependency>
                <groupId>org.slf4j</groupId>
                <artifactId>slf4j-api</artifactId>
                <version>${org.slf4j.version}</version>
                <scope>provided</scope>
            </dependency>
            <dependency>
                <groupId>org.slf4j</groupId>
                <artifactId>slf4j-simple</artifactId>
                <version>${org.slf4j.version}</version>
            </dependency>
            <dependency>
                <groupId>org.slf4j</groupId>
                <artifactId>slf4j-log4j12</artifactId>
                <version>${org.slf4j.version}</version>
            </dependency>
            <dependency>
                <groupId>org.bouncycastle</groupId>
                <artifactId>bcprov-jdk15on</artifactId>
                <version>${org.bouncycastle.version}</version>
            </dependency>
            <dependency>
                <groupId>org.bouncycastle</groupId>
                <artifactId>bcpkix-jdk15on</artifactId>
                <version>${org.bouncycastle.version}</version>
            </dependency>
            <dependency>
                <groupId>org.bouncycastle</groupId>
                <artifactId>bcpg-jdk15on</artifactId>
                <version>${org.bouncycastle.version}</version>
            </dependency>

            <!-- These junit/mockito/groovy/spock/hamcrest dependencies are here to encourage consistent unit test library usage -->
            <dependency>
                <groupId>junit</groupId>
                <artifactId>junit</artifactId>
                <version>4.13.1</version>
            </dependency>
            <dependency>
                <groupId>org.mockito</groupId>
                <artifactId>mockito-core</artifactId>
                <version>2.28.2</version>
            </dependency>
            <dependency>
                <groupId>org.codehaus.groovy</groupId>
                <artifactId>groovy-all</artifactId>
                <version>${nifi.groovy.version}</version>
                <type>pom</type>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>org.codehaus.groovy</groupId>
                <artifactId>groovy-test</artifactId>
                <version>${nifi.groovy.version}</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>org.spockframework</groupId>
                <artifactId>spock-core</artifactId>
                <version>1.3-groovy-2.5</version>
                <scope>test</scope>
                <exclusions>
                    <exclusion>
                        <!-- exclude transitive groovy dependencies to force spock to use the the managed groovy dependencies
                        inherited from the parent pom -->
                        <groupId>org.codehaus.groovy</groupId>
                        <artifactId>*</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.hamcrest</groupId>
                <artifactId>hamcrest-all</artifactId>
                <version>1.3</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>org.testcontainers</groupId>
                <artifactId>testcontainers</artifactId>
                <version>1.11.3</version>
                <scope>test</scope>
            </dependency>
            <!-- These Jetty dependencies are required for the Jetty Web Server all nars extend from it so we dont want this getting overriden -->
            <dependency>
                <groupId>org.eclipse.jetty</groupId>
                <artifactId>jetty-server</artifactId>
                <version>${jetty.version}</version>
                <scope>provided</scope>
            </dependency>
            <dependency>
                <groupId>org.eclipse.jetty</groupId>
                <artifactId>jetty-servlet</artifactId>
                <version>${jetty.version}</version>
                <scope>provided</scope>
            </dependency>
            <dependency>
                <groupId>org.eclipse.jetty</groupId>
                <artifactId>jetty-webapp</artifactId>
                <version>${jetty.version}</version>
                <scope>provided</scope>
            </dependency>
            <dependency>
                <groupId>org.eclipse.jetty</groupId>
                <artifactId>jetty-deploy</artifactId>
                <version>${jetty.version}</version>
                <scope>provided</scope>
            </dependency>
            <dependency>
                <groupId>org.eclipse.jetty</groupId>
                <artifactId>jetty-servlets</artifactId>
                <version>${jetty.version}</version>
                <scope>provided</scope>
            </dependency>
            <dependency>
                <groupId>org.eclipse.jetty</groupId>
                <artifactId>jetty-annotations</artifactId>
                <version>${jetty.version}</version>
                <scope>provided</scope>
            </dependency>
            <dependency>
                <groupId>org.eclipse.jetty</groupId>
                <artifactId>apache-jsp</artifactId>
                <version>${jetty.version}</version>
                <scope>provided</scope>
            </dependency>
            <dependency>
                <groupId>org.eclipse.jetty</groupId>
                <artifactId>apache-jstl</artifactId>
                <version>${jetty.version}</version>
                <scope>provided</scope>
            </dependency>
            <dependency>
                <groupId>org.aspectj</groupId>
                <artifactId>aspectjrt</artifactId>
                <version>${aspectj.version}</version>
            </dependency>
            <dependency>
                <groupId>org.aspectj</groupId>
                <artifactId>aspectjweaver</artifactId>
                <version>${aspectj.version}</version>
            </dependency>
        </dependencies>
    </dependencyManagement>

    <dependencies>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.mockito</groupId>
            <artifactId>mockito-core</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-simple</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.codehaus.groovy</groupId>
            <artifactId>groovy-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>

    <build>
        <pluginManagement>
            <plugins>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-compiler-plugin</artifactId>
                    <version>3.8.1</version>
                    <configuration>
                        <fork>true</fork>
                        <optimize>true</optimize>
                        <showDeprecation>true</showDeprecation>
                        <showWarnings>true</showWarnings>
                    </configuration>
                </plugin>
                <plugin>
                    <groupId>org.codehaus.groovy</groupId>
                    <artifactId>groovy-eclipse-compiler</artifactId>
                    <version>3.4.0-01</version>
                    <extensions>true</extensions>
                </plugin>
                <plugin>
                    <groupId>org.codehaus.groovy</groupId>
                    <artifactId>groovy-eclipse-batch</artifactId>
                    <version>${nifi.groovy.version}-01</version>
                </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>
                        <argLine combine.children="append">-Xmx1G
                            -Djava.net.preferIPv4Stack=true
                            ${maven.surefire.arguments}
                            -Dfile.encoding=UTF-8</argLine>
                    </configuration>
                    <dependencies>
                        <dependency>
                            <!-- Force surefire to use JUnit -->
                            <groupId>org.apache.maven.surefire</groupId>
                            <artifactId>surefire-junit4</artifactId>
                            <version>${surefire.version}</version>
                        </dependency>
                    </dependencies>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-assembly-plugin</artifactId>
                    <configuration>
                        <tarLongFileMode>gnu</tarLongFileMode>
                    </configuration>
                </plugin>
                <plugin>
                    <groupId>org.codehaus.mojo</groupId>
                    <artifactId>jaxb2-maven-plugin</artifactId>
                    <version>2.3.1</version>
                </plugin>
                <plugin>
                    <groupId>org.codehaus.mojo</groupId>
                    <artifactId>exec-maven-plugin</artifactId>
                    <version>1.6.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>
                    </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>
                        <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>org.codehaus.mojo</groupId>
                    <artifactId>rpm-maven-plugin</artifactId>
                    <version>2.1.5</version>
                </plugin>
                <plugin>
                    <groupId>org.codehaus.mojo</groupId>
                    <artifactId>buildnumber-maven-plugin</artifactId>
                    <version>1.4</version>
                </plugin>
                <plugin>
                    <groupId>org.antlr</groupId>
                    <artifactId>antlr3-maven-plugin</artifactId>
                    <version>3.5.2</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-checkstyle-plugin</artifactId>
                    <version>3.1.0</version>
                    <dependencies>
                        <dependency>
                            <groupId>com.puppycrawl.tools</groupId>
                            <artifactId>checkstyle</artifactId>
                            <version>8.29</version>
                        </dependency>
                    </dependencies>
                </plugin>
            </plugins>
        </pluginManagement>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.8.1</version>
                <executions>
                    <!-- Only run for tests -->
                    <execution>
                        <id>groovy-tests</id>
                        <goals>
                            <goal>testCompile</goal>
                        </goals>
                        <configuration>
                            <compilerId>groovy-eclipse-compiler</compilerId>
                        </configuration>
                    </execution>
                </executions>
                <configuration>
                    <source>${maven.compiler.source}</source>
                    <target>${maven.compiler.target}</target>
                </configuration>
                <dependencies>
                    <dependency>
                        <groupId>org.codehaus.groovy</groupId>
                        <artifactId>groovy-eclipse-compiler</artifactId>
                        <version>3.4.0-01</version>
                    </dependency>
                    <dependency>
                        <groupId>org.codehaus.groovy</groupId>
                        <artifactId>groovy-eclipse-batch</artifactId>
                        <version>${nifi.groovy.version}-01</version>
                    </dependency>
                </dependencies>
            </plugin>
            <plugin>
                <groupId>org.apache.nifi</groupId>
                <artifactId>nifi-nar-maven-plugin</artifactId>
                <version>1.3.1</version>
                <extensions>true</extensions>
                <configuration>
                    <enforceDocGeneration>true</enforceDocGeneration>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.sonatype.plugins</groupId>
                <artifactId>nexus-staging-maven-plugin</artifactId>
                <version>1.6.8</version>
                <extensions>true</extensions>
                <configuration>
                    <stagingProgressTimeoutMinutes>15</stagingProgressTimeoutMinutes>
                    <serverId>repository.apache.org</serverId>
                    <nexusUrl>https://repository.apache.org/</nexusUrl>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-enforcer-plugin</artifactId>
                <version>3.0.0-M3</version>
                <executions>
                    <execution>
                        <id>enforce-maven</id>
                        <goals>
                            <goal>enforce</goal>
                        </goals>
                        <configuration>
                            <rules>
                                <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>
                                    <!-- We do not test this value so we should probably make it something fairly recent -->
                                    <version>3.1.1</version>
                                </requireMavenVersion>
                            </rules>
                        </configuration>
                    </execution>
                    <execution>
                        <id>enforce-no-snapshots</id>
                        <goals>
                            <goal>enforce</goal>
                        </goals>
                        <configuration>
                            <rules>
                                <requireReleaseDeps>
                                    <message>Other than org apache nifi components themselves no snapshot dependencies are allowed</message>
                                    <!-- If we want to only enforce this for nifi release itself we should add 'onlyWhenRelease' and remove 'failWhenParentIsSnapshot' element -->
                                    <failWhenParentIsSnapshot>false</failWhenParentIsSnapshot>
                                    <excludes>
                                        <exclude>org.apache.nifi:*</exclude>
                                        <exclude>org.apache.nifi.registry:*</exclude>
                                    </excludes>
                                </requireReleaseDeps>
                            </rules>
                            <fail>true</fail>
                        </configuration>
                    </execution>
                    <execution>
                        <id>enforce-banned-dependencies</id>
                        <goals>
                            <goal>enforce</goal>
                        </goals>
                        <configuration>
                            <rules>
                                <bannedDependencies>
                                    <excludes>
                                        <!-- 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:*:*:compile</exclude>
                                    </excludes>
                                    <includes>
                                        <!-- Versions of JSR305 after 3.0.1 are allowed https://github.com/findbugsproject/findbugs/issues/128 -->
                                        <include>com.google.code.findbugs:jsr305:[3.0.0,)</include>
                                    </includes>
                                </bannedDependencies>
                            </rules>
                            <fail>true</fail>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-checkstyle-plugin</artifactId>
                <configuration>
                    <checkstyleRules>
                        <module name="Checker">
                            <property name="charset" value="UTF-8" />
                            <property name="severity" value="warning" />
                            <!-- Checks for whitespace -->
                            <!-- See http://checkstyle.sf.net/config_whitespace.html -->
                            <module name="FileTabCharacter">
                                <property name="eachLine" value="true" />
                            </module>
                            <module name="LineLength">
                                <!-- needs extra, because Eclipse formatter
                                    ignores the ending left brace -->
                                <property name="max" value="200" />
                                <property name="ignorePattern" value="^package.*|^import.*|a href|href|http://|https://|ftp://" />
                            </module>
                            <module name="TreeWalker">
                                <module name="RegexpSinglelineJava">
                                    <property name="format" value="\s+$" />
                                    <property name="message" value="Line has trailing whitespace." />
                                </module>
                                <module name="RegexpSinglelineJava">
                                    <property name="format" value="[@]see\s+[{][@]link" />
                                    <property name="message" value="Javadoc @see does not need @link: pick one or the other." />
                                </module>
                                <module name="OuterTypeFilename" />
                                <module name="AvoidStarImport" />
                                <module name="UnusedImports">
                                    <property name="processJavadoc" value="true" />
                                </module>
                                <module name="NoLineWrap" />
                                <module name="LeftCurly" />
                                <module name="RightCurly" />
                                <module name="RightCurly">
                                    <property name="option" value="alone_or_singleline" />
                                    <property name="tokens" value="CLASS_DEF, METHOD_DEF, CTOR_DEF, LITERAL_FOR, LITERAL_WHILE, STATIC_INIT" />
                                </module>
                                <module name="SeparatorWrap">
                                    <property name="tokens" value="DOT" />
                                    <property name="option" value="nl" />
                                </module>
                                <module name="SeparatorWrap">
                                    <property name="tokens" value="COMMA" />
                                    <property name="option" value="EOL" />
                                </module>
                                <module name="PackageName">
                                    <property name="format" value="^[a-z]+(\.[a-z][a-zA-Z0-9]*)*$" />
                                </module>
                                <module name="MethodTypeParameterName">
                                    <property name="format" value="(^[A-Z][0-9]?)$|([A-Z][a-zA-Z0-9]*[T]$)" />
                                </module>
                                <module name="MethodParamPad" />
                                <module name="OperatorWrap">
                                    <property name="option" value="NL" />
                                    <property name="tokens" value="BAND, BOR, BSR, BXOR, DIV, EQUAL, GE, GT, LAND, LE, LITERAL_INSTANCEOF, LOR, LT, MINUS, MOD, NOT_EQUAL, QUESTION, SL, SR, STAR " />
                                </module>
                                <module name="AnnotationLocation">
                                    <property name="tokens" value="CLASS_DEF, INTERFACE_DEF, ENUM_DEF, METHOD_DEF, CTOR_DEF" />
                                </module>
                                <module name="AnnotationLocation">
                                    <property name="tokens" value="VARIABLE_DEF" />
                                    <property name="allowSamelineMultipleAnnotations" value="true" />
                                </module>
                                <module name="NonEmptyAtclauseDescription" />
                                <module name="JavadocMethod">
                                    <property name="allowMissingParamTags" value="true" />
                                    <property name="allowMissingReturnTag" value="true" />
                                    <property name="allowedAnnotations" value="Override,Test,BeforeClass,AfterClass,Before,After" />
                                </module>
                                <module name="SingleLineJavadoc" />
                            </module>
                        </module>
                    </checkstyleRules>
                    <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 -->
                        <exclude>.github/PULL_REQUEST_TEMPLATE.md</exclude> <!-- PR Template for GitHub that does not have a mechanism of including comments -->
                        <exclude>.github/workflows/ci-workflow.yml</exclude>
                    </excludes>
                </configuration>
            </plugin>
        </plugins>
    </build>
    <profiles>
        <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>
            <!-- Checks style and licensing requirements. This is a good
                idea to run for contributions and for the release process. While it would
                be nice to run always these plugins can considerably slow the build and have
                proven to create unstable builds in our multi-module project and when building
                using multiple threads. The stability issues seen with Checkstyle in multi-module
                builds include false-positives and false negatives. -->
            <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>verify</phase>
                            </execution>
                        </executions>
                    </plugin>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-checkstyle-plugin</artifactId>
                        <executions>
                            <execution>
                                <id>check-style</id>
                                <phase>verify</phase>
                                <configuration>
                                    <encoding>UTF-8</encoding>
                                    <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>
            <!-- This profile will disable DocLint which performs strict
                JavaDoc processing which was introduced in JDK 8. These are technically errors
                in the JavaDoc which we need to eventually address. However, if a release
                is performed using JDK 8 or newer, the JavaDoc generation would fail. By activating
                this profile when running on JDK 8 or newer we can ensure the JavaDocs continue to
                generate successfully -->
            <id>disable-doclint</id>
            <activation>
                <jdk>[1.8,)</jdk>
            </activation>
            <build>
                <pluginManagement>
                    <plugins>
                        <plugin>
                            <groupId>org.apache.maven.plugins</groupId>
                            <artifactId>maven-javadoc-plugin</artifactId>
                            <configuration>
                                <additionalparam>-Xdoclint:none</additionalparam>
                            </configuration>
                        </plugin>
                    </plugins>
                </pluginManagement>
            </build>
        </profile>
        <profile>
            <!-- This profile, activating when compiling on Java versions above 1.8, provides configuration changes to
                 allow NiFi to be compiled on those JDKs. -->
            <id>jigsaw</id>
            <activation>
                <jdk>(1.8,)</jdk>
            </activation>
            <properties>
                <maven.compiler.source>11</maven.compiler.source>
                <maven.compiler.target>11</maven.compiler.target>
            </properties>
            <build>
                <pluginManagement>
                    <plugins>
                        <plugin>
                            <groupId>org.jvnet.jaxb2.maven2</groupId>
                            <artifactId>maven-jaxb2-plugin</artifactId>
                            <version>0.14.0</version>
                        </plugin>
                    </plugins>
                </pluginManagement>
            </build>
            <dependencyManagement>
                <dependencies>
                    <dependency>
                        <groupId>javax.xml.bind</groupId>
                        <artifactId>jaxb-api</artifactId>
                        <version>2.3.0</version>
                    </dependency>
                    <dependency>
                        <groupId>com.sun.xml.bind</groupId>
                        <artifactId>jaxb-core</artifactId>
                        <version>2.3.0</version>
                    </dependency>
                    <dependency>
                        <groupId>com.sun.xml.bind</groupId>
                        <artifactId>jaxb-impl</artifactId>
                        <version>2.3.0</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>
                </dependencies>
            </dependencyManagement>
        </profile>
        <!-- The following profiles are here as a convenience for folks that
            want to build against vendor-specific distributions of the various Hadoop
            ecosystem libraries. These will alter which dependencies are sourced in a
            manner that can adjust the correct LICENSE and NOTICE requirements for any
            affected jar and the resulting assembly overall. These L&N impacts are not
            automatically handled by the build process and are the responsibility of
            those creating and using the resulting binary artifacts. -->
        <profile>
            <!-- This profile adds the Hortonworks repository for resolving
                Hortonworks Data Platform (HDP) artifacts for the Hadoop bundles -->
            <id>hortonworks</id>
            <repositories>
                <repository>
                    <id>hortonworks-releases</id>
                    <name>Hortonworks Repository</name>
                    <url>https://repo.hortonworks.com/content/repositories/releases/</url>
                    <releases>
                        <enabled>true</enabled>
                        <updatePolicy>always</updatePolicy>
                        <checksumPolicy>warn</checksumPolicy>
                    </releases>
                    <snapshots>
                        <enabled>false</enabled>
                        <updatePolicy>never</updatePolicy>
                        <checksumPolicy>fail</checksumPolicy>
                    </snapshots>
                </repository>
                <repository>
                    <id>hortonworks-jetty</id>
                    <name>Hortonworks Jetty Repository</name>
                    <url>https://repo.hortonworks.com/content/repositories/jetty-hadoop/</url>
                    <releases>
                        <enabled>true</enabled>
                        <updatePolicy>always</updatePolicy>
                        <checksumPolicy>warn</checksumPolicy>
                    </releases>
                    <snapshots>
                        <enabled>false</enabled>
                        <updatePolicy>never</updatePolicy>
                        <checksumPolicy>fail</checksumPolicy>
                    </snapshots>
                </repository>
            </repositories>
            <properties>
                <!-- Vendor-specific version number included here as default,
                    should be overridden on the command-line <hadoop.version>2.7.1.2.4.0.0-169</hadoop.version> -->
            </properties>
        </profile>
        <profile>
            <!-- This profile will add the MapR repository for resolving
                MapR Hadoop artifacts for the Hadoop bundles -->
            <id>mapr</id>
            <repositories>
                <repository>
                    <id>mapr-releases</id>
                    <name>MapR Repository</name>
                    <url>https://repository.mapr.com/maven/</url>
                    <snapshots>
                        <enabled>false</enabled>
                    </snapshots>
                    <releases>
                        <enabled>true</enabled>
                    </releases>
                </repository>
            </repositories>
            <properties>
                <!-- Vendor-specific version number included here as default,
                    should be overridden on the command-line <hadoop.version>2.7.0-mapr-1602</hadoop.version> -->
            </properties>
        </profile>
        <profile>
            <!-- This profile will add the Cloudera repository for resolving
                Cloudera Distribution of Hadoop (CDH) artifacts for the Hadoop bundles -->
            <id>cloudera</id>
            <repositories>
                <repository>
                    <id>cloudera-repo</id>
                    <name>Cloudera Repository</name>
                    <url>https://repository.cloudera.com/artifactory/cloudera-repos</url>
                    <releases>
                        <enabled>true</enabled>
                    </releases>
                    <snapshots>
                        <enabled>false</enabled>
                    </snapshots>
                </repository>
            </repositories>
            <properties>
                <!-- Vendor-specific version number included here as default,
                    should be overridden on the command-line <hadoop.version>2.6.0-cdh5.8.1</hadoop.version> -->
            </properties>
        </profile>
    </profiles>
</project>
