nifi/pom.xml
Matt Gilman 406dbced3b
NIFI-13354: (#8936)
- Moving NiFi front end source into a top level maven module. This prepares for the introduction of other UIs that NiFi offers (like Custom UIs, Data Viewers, etc) to be colocated and share common components, styles, and dependencies.
- The nifi-web-frontend module which produces the war that is included in the server nar now no longer contains any source. It simply depends on the new nifi-frontend artifact that bundles all built UIs and unpacks its contents into the resulting war.
- Renaming nifi-web-frontend to nifi-ui. Now nifi-frontend at the top level will hold all frontend apps. In this commit the nifi app in nifi-frontend is bundled into a war called nifi-ui.

This closes #8936
2024-06-07 16:25:07 -04:00

1110 lines
52 KiB
XML

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