<?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
  ~
  ~   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>31</version>
    </parent>

    <groupId>org.apache.streams</groupId>
    <artifactId>apache-streams</artifactId>
    <version>0.7.0</version>

    <name>Apache Streams</name>
    <description>Apache Streams</description>

    <url>https://github.com/apache/streams</url>

    <licenses>
        <license>
            <name>Apache License, Version 2.0</name>
            <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
            <distribution>repo</distribution>
            <comments>A business-friendly OSS license</comments>
        </license>
    </licenses>

    <scm>
        <connection>scm:git:https://github.com/apache/streams</connection>
        <developerConnection>scm:git:git@github.com:apache/streams.git</developerConnection>
        <url>scm:git:git@github.com:apache/streams.git</url>
        <tag>apache-streams-0.7.0-rc</tag>
    </scm>

    <issueManagement>
        <system>JIRA</system>
        <url>https://issues.apache.org/jira/browse/STREAMS</url>
    </issueManagement>

    <ciManagement>
        <system>jenkins</system>
        <url>http://builds.apache.org/job/streams-project/</url>
    </ciManagement>

    <prerequisites>
        <maven>3.0.5</maven>
    </prerequisites>

    <mailingLists>
        <mailingList>
            <name>Dev Mailing List</name>
            <post>dev@streams.apache.org</post>
            <subscribe>dev-subscribe@streams.apache.org</subscribe>
            <unsubscribe>dev-unsubscribe@streams.apache.org</unsubscribe>
            <archive>http://mail-archives.apache.org/mod_mbox/streams-dev/</archive>
        </mailingList>
        <mailingList>
            <name>Commits Mailing List</name>
            <post>commits@streams.apache.org</post>
            <subscribe>commits-subscribe@streams.apache.org</subscribe>
            <unsubscribe>commits-unsubscribe@streams.apache.org</unsubscribe>
            <archive>http://mail-archives.apache.org/mod_mbox/streams-commits/</archive>
        </mailingList>
    </mailingLists>

    <developers>
        <developer>
            <id>rbaxter85</id>
            <name>Ryan Baxter</name>
            <email>rbaxter85@apache.org</email>
            <url>http://twitter.com/ryanjbaxter</url>
            <roles>
                <role>Committer</role>
            </roles>
        </developer>
        <developer>
            <id>sblackmon</id>
            <name>Steve Blackmon</name>
            <email>sblackmon@apache.org</email>
            <url>http://twitter.com/steveblackmon</url>
            <roles>
                <role>PPMC Member</role>
                <role>Committer</role>
            </roles>
            <properties>
                <picUrl>https://avatars.githubusercontent.com/steveblackmon</picUrl>
            </properties>
        </developer>
        <developer>
            <id>rdouglas</id>
            <name>Robert Douglas</name>
            <email>rdouglas@apache.org</email>
            <roles>
                <role>PPMC Member</role>
                <role>Committer</role>
            </roles>
        </developer>
        <developer>
            <id>ate</id>
            <name>Ate Douma</name>
            <email>ate@apache.org</email>
            <url>http://twitter.com/atedouma</url>
            <roles>
                <role>Mentor</role>
                <role>PPMC Member</role>
                <role>Committer</role>
            </roles>
        </developer>
        <developer>
            <id>rebanks</id>
            <name>Ryan Ebanks</name>
            <email>rebanks@apache.org</email>
            <url>http://twitter.com/ebanksre</url>
            <roles>
                <role>PPMC Member</role>
                <role>Committer</role>
            </roles>
        </developer>
        <developer>
            <id>chansen</id>
            <name>Carol Hansen</name>
            <email>chansen@apache.org</email>
            <url>http://twitter.com/carolbirgitta</url>
            <roles>
                <role>PPMC Member</role>
                <role>Committer</role>
            </roles>
        </developer>
        <developer>
            <id>ahart</id>
            <name>Andrew Hart</name>
            <email>ahart@apache.org</email>
            <url>http://twitter.com/andrewfhart</url>
            <roles>
                <role>Mentor</role>
                <role>PPMC Member</role>
                <role>Committer</role>
            </roles>
        </developer>
        <developer>
            <id>mfranklin</id>
            <name>Matt Franklin</name>
            <email>mfranklin@apache.org</email>
            <url>http://twitter.com/mattfranklin</url>
            <roles>
                <role>Mentor</role>
                <role>PPMC Member</role>
                <role>Committer</role>
            </roles>
        </developer>
        <developer>
            <id>letourneau</id>
            <name>Jason Letourneau</name>
            <email>letourneau@apache.org</email>
            <url>http://twitter.com/jletourneau8080</url>
            <roles>
                <role>PPMC Member</role>
                <role>Committer</role>
            </roles>
        </developer>
        <developer>
            <id>craigmcc</id>
            <name>Craig McClanahan</name>
            <email>craigmcc@apache.org</email>
            <url>http://twitter.com/craigmcclanahan</url>
            <roles>
                <role>Mentor</role>
                <role>PPMC Member</role>
                <role>Committer</role>
            </roles>
        </developer>
        <developer>
            <id>dsullivan</id>
            <name>Danny Sullivan</name>
            <email>dsullivan@apache.org</email>
            <url>http://twitter.com/dbsullivan23</url>
            <roles>
                <role>PPMC Member</role>
                <role>Committer</role>
            </roles>
        </developer>
    </developers>

    <repositories>
        <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>apache-snapshots</id>
            <name>Apache Repository</name>
            <url>https://repository.apache.org/content/repositories/snapshots</url>
            <releases>
                <enabled>false</enabled>
            </releases>
            <snapshots>
                <enabled>true</enabled>
            </snapshots>
        </repository>
        <repository>
            <id>central-repo</id>
            <name>Maven Repository</name>
            <url>https://repo1.maven.org/maven2</url>
            <releases>
                <enabled>true</enabled>
            </releases>
            <snapshots>
                <enabled>true</enabled>
            </snapshots>
        </repository>
    </repositories>

    <pluginRepositories>
        <pluginRepository>
            <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>
        </pluginRepository>
        <pluginRepository>
            <id>apache-snapshots</id>
            <name>Apache Repository</name>
            <url>https://repository.apache.org/content/repositories/snapshots</url>
            <releases>
                <enabled>false</enabled>
            </releases>
            <snapshots>
                <enabled>true</enabled>
            </snapshots>
        </pluginRepository>
        <pluginRepository>
            <id>central-repo</id>
            <name>Maven Repository</name>
            <url>https://repo1.maven.org/maven2</url>
            <releases>
                <enabled>true</enabled>
            </releases>
            <snapshots>
                <enabled>true</enabled>
            </snapshots>
        </pluginRepository>
    </pluginRepositories>

    <distributionManagement>
        <repository>
            <id>streams.releases</id>
            <name>Streams Releases</name>
            <url>${release.repository.url}</url>
        </repository>
        <!-- Snapshots (not-releases) are published to this repository -->
        <snapshotRepository>
            <id>streams.snapshots</id>
            <name>Streams Snapshots</name>
            <url>${snapshot.repository.url}</url>
        </snapshotRepository>
        <site>
            <id>site.streams.project</id>
            <url>scm:git:https://gitbox.apache.org/repos/asf/streams.git</url>
        </site>
    </distributionManagement>

    <properties>

        <!-- Language Library Version Properties -->
        <java.version>17</java.version>
        <scala.version>2.12.18</scala.version>
        <scala.binary.version>2.12</scala.binary.version>
        <maven.version>3.9.3</maven.version>
        <maven.compiler.source>${java.version}</maven.compiler.source>
        <maven.compiler.target>${java.version}</maven.compiler.target>

        <!-- Build Properties -->
        <maven.javadoc.failOnError>false</maven.javadoc.failOnError>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <github.global.server>github</github.global.server>

        <!-- Release Properties -->
        <snapshot.repository.url>
            https://repository.apache.org/content/repositories/snapshots
        </snapshot.repository.url>
        <release.repository.url>
            https://repository.apache.org/service/local/staging/deploy/maven2
        </release.repository.url>

        <!-- Plugin and Plugin Dependency Versions -->
        <apache-rat.plugin.version>0.13</apache-rat.plugin.version>
        <build-helper.plugin.version>1.8</build-helper.plugin.version>
        <bundle.plugin.version>1.4.3</bundle.plugin.version>
        <checkstyle.plugin.version>3.3.1</checkstyle.plugin.version>
        <compiler.plugin.version>3.11.0</compiler.plugin.version>
        <clean.plugin.version>3.3.2</clean.plugin.version>
        <dependency.plugin.version>3.6.1</dependency.plugin.version>
        <depgraph.plugin.version>1.0.3</depgraph.plugin.version>
        <docker.plugin.version>0.43.4</docker.plugin.version>
        <download.plugin.version>1.2.1</download.plugin.version>
        <enforcer.plugin.version>3.4.1</enforcer.plugin.version>
        <failsafe.plugin.version>2.22.0</failsafe.plugin.version>
        <jar.plugin.version>2.6</jar.plugin.version>
        <javadoc.plugin.version>3.2.0</javadoc.plugin.version>
        <license.plugin.version>2.0.0</license.plugin.version>
        <pax.plugin.version>1.5</pax.plugin.version>
        <remote-resources.plugin.version>1.4</remote-resources.plugin.version>
        <reports.plugin.version>2.9</reports.plugin.version>
        <resources.plugin.version>3.3.1</resources.plugin.version>
        <scala.plugin.version>4.4.0</scala.plugin.version>
        <scalastyle.plugin.version>0.8.0</scalastyle.plugin.version>
        <scm.plugin.version>2.0.1</scm.plugin.version>
        <scmpublish.plugin.version>3.2.1</scmpublish.plugin.version>
        <shade.plugin.version>3.5.1</shade.plugin.version>
        <site.plugin.version>4.0.0-M12</site.plugin.version>
        <source.plugin.version>3.3.0</source.plugin.version>
        <surefire.plugin.version>3.2.3</surefire.plugin.version>
        <wagon.plugin.version>3.0.0</wagon.plugin.version>
        <war.plugin.version>3.4.0</war.plugin.version>

        <!-- Library Dependency Versions -->
        <aalto.version>1.1.0</aalto.version>
        <avro.version>1.11.3</avro.version>
        <commons-codec.version>1.16.0</commons-codec.version>
        <commons-collections.version>3.2.2</commons-collections.version>
        <commons-collections4.version>4.4</commons-collections4.version>
        <commons-io.version>2.15.1</commons-io.version>
        <commons-lang3.version>3.14.0</commons-lang3.version>
        <commons-text.version>1.11.0</commons-text.version>
        <commons-validator.version>1.7</commons-validator.version>
        <clojure.version>1.4.0</clojure.version>
        <doxia.version>1.7</doxia.version>
        <facebook4j.version>2.4.7</facebook4j.version>
        <fmpp.version>0.9.16</fmpp.version>
        <freemarker.version>2.3.32</freemarker.version>
        <guava.version>32.1.3-jre</guava.version>
        <httpcomponents.core.version>4.4.16</httpcomponents.core.version>
        <httpcomponents.client.version>4.5.13</httpcomponents.client.version>
        <jackson.version>2.16.0</jackson.version>
        <joda-convert.version>1.8.1</joda-convert.version>
        <joda-time.version>2.9.9</joda-time.version>
        <json-path.version>2.8.0</json-path.version>
        <json-schema-validator.version>1.1.0</json-schema-validator.version>
        <juneau.version>7.2.1</juneau.version>
        <jsonschema2pojo.version>1.2.1</jsonschema2pojo.version>
        <jaxb2.version>0.15.3</jaxb2.version>
        <jaxb2-basics.version>0.13.1</jaxb2-basics.version>
        <jaxbutil.version>2.1.0</jaxbutil.version>
        <netty.version>4.1.105.Final</netty.version>
        <slf4j.version>2.0.9</slf4j.version>
        <log4j.version>2.22.0</log4j.version>
        <logback.version>1.4.14</logback.version>
        <protobuf.version>3.16.3</protobuf.version>
        <hamcrest.version>2.2</hamcrest.version>
        <reflections.version>0.10.2</reflections.version>
        <typesafe.config.version>1.4.2</typesafe.config.version>
        <zookeeper.version>3.9.1</zookeeper.version>

        <!-- Test Library Dependency Versions -->
        <junit.version>4.13.2</junit.version>
        <mockito.version>4.11.0</mockito.version>
        <powermock.version>2.0.9</powermock.version>
        <surefire.version>3.2.3</surefire.version>
        <testng.version>7.8.0</testng.version>

        <!-- maven plugin module helper versions -->
        <maven-plugin.version>3.9.0</maven-plugin.version>
        <maven-aether-provider.version>3.3.9</maven-aether-provider.version>
        <maven-plugin-plugin.version>3.9.0</maven-plugin-plugin.version>
        <maven-plugin-tools.version>3.9.0</maven-plugin-tools.version>
        <maven-plugin-testing.version>3.3.0</maven-plugin-testing.version>
        <maven-verifier.version>2.0.0-M1</maven-verifier.version>

        <!-- osgi configuration -->
        <org.osgi.service.http.port>8080</org.osgi.service.http.port>
        <org.osgi.service.http.port.secure>8443</org.osgi.service.http.port.secure>

        <skipITs>true</skipITs>
        <skipTests>false</skipTests>

        <!-- avoid intermittent build failures in streams-plugins -->
        <jvm.options>--add-opens java.base/java.lang=ALL-UNNAMED --add-opens java.xml/jdk.xml.internal=ALL-UNNAMED -Djava.util.Arrays.useLegacyMergeSort=true</jvm.options>

    </properties>

    <modules>
        <module>streams-cli</module>
        <module>streams-core</module>
        <module>streams-config</module>
        <module>streams-contrib</module>
        <module>streams-components</module>
        <module>streams-dist</module>
<!--        <module>streams-examples</module>-->
        <module>streams-monitoring</module>
        <module>streams-pojo</module>
        <module>streams-pojo-extensions</module>
        <module>streams-plugins</module>
        <module>streams-runtimes</module>
        <module>streams-schemas</module>
        <module>streams-testing</module>
        <module>streams-util</module>
        <module>streams-verbs</module>
    </modules>

    <packaging>pom</packaging>

    <build>
        <extensions>
            <extension>
                <groupId>org.apache.maven.wagon</groupId>
                <artifactId>wagon-scm</artifactId>
                <version>${wagon.plugin.version}</version>
            </extension>
            <extension>
                <groupId>org.apache.maven.scm</groupId>
                <artifactId>maven-scm-manager-plexus</artifactId>
                <version>${scm.plugin.version}</version>
            </extension>
            <extension>
                <groupId>org.apache.maven.scm</groupId>
                <artifactId>maven-scm-provider-gitexe</artifactId>
                <version>${scm.plugin.version}</version>
            </extension>
        </extensions>
        <plugins>
            <plugin>
                <artifactId>maven-compiler-plugin</artifactId>
            </plugin>
            <plugin>
                <artifactId>maven-site-plugin</artifactId>
            </plugin>
            <plugin>
                <artifactId>maven-resources-plugin</artifactId>
            </plugin>
            <plugin>
                <artifactId>maven-remote-resources-plugin</artifactId>
            </plugin>
            <plugin>
                <groupId>net.alchim31.maven</groupId>
                <artifactId>scala-maven-plugin</artifactId>
            </plugin>
            <plugin>
                <artifactId>maven-surefire-plugin</artifactId>
            </plugin>
            <plugin>
                <artifactId>maven-failsafe-plugin</artifactId>
            </plugin>
        </plugins>
        <pluginManagement>
            <plugins>
                <plugin>
                    <artifactId>maven-clean-plugin</artifactId>
                    <version>${clean.plugin.version}</version>
                    <configuration>
                        <filesets>
                            <fileset>
                                <directory>src/site/resources</directory>
                                <followSymlinks>false</followSymlinks>
                            </fileset>
                            <!-- this is here because elasticsearch integration tests don't have a setting to change directory where temp index files get created -->
                            <fileset>
                                <directory>data</directory>
                                <followSymlinks>false</followSymlinks>
                            </fileset>
                            <fileset>
                                <directory>dist</directory>
                            </fileset>
                        </filesets>
                    </configuration>
                </plugin>
                <plugin>
                    <artifactId>maven-compiler-plugin</artifactId>
                    <version>3.8.1</version>
                    <configuration>
                        <encoding>${project.build.sourceEncoding}</encoding>
                        <compilerArgs>
                            <arg>-J${jvm.options}</arg>
                        </compilerArgs>
                    </configuration>
                </plugin>
                <plugin>
                    <artifactId>maven-remote-resources-plugin</artifactId>
                    <version>${remote-resources.plugin.version}</version>
                    <executions>
                        <execution>
                            <goals>
                                <goal>process</goal>
                            </goals>
                            <configuration>
                                <resourceBundles combine.children="append">
                                    <!-- Will generate META-INF/DEPENDENCIES META-INF/LICENSE.txt META-INF/NOTICE -->
                                    <resourceBundle>org.apache:apache-jar-resource-bundle:1.4</resourceBundle>
                                </resourceBundles>
                                <properties>
                                    <projectName>${notice.file.project.name}</projectName>
                                </properties>
                            </configuration>
                        </execution>
                    </executions>
                </plugin>
                <plugin>
                    <artifactId>maven-resources-plugin</artifactId>
                    <version>${resources.plugin.version}</version>
                    <configuration>
                        <encoding>${project.build.sourceEncoding}</encoding>
                    </configuration>
                    <executions>
                        <execution>
                            <id>copy-resources</id>
                            <!-- validate is first to run-->
                            <!-- copy these files to src/site/resources -->
                            <phase>validate</phase>
                            <goals>
                                <goal>copy-resources</goal>
                            </goals>
                            <configuration>
                                <outputDirectory>${basedir}/src/site/resources</outputDirectory>
                                <resources>
                                    <resource>
                                        <directory>src/main/jsonschema</directory>
                                    </resource>
                                    <resource>
                                        <directory>src/main/xmlschema</directory>
                                    </resource>
                                    <resource>
                                        <directory>src/main/resources</directory>
                                    </resource>
                                    <resource>
                                        <directory>src/main/templates</directory>
                                    </resource>
                                    <resource>
                                        <directory>src/site/diagrams</directory>
                                    </resource>
                                    <resource>
                                        <directory>src/test/resources</directory>
                                    </resource>
                                </resources>
                            </configuration>
                        </execution>
                    </executions>
                </plugin>
                <plugin>
                    <groupId>org.apache.streams.plugins</groupId>
                    <artifactId>streams-plugin-pojo</artifactId>
                    <version>${project.version}</version>
                    <configuration>
                        <sourcePaths>
                            <sourcePath>${project.basedir}/src/main/jsonschema</sourcePath>
                        </sourcePaths>
                        <targetDirectory>${project.basedir}/target/generated-sources/pojo</targetDirectory>
                        <targetPackage>org.apache.streams.pojo</targetPackage>
                    </configuration>
                    <executions>
                        <execution>
                            <phase>generate-sources</phase>
                            <goals>
                                <goal>generate-sources</goal>
                            </goals>
                        </execution>
                    </executions>
                </plugin>
                <plugin>
                    <groupId>org.jvnet.jaxb2.maven2</groupId>
                    <artifactId>maven-jaxb2-plugin</artifactId>
                    <version>${jaxb2.version}</version>
                    <configuration>
                        <schemaDirectory>src/main/xmlschema</schemaDirectory>
                        <generateDirectory>target/generated-sources/jaxb2</generateDirectory>
                        <verbose>true</verbose>
                        <debug>true</debug>
                        <encoding>${project.build.sourceEncoding}</encoding>
                        <forceRegenerate>true</forceRegenerate>
                        <removeOldOutput>false</removeOldOutput>
                    </configuration>
                    <executions>
                        <execution>
                            <phase>generate-sources</phase>
                            <goals>
                                <goal>generate</goal>
                            </goals>
                        </execution>
                    </executions>
                </plugin>
                <plugin>
                    <groupId>org.codehaus.mojo</groupId>
                    <artifactId>build-helper-maven-plugin</artifactId>
                    <version>${build-helper.plugin.version}</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-surefire-plugin</artifactId>
                    <version>${surefire.plugin.version}</version>
                    <executions>
                        <execution>
                            <id>test</id>
                            <phase>test</phase>
                            <goals>
                                <goal>test</goal>
                            </goals>
                        </execution>
                    </executions>
                    <configuration>
                        <!-- Skips unit tests if the value of skip.unit.tests property is true -->
                        <argLine>${jvm.options}</argLine>
                        <skipTests>${skipTests}</skipTests>
                        <threadCount>1</threadCount>
                        <useUnlimitedThreads>false</useUnlimitedThreads>
                        <forkCount>1</forkCount>
                        <reuseForks>false</reuseForks>
                        <!-- Run unit test suites before individuals tests. -->
                        <includes>
                            <include>**/*Tests.java</include>
                            <include>**/*Test.java</include>
                        </includes>
                        <!-- Excludes integration tests when unit tests are run. -->
                        <excludes>
                            <exclude>**/*IT.java</exclude>
                            <include>**/*ITs.java</include>
                        </excludes>
                        <reportFormat>plain</reportFormat>
                        <properties>
                            <property>
                                <name>surefire.testng.verbose</name>
                                <value>10</value>
                            </property>
                        </properties>
                    </configuration>
                    <dependencies>
                        <dependency>
                            <groupId>org.apache.maven.surefire</groupId>
                            <artifactId>surefire-junit47</artifactId>
                            <version>${surefire.version}</version>
                        </dependency>
                    </dependencies>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-failsafe-plugin</artifactId>
                    <version>${failsafe.plugin.version}</version>
                    <executions>
                        <execution>
                            <id>integration-tests</id>
                            <goals>
                                <goal>integration-test</goal>
                                <goal>verify</goal>
                            </goals>
                        </execution>
                    </executions>
                    <configuration>
                        <!-- Skips integration tests if the value of skip.integration.tests property is true -->
                        <argLine>${jvm.options}</argLine>
                        <skipTests>${skipITs}</skipTests>
                        <threadCount>1</threadCount>
                        <useUnlimitedThreads>false</useUnlimitedThreads>
                        <forkCount>1</forkCount>
                        <reuseForks>true</reuseForks>
                        <shutdown>exit</shutdown>
                        <!-- Excludes unit tests when integration tests are run. -->
                        <excludes>
                            <exclude>**/*Test.java</exclude>
                            <exclude>**/*Tests.java</exclude>
                        </excludes>
                        <!-- Run integration test suites before individuals tests. -->
                        <includes>
                            <include>**/*ITs.java</include>
                            <include>**/*IT.java</include>
                        </includes>
                        <reportFormat>plain</reportFormat>
                        <properties>
                            <property>
                                <name>junit</name>
                                <value>false</value>
                            </property>
                            <property>
                                <name>surefire.testng.verbose</name>
                                <value>10</value>
                            </property>
                        </properties>
                    </configuration>
                    <dependencies>
                        <dependency>
                            <groupId>org.apache.maven.surefire</groupId>
                            <artifactId>surefire-testng</artifactId>
                            <version>${surefire.version}</version>
                        </dependency>
                    </dependencies>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-jar-plugin</artifactId>
                    <version>${jar.plugin.version}</version>
                    <configuration>
                        <skipIfEmpty>true</skipIfEmpty>
                    </configuration>
                </plugin>
                <plugin>
                    <groupId>com.googlecode.maven-download-plugin</groupId>
                    <artifactId>download-maven-plugin</artifactId>
                    <version>${download.plugin.version}</version>
                </plugin>
                <plugin>
                    <groupId>org.ops4j</groupId>
                    <artifactId>maven-pax-plugin</artifactId>
                    <version>${pax.plugin.version}</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.felix</groupId>
                    <artifactId>maven-bundle-plugin</artifactId>
                    <version>${bundle.plugin.version}</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-site-plugin</artifactId>
                    <version>${site.plugin.version}</version>
                    <dependencies>
                        <dependency>
                            <groupId>org.apache.maven.doxia</groupId>
                            <artifactId>doxia-module-markdown</artifactId>
                            <version>${doxia.version}</version>
                        </dependency>
                        <dependency>
                            <groupId>org.apache.maven.doxia</groupId>
                            <artifactId>doxia-core</artifactId>
                            <version>${doxia.version}</version>
                        </dependency>
                        <dependency>
                            <groupId>org.apache.maven.doxia</groupId>
                            <artifactId>doxia-module-xhtml</artifactId>
                            <version>${doxia.version}</version>
                        </dependency>
                        <dependency>
                            <groupId>org.apache.maven.scm</groupId>
                            <artifactId>maven-scm-api</artifactId>
                            <version>${scm.plugin.version}</version>
                        </dependency>
                        <dependency>
                            <groupId>org.apache.maven.scm</groupId>
                            <artifactId>maven-scm-provider-gitexe</artifactId>
                            <version>${scm.plugin.version}</version>
                        </dependency>
                    </dependencies>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-scm-publish-plugin</artifactId>
                    <version>${scmpublish.plugin.version}</version>
                    <extensions>true</extensions>
                    <configuration>
                        <scmBranch>asf-site</scmBranch>
                    </configuration>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-source-plugin</artifactId>
                    <version>${source.plugin.version}</version>
                    <executions>
                        <execution>
                            <id>attach-sources</id>
                            <goals>
                                <goal>jar</goal>
                            </goals>
                        </execution>
                    </executions>
                </plugin>
                <!-- Apache POM doesn't define default war-plugin version, so do it here -->
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-war-plugin</artifactId>
                    <version>${war.plugin.version}</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-dependency-plugin</artifactId>
                    <version>${dependency.plugin.version}</version>
                    <executions>
                        <execution>
                            <id>unpack-schemas</id>
                            <phase>generate-sources</phase>
                            <goals>
                                <goal>unpack-dependencies</goal>
                            </goals>
                            <configuration>
                                <excludeTransitive>true</excludeTransitive>
                                <includeGroupIds>org.apache.streams</includeGroupIds>
                                <includeScope>compile</includeScope>
                                <includeTypes>zip</includeTypes>
                            </configuration>
                        </execution>
                        <execution>
                            <id>unpack-test-resources</id>
                            <phase>process-test-resources</phase>
                            <goals>
                                <goal>unpack-dependencies</goal>
                            </goals>
                            <configuration>
                                <excludeTransitive>true</excludeTransitive>
                                <includeGroupIds>org.apache.streams</includeGroupIds>
                                <includeScope>test</includeScope>
                                <includeTypes>zip</includeTypes>
                            </configuration>
                        </execution>
                    </executions>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-shade-plugin</artifactId>
                    <version>${shade.plugin.version}</version>
                </plugin>
                <plugin>
                    <groupId>com.github.ferstl</groupId>
                    <artifactId>depgraph-maven-plugin</artifactId>
                    <version>${depgraph.plugin.version}</version>
                </plugin>
                <plugin>
                    <groupId>io.fabric8</groupId>
                    <artifactId>docker-maven-plugin</artifactId>
                    <version>${docker.plugin.version}</version>
                </plugin>
                <plugin>
                    <groupId>net.alchim31.maven</groupId>
                    <artifactId>scala-maven-plugin</artifactId>
                    <version>${scala.plugin.version}</version>
                    <configuration>
                        <args>
                            <arg>-nobootcp</arg>
                        </args>
                        <recompileMode>all</recompileMode>
                    </configuration>
                </plugin>
            </plugins>
        </pluginManagement>
    </build>

    <dependencies>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.webjars</groupId>
            <artifactId>jquery</artifactId>
            <version>3.7.1</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.testng</groupId>
            <artifactId>testng</artifactId>
            <scope>test</scope>
            <exclusions>
                <exclusion>
                    <groupId>org.webjars</groupId>
                    <artifactId>jquery</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
        </dependency>
    </dependencies>

    <dependencyManagement>
    <dependencies>
        <dependency>
            <groupId>com.google.protobuf</groupId>
            <artifactId>protobuf-java</artifactId>
            <version>${protobuf.version}</version>
        </dependency>
        <dependency>
            <groupId>commons-codec</groupId>
            <artifactId>commons-codec</artifactId>
            <version>${commons-codec.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-text</artifactId>
            <version>${commons-text.version}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-collections4</artifactId>
            <version>${commons-collections4.version}</version>
        </dependency>
        <dependency>
            <groupId>commons-validator</groupId>
            <artifactId>commons-validator</artifactId>
            <version>${commons-validator.version}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-lang3</artifactId>
            <version>${commons-lang3.version}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.httpcomponents</groupId>
            <artifactId>httpcore</artifactId>
            <version>${httpcomponents.core.version}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.httpcomponents</groupId>
            <artifactId>httpclient</artifactId>
            <version>${httpcomponents.client.version}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.juneau</groupId>
            <artifactId>juneau-marshall</artifactId>
            <version>${juneau.version}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.juneau</groupId>
            <artifactId>juneau-marshall-rdf</artifactId>
            <version>${juneau.version}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.juneau</groupId>
            <artifactId>juneau-rest-client</artifactId>
            <version>${juneau.version}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.juneau</groupId>
            <artifactId>juneau-rest-server</artifactId>
            <version>${juneau.version}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.juneau</groupId>
            <artifactId>juneau-svl</artifactId>
            <version>${juneau.version}</version>
        </dependency>
        <dependency>
            <groupId>com.sun.xml.bind</groupId>
            <artifactId>jaxb-core</artifactId>
            <version>3.0.0-M4</version>
        </dependency>
        <dependency>
            <groupId>com.sun.xml.bind</groupId>
            <artifactId>jaxb-impl</artifactId>
            <version>3.0.0-M4</version>
        </dependency>
        <dependency>
            <groupId>com.typesafe</groupId>
            <artifactId>config</artifactId>
            <version>${typesafe.config.version}</version>
        </dependency>
        <dependency>
            <groupId>com.sun.activation</groupId>
            <artifactId>javax.activation</artifactId>
            <version>1.2.0</version>
        </dependency>
        <dependency>
            <groupId>javax.xml.bind</groupId>
            <artifactId>jaxb-api</artifactId>
            <version>2.4.0-b180830.0359</version>
        </dependency>
        <dependency>
            <groupId>javax.annotation</groupId>
            <artifactId>javax.annotation-api</artifactId>
            <version>1.3.2</version>
        </dependency>
        <dependency>
            <groupId>javax.validation</groupId>
            <artifactId>validation-api</artifactId>
            <version>2.0.1.Final</version>
        </dependency>
        <dependency>
            <groupId>org.reflections</groupId>
            <artifactId>reflections</artifactId>
            <version>${reflections.version}</version>
        </dependency>
        <dependency>
            <groupId>org.freemarker</groupId>
            <artifactId>freemarker</artifactId>
            <version>${freemarker.version}</version>
        </dependency>
        <dependency>
            <groupId>net.sourceforge.fmpp</groupId>
            <artifactId>fmpp</artifactId>
            <version>${fmpp.version}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.avro</groupId>
            <artifactId>avro</artifactId>
            <version>${avro.version}</version>
        </dependency>
        <dependency>
            <groupId>org.hamcrest</groupId>
            <artifactId>hamcrest</artifactId>
            <version>${hamcrest.version}</version>
        </dependency>
        <dependency>
            <groupId>com.networknt</groupId>
            <artifactId>json-schema-validator</artifactId>
            <version>${json-schema-validator.version}</version>
            <type>jar</type>
        </dependency>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>${junit.version}</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.testng</groupId>
            <artifactId>testng</artifactId>
            <version>${testng.version}</version>
            <scope>test</scope>
            <exclusions>
                <exclusion>
                    <groupId>org.beanshell</groupId>
                    <artifactId>bsh</artifactId>
                </exclusion>
                <exclusion>
                    <groupId>org.webjars</groupId>
                    <artifactId>jquery</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>org.mockito</groupId>
            <artifactId>mockito-inline</artifactId>
            <version>${mockito.version}</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.powermock</groupId>
            <artifactId>powermock-core</artifactId>
            <version>${powermock.version}</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.powermock</groupId>
            <artifactId>powermock-module-junit4</artifactId>
            <version>${powermock.version}</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.powermock</groupId>
            <artifactId>powermock-api-mockito2</artifactId>
            <version>${powermock.version}</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
            <version>${slf4j.version}</version>
        </dependency>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-log4j12</artifactId>
            <version>${slf4j.version}</version>
        </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.apache.logging.log4j</groupId>
            <artifactId>log4j</artifactId>
            <version>${log4j.version}</version>
        </dependency>
        <dependency>
            <groupId>ch.qos.logback</groupId>
            <artifactId>logback-core</artifactId>
            <version>${logback.version}</version>
        </dependency>
        <dependency>
            <groupId>ch.qos.logback</groupId>
            <artifactId>logback-classic</artifactId>
            <version>${logback.version}</version>
        </dependency>
        <dependency>
            <groupId>com.google.guava</groupId>
            <artifactId>guava</artifactId>
            <version>${guava.version}</version>
        </dependency>
        <dependency>
            <groupId>io.netty</groupId>
            <artifactId>netty-all</artifactId>
            <version>${netty.version}</version>
        </dependency>
        <dependency>
            <groupId>joda-time</groupId>
            <artifactId>joda-time</artifactId>
            <version>${joda-time.version}</version>
        </dependency>
        <dependency>
            <groupId>org.joda</groupId>
            <artifactId>joda-convert</artifactId>
            <version>${joda-convert.version}</version>
        </dependency>
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-core</artifactId>
            <version>${jackson.version}</version>
        </dependency>
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-databind</artifactId>
            <version>${jackson.version}</version>
        </dependency>
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-annotations</artifactId>
            <version>${jackson.version}</version>
        </dependency>
        <dependency>
            <groupId>com.fasterxml.jackson.datatype</groupId>
            <artifactId>jackson-datatype-joda</artifactId>
            <version>${jackson.version}</version>
        </dependency>
        <dependency>
            <groupId>com.fasterxml.jackson.module</groupId>
            <artifactId>jackson-module-scala_${scala.binary.version}</artifactId>
            <version>${jackson.version}</version>
        </dependency>
        <dependency>
            <groupId>com.fasterxml.jackson.dataformat</groupId>
            <artifactId>jackson-dataformat-xml</artifactId>
            <version>${jackson.version}</version>
            <exclusions>
                <exclusion>
                    <artifactId>stax2-api</artifactId>
                    <groupId>org.codehaus.woodstox</groupId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>com.fasterxml.jackson.dataformat</groupId>
            <artifactId>jackson-dataformat-yaml</artifactId>
            <version>${jackson.version}</version>
        </dependency>
        <dependency>
            <groupId>com.fasterxml.jackson.module</groupId>
            <artifactId>jackson-module-jaxb-annotations</artifactId>
            <version>${jackson.version}</version>
        </dependency>
        <dependency>
            <groupId>com.fasterxml</groupId>
            <artifactId>aalto-xml</artifactId>
            <version>${aalto.version}</version>
        </dependency>
        <dependency>
            <groupId>nz.net.ultraq.jaxb</groupId>
            <artifactId>jaxb-utilities</artifactId>
            <version>${jaxbutil.version}</version>
        </dependency>
        <dependency>
            <groupId>com.jayway.jsonpath</groupId>
            <artifactId>json-path</artifactId>
            <version>${json-path.version}</version>
        </dependency>
        <dependency>
            <groupId>com.jayway.jsonpath</groupId>
            <artifactId>json-path-assert</artifactId>
            <version>${json-path.version}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.zookeeper</groupId>
            <artifactId>zookeeper</artifactId>
            <version>${zookeeper.version}</version>
            <exclusions>
                <exclusion>
                    <groupId>log4j</groupId>
                    <artifactId>log4j</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>org.apache.maven</groupId>
            <artifactId>maven-aether-provider</artifactId>
            <version>${maven-aether-provider.version}</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-resources-plugin</artifactId>
            <version>${resources.plugin.version}</version>
            <exclusions>
                <exclusion>
                    <groupId>org.apache.maven</groupId>
                    <artifactId>*</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>org.apache.maven</groupId>
            <artifactId>maven-artifact</artifactId>
            <version>${maven-plugin.version}</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>org.apache.maven</groupId>
            <artifactId>maven-compat</artifactId>
            <version>${maven-plugin.version}</version>
<!--            <scope>test</scope>-->
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>org.apache.maven.shared</groupId>
            <artifactId>maven-verifier</artifactId>
            <version>${maven-verifier.version}</version>
<!--            <scope>test</scope>-->
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>org.apache.maven</groupId>
            <artifactId>maven-core</artifactId>
            <version>${maven-plugin.version}</version>
            <scope>provided</scope>
            <exclusions>
                <exclusion>
                    <groupId>org.sonatype.aether</groupId>
                    <artifactId>*</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-plugin-plugin</artifactId>
            <version>${maven-plugin-plugin.version}</version>
            <scope>provided</scope>
            <exclusions>
                <exclusion>
                    <artifactId>commons-logging</artifactId>
                    <groupId>commons-logging</groupId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>org.apache.maven</groupId>
            <artifactId>maven-plugin-api</artifactId>
            <version>${maven-plugin.version}</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>org.apache.maven.plugin-tools</groupId>
            <artifactId>maven-plugin-tools-api</artifactId>
            <version>${maven-plugin-tools.version}</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>org.apache.maven.plugin-tools</groupId>
            <artifactId>maven-plugin-annotations</artifactId>
            <version>${maven-plugin-tools.version}</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>org.apache.maven.plugin-tools</groupId>
            <artifactId>maven-plugin-tools-generators</artifactId>
            <version>${maven-plugin-tools.version}</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>org.apache.maven.plugin-testing</groupId>
            <artifactId>maven-plugin-testing-harness</artifactId>
            <version>${maven-plugin-testing.version}</version>
            <scope>test</scope>
        </dependency>
    </dependencies>
    </dependencyManagement>

    <reporting>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-checkstyle-plugin</artifactId>
                <version>${checkstyle.plugin.version}</version>
                <reportSets>
                    <reportSet>
                        <reports>
                            <report>checkstyle</report>
                            <report>checkstyle-aggregate</report>
                        </reports>
                    </reportSet>
                </reportSets>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-project-info-reports-plugin</artifactId>
                <version>${reports.plugin.version}</version>
                <configuration>
                    <customBundle>${project.basedir}/src/site/custom/project-info-report.properties</customBundle>
                    <dependencyLocationsEnabled>false</dependencyLocationsEnabled>
                    <skipEmptyReport>false</skipEmptyReport>
                </configuration>
                <reportSets>
                    <reportSet>
                        <inherited>false</inherited>
                        <reports>
                            <report>index</report>
                            <report>modules</report>
                            <report>license</report>
                            <report>mailing-list</report>
                            <report>project-team</report>
                            <report>scm</report>
                            <report>issue-tracking</report>
                            <report>dependencies</report>
                            <report>dependency-info</report>
                            <report>dependency-management</report>
                            <report>distribution-management</report>
                            <report>plugin-management</report>
                        </reports>
                    </reportSet>
                </reportSets>
            </plugin>
            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>license-maven-plugin</artifactId>
                <version>${license.plugin.version}</version>
                <configuration>
                    <excludedGroups>org.apache.streams,org.apache.streams.plugins</excludedGroups>
                    <missingFile>${project.basedir}/src/license/THIRD-PARTY.properties</missingFile>
                    <useMissingFile>true</useMissingFile>
                </configuration>
                <reportSets>
                    <reportSet>
                        <inherited>false</inherited>
                        <reports>
                            <report>aggregate-third-party-report</report>
                        </reports>
                    </reportSet>
                </reportSets>
            </plugin>
            <plugin>
                <artifactId>maven-site-plugin</artifactId>
                <version>${site.plugin.version}</version>
                <configuration>
                    <generateSitemap>true</generateSitemap>
                </configuration>
            </plugin>
            <plugin>
                <groupId>com.github.ferstl</groupId>
                <artifactId>depgraph-maven-plugin</artifactId>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-javadoc-plugin</artifactId>
                <version>${javadoc.plugin.version}</version>
                <configuration>
                    <additionalparam>-Xdoclint:none</additionalparam>
                    <aggregate>false</aggregate>
                    <failOnError>false</failOnError>
                    <minmemory>128m</minmemory>
                    <maxmemory>1g</maxmemory>
                    <docfilessubdirs />
                </configuration>
                <reportSets>
                    <reportSet>
                        <reports>
                            <report>javadoc-no-fork</report>
                            <report>test-javadoc-no-fork</report>
                        </reports>
                    </reportSet>
                </reportSets>
            </plugin>
            <plugin>
                <artifactId>maven-source-plugin</artifactId>
            </plugin>
            <plugin>
                <groupId>org.apache.rat</groupId>
                <artifactId>apache-rat-plugin</artifactId>
            </plugin>
        </plugins>
    </reporting>

    <profiles>
        <profile>
            <id>java-8</id>
            <activation>
                <activeByDefault>false</activeByDefault>
                <jdk>1.8</jdk>
            </activation>
            <properties>
                <java.version>8</java.version>
                <maven.compiler.source>${java.version}</maven.compiler.source>
                <maven.compiler.target>${java.version}</maven.compiler.target>
                <jvm.options>-Djava.util.Arrays.useLegacyMergeSort=true</jvm.options>
            </properties>
            <dependencyManagement>
                <dependencies>
                    <dependency>
                        <groupId>org.testng</groupId>
                        <artifactId>testng</artifactId>
                        <version>7.5.1</version>
                        <scope>test</scope>
                    </dependency>
                </dependencies>
            </dependencyManagement>
        </profile>
        <profile>
            <id>java-11</id>
            <activation>
                <activeByDefault>false</activeByDefault>
                <jdk>(11,)</jdk>
            </activation>
            <properties>
                <java.version>11</java.version>
                <maven.compiler.source>${java.version}</maven.compiler.source>
                <maven.compiler.target>${java.version}</maven.compiler.target>
                <maven.compiler.release>${java.version}</maven.compiler.release>
            </properties>
<!--            <dependencyManagement>-->
<!--                <dependencies>-->
<!--                    <dependency>-->
<!--                        <groupId>javax.xml.bind</groupId>-->
<!--                        <artifactId>jaxb-api</artifactId>-->
<!--                        <version>2.4.0-b180830.0359</version>-->
<!--                    </dependency>-->
<!--                    <dependency>-->
<!--                        <groupId>com.sun.xml.bind</groupId>-->
<!--                        <artifactId>jaxb-core</artifactId>-->
<!--                        <version>3.0.0-M4</version>-->
<!--                    </dependency>-->
<!--                    <dependency>-->
<!--                        <groupId>com.sun.xml.bind</groupId>-->
<!--                        <artifactId>jaxb-impl</artifactId>-->
<!--                        <version>3.0.0-M4</version>-->
<!--                    </dependency>-->
<!--                    <dependency>-->
<!--                        <groupId>com.sun.activation</groupId>-->
<!--                        <artifactId>javax.activation</artifactId>-->
<!--                        <version>1.2.0</version>-->
<!--                    </dependency>-->
<!--                    <dependency>-->
<!--                        <groupId>javax.annotation</groupId>-->
<!--                        <artifactId>javax.annotation-api</artifactId>-->
<!--                        <version>1.3.2</version>-->
<!--                    </dependency>-->
<!--                </dependencies>-->
<!--            </dependencyManagement>-->
        </profile>
        <profile>
            <id>java-17</id>
            <activation>
                <activeByDefault>false</activeByDefault>
                <jdk>(17,)</jdk>
            </activation>
            <properties>
                <java.version>17</java.version>
                <maven.compiler.source>${java.version}</maven.compiler.source>
                <maven.compiler.target>${java.version}</maven.compiler.target>
                <maven.compiler.release>${java.version}</maven.compiler.release>
            </properties>
        </profile>
        <profile>
            <id>dist</id>
            <activation>
                <activeByDefault>false</activeByDefault>
            </activation>
            <build>
                <plugins>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-shade-plugin</artifactId>
                        <version>${shade.plugin.version}</version>
                        <configuration>
                            <createDependencyReducedPom>false</createDependencyReducedPom>
                            <outputDirectory>dist</outputDirectory>
                            <outputFile>dist/${project.artifactId}-jar-with-dependencies.jar</outputFile>
                            <filters>
                                <filter>
                                    <artifact>*:*</artifact>
                                    <excludes>
                                        <exclude>**/META-INF/**</exclude>
                                    </excludes>
                                </filter>
                            </filters>
                            <transformers>
                                <transformer implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
                                    <resource>reference.conf</resource>
                                </transformer>
                            </transformers>
                        </configuration>
                        <executions>
                            <execution>
                                <phase>package</phase>
                                <goals>
                                    <goal>shade</goal>
                                </goals>
                            </execution>
                        </executions>
                    </plugin>
                </plugins>
            </build>
        </profile>
        <profile>
            <id>apache-release</id>
            <properties>
                <skipTests>false</skipTests>
                <maven.test.skip>false</maven.test.skip>
            </properties>
            <build>
                <plugins>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-source-plugin</artifactId>
                        <version>${source.plugin.version}</version>
                        <configuration>
                            <skipSource>true</skipSource>
                        </configuration>
                        <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-jar-plugin</artifactId>
                        <configuration>
                            <skip>false</skip>
                        </configuration>
                        <executions>
                            <execution>
                                <id>test-jar</id>
                                <goals>
                                    <goal>test-jar</goal>
                                </goals>
                            </execution>
                        </executions>
                    </plugin>
                    <plugin>
                        <artifactId>maven-assembly-plugin</artifactId>
                        <dependencies>
                            <dependency>
                                <groupId>org.apache.apache.resources</groupId>
                                <artifactId>apache-source-release-assembly-descriptor</artifactId>
                                <version>1.0.6</version>
                            </dependency>
                        </dependencies>
                        <executions>
                            <execution>
                                <id>source-release-assembly</id>
                                <phase>package</phase>
                                <goals>
                                    <goal>single</goal>
                                </goals>
                                <configuration>
                                    <runOnlyAtExecutionRoot>true</runOnlyAtExecutionRoot>
                                    <descriptorRefs>
                                        <descriptorRef>source-release</descriptorRef>
                                    </descriptorRefs>
                                    <tarLongFileMode>gnu</tarLongFileMode>
                                </configuration>
                            </execution>
                        </executions>
                    </plugin>
                    <plugin>
                        <artifactId>maven-release-plugin</artifactId>
                        <configuration>
                            <releaseProfiles>apache-release</releaseProfiles>
                            <preparationGoals>clean install</preparationGoals>
                        </configuration>
                    </plugin>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-surefire-plugin</artifactId>
                        <configuration>
                            <skipTests>false</skipTests>
                            <skipExec>true</skipExec>
                        </configuration>
                    </plugin>
                </plugins>
            </build>
            <reporting>
                <plugins>
                    <plugin>
                        <groupId>org.apache.rat</groupId>
                        <artifactId>apache-rat-plugin</artifactId>
                    </plugin>
                    <plugin>
                        <artifactId>maven-project-info-reports-plugin</artifactId>
                        <configuration>
                            <dependencyLocationsEnabled>false</dependencyLocationsEnabled>
                        </configuration>
                    </plugin>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-javadoc-plugin</artifactId>
                        <reportSets>
                            <reportSet>
                                <id>aggregate</id>
                                <reports>
                                    <report>javadoc-no-fork</report>
                                    <report>test-javadoc-no-fork</report>
                                    <report>aggregate</report>
                                </reports>
                            </reportSet>
                            <reportSet>
                                <id>html</id>
                                <reports>
                                    <report>javadoc</report>
                                </reports>
                            </reportSet>
                        </reportSets>
                    </plugin>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-site-plugin</artifactId>
                    </plugin>
                    <plugin>
                        <groupId>com.github.ferstl</groupId>
                        <artifactId>depgraph-maven-plugin</artifactId>
                        <version>${depgraph.plugin.version}</version>
                    </plugin>
                </plugins>
            </reporting>
        </profile>
        <profile>
            <id>check</id>
            <build>
                <plugins>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-enforcer-plugin</artifactId>
                    </plugin>
                    <plugin>
                        <groupId>org.apache.rat</groupId>
                        <artifactId>apache-rat-plugin</artifactId>
                    </plugin>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-checkstyle-plugin</artifactId>
                    </plugin>
                    <plugin>
                        <groupId>org.scalastyle</groupId>
                        <artifactId>scalastyle-maven-plugin</artifactId>
                    </plugin>
                    <plugin>
                        <groupId>org.codehaus.mojo</groupId>
                        <artifactId>license-maven-plugin</artifactId>
                    </plugin>
                </plugins>
                <pluginManagement>
                    <plugins>
                        <plugin>
                            <groupId>org.apache.maven.plugins</groupId>
                            <artifactId>maven-enforcer-plugin</artifactId>
                            <version>${enforcer.plugin.version}</version>
                            <executions>
                                <execution>
                                    <id>enforce-java</id>
                                    <goals>
                                        <goal>enforce</goal>
                                    </goals>
                                    <configuration>
                                        <rules>
                                            <requireJavaVersion>
                                                <message>Java ${java.version} or higher is required to compile this module</message>
                                                <version>[${java.version},)</version>
                                            </requireJavaVersion>
                                            <requireMavenVersion>
                                                <message>${maven.version} or higher is required to compile this module</message>
                                                <version>[${maven.version},)</version>
                                            </requireMavenVersion>
                                        </rules>
                                    </configuration>
                                </execution>
                                <execution>
                                    <id>enforce-banned-dependencies</id>
                                    <goals>
                                        <goal>enforce</goal>
                                    </goals>
                                    <configuration>
                                        <rules>
                                            <bannedDependencies>
                                                <excludes>
                                                    <exclude>org.slf4j:slf4j-log4j12:*:jar:compile</exclude>
                                                    <exclude>org.slf4j:slf4j-jcl:*:jar:compile</exclude>
                                                    <exclude>org.slf4j:slf4j-jdk14:*:jar:compile</exclude>
                                                    <exclude>org.log4j:log4j:*:jar:compile</exclude>
                                                    <exclude>commons-logging:commons-logging:*:jar:compile</exclude>
                                                </excludes>
                                            </bannedDependencies>
                                        </rules>
                                        <fail>true</fail>
                                    </configuration>
                                </execution>
                                <execution>
                                    <id>enforce-no-snapshots</id>
                                    <goals>
                                        <goal>enforce</goal>
                                    </goals>
                                    <configuration>
                                        <rules>
                                            <requireReleaseDeps>
                                                <message>No Snapshots Allowed!</message>
                                                <excludes>
                                                    <exclude>org.apache.streams:*</exclude>
                                                    <exclude>org.apache.streams.*:*</exclude>
                                                </excludes>
                                                <failWhenParentIsSnapshot>false</failWhenParentIsSnapshot>
                                                <onlyWhenRelease>true</onlyWhenRelease>
                                            </requireReleaseDeps>
                                        </rules>
                                        <fail>true</fail>
                                    </configuration>
                                </execution>
                            </executions>
                        </plugin>
                        <plugin>
                            <groupId>org.apache.rat</groupId>
                            <artifactId>apache-rat-plugin</artifactId>
                            <version>${apache-rat.plugin.version}</version>
                            <executions>
                                <execution>
                                    <phase>validate</phase>
                                    <goals>
                                        <goal>check</goal>
                                    </goals>
                                </execution>
                            </executions>
                            <configuration>
                                <excludes>
                                    <exclude>.git</exclude>
                                    <exclude>.git/**</exclude>
                                    <exclude>.idea/**</exclude>
                                    <exclude>.java-version</exclude>
                                    <exclude>*.conf</exclude>
                                    <exclude>*.properties</exclude>
                                    <exclude>**/.gitignore</exclude>
                                    <exclude>**/*.iml</exclude>
                                    <exclude>**/*.ini</exclude>
                                    <exclude>**/*.jar</exclude>
                                    <exclude>**/*.svg</exclude>
                                    <exclude>**/MANIFEST.MF</exclude>
                                    <exclude>**/src/test/resources/*</exclude>
                                    <exclude>**/src/site/resources/**/*</exclude>
                                    <exclude>**/target/**</exclude>
                                    <exclude>apache-maven-*/**/*</exclude>
                                    <exclude>**/src/license/*</exclude>
                                    <exclude>**/src/license/licenses/*</exclude>
                                </excludes>
                            </configuration>
                        </plugin>
                        <plugin>
                            <groupId>org.codehaus.mojo</groupId>
                            <artifactId>license-maven-plugin</artifactId>
                            <version>${license.plugin.version}</version>
                            <configuration>
                                <acceptPomPackaging>true</acceptPomPackaging>
                                <excludedGroups>^org.apache.streams.*</excludedGroups>
                                <failOnBlacklist>true</failOnBlacklist>
                                <failOnMissing>true</failOnMissing>
                                <licenseMergesUrl>file://${session.executionRootDirectory}/src/license/licenseMerges.txt</licenseMergesUrl>
                                <missingFile>${session.executionRootDirectory}/src/license/licenseMissingFile.properties</missingFile>
                                <outputDirectory>src/license</outputDirectory>
                                <thirdPartyFilename>THIRD-PARTY.txt</thirdPartyFilename>
                                <useMissingFile>true</useMissingFile>
                            </configuration>
                            <executions>
                                <execution>
                                    <id>aggregate-add-third-party</id>
                                    <phase>validate</phase>
                                    <goals>
                                        <goal>aggregate-add-third-party</goal>
                                    </goals>
                                </execution>
                                <execution>
                                    <id>aggregate-download-licenses</id>
                                    <phase>validate</phase>
                                    <goals>
                                        <goal>aggregate-download-licenses</goal>
                                    </goals>
                                </execution>
                            </executions>
                        </plugin>
                        <plugin>
                            <groupId>org.apache.maven.plugins</groupId>
                            <artifactId>maven-checkstyle-plugin</artifactId>
                            <version>${checkstyle.plugin.version}</version>
                            <dependencies>
                                <dependency>
                                    <groupId>com.puppycrawl.tools</groupId>
                                    <artifactId>checkstyle</artifactId>
                                    <version>8.18</version>
                                </dependency>
                            </dependencies>
                            <executions>
                                <execution>
                                    <id>validate</id>
                                    <phase>validate</phase>
                                    <configuration>
                                        <configLocation>src/main/resources/streams-java-checkstyle.xml</configLocation>
                                        <encoding>UTF-8</encoding>
                                        <consoleOutput>true</consoleOutput>
                                        <includeTestSourceDirectory>true</includeTestSourceDirectory>
                                        <testSourceDirectories>${project.basedir}/src/test/java</testSourceDirectories>
                                        <failsOnError>false</failsOnError>
                                    </configuration>
                                    <goals>
                                        <goal>check</goal>
                                    </goals>
                                </execution>
                            </executions>
                        </plugin>
                        <plugin>
                            <groupId>org.scalastyle</groupId>
                            <artifactId>scalastyle-maven-plugin</artifactId>
                            <version>${scalastyle.plugin.version}</version>
                            <executions>
                                <execution>
                                    <id>validate</id>
                                    <phase>validate</phase>
                                    <configuration>
                                        <verbose>false</verbose>
                                        <failOnViolation>false</failOnViolation>
                                        <includeTestSourceDirectory>true</includeTestSourceDirectory>
                                        <failOnWarning>false</failOnWarning>
                                        <sourceDirectory>${project.basedir}/src/main/scala</sourceDirectory>
                                        <testSourceDirectory>${project.basedir}/src/test/scala</testSourceDirectory>
                                        <!--<configLocation>https://raw.githubusercontent.com/databricks/sbt-databricks/master/scalastyle-config.xml</configLocation>-->
                                        <outputFile>${project.build.directory}/scalastyle-output.xml</outputFile>
                                        <outputEncoding>UTF-8</outputEncoding>
                                    </configuration>
                                    <goals>
                                        <goal>check</goal>
                                    </goals>
                                </execution>
                            </executions>
                        </plugin>
                    </plugins>
                </pluginManagement>
            </build>
        </profile>
        <profile>
            <id>dockerITs</id>
            <activation>
                <activeByDefault>false</activeByDefault>
                <property>
                    <name>skipITs</name>
                    <value>false</value>
                </property>
            </activation>
        </profile>
    </profiles>
</project>
