<?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>21</version>
        <relativePath />
    </parent>
    <groupId>org.apache.nifi</groupId>
    <artifactId>nifi</artifactId>
    <version>1.11.0</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-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>
    <prerequisites>
        <maven>${maven.min-version}</maven>
    </prerequisites>
    <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>nifi-1.11.0-RC1</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.min-version>3.1.1</maven.min-version>
        <maven.surefire.arguments />
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <inceptionYear>2014</inceptionYear>
        <org.slf4j.version>1.7.26</org.slf4j.version>
        <ranger.version>2.0.0</ranger.version>
        <jetty.version>9.4.19.v20190610</jetty.version>
        <jackson.version>2.9.10</jackson.version>
        <jackson-databind.version>2.9.10.1</jackson-databind.version>
        <nifi.registry.version>0.5.0</nifi.registry.version>
        <nifi.groovy.version>2.5.4</nifi.groovy.version>
        <surefire.version>2.22.0</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.0</hadoop.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>
    </repositories>

    <pluginRepositories>
        <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>

            <!-- 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.12</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>
        </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.0.0</version>
                    <dependencies>
                        <dependency>
                            <groupId>com.puppycrawl.tools</groupId>
                            <artifactId>checkstyle</artifactId>
                            <version>8.21</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>
                <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>
                                    <version>${maven.min-version}</version>
                                </requireMavenVersion>
                            </rules>
                        </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" />
                            <property name="cacheFile" value="target/checkstyleCache" />
                            <!-- Checks for whitespace -->
                            <!-- See http://checkstyle.sf.net/config_whitespace.html -->
                            <module name="FileTabCharacter">
                                <property name="eachLine" value="true" />
                            </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="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="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="allowUndeclaredRTE" value="true" />
                                    <property name="allowMissingJavadoc" value="true" />
                                    <property name="allowMissingParamTags" value="true" />
                                    <property name="allowMissingThrowsTags" value="true" />
                                    <property name="allowMissingReturnTag" value="true" />
                                    <property name="allowedAnnotations" value="Override,Test,BeforeClass,AfterClass,Before,After" />
                                    <property name="allowThrowsTagsForSubclasses" value="true" />
                                </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>.travis-output-filters</exclude> <!-- grep patterns to exclude from travis output -->
                    </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>
