blob: c7c2e029481d43074e53abf6c70d59bcc92ea3de [file]
<?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/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.apache</groupId>
<artifactId>apache</artifactId>
<version>40</version>
</parent>
<groupId>org.apache.storm</groupId>
<artifactId>storm</artifactId>
<version>3.1.1-SNAPSHOT</version>
<packaging>pom</packaging>
<name>Storm</name>
<description>Distributed and fault-tolerant realtime computation</description>
<url>https://storm.apache.org</url>
<licenses>
<license>
<name>The Apache Software License, Version 2.0</name>
<url>https://www.apache.org/licenses/LICENSE-2.0.txt</url>
</license>
</licenses>
<mailingLists>
<mailingList>
<name>Storm user mailing list</name>
<subscribe>user-subscribe@storm.apache.org</subscribe>
<unsubscribe>user-unsubscribe@storm.apache.org</unsubscribe>
<post>user@storm.apache.org</post>
<archive>https://mail-archives.apache.org/mod_mbox/storm-user/</archive>
</mailingList>
<mailingList>
<name>Storm developer mailing list</name>
<subscribe>dev-subscribe@storm.apache.org</subscribe>
<unsubscribe>dev-unsubscribe@storm.apache.org</unsubscribe>
<post>dev@storm.apache.org</post>
<archive>https://mail-archives.apache.org/mod_mbox/storm-dev/</archive>
</mailingList>
</mailingLists>
<scm>
<connection>git@github.com:apache/storm.git</connection>
<developerConnection>scm:git:https://gitbox.apache.org/repos/asf/storm.git</developerConnection>
<url>https://github.com/apache/storm</url>
<tag>v3.0.0</tag>
</scm>
<issueManagement>
<system>github</system>
<url>https://github.com/apache/storm/issues</url>
</issueManagement>
<properties>
<javaVersion>25</javaVersion>
<!-- checkstyle auto-fix tooling (run on demand, see storm-checkstyle/README.md) -->
<rewrite-maven-plugin.version>6.46.1</rewrite-maven-plugin.version>
<rewrite-static-analysis.version>2.41.1</rewrite-static-analysis.version>
<gmavenplus.version>5.1.0</gmavenplus.version>
<groovy.version>4.0.33</groovy.version>
<!-- Used by both the checkstyle check and checkstyle-autofix.groovy. If you change this, you should
also update the storm_checkstyle.xml file to be based on the google_checks.xml from the version
of checkstyle you are choosing. -->
<checkstyle.version>14.3.0</checkstyle.version>
<maven.javadoc.failOnError>false</maven.javadoc.failOnError>
<maven.javadoc.failOnWarnings>false</maven.javadoc.failOnWarnings>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<test.extra.args>-Djava.net.preferIPv4Stack=true</test.extra.args>
<!-- license-maven-plugin that needs to be overridable from command line -->
<license.skipAggregateAddThirdParty>true</license.skipAggregateAddThirdParty>
<license.skipAggregateDownloadLicenses>true</license.skipAggregateDownloadLicenses>
<license.thirdPartyFilename>DEPENDENCY-LICENSES</license.thirdPartyFilename>
<license.outputDirectory>${project.basedir}</license.outputDirectory>
<!-- dependency versions -->
<commons-compress.version>1.28.0</commons-compress.version>
<zstd-jni.version>1.5.7-15</zstd-jni.version>
<commons-io.version>2.22.0</commons-io.version>
<commons-lang3.version>3.21.0</commons-lang3.version>
<commons-exec.version>1.6.0</commons-exec.version>
<commons-collections.version>4.6.0</commons-collections.version>
<commons-fileupload.version>1.6.0</commons-fileupload.version>
<commons-codec.version>1.22.1</commons-codec.version>
<commons-text.version>1.15.0</commons-text.version>
<commons-cli.version>1.11.0</commons-cli.version>
<curator.version>5.9.0</curator.version>
<jetty.version>12.1.13</jetty.version>
<snakeyaml.version>2.7</snakeyaml.version>
<httpclient.version>4.5.14</httpclient.version>
<httpclient.core.version>4.4.16</httpclient.core.version>
<jctools.version>4.0.7</jctools.version>
<jgrapht.version>1.5.3</jgrapht.version>
<guava.version>33.7.1-jre</guava.version>
<!-- Guava's nullness-annotation transitive. Bump it together with guava.version, and
keep it equal to the value in that Guava release's guava-parent pom - never above.
It is pinned because JUnit 6 also declares org.jspecify:jspecify, at a nearer depth
than Guava, so without the managed entry below the daemon (lib) and worker
(lib-common) classpaths of the binary distribution mediate to different versions
and dedup-libs.py refuses to assemble the tarball. -->
<jspecify.version>1.0.1</jspecify.version>
<auto-service.version>1.1.1</auto-service.version>
<netty-tcnative.version>2.0.84.Final</netty-tcnative.version>
<netty.version>4.2.18.Final</netty.version>
<sysout-over-slf4j.version>1.0.2</sysout-over-slf4j.version>
<log4j.version>2.26.1</log4j.version>
<slf4j.version>2.0.20</slf4j.version>
<metrics.version>4.2.40</metrics.version>
<mockito.version>5.24.0</mockito.version>
<zookeeper.version>3.9.6</zookeeper.version>
<snappy.version>1.1.10.8</snappy.version>
<jline.version>2.14.6</jline.version>
<hikari.version>7.1.0</hikari.version>
<hadoop.version>3.5.0</hadoop.version>
<hbase.version>2.6.6-hadoop3</hbase.version>
<!-- Pinned deliberately: storm-iceberg must stay buildable against the Java baseline
above, so this is bumped explicitly rather than tracking the newest release. -->
<iceberg.version>1.12.0</iceberg.version>
<kryo.version>5.6.2</kryo.version>
<objensis.version>3.6</objensis.version>
<jakarta.servlet.version>6.1.0</jakarta.servlet.version>
<thrift.version>0.24.0</thrift.version>
<junit.jupiter.version>6.1.3</junit.jupiter.version>
<surefire.version>3.6.0</surefire.version>
<awaitility.version>4.3.0</awaitility.version>
<hdrhistogram.version>2.2.2</hdrhistogram.version>
<hamcrest.version>3.0</hamcrest.version>
<jedis.version>8.0.1</jedis.version>
<activemq.version>6.3.2</activemq.version>
<commons-logging.version>1.4.0</commons-logging.version>
<jackson.version>2.22.3</jackson.version>
<jackson.databind.version>2.22.3</jackson.databind.version>
<storm.kafka.client.version>4.3.1</storm.kafka.client.version>
<testcontainers.version>1.21.4</testcontainers.version>
<java.unit.test.exclude.groups>PerformanceTest</java.unit.test.exclude.groups>
<skipITs>true</skipITs>
<maven-resolver.version>1.9.27</maven-resolver.version>
<maven.version>3.9.16</maven.version>
<jersey.version>3.1.11</jersey.version>
<dropwizard.version>5.0.2</dropwizard.version>
<j2html.version>1.6.0</j2html.version>
<caffeine.version>3.3.0</caffeine.version>
<jakarta-jaxb-version>4.0.5</jakarta-jaxb-version>
<jakarta-activation-version>2.0.1</jakarta-activation-version>
<jakarta-jaxws-version>4.0.0</jakarta-jaxws-version>
<jaxb-version>2.3.1</jaxb-version>
<rocksdb-jni-version>10.10.1.1</rocksdb-jni-version>
<json-smart.version>2.6.0</json-smart.version>
<byte-buddy.version>1.18.14</byte-buddy.version>
<gson.version>2.14.0</gson.version>
<!-- see intellij profile below... This fixes an annoyance with intellij -->
<provided.scope>provided</provided.scope>
<asm.version>9.10.1</asm.version>
<error_prone_annotations.version>2.50.0</error_prone_annotations.version>
<bouncycastle.version>1.86</bouncycastle.version>
</properties>
<modules>
<module>storm-shaded-deps</module>
<module>storm-checkstyle</module>
<module>storm-multilang</module>
<module>storm-client</module>
<module>storm-server</module>
<module>storm-core</module>
<module>storm-webapp</module>
<module>storm-submit-tools</module>
</modules>
<dependencies>
<!-- The JUnit dependency is required for submodules by the maven-surefire-plugin <excludedGroups> configuration -->
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-engine</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<profiles>
<!--
Hack to make intellij behave.
If you use intellij, enable this profile in your IDE.
It should make life easier.
-->
<profile>
<id>intellij</id>
<properties>
<provided.scope>compile</provided.scope>
</properties>
</profile>
<profile>
<id>rat</id>
<build>
<plugins>
<plugin>
<groupId>org.apache.rat</groupId>
<artifactId>apache-rat-plugin</artifactId>
<executions>
<execution>
<phase>test</phase>
<goals>
<goal>check</goal>
</goals>
</execution>
</executions>
<configuration>
<excludeSubProjects>false</excludeSubProjects>
<consoleOutput>true</consoleOutput>
<excludes>
<!-- exclude maven artifacts -->
<exclude>**/target/**</exclude>
<exclude>**/target/rat.txt</exclude>
<!-- exclude intellij projects -->
<exclude>**/*.iml</exclude>
<exclude>**/.idea/**</exclude>
<!-- exclude eclipse projects -->
<exclude>**/*.classpath</exclude>
<exclude>**/.project</exclude>
<exclude>**/.settings/**</exclude>
<!-- module specific testing artifacts -->
<exclude>**/metastore_db/**</exclude>
<!-- anything written into build should be ignored -->
<exclude>**/build/**</exclude>
<!-- logs generated during test -->
<exclude>**/logs/**</exclude>
<!-- exclude CHANGELOG, VERSION, AND TODO files -->
<exclude>**/CHANGELOG.md</exclude>
<exclude>**/README.md</exclude>
<exclude>**/AGENTS.md</exclude>
<exclude>**/README.markdown</exclude>
<exclude>**/DEVELOPER.md</exclude>
<exclude>**/RELEASING.md</exclude>
<exclude>**/BYLAWS.md</exclude>
<exclude>**/STORM-UI-REST-API.md</exclude>
<exclude>SECURITY.md</exclude>
<exclude>VERSION</exclude>
<exclude>TODO</exclude>
<exclude>DEPENDENCY-LICENSES</exclude>
<exclude>LICENSE-binary</exclude>
<exclude>NOTICE-binary</exclude>
<!-- Exclude dependency license files -->
<exclude>licenses/**</exclude>
<!-- thrift-generated code -->
<exclude>**/src/py/**</exclude>
<!-- Used as part of GitHub action build -->
<exclude>install.txt</exclude>
<exclude>**/install-shade.txt</exclude>
<!-- storm-webapp static assets and frontend build artifacts -->
<exclude>**/src/main/java/org/apache/storm/daemon/ui/WEB-INF/images/*
</exclude>
<!-- npm / webpack artifacts -->
<exclude>**/node_modules/**</exclude>
<exclude>**/package-lock.json</exclude>
<exclude>**/storm-webapp/node/**</exclude>
<exclude>**/src/main/resources/Audit.50.csv</exclude>
<exclude>
**/src/main/resources/KNIME_PMML_4.1_Examples_single_audit_logreg.xml
</exclude>
<exclude>**/src/main/sampledata/**</exclude>
<!-- generated by shade plugin -->
<exclude>**/dependency-reduced-pom.xml</exclude>
<exclude>**/docs/**</exclude>
<exclude>**/.git/**</exclude>
<exclude>**/.github/**</exclude>
<exclude>**/derby.log</exclude>
<exclude>**/src/dev/**</exclude>
<!-- webapp test resources -->
<exclude>**/src/test/resources/test-3072.log.test</exclude>
<exclude>**/src/test/resources/small-worker.log.test</exclude>
<exclude>**/src/test/resources/test-worker.log.test</exclude>
<exclude>**/src/test/resources/logviewer-search-context-tests.log.test
</exclude>
<exclude>**/dev-tools/cluster/grafana/dashboards/*.json</exclude>
<!-- StormSQL -->
<exclude>**/src/codegen/config.fmpp</exclude>
<exclude>**/src/codegen/data/Parser.tdd</exclude>
<!-- Avro Serializer Test Resource -->
<exclude>**/src/test/resources/FixedAvroSerializer.config</exclude>
<!-- Vagrant related files -->
<exclude>integration-test/config/.vagrant/**</exclude>
<!-- flagged since apache-rat-plugin 0.18 -->
<exclude>flux/flux-core/src/main/resources/splash.txt</exclude>
</excludes>
</configuration>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>sign</id>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-gpg-plugin</artifactId>
<executions>
<execution>
<id>sign-artifacts</id>
<phase>verify</phase>
<goals>
<goal>sign</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>dist</id>
<modules>
<module>storm-dist</module>
</modules>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<executions>
<execution>
<id>attach-sources</id>
<goals>
<goal>jar-no-fork</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<configuration>
<outputDirectory>${project.build.directory}/javadoc</outputDirectory>
<reportOutputDirectory>./docs/javadoc</reportOutputDirectory>
</configuration>
<executions>
<execution>
<id>attach-javadocs</id>
<goals>
<goal>javadoc</goal>
</goals>
</execution>
<execution>
<id>aggregate</id>
<goals>
<goal>aggregate</goal>
</goals>
<phase>site</phase>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<archive>
<manifest>
<addDefaultImplementationEntries>true</addDefaultImplementationEntries>
<addDefaultSpecificationEntries>true</addDefaultSpecificationEntries>
</manifest>
</archive>
</configuration>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>all-tests</id>
<properties>
<!-- add perf tests back in -->
<java.unit.test.exclude.groups>nothing</java.unit.test.exclude.groups>
<skipITs>false</skipITs>
</properties>
</profile>
<profile>
<id>performance-tests</id>
<properties>
<!-- add perf tests back in -->
<java.unit.test.exclude.groups>nothing</java.unit.test.exclude.groups>
</properties>
</profile>
<profile>
<id>integration-tests-only</id>
<properties>
<skipITs>false</skipITs>
</properties>
<build>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<skipTests>true</skipTests>
</configuration>
</plugin>
</plugins>
</pluginManagement>
</build>
</profile>
<profile>
<id>no-tests</id>
<properties>
<skipITs>true</skipITs>
</properties>
<build>
<pluginManagement>
<plugins>
<!-- Unit tests -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<skipTests>true</skipTests>
</configuration>
</plugin>
<!-- Integration tests -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-failsafe-plugin</artifactId>
<configuration>
<skipITs>true</skipITs>
</configuration>
</plugin>
</plugins>
</pluginManagement>
</build>
</profile>
<profile>
<id>externals</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<modules>
<module>external</module>
<module>integration-test</module>
<!-- The following modules have dependencies on external modules. -->
<module>flux</module>
</modules>
</profile>
<profile>
<id>examples</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<modules>
<module>examples</module>
</modules>
</profile>
</profiles>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.glassfish.jersey</groupId>
<artifactId>jersey-bom</artifactId>
<version>${jersey.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>com.sun.activation</groupId>
<artifactId>jakarta.activation</artifactId>
<version>${jakarta-activation-version}</version>
</dependency>
<dependency>
<groupId>jakarta.activation</groupId>
<artifactId>jakarta.activation-api</artifactId>
<version>${jakarta-activation-version}</version>
</dependency>
<dependency>
<groupId>jakarta.xml.bind</groupId>
<artifactId>jakarta.xml.bind-api</artifactId>
<version>${jakarta-jaxb-version}</version>
</dependency>
<dependency>
<groupId>javax.xml.bind</groupId>
<artifactId>jaxb-api</artifactId>
<version>${jaxb-version}</version>
</dependency>
<dependency>
<groupId>org.hdrhistogram</groupId>
<artifactId>HdrHistogram</artifactId>
<version>${hdrhistogram.version}</version>
</dependency>
<dependency>
<groupId>com.esotericsoftware</groupId>
<artifactId>kryo</artifactId>
<version>${kryo.version}</version>
</dependency>
<dependency>
<groupId>org.objenesis</groupId>
<artifactId>objenesis</artifactId>
<version>${objensis.version}</version>
</dependency>
<dependency>
<groupId>commons-cli</groupId>
<artifactId>commons-cli</artifactId>
<version>${commons-cli.version}</version>
</dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>${commons-io.version}</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-compress</artifactId>
<version>${commons-compress.version}</version>
</dependency>
<dependency>
<groupId>com.github.luben</groupId>
<artifactId>zstd-jni</artifactId>
<version>${zstd-jni.version}</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-exec</artifactId>
<version>${commons-exec.version}</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-collections4</artifactId>
<version>${commons-collections.version}</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-text</artifactId>
<version>${commons-text.version}</version>
</dependency>
<dependency>
<groupId>jline</groupId>
<artifactId>jline</artifactId>
<version>${jline.version}</version>
<exclusions>
<exclusion>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.apache.zookeeper</groupId>
<artifactId>zookeeper</artifactId>
<version>${zookeeper.version}</version>
<exclusions>
<exclusion>
<groupId>com.sun.jmx</groupId>
<artifactId>jmxri</artifactId>
</exclusion>
<exclusion>
<groupId>com.sun.jdmk</groupId>
<artifactId>jmxtools</artifactId>
</exclusion>
<exclusion>
<groupId>javax.jms</groupId>
<artifactId>jms</artifactId>
</exclusion>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
</exclusion>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
</exclusion>
<exclusion>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
</exclusion>
<exclusion>
<groupId>ch.qos.reload4j</groupId>
<artifactId>reload4j</artifactId>
</exclusion>
<exclusion>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
</exclusion>
<exclusion>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-core</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.apache.zookeeper</groupId>
<artifactId>zookeeper-jute</artifactId>
<version>${zookeeper.version}</version>
</dependency>
<dependency>
<groupId>org.xerial.snappy</groupId>
<artifactId>snappy-java</artifactId>
<version>${snappy.version}</version>
</dependency>
<dependency>
<groupId>jakarta.servlet</groupId>
<artifactId>jakarta.servlet-api</artifactId>
<version>${jakarta.servlet.version}</version>
</dependency>
<dependency>
<groupId>jakarta.ws.rs</groupId>
<artifactId>jakarta.ws.rs-api</artifactId>
<version>${jakarta-jaxws-version}</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>${slf4j.version}</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson</groupId>
<artifactId>jackson-bom</artifactId>
<version>${jackson.version}</version>
<scope>import</scope>
<type>pom</type>
</dependency>
<dependency>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
<version>${commons-logging.version}</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>${commons-lang3.version}</version>
</dependency>
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>${commons-fileupload.version}</version>
</dependency>
<dependency>
<groupId>commons-codec</groupId>
<artifactId>commons-codec</artifactId>
<version>${commons-codec.version}</version>
</dependency>
<dependency>
<groupId>org.apache.curator</groupId>
<artifactId>curator-framework</artifactId>
<version>${curator.version}</version>
</dependency>
<dependency>
<groupId>org.apache.curator</groupId>
<artifactId>curator-recipes</artifactId>
<version>${curator.version}</version>
</dependency>
<dependency>
<groupId>org.apache.curator</groupId>
<artifactId>curator-client</artifactId>
<version>${curator.version}</version>
</dependency>
<dependency>
<groupId>org.apache.curator</groupId>
<artifactId>curator-test</artifactId>
<version>${curator.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>net.minidev</groupId>
<artifactId>json-smart</artifactId>
<version>${json-smart.version}</version>
</dependency>
<dependency>
<groupId>org.eclipse.jetty.ee10</groupId>
<artifactId>jetty-ee10-bom</artifactId>
<version>${jetty.version}</version>
<scope>import</scope>
<type>pom</type>
</dependency>
<dependency>
<groupId>org.yaml</groupId>
<artifactId>snakeyaml</artifactId>
<version>${snakeyaml.version}</version>
</dependency>
<dependency>
<groupId>org.jctools</groupId>
<artifactId>jctools-core</artifactId>
<version>${jctools.version}</version>
</dependency>
<dependency>
<groupId>org.jgrapht</groupId>
<artifactId>jgrapht-core</artifactId>
<version>${jgrapht.version}</version>
</dependency>
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>${guava.version}</version>
</dependency>
<!-- Not declared by any module: managed so every module resolves the same jspecify
whether it arrives via Guava or, at a nearer depth, via JUnit. The binary
distribution's dedup-libs check requires the daemon and worker classpaths to
agree on every shared jar. -->
<dependency>
<groupId>org.jspecify</groupId>
<artifactId>jspecify</artifactId>
<version>${jspecify.version}</version>
</dependency>
<dependency>
<groupId>com.google.auto.service</groupId>
<artifactId>auto-service</artifactId>
<version>${auto-service.version}</version>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-bom</artifactId>
<version>${log4j.version}</version>
<scope>import</scope>
<type>pom</type>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>log4j-over-slf4j</artifactId>
<version>${slf4j.version}</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>jcl-over-slf4j</artifactId>
<version>${slf4j.version}</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>jul-to-slf4j</artifactId>
<version>${slf4j.version}</version>
</dependency>
<dependency>
<groupId>com.zaxxer</groupId>
<artifactId>HikariCP</artifactId>
<version>${hikari.version}</version>
</dependency>
<dependency>
<groupId>io.netty</groupId>
<artifactId>netty-bom</artifactId>
<version>${netty.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>io.dropwizard.metrics</groupId>
<artifactId>metrics-core</artifactId>
<version>${metrics.version}</version>
</dependency>
<dependency>
<groupId>io.dropwizard.metrics</groupId>
<artifactId>metrics-graphite</artifactId>
<version>${metrics.version}</version>
</dependency>
<dependency>
<groupId>io.dropwizard.metrics</groupId>
<artifactId>metrics-jvm</artifactId>
<version>${metrics.version}</version>
</dependency>
<dependency>
<groupId>io.dropwizard.metrics</groupId>
<artifactId>metrics-jmx</artifactId>
<version>${metrics.version}</version>
</dependency>
<dependency>
<groupId>io.dropwizard.metrics</groupId>
<artifactId>metrics-annotation</artifactId>
<version>${metrics.version}</version>
</dependency>
<dependency>
<groupId>io.dropwizard.metrics</groupId>
<artifactId>metrics-json</artifactId>
<version>${metrics.version}</version>
</dependency>
<dependency>
<groupId>io.dropwizard.metrics</groupId>
<artifactId>metrics-healthchecks</artifactId>
<version>${metrics.version}</version>
</dependency>
<dependency>
<groupId>io.dropwizard.metrics</groupId>
<artifactId>metrics-jersey3</artifactId>
<version>${metrics.version}</version>
</dependency>
<dependency>
<groupId>io.dropwizard.metrics</groupId>
<artifactId>metrics-jetty12</artifactId>
<version>${metrics.version}</version>
</dependency>
<dependency>
<groupId>io.dropwizard.metrics</groupId>
<artifactId>metrics-logback</artifactId>
<version>${metrics.version}</version>
</dependency>
<dependency>
<groupId>io.dropwizard.metrics</groupId>
<artifactId>metrics-jakarta-servlets</artifactId>
<version>${metrics.version}</version>
</dependency>
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-core</artifactId>
<version>${mockito.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.mockito</groupId>
<artifactId>mockito-junit-jupiter</artifactId>
<version>${mockito.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.awaitility</groupId>
<artifactId>awaitility</artifactId>
<version>${awaitility.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.hamcrest</groupId>
<artifactId>hamcrest</artifactId>
<version>${hamcrest.version}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.apache.thrift</groupId>
<artifactId>libthrift</artifactId>
<version>${thrift.version}</version>
<scope>compile</scope>
</dependency>
<!-- used by examples/storm-starter -->
<dependency>
<groupId>org.junit</groupId>
<artifactId>junit-bom</artifactId>
<version>${junit.jupiter.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>org.apache.kafka</groupId>
<artifactId>kafka-clients</artifactId>
<version>${storm.kafka.client.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>uk.org.lidalia</groupId>
<artifactId>sysout-over-slf4j</artifactId>
<version>${sysout-over-slf4j.version}</version>
</dependency>
<dependency>
<groupId>com.github.ben-manes.caffeine</groupId>
<artifactId>caffeine</artifactId>
<version>${caffeine.version}</version>
</dependency>
<dependency>
<groupId>javax.annotation</groupId>
<artifactId>javax.annotation-api</artifactId>
<version>1.3.2</version>
</dependency>
<dependency>
<groupId>org.rocksdb</groupId>
<artifactId>rocksdbjni</artifactId>
<version>${rocksdb-jni-version}</version>
</dependency>
<dependency>
<groupId>org.apache.activemq</groupId>
<artifactId>activemq-client</artifactId>
<version>${activemq.version}</version>
<exclusions>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
</exclusion>
<exclusion>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.apache.activemq</groupId>
<artifactId>activemq-all</artifactId>
<version>${activemq.version}</version>
<exclusions>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
</exclusion>
<exclusion>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.bouncycastle</groupId>
<artifactId>bcpkix-jdk18on</artifactId>
<version>${bouncycastle.version}</version>
</dependency>
<dependency>
<groupId>org.bouncycastle</groupId>
<artifactId>bcprov-jdk18on</artifactId>
<version>${bouncycastle.version}</version>
</dependency>
<!-- Iceberg dependencies. Versions are managed here so a project-wide dependency bump
sees the pin; storm-iceberg declares the artifacts without versions. The catalog
implementations (iceberg-aws, -gcp, -hive, -nessie, ...) are deliberately absent:
they are supplied by the topology, not pulled in transitively. -->
<dependency>
<groupId>org.apache.iceberg</groupId>
<artifactId>iceberg-api</artifactId>
<version>${iceberg.version}</version>
</dependency>
<dependency>
<groupId>org.apache.iceberg</groupId>
<artifactId>iceberg-core</artifactId>
<version>${iceberg.version}</version>
</dependency>
<dependency>
<groupId>org.apache.iceberg</groupId>
<artifactId>iceberg-data</artifactId>
<version>${iceberg.version}</version>
</dependency>
<dependency>
<groupId>org.apache.iceberg</groupId>
<artifactId>iceberg-parquet</artifactId>
<version>${iceberg.version}</version>
</dependency>
<dependency>
<groupId>org.apache.iceberg</groupId>
<artifactId>iceberg-orc</artifactId>
<version>${iceberg.version}</version>
</dependency>
<!-- Hadoop dependencies. Specified here so HDFS/HBase don't import older versions of these jars in their projects-->
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-auth</artifactId>
<version>${hadoop.version}</version>
<exclusions>
<exclusion>
<groupId>ch.qos.reload4j</groupId>
<artifactId>reload4j</artifactId>
</exclusion>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-reload4j</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-common</artifactId>
<version>${hadoop.version}</version>
<exclusions>
<exclusion>
<groupId>ch.qos.reload4j</groupId>
<artifactId>reload4j</artifactId>
</exclusion>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-reload4j</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-annotations</artifactId>
<version>${hadoop.version}</version>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
<version>${httpclient.version}</version>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpcore</artifactId>
<version>${httpclient.core.version}</version>
</dependency>
<dependency>
<groupId>org.apache.avro</groupId>
<artifactId>avro</artifactId>
<version>1.12.2</version>
</dependency>
<dependency>
<groupId>net.bytebuddy</groupId>
<artifactId>byte-buddy</artifactId>
<version>${byte-buddy.version}</version>
</dependency>
<dependency>
<groupId>net.bytebuddy</groupId>
<artifactId>byte-buddy-agent</artifactId>
<version>${byte-buddy.version}</version>
</dependency>
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>${gson.version}</version>
</dependency>
<dependency>
<groupId>org.ow2.asm</groupId>
<artifactId>asm</artifactId>
<version>${asm.version}</version>
</dependency>
<dependency>
<groupId>com.google.errorprone</groupId>
<artifactId>error_prone_annotations</artifactId>
<version>${error_prone_annotations.version}</version>
</dependency>
<dependency>
<groupId>com.fasterxml.woodstox</groupId>
<artifactId>woodstox-core</artifactId>
<version>7.2.2</version>
</dependency>
<dependency>
<groupId>commons-collections</groupId>
<artifactId>commons-collections</artifactId>
<version>3.2.2</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-configuration2</artifactId>
<version>2.15.1</version>
</dependency>
</dependencies>
</dependencyManagement>
<repositories>
<repository>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>false</enabled>
</snapshots>
<id>central</id>
<url>https://repo1.maven.org/maven2/</url>
</repository>
<repository>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>true</enabled>
</snapshots>
<id>clojars</id>
<url>https://clojars.org/repo/</url>
</repository>
</repositories>
<build>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.16.0</version>
<configuration>
<generatedSourcesDirectory>${project.build.directory}/generated-sources
</generatedSourcesDirectory>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>${surefire.version}</version>
<configuration>
<redirectTestOutputToFile>true</redirectTestOutputToFile>
<excludedGroups>IntegrationTest | ${java.unit.test.exclude.groups}</excludedGroups>
<argLine>-Xmx3g -XX:+HeapDumpOnOutOfMemoryError</argLine>
<trimStackTrace>false</trimStackTrace>
<forkCount>1.0C</forkCount>
<reuseForks>false</reuseForks>
<systemPropertyVariables>
<storm.home>${project.basedir}/target/testhome</storm.home>
</systemPropertyVariables>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-failsafe-plugin</artifactId>
<version>${surefire.version}</version>
<configuration>
<redirectTestOutputToFile>true</redirectTestOutputToFile>
<includes>
<include>**/*.java</include>
</includes>
<groups>IntegrationTest</groups>
<argLine>-Xmx1536m</argLine>
</configuration>
<executions>
<execution>
<goals>
<goal>integration-test</goal>
<goal>verify</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<!--
OpenRewrite stages of the checkstyle auto-fix (see storm-checkstyle/README.md). Not bound to
any phase: run on demand. The recipes and the style mirroring storm_checkstyle.xml are in
rewrite.yml at the repo root. Thrift-generated code and the Groovy scripts of
storm-checkstyle are not checked by Checkstyle, so they are left alone.
-->
<groupId>org.openrewrite.maven</groupId>
<artifactId>rewrite-maven-plugin</artifactId>
<version>${rewrite-maven-plugin.version}</version>
<configuration>
<configLocation>${maven.multiModuleProjectDirectory}/rewrite.yml</configLocation>
<activeStyles>
<style>org.apache.storm.checkstyle.Style</style>
</activeStyles>
<exclusions>
<exclusion>**/generated/**</exclusion>
<exclusion>**/resources/storm/*.groovy</exclusion>
</exclusions>
<!-- Styles derived from the ruleset conflict with it (RightCurly 'alone' would push
catch/else onto their own line); the explicit style in rewrite.yml is used instead. -->
<checkstyleDetectionEnabled>false</checkstyleDetectionEnabled>
<exportDatatables>false</exportDatatables>
</configuration>
<dependencies>
<dependency>
<groupId>org.openrewrite.recipe</groupId>
<artifactId>rewrite-static-analysis</artifactId>
<version>${rewrite-static-analysis.version}</version>
</dependency>
</dependencies>
<executions>
<execution>
<!-- first pass, before checkstyle-autofix.groovy -->
<id>checkstyle-autofix-openrewrite</id>
<phase>none</phase>
<goals>
<goal>run</goal>
</goals>
<configuration>
<activeRecipes>
<recipe>org.apache.storm.checkstyle.AutoFix</recipe>
</activeRecipes>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<!--
Groovy stages of the checkstyle auto-fix and license header normalization (see
storm-checkstyle/README.md). Not bound to any phase: run on demand. gmavenplus interprets
the scripts directly, so they need no prior `compile` phase.
-->
<groupId>org.codehaus.gmavenplus</groupId>
<artifactId>gmavenplus-plugin</artifactId>
<version>${gmavenplus.version}</version>
<dependencies>
<dependency>
<groupId>org.apache.groovy</groupId>
<artifactId>groovy</artifactId>
<version>${groovy.version}</version>
</dependency>
<dependency>
<!-- XmlSlurper, used by checkstyle-autofix.groovy to parse the
checkstyle ruleset itself - split out of Groovy core since Groovy 4. -->
<groupId>org.apache.groovy</groupId>
<artifactId>groovy-xml</artifactId>
<version>${groovy.version}</version>
</dependency>
<dependency>
<!-- checkstyle-autofix.groovy runs Checkstyle itself to find what to fix, so it
must be the same version the checkstyle check uses. -->
<groupId>com.puppycrawl.tools</groupId>
<artifactId>checkstyle</artifactId>
<version>${checkstyle.version}</version>
<exclusions>
<!-- only needed for Checkstyle's site/XDoc output, not to run the checker -->
<exclusion>
<groupId>org.apache.maven.doxia</groupId>
<artifactId>*</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<!-- needed at run time by Checkstyle (commons-beanutils) -->
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
<version>${commons-logging.version}</version>
</dependency>
</dependencies>
<executions>
<execution>
<id>checkstyle-autofix</id>
<phase>none</phase>
<goals>
<goal>execute</goal>
</goals>
<configuration>
<scripts>
<script>file:///${maven.multiModuleProjectDirectory}/storm-checkstyle/src/main/resources/storm/checkstyle-autofix.groovy</script>
</scripts>
</configuration>
</execution>
<execution>
<!-- third pass, indentation only, after checkstyle-autofix -->
<id>checkstyle-autofix-indentation</id>
<phase>none</phase>
<goals>
<goal>execute</goal>
</goals>
<configuration>
<scripts>
<script>file:///${maven.multiModuleProjectDirectory}/storm-checkstyle/src/main/resources/storm/checkstyle-autofix.groovy</script>
</scripts>
<properties>
<property>
<name>autofixChecks</name>
<value>Indentation,CommentsIndentation</value>
</property>
</properties>
</configuration>
</execution>
<execution>
<!-- add -Dlicense.check=true to only report -->
<id>normalize-license-headers</id>
<phase>none</phase>
<goals>
<goal>execute</goal>
</goals>
<configuration>
<scripts>
<script>file:///${maven.multiModuleProjectDirectory}/storm-checkstyle/src/main/resources/storm/normalize-license-headers.groovy</script>
</scripts>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<!--To support checkstyle goals. For example: "mvn checkstyle:checkstyle"-->
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-checkstyle-plugin</artifactId>
<version>3.6.0</version>
<dependencies>
<dependency>
<groupId>org.apache.storm</groupId>
<artifactId>storm-checkstyle</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>com.puppycrawl.tools</groupId>
<artifactId>checkstyle</artifactId>
<version>${checkstyle.version}</version>
</dependency>
</dependencies>
<executions>
<execution>
<id>validate</id>
<phase>validate</phase>
<configuration>
<configLocation>storm/storm_checkstyle.xml</configLocation>
<propertyExpansion>org.checkstyle.google.severity=error</propertyExpansion>
<encoding>UTF-8</encoding>
<failOnViolation>true</failOnViolation>
<logViolationsToConsole>true</logViolationsToConsole>
<consoleOutput>true</consoleOutput>
<outputFile>target/checkstyle-violation.xml</outputFile>
<violationSeverity>error</violationSeverity>
</configuration>
<goals>
<goal>check</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-pmd-plugin</artifactId>
<version>3.28.0</version>
<configuration>
<targetJdk>${maven.compiler.target}</targetJdk>
<rulesets>
<ruleset>storm/pmd-ruleset.xml</ruleset>
</rulesets>
<includeTests>true</includeTests>
<printFailingErrors>true</printFailingErrors>
<excludes>
<exclude>org/apache/storm/generated/**</exclude>
<exclude>org/apache/storm/sql/parser/impl/**</exclude>
</excludes>
</configuration>
<executions>
<execution>
<id>pmd-check</id>
<goals>
<goal>check</goal>
</goals>
</execution>
</executions>
<dependencies>
<dependency>
<groupId>org.apache.storm</groupId>
<artifactId>storm-checkstyle</artifactId>
<version>${project.version}</version>
</dependency>
</dependencies>
</plugin>
<plugin>
<artifactId>maven-clean-plugin</artifactId>
<version>3.5.0</version>
<executions>
<execution>
<id>cleanup</id>
<phase>clean</phase>
<goals>
<goal>clean</goal>
</goals>
<configuration>
<excludeDefaultDirectories>true</excludeDefaultDirectories>
<filesets>
<fileset>
<directory>./logs/</directory>
</fileset>
</filesets>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>3.6.4</version>
</plugin>
<plugin>
<groupId>io.github.git-commit-id</groupId>
<artifactId>git-commit-id-maven-plugin</artifactId>
<version>10.0.1</version>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>license-maven-plugin</artifactId>
<version>2.7.1</version>
<configuration>
<useMissingFile>true</useMissingFile>
<failOnMissing>true</failOnMissing>
<includeTransitiveDependencies>true</includeTransitiveDependencies>
<fileTemplate>/org/codehaus/mojo/license/third-party-file-groupByMultiLicense.ftl
</fileTemplate>
<excludedScopes>system,test</excludedScopes>
<excludedGroups>${project.groupId}</excludedGroups>
<licenseMerges>
<licenseMerge>
Apache License, Version 2.0 |
Apache License, version 2.0 |
Apache License Version 2 |
Apache License Version 2.0 |
Apache License version 2.0 |
Apache 2 |
Apache 2.0 |
Apache-2.0 |
Apache 2.0 License |
Apache License, 2.0 |
Apache License 2 |
Apache License 2.0 |
Apache Public License 2.0 |
Apache Software License - Version 2.0 |
Apache v2 |
ASL, version 2 |
The Apache License, Version 2.0 |
The Apache Software License, Version 2.0
</licenseMerge>
<licenseMerge>
Apache License |
Apache Software Licenses
</licenseMerge>
<licenseMerge>
BSD License |
BSD license |
BSD licence |
BSD |
The BSD License
</licenseMerge>
<licenseMerge>
BSD 2-Clause License |
BSD 2-Clause license |
</licenseMerge>
<licenseMerge>
BSD 3-Clause License |
BSD 3-Clause |
BSD 3-clause |
BSD-3-Clause |
The BSD 3-Clause License |
New BSD License |
New BSD license
</licenseMerge>
<licenseMerge>
Common Development and Distribution License (CDDL) v1.0 |
COMMON DEVELOPMENT AND DISTRIBUTION LICENSE (CDDL) Version 1.0 |
CDDL 1.0
</licenseMerge>
<licenseMerge>
Common Development and Distribution License (CDDL) v1.1 |
COMMON DEVELOPMENT AND DISTRIBUTION LICENSE (CDDL) Version 1.1 |
CDDL 1.1 |
Common Development and Distribution License (CDDL), Version 1.1
</licenseMerge>
<licenseMerge>
Common Development and Distribution License |
<!-- Multilicense, choosing CDDL -->
CDDL+GPL |
CDDL+GPL License |
CDDL + GPLv2 with classpath exception
</licenseMerge>
<licenseMerge>
Eclipse Public License, Version 1.0 |
Eclipse Public License 1.0 |
Eclipse Public License - v 1.0
</licenseMerge>
<licenseMerge>
Eclipse Public License, Version 2.0 |
EPL-2.0 |
EPL 2.0
</licenseMerge>
<licenseMerge>
Eclipse Distribution License, Version 1.0 |
Eclipse Distribution License - v 1.0 |
EDL 1.0
</licenseMerge>
<licenseMerge>
MIT License |
The MIT License |
MIT license |
MIT X11 License |
MIT
</licenseMerge>
<licenseMerge>
The GNU General Public License (GPL), Version 2, With Classpath Exception |
GPL2 w/ CPE
</licenseMerge>
<licenseMerge>
GNU Lesser General Public License (LGPL), Version 2.1 |
LGPL, version 2.1 |
GNU Lesser General Public License Version 2.1 |
GNU Lesser General Public License, version 2.1
</licenseMerge>
<licenseMerge>
Common Public License Version 1.0 |
Common Public License - v 1.0
</licenseMerge>
</licenseMerges>
</configuration>
</plugin>
</plugins>
</pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-release-plugin</artifactId>
<configuration>
<autoVersionSubmodules>true</autoVersionSubmodules>
<tagNameFormat>v@{project.version}</tagNameFormat>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
</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>
<requireMavenVersion>
<version>3.5</version>
</requireMavenVersion>
<bannedDependencies>
<excludes>
<!-- STORM-3114 -->
<exclude>jdk.tools:jdk.tools:*</exclude>
</excludes>
</bannedDependencies>
</rules>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>license-maven-plugin</artifactId>
<inherited>false</inherited>
<configuration>
<missingFile>${project.basedir}/THIRD-PARTY.properties</missingFile>
<aggregateMissingLicensesFile>${project.basedir}/THIRD-PARTY.properties
</aggregateMissingLicensesFile>
</configuration>
<executions>
<execution>
<id>generate-and-check-licenses</id>
<goals>
<goal>aggregate-add-third-party</goal>
</goals>
</execution>
<execution>
<id>download-licenses</id>
<goals>
<goal>aggregate-download-licenses</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
<reporting>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
<version>3.12.0</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jxr-plugin</artifactId>
<version>3.6.0</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-report-plugin</artifactId>
<version>3.6.0</version>
<configuration>
<reportsDirectories>
<file>${project.build.directory}/test-reports</file>
<file>${project.build.directory}/surefire-reports</file>
</reportsDirectories>
</configuration>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>taglist-maven-plugin</artifactId>
<version>3.2.3</version>
<configuration>
<tagListOptions>
<tagClasses>
<tagClass>
<displayName>Todo Work</displayName>
<tags>
<tag>
<matchString>TODO</matchString>
<matchType>exact</matchType>
</tag>
<tag>
<matchString>FIXME</matchString>
<matchType>exact</matchType>
</tag>
</tags>
</tagClass>
</tagClasses>
</tagListOptions>
</configuration>
</plugin>
</plugins>
</reporting>
</project>