<?xml version="1.0" encoding="UTF-8"?>
<!--
  Licensed to the Apache Software Foundation (ASF) under one or more
  contributor license agreements.  See the NOTICE file distributed with
  this work for additional information regarding copyright ownership.
  The ASF licenses this file to You under the Apache License, Version 2.0
  (the "License"); you may not use this file except in compliance with
  the License.  You may obtain a copy of the License at
      http://www.apache.org/licenses/LICENSE-2.0
  Unless required by applicable law or agreed to in writing, software
  distributed under the License is distributed on an "AS IS" BASIS,
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  See the License for the specific language governing permissions and
  limitations under the License.
-->

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.apache</groupId>
        <artifactId>apache</artifactId>
        <version>17</version>
        <relativePath />
    </parent>
    <groupId>org.apache.nifi.registry</groupId>
    <artifactId>nifi-registry</artifactId>
    <version>0.5.0-SNAPSHOT</version>
    <packaging>pom</packaging>
    <description>Provides a central location for storage and management of shared resources across one or more instances
        of NiFi and/or MiNiFi.
    </description>
    <modules>
        <module>nifi-registry-core</module>
        <module>nifi-registry-extensions</module>
        <module>nifi-registry-assembly</module>
        <module>nifi-registry-toolkit</module>
    </modules>
    <url>https://nifi.apache.org/registry.html</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-registry.git</connection>
        <developerConnection>scm:git:https://git-wip-us.apache.org/repos/asf/nifi-registry.git</developerConnection>
        <url>https://git-wip-us.apache.org/repos/asf?p=nifi-registry.git</url>
        <tag>HEAD</tag>
    </scm>
    <issueManagement>
        <system>JIRA</system>
        <url>https://issues.apache.org/jira/browse/NIFIREG</url>
    </issueManagement>
    <properties>
        <maven.compiler.source>1.8</maven.compiler.source>
        <maven.compiler.target>1.8</maven.compiler.target>
        <maven.min-version>3.1.0</maven.min-version>
        <maven.surefire.arguments />
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <inceptionYear>2017</inceptionYear>
        <org.slf4j.version>1.7.12</org.slf4j.version>
        <jetty.version>9.4.19.v20190610</jetty.version>
        <jax.rs.api.version>2.1</jax.rs.api.version>
        <jersey.version>2.27</jersey.version>
        <jackson.version>2.9.8</jackson.version>
        <spring.boot.version>2.1.3.RELEASE</spring.boot.version>
        <spring.security.version>5.1.3.RELEASE</spring.security.version>
        <flyway.version>5.2.1</flyway.version>
        <flyway.tests.version>5.1.0</flyway.tests.version>
        <swagger.ui.version>3.12.0</swagger.ui.version>
        <testcontainers.version>1.11.2</testcontainers.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>jcenter-releases</id>
            <name>jcenter</name>
            <url>https://jcenter.bintray.com</url>
            <snapshots>
                <enabled>false</enabled>
            </snapshots>
        </pluginRepository>
    </pluginRepositories>


    <dependencyManagement>
        <dependencies>
            <!-- Logging dependencies that will be directly in lib -->
            <dependency>
                <groupId>ch.qos.logback</groupId>
                <artifactId>logback-classic</artifactId>
                <version>1.1.3</version>
            </dependency>
            <dependency>
                <groupId>ch.qos.logback</groupId>
                <artifactId>jcl-over-slf4j</artifactId>
                <version>1.1.3</version>
                <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>
            </dependency>
            <dependency>
                <groupId>org.slf4j</groupId>
                <artifactId>log4j-over-slf4j</artifactId>
                <version>${org.slf4j.version}</version>
            </dependency>
            <dependency>
                <groupId>org.slf4j</groupId>
                <artifactId>jul-to-slf4j</artifactId>
                <version>${org.slf4j.version}</version>
            </dependency>
            <dependency>
                <groupId>org.slf4j</groupId>
                <artifactId>slf4j-api</artifactId>
                <version>${org.slf4j.version}</version>
            </dependency>
	    <!-- lib/shared -->
            <dependency>
                <groupId>org.apache.commons</groupId>
                <artifactId>commons-lang3</artifactId>
                <version>3.5</version>
            </dependency>
	    <!-- NiFi Registry Modules -->
            <dependency>
                <groupId>org.apache.nifi.registry</groupId>
                <artifactId>nifi-registry-utils</artifactId>
                <version>0.5.0-SNAPSHOT</version>
            </dependency>
            <dependency>
                <groupId>org.apache.nifi.registry</groupId>
                <artifactId>nifi-registry-bootstrap</artifactId>
                <version>0.5.0-SNAPSHOT</version>
            </dependency>
            <dependency>
                <groupId>org.apache.nifi.registry</groupId>
                <artifactId>nifi-registry-runtime</artifactId>
                <version>0.5.0-SNAPSHOT</version>
            </dependency>
            <dependency>
                <groupId>org.apache.nifi.registry</groupId>
                <artifactId>nifi-registry-security-api</artifactId>
                <version>0.5.0-SNAPSHOT</version>
            </dependency>
            <dependency>
                <groupId>org.apache.nifi.registry</groupId>
                <artifactId>nifi-registry-provider-api</artifactId>
                <version>0.5.0-SNAPSHOT</version>
            </dependency>
            <dependency>
                <groupId>org.apache.nifi.registry</groupId>
                <artifactId>nifi-registry-web-ui</artifactId>
                <type>war</type>
                <version>0.5.0-SNAPSHOT</version>
            </dependency>
            <dependency>
                <groupId>org.apache.nifi.registry</groupId>
                <artifactId>nifi-registry-web-api</artifactId>
                <type>war</type>
                <version>0.5.0-SNAPSHOT</version>
            </dependency>
            <dependency>
                <groupId>org.apache.nifi.registry</groupId>
                <artifactId>nifi-registry-resources</artifactId>
                <version>0.5.0-SNAPSHOT</version>
                <classifier>resources</classifier>
                <scope>runtime</scope>
                <type>zip</type>
            </dependency>
	    <!-- Test dependencies -->
            <dependency>
                <groupId>org.mockito</groupId>
                <artifactId>mockito-core</artifactId>
                <version>2.7.22</version>
                <scope>test</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>

    <dependencies>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
            <scope>test</scope>
        </dependency>
    </dependencies>

    <build>
        <pluginManagement>
            <plugins>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-compiler-plugin</artifactId>
                    <version>3.2</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>2.9.2-01</version>
                    <extensions>true</extensions>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-war-plugin</artifactId>
                    <version>2.5</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-dependency-plugin</artifactId>
                    <version>2.9</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-resources-plugin</artifactId>
                    <version>2.7</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-surefire-plugin</artifactId>
                    <version>2.18</version>
                    <configuration>
                        <systemPropertyVariables>
                            <java.awt.headless>true</java.awt.headless>
                        </systemPropertyVariables>
                        <includes>
                            <include>**/*Test.class</include>
                            <include>**/Test*.class</include>
                            <include>**/*Spec.class</include>
                        </includes>
                        <redirectTestOutputToFile>true</redirectTestOutputToFile>
                        <argLine combine.children="append">-Xmx1G -Djava.net.preferIPv4Stack=true
                            ${maven.surefire.arguments}
                        </argLine>
                    </configuration>
                    <dependencies>
                        <dependency>
                            <!-- Force surefire to use JUnit -->
                            <groupId>org.apache.maven.surefire</groupId>
                            <artifactId>surefire-junit4</artifactId>
                            <version>2.18</version>
                        </dependency>
                    </dependencies>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-failsafe-plugin</artifactId>
                    <version>2.18</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-assembly-plugin</artifactId>
                    <version>2.5.2</version>
                    <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.apache.maven.plugins</groupId>
                    <artifactId>maven-source-plugin</artifactId>
                    <version>2.4</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-site-plugin</artifactId>
                    <version>3.4</version>
                </plugin>
                <plugin>
                    <groupId>org.codehaus.mojo</groupId>
                    <artifactId>exec-maven-plugin</artifactId>
                    <version>1.3.2</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-jar-plugin</artifactId>
                    <version>2.5</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-javadoc-plugin</artifactId>
                    <version>2.10.1</version>
                    <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>
                    <version>2.5.1</version>
                    <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.4</version>
                </plugin>
                <plugin>
                    <groupId>org.codehaus.mojo</groupId>
                    <artifactId>buildnumber-maven-plugin</artifactId>
                    <version>1.4</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-checkstyle-plugin</artifactId>
                    <version>2.15</version>
                    <dependencies>
                        <dependency>
                            <groupId>com.puppycrawl.tools</groupId>
                            <artifactId>checkstyle</artifactId>
                            <version>6.5</version>
                        </dependency>
                    </dependencies>
                </plugin>
            </plugins>
        </pluginManagement>

        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <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>1.8</source>
                    <target>1.8</target>
                </configuration>
                <dependencies>
                    <dependency>
                        <groupId>org.codehaus.groovy</groupId>
                        <artifactId>groovy-eclipse-compiler</artifactId>
                        <version>2.9.2-01</version>
                    </dependency>
                    <dependency>
                        <groupId>org.codehaus.groovy</groupId>
                        <artifactId>groovy-eclipse-batch</artifactId>
                        <version>2.4.3-01</version>
                    </dependency>
                </dependencies>
            </plugin>
            <plugin>
                <groupId>org.sonatype.plugins</groupId>
                <artifactId>nexus-staging-maven-plugin</artifactId>
                <version>1.6.5</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" />
                            <!-- Checks for whitespace -->
                            <!-- See https://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">
                                    <property name="maxLineLength" value="160" />
                                </module>
                                <module name="RightCurly" />
                                <module name="RightCurly">
                                    <property name="option" value="alone" />
                                    <property name="tokens" value="CLASS_DEF, METHOD_DEF, CTOR_DEF, LITERAL_FOR, LITERAL_WHILE, LITERAL_DO, STATIC_INIT, INSTANCE_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="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>
                    <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>**/resources/banner.txt
                        </exclude> <!-- Console banner text that does not have a mechanism of including comments -->
                        <exclude>src/main/resources/swagger/security-definitions.json
                        </exclude> <!-- A maven-swagger-plugin input file that does not have a mechanism of including comments -->
			            <exclude>.travis-output-filters</exclude> <!-- grep patterns to exclude from travis output -->
                        <exclude>src/test/resources/descriptors/*</exclude>
                    </excludes>
                </configuration>
                <dependencies>
                    <!-- workaround for RAT-158 -->
                    <dependency>
                        <groupId>org.apache.maven.doxia</groupId>
                        <artifactId>doxia-core</artifactId>
                        <version>1.6</version>
                        <exclusions>
                            <exclusion>
                                <groupId>xerces</groupId>
                                <artifactId>xercesImpl</artifactId>
                            </exclusion>
                        </exclusions>
                    </dependency>
                </dependencies>
            </plugin>
        </plugins>
    </build>

    <profiles>
        <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>
                                <goals>
                                    <goal>check</goal>
                                </goals>
                                <phase>verify</phase>
                            </execution>
                        </executions>
                    </plugin>
                </plugins>
            </build>
        </profile>
        <profile>
            <!-- Performs execution of Integration Tests using the Maven
                FailSafe Plugin. The view of integration tests in this context are those
                tests loading a full web server with API war with no mocks. -->
            <id>integration-tests</id>
            <activation>
                <activeByDefault>true</activeByDefault>
            </activation>
            <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>
                                <phase>verify</phase>
                            </execution>
                        </executions>
                    </plugin>
                </plugins>
            </build>
        </profile>
        <profile>
            <!-- This profile will disable DocLint which performs strict 
                JavaDoc processing which was introduced in JDK 8, which is required to build nifi-registry.
                These are technically errors in the JavaDoc, which we need to eventually address.
                However, without this, artifact generation currently fails. -->
            <id>disable-doclint</id>
            <activation>
                <activeByDefault>true</activeByDefault>
            </activation>
            <build>
                <pluginManagement>
                    <plugins>
                        <plugin>
                            <groupId>org.apache.maven.plugins</groupId>
                            <artifactId>maven-javadoc-plugin</artifactId>
                            <configuration>
                                <doclint>none</doclint>
                            </configuration>
                        </plugin>
                    </plugins>
                </pluginManagement>
            </build>
        </profile>
    </profiles>

</project>
