<?xml version="1.0" encoding="UTF-8"?>
<!--
  Licensed to the Apache Software Foundation (ASF) under one or more
  contributor license agreements.  See the NOTICE file distributed with
  this work for additional information regarding copyright ownership.
  The ASF licenses this file to You under the Apache License, Version 2.0
  (the "License"); you may not use this file except in compliance with
  the License.  You may obtain a copy of the License at

  http://www.apache.org/licenses/LICENSE-2.0

  Unless required by applicable law or agreed to in writing, software
  distributed under the License is distributed on an "AS IS" BASIS,
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  See the License for the specific language governing permissions and
  limitations under the License.
-->
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
   <modelVersion>4.0.0</modelVersion>
   <groupId>org.apache.activemq</groupId>
   <artifactId>artemis-pom</artifactId>
   <packaging>pom</packaging>
   <version>2.32.0</version>

   <parent>
      <groupId>org.apache</groupId>
      <artifactId>apache</artifactId>
      <version>31</version>
      <relativePath>org.apache:apache</relativePath>
   </parent>

   <modules>
      <module>artemis-log-annotation-processor</module>
      <module>artemis-protocols</module>
      <module>artemis-dto</module>
      <module>artemis-cdi-client</module>
      <module>artemis-boot</module>
      <module>artemis-cli</module>
      <module>artemis-commons</module>
      <module>artemis-selector</module>
      <module>artemis-core-client</module>
      <module>artemis-core-client-all</module>
      <module>artemis-core-client-osgi</module>
      <module>artemis-web</module>
      <module>artemis-server</module>
      <module>artemis-junit</module>
      <module>artemis-jms-client</module>
      <module>artemis-jms-client-all</module>
      <module>artemis-jms-client-osgi</module>
      <module>artemis-jakarta-client</module>
      <module>artemis-jakarta-client-all</module>
      <module>artemis-jms-server</module>
      <module>artemis-jakarta-server</module>
      <module>artemis-journal</module>
      <module>artemis-ra</module>
      <module>artemis-jakarta-ra</module>
      <module>artemis-service-extensions</module>
      <module>artemis-jakarta-service-extensions</module>
      <module>artemis-jdbc-store</module>
      <module>artemis-maven-plugin</module>
      <module>artemis-server-osgi</module>
      <module>artemis-hawtio</module>
      <module>integration/activemq-spring-integration</module>
      <module>artemis-distribution</module>
      <module>artemis-unit-test-support</module>
      <module>tests</module>
      <module>artemis-features</module>
      <module>artemis-quorum-api</module>
      <module>artemis-quorum-ri</module>
      <module>artemis-image</module>
      <module>artemis-image/examples</module>
   </modules>

   <name>ActiveMQ Artemis Parent</name>
   <url>https://activemq.apache.org/components/artemis/</url>

   <properties>
      <maven.compiler.source>11</maven.compiler.source>
      <maven.compiler.target>11</maven.compiler.target>

      <retryTests>false</retryTests>
      <logging.config>log4j2-tests-config.properties</logging.config>
      <modular.jdk.surefire.arg>--add-modules java.sql,jdk.unsupported </modular.jdk.surefire.arg>

      <activemq-artemis-native-version>2.0.0</activemq-artemis-native-version>
      <karaf.version>4.4.4</karaf.version>
      <pax.exam.version>4.13.5</pax.exam.version>
      <commons.config.version>2.9.0</commons.config.version>
      <commons.lang.version>3.13.0</commons.lang.version>
      <activemq5-version>5.18.3</activemq5-version>
      <apache.derby.version>10.14.2.0</apache.derby.version>
      <commons.beanutils.version>1.9.4</commons.beanutils.version>
      <commons.dbcp2.version>2.7.0</commons.dbcp2.version>
      <commons.pool2.version>2.7.0</commons.pool2.version>
      <commons.collections.version>3.2.2</commons.collections.version>
      <commons.text.version>1.10.0</commons.text.version>
      <commons.io.version>2.10.0</commons.io.version>
      <commons.codec.version>1.15</commons.codec.version>
      <fuse.mqtt.client.version>1.16</fuse.mqtt.client.version>
      <caffeine.version>3.1.6</caffeine.version>
      <guava.version>32.0.1-jre</guava.version>
      <hawtio.version>2.17.7</hawtio.version>
      <jsr305.version>3.0.2</jsr305.version>
      <jetty.version>10.0.16</jetty.version>
      <jetty-servlet-api.version>4.0.6</jetty-servlet-api.version>
      <jgroups.version>5.3.0.Final</jgroups.version>
      <errorprone.version>2.20.0</errorprone.version>
      <maven.bundle.plugin.version>5.1.9</maven.bundle.plugin.version>
      <jib.maven.plugin.version>3.3.2</jib.maven.plugin.version>
      <sevntu.checks.version>1.44.1</sevntu.checks.version>
      <checkstyle.version>10.12.7</checkstyle.version>
      <mockito.version>5.4.0</mockito.version>
      <jctools.version>2.1.2</jctools.version>
      <netty.version>4.1.101.Final</netty.version>
      <hdrhistogram.version>2.1.12</hdrhistogram.version>
      <curator.version>5.5.0</curator.version>
      <zookeeper.version>3.8.3</zookeeper.version>
      <woodstox.version>4.4.0</woodstox.version>
      <pem-keystore.version>2.2.2</pem-keystore.version>
      <!-- This overrides the Apache parent POM due to https://issues.apache.org/jira/browse/MSHADE-462. Once that issue
           is resolved and a new Apache parent is released then we can get rid of this. -->
      <version.maven-shade-plugin>3.4.1</version.maven-shade-plugin>

      <!-- docs -->
      <asciidoctor.maven.plugin.version>2.2.4</asciidoctor.maven.plugin.version>
      <asciidoctorj.pdf.version>2.3.9</asciidoctorj.pdf.version>

      <!-- tracing -->
      <opentelemetry.version>1.24.0</opentelemetry.version>
      <opentelemetry-alpha.version>${opentelemetry.version}-alpha</opentelemetry-alpha.version>

      <!-- this is basically for tests -->
      <netty-tcnative-version>2.0.61.Final</netty-tcnative-version>
      <proton.version>0.34.1</proton.version>
      <protonj2.version>1.0.0-M19</protonj2.version>
      <slf4j.version>2.0.9</slf4j.version>
      <log4j.version>2.21.1</log4j.version>
      <qpid.jms.version>1.10.0</qpid.jms.version>
      <johnzon.version>1.2.21</johnzon.version>
      <hawtbuff.version>1.11</hawtbuff.version>
      <hawtdispatch.version>1.22</hawtdispatch.version>
      <picocli.version>4.7.5</picocli.version>
      <jline.version>3.23.0</jline.version>
      <jansi.version>2.4.0</jansi.version>
      <jakarta.activation-api.version>1.2.2</jakarta.activation-api.version>
      <jakarta.annotation-api.version>1.3.5</jakarta.annotation-api.version>
      <jakarta.ejb-api.version>3.2.6</jakarta.ejb-api.version>
      <jakarta.enterprise.cdi-api.version>2.0.2</jakarta.enterprise.cdi-api.version>
      <jakarta.inject-api.version>1.0.3</jakarta.inject-api.version>
      <jakarta.jms-api.version>2.0.3</jakarta.jms-api.version>
      <jakarta.json-api.version>1.1.6</jakarta.json-api.version>
      <jakarta.management.j2ee-api.version>1.1.4</jakarta.management.j2ee-api.version>
      <jakarta.resource-api.version>1.7.4</jakarta.resource-api.version>
      <jakarta.security.auth.message-api.version>1.1.3</jakarta.security.auth.message-api.version>
      <jakarta.transaction-api.version>1.3.3</jakarta.transaction-api.version>
      <jakarta.ws.rs-api.version>2.1.6</jakarta.ws.rs-api.version>
      <jakarta.xml.bind-api.version>2.3.3</jakarta.xml.bind-api.version>
      <weld.version>2.4.0.Final</weld.version>
      <arquillian-weld-embedded.version>2.0.0.Beta3</arquillian-weld-embedded.version>
      <owb.version>1.7.0</owb.version>
      <arquillian.version>1.1.11.Final</arquillian.version>
      <servicemix.json-1.1.spec.version>2.9.0</servicemix.json-1.1.spec.version>
      <version.org.jacoco>0.8.10</version.org.jacoco>
      <version.org.jacoco.plugin>0.8.10</version.org.jacoco.plugin>
      <version.micrometer>1.9.5</version.micrometer>
      <hamcrest.version>2.1</hamcrest.version>
      <junit.version>4.13.2</junit.version>
      <junit5.version>5.8.2</junit5.version>
      <surefire.version>2.22.2</surefire.version>
      <version.jaxb.runtime>2.3.3</version.jaxb.runtime>
      <paho.client.mqtt.version>1.2.5</paho.client.mqtt.version>
      <postgresql.version>42.4.3</postgresql.version>
      <testcontainers.version>1.17.6</testcontainers.version>
      <selenium.version>4.8.3</selenium.version>
      <exec-maven-plugin.version>3.0.0</exec-maven-plugin.version>
      <apache.httpcore.version>4.4.13</apache.httpcore.version>
      <apache.httpclient.version>4.5.13</apache.httpclient.version>

      <!-- for JakartaEE -->
      <version.batavia>1.0.10.Final</version.batavia>
      <jakarta.jms-api.version.alt>3.1.0</jakarta.jms-api.version.alt>
      <jakarta.transaction-api.version.alt>2.0.1</jakarta.transaction-api.version.alt>
      <jakarta.resource-api.version.alt>2.1.0</jakarta.resource-api.version.alt>

      <!-- used on tests -->
      <groovy.version>4.0.13</groovy.version>
      <vertx.version>4.3.3</vertx.version>
      <hadoop.minikdc.version>3.3.1</hadoop.minikdc.version>
      <mockserver.version>5.15.0</mockserver.version>

      <owasp.version>8.4.0</owasp.version>
      <spring.version>5.3.27</spring.version>

      <jackson.version>2.16.1</jackson.version>
      <jackson-databind.version>${jackson.version}</jackson-databind.version>

      <activemq.version.versionName>${project.version}</activemq.version.versionName>
      <activemq.version.majorVersion>1</activemq.version.majorVersion>
      <activemq.version.minorVersion>0</activemq.version.minorVersion>
      <activemq.version.microVersion>0</activemq.version.microVersion>
      <activemq.version.incrementingVersion>135,134,133,132,131,130,129,128,127,126,125,124,123,122</activemq.version.incrementingVersion>
      <activemq.version.versionTag>${project.version}</activemq.version.versionTag>
      <ActiveMQ-Version>${project.version}(${activemq.version.incrementingVersion})</ActiveMQ-Version>

      <skipUnitTests>true</skipUnitTests>
      <skipJmsTests>true</skipJmsTests>
      <skipExtraTests>true</skipExtraTests>
      <skipIntegrationTests>true</skipIntegrationTests>
      <skipFeaturesVerification>true</skipFeaturesVerification>
      <skipIsolatedIntegrationTests>true</skipIsolatedIntegrationTests>
      <skipLeakTests>true</skipLeakTests>
      <skipSmokeTests>true</skipSmokeTests>
      <skipJoramTests>true</skipJoramTests>
      <skipTimingTests>true</skipTimingTests>
      <skipStressTests>true</skipStressTests>
      <skipSoakTests>true</skipSoakTests>
      <skipPerformanceTests>true</skipPerformanceTests>
      <skipActiveMQ5Tests>true</skipActiveMQ5Tests>

      <e2e-tests.skipTests>true</e2e-tests.skipTests>
      <e2e-tests.skipImageBuild>true</e2e-tests.skipImageBuild>

      <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
      <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>

      <maven.test.redirectTestOutputToFile>false</maven.test.redirectTestOutputToFile>

      <!--

       note for idea users:
       Idea picks up surefire argline by default:
       if You don't want it, you can add -Didea.maven.surefire.disable.argLine=true to idea.vmoptions files,
       see https://intellij-support.jetbrains.com/entries/23395793

       Also see: http://youtrack.jetbrains.com/issue/IDEA-125696


       For profiling add this line and use jmc (Java Mission Control) to evaluate the results:
           -XX:+UnlockCommercialFeatures -XX:+FlightRecorder -XX:StartFlightRecording=delay=30s,duration=120s,filename=/tmp/myrecording.jfr

      -->

      <!-- for tests that will need a new server created -->
      <artemis.distribution.output>${activemq.basedir}/artemis-distribution/target/apache-artemis-${project.version}-bin/apache-artemis-${project.version}</artemis.distribution.output>

      <activemq-surefire-argline>-Dorg.apache.activemq.artemis.utils.RetryRule.retry=${retryTests} -Dbrokerconfig.maxDiskUsage=100 -Dorg.apache.activemq.artemis.core.remoting.impl.netty.TransportConstants.DEFAULT_QUIET_PERIOD=0 -Dorg.apache.activemq.artemis.core.remoting.impl.netty.TransportConstants.DEFAULT_SHUTDOWN_TIMEOUT=0
         -Djava.library.path="${activemq.basedir}/target/bin/lib/linux-x86_64:${activemq.basedir}/target/bin/lib/linux-i686" -Djgroups.bind_addr=localhost
         -Djava.net.preferIPv4Stack=true -Dbasedir=${basedir}
         -Djdk.attach.allowAttachSelf=true
         -Dartemis.distribution.output="${artemis.distribution.output}"
         -Dlog4j2.configurationFile="file:${activemq.basedir}/tests/config/${logging.config}"
      </activemq-surefire-argline>
      <activemq.basedir>${project.basedir}</activemq.basedir>
      <proton.trace.frames>false</proton.trace.frames>

      <directory-version>2.0.0.AM25</directory-version>
      <directory-jdbm2-version>2.0.0-M1</directory-jdbm2-version>
      <bc-java-version>1.75</bc-java-version>

      <netty-transport-native-epoll-classifier>linux-x86_64</netty-transport-native-epoll-classifier>
      <netty-transport-native-kqueue-classifier>osx-x86_64</netty-transport-native-kqueue-classifier>

      <!-- Ignore failed tests by default because there are "known" failures in the full test-suite.
           This will be set to false for the "fast-tests" profile as none of those tests should fail. -->
      <testFailureIgnore>true</testFailureIgnore>
      <fast-tests>false</fast-tests>

      <project.build.outputTimestamp>2024-01-24T19:12:58Z</project.build.outputTimestamp>
   </properties>

   <scm>
      <connection>scm:git:https://gitbox.apache.org/repos/asf/activemq-artemis.git</connection>
      <developerConnection>scm:git:https://gitbox.apache.org/repos/asf/activemq-artemis.git</developerConnection>
      <url>https://github.com/apache/activemq-artemis</url>
      <tag>2.32.0</tag>
   </scm>

   <issueManagement>
      <system>JIRA</system>
      <url>https://issues.apache.org/jira/browse/ARTEMIS</url>
   </issueManagement>
   <developers>
      <developer>
         <name>The Apache ActiveMQ Team</name>
         <email>dev@activemq.apache.org</email>
         <url>http://activemq.apache.org</url>
         <organization>Apache Software Foundation</organization>
         <organizationUrl>http://apache.org/</organizationUrl>
      </developer>
   </developers>
   <mailingLists>
      <mailingList>
         <name>User List</name>
         <subscribe>users-subscribe@activemq.apache.org</subscribe>
         <unsubscribe>users-unsubscribe@activemq.apache.org</unsubscribe>
         <post>users@activemq.apache.org</post>
      </mailingList>
      <mailingList>
         <name>Development List</name>
         <subscribe>dev-subscribe@activemq.apache.org</subscribe>
         <unsubscribe>dev-unsubscribe@activemq.apache.org</unsubscribe>
         <post>dev@activemq.apache.org</post>
      </mailingList>
   </mailingLists>

   <dependencyManagement>
      <dependencies>
         <!-- ## Test Dependencies ## -->
         <dependency>
            <groupId>org.junit.jupiter</groupId>
            <artifactId>junit-jupiter-api</artifactId>
            <version>${junit5.version}</version>
            <!-- Eclipse Public License - v 2.0 -->
         </dependency>

         <!-- ## Test Dependencies ## Note: Run Junit5 test. -->
         <dependency>
            <groupId>org.junit.jupiter</groupId>
            <artifactId>junit-jupiter-engine</artifactId>
            <version>${junit5.version}</version>
            <scope>test</scope>
            <!-- Eclipse Public License - v 2.0 -->
         </dependency>

         <!-- ## Test Dependencies ## Note: Run Junit4 tests. -->
         <dependency>
            <groupId>org.junit.vintage</groupId>
            <artifactId>junit-vintage-engine</artifactId>
            <version>${junit5.version}</version>
            <!-- Eclipse Public License - v 2.0 -->
         </dependency>

         <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>${junit.version}</version>
            <scope>test</scope>
            <!-- License: EPL 1.0 -->
         </dependency>

         <dependency>
            <groupId>org.easymock</groupId>
            <artifactId>easymock</artifactId>
            <version>3.2</version>
            <scope>test</scope>
         </dependency>

         <!-- ### For MQTT Tests && Examples -->
         <dependency>
            <groupId>org.eclipse.paho</groupId>
            <artifactId>org.eclipse.paho.client.mqttv3</artifactId>
            <version>${paho.client.mqtt.version}</version>
         </dependency>
         <dependency>
            <groupId>org.eclipse.paho</groupId>
            <artifactId>org.eclipse.paho.mqttv5.client</artifactId>
            <version>${paho.client.mqtt.version}</version>
         </dependency>
         <dependency>
            <groupId>org.fusesource.mqtt-client</groupId>
            <artifactId>mqtt-client</artifactId>
            <version>${fuse.mqtt.client.version}</version>
            <!-- Apache v2.0 License -->
         </dependency>
         <dependency>
            <groupId>org.apache.derby</groupId>
            <artifactId>derby</artifactId>
            <version>${apache.derby.version}</version>
            <scope>test</scope>
         </dependency>
         <dependency>
            <groupId>org.eclipse.paho</groupId>
            <artifactId>mqtt-client</artifactId>
            <version>0.4.0</version>
            <scope>test</scope>
            <!-- Eclipse Public License - v 1.0 -->
         </dependency>

         <dependency>
            <groupId>org.postgresql</groupId>
            <artifactId>postgresql</artifactId>
            <version>${postgresql.version}</version>
            <scope>provided</scope>
            <!-- postgresql license -->
         </dependency>

         <dependency>
            <groupId>commons-collections</groupId>
            <artifactId>commons-collections-testframework</artifactId>
            <version>${commons.collections.version}</version>
            <!-- License: Apache 2.0 -->
         </dependency>

         <dependency>
            <groupId>org.mockito</groupId>
            <artifactId>mockito-core</artifactId>
            <version>${mockito.version}</version>
            <scope>test</scope>
            <!-- License: MIT -->
         </dependency>

         <dependency>
            <groupId>org.apache.hadoop</groupId>
            <artifactId>hadoop-minikdc</artifactId>
            <version>${hadoop.minikdc.version}</version>
            <scope>test</scope>
            <exclusions>
               <exclusion>
                  <groupId>org.slf4j</groupId>
                  <artifactId>slf4j-log4j12</artifactId>
               </exclusion>
               <exclusion>
                  <groupId>com.nimbusds</groupId>
                  <artifactId>nimbus-jose-jwt</artifactId>
               </exclusion>
            </exclusions>
         </dependency>
         <dependency>
            <groupId>de.dentrassi.crypto</groupId>
            <artifactId>pem-keystore</artifactId>
            <version>${pem-keystore.version}</version>
            <!-- Eclipse Public License - v 1.0 -->
            <exclusions>
               <!-- exclude bcprov-jdk15on to avoid conflicts with bcprov-jdk18on -->
               <exclusion>
                  <groupId>org.bouncycastle</groupId>
                  <artifactId>bcprov-jdk15on</artifactId>
               </exclusion>
               <exclusion>
                  <groupId>org.bouncycastle</groupId>
                  <artifactId>bcpkix-jdk15on</artifactId>
               </exclusion>
            </exclusions>
         </dependency>
         <dependency>
            <groupId>org.bouncycastle</groupId>
            <artifactId>bcprov-jdk18on</artifactId>
            <version>${bc-java-version}</version>
         </dependency>
         <dependency>
            <groupId>org.bouncycastle</groupId>
            <artifactId>bcpkix-jdk18on</artifactId>
            <version>${bc-java-version}</version>
         </dependency>

         <!-- ## End Test Dependencies ## -->
         <dependency>
            <groupId>com.google.errorprone</groupId>
            <artifactId>error_prone_core</artifactId>
            <version>${errorprone.version}</version>
            <scope>provided</scope>
         </dependency>
         <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-core</artifactId>
            <version>${spring.version}</version>
            <scope>compile</scope>
            <!-- License: Apache 2.0 -->
         </dependency>
         <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-beans</artifactId>
            <version>${spring.version}</version>
            <scope>compile</scope>
            <!-- License: Apache 2.0 -->
         </dependency>
         <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>${spring.version}</version>
            <scope>compile</scope>
            <!-- License: Apache 2.0 -->
         </dependency>
         <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-jms</artifactId>
            <version>${spring.version}</version>
            <scope>compile</scope>
            <!-- License: Apache 2.0 -->
         </dependency>
         <!-- ### End Build Time Dependencies ### -->

         <dependency>
            <groupId>org.owasp</groupId>
            <artifactId>dependency-check-core</artifactId>
            <version>${owasp.version}</version>
            <!-- License: Apache 2.0 -->
         </dependency>
         <dependency>
            <groupId>org.owasp</groupId>
            <artifactId>dependency-check-utils</artifactId>
            <version>${owasp.version}</version>
            <!-- License: Apache 2.0 -->
         </dependency>

         <!-- ### Run Time Dependencies: MUST NOT INCLUDE CAT X LICENSES ###-->
         <dependency>
            <groupId>jakarta.inject</groupId>
            <artifactId>jakarta.inject-api</artifactId>
            <version>${jakarta.inject-api.version}</version>
            <!-- License: EPL 2.0 -->
         </dependency>
         <dependency>
            <groupId>org.fusesource.hawtbuf</groupId>
            <artifactId>hawtbuf</artifactId>
            <version>${hawtbuff.version}</version>
            <!-- License: Apache 2.0 -->
         </dependency>
         <dependency>
            <groupId>org.fusesource.hawtdispatch</groupId>
            <artifactId>hawtdispatch</artifactId>
            <version>${hawtdispatch.version}</version>
            <!-- License: Apache 2.0 -->
         </dependency>
         <dependency>
            <groupId>net.java.dev.javacc</groupId>
            <artifactId>javacc</artifactId>
            <version>4.0</version>
            <!-- License: BSD -->
         </dependency>
         <dependency>
            <groupId>jakarta.jms</groupId>
            <artifactId>jakarta.jms-api</artifactId>
            <version>${jakarta.jms-api.version}</version>
            <!-- License: EPL 2.0 -->
         </dependency>
         <dependency>
            <groupId>jakarta.transaction</groupId>
            <artifactId>jakarta.transaction-api</artifactId>
            <version>${jakarta.transaction-api.version}</version>
            <!-- License: EPL 2.0 -->
         </dependency>
         <dependency>
            <groupId>jakarta.ejb</groupId>
            <artifactId>jakarta.ejb-api</artifactId>
            <version>${jakarta.ejb-api.version}</version>
            <!-- License: EPL 2.0 -->
         </dependency>
         <dependency>
            <groupId>jakarta.annotation</groupId>
            <artifactId>jakarta.annotation-api</artifactId>
            <version>${jakarta.annotation-api.version}</version>
            <!-- License: EPL 2.0 -->
         </dependency>
         <dependency>
            <groupId>jakarta.resource</groupId>
            <artifactId>jakarta.resource-api</artifactId>
            <version>${jakarta.resource-api.version}</version>
            <!-- License: EPL 2.0 -->
         </dependency>
         <dependency>
            <groupId>commons-collections</groupId>
            <artifactId>commons-collections</artifactId>
            <version>${commons.collections.version}</version>
            <!-- License: Apache 2.0 -->
         </dependency>
         <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-configuration2</artifactId>
            <version>${commons.config.version}</version>
            <!-- License: Apache 2.0 -->
         </dependency>
         <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-text</artifactId>
            <version>${commons.text.version}</version>
            <!-- License: Apache 2.0 -->
         </dependency>
         <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-lang3</artifactId>
            <version>${commons.lang.version}</version>
            <!-- License: Apache 2.0 -->
         </dependency>

         <!-- ## Examples Dependencies ## -->
         <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-simple</artifactId>
            <version>${slf4j.version}</version>
         </dependency>
         <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-nop</artifactId>
            <version>${slf4j.version}</version>
         </dependency>
         <!-- ## End Examples Dependencies ## -->

         <!-- ### START opentelemetry Dependencies ### -->
         <dependency>
            <groupId>io.opentelemetry</groupId>
            <artifactId>opentelemetry-bom</artifactId>
            <version>${opentelemetry.version}</version>
            <type>pom</type>
            <scope>import</scope>
         </dependency>
         <dependency>
            <groupId>io.opentelemetry</groupId>
            <artifactId>opentelemetry-bom-alpha</artifactId>
            <version>${opentelemetry-alpha.version}</version>
            <type>pom</type>
            <scope>import</scope>
         </dependency>
         <!-- ### END opentelemetry Dependencies ### -->

         <!--needed to compile the bootstrap jar-->
         <dependency>
            <groupId>org.jgroups</groupId>
            <artifactId>jgroups</artifactId>
            <version>${jgroups.version}</version>
            <exclusions>
               <!-- Exclude BM utils: dont need, cant ship -->
               <exclusion>
                  <groupId>*</groupId>
                  <artifactId>*</artifactId>
               </exclusion>
            </exclusions>
            <!-- License: Apache 2.0 -->
         </dependency>
         <dependency>
            <groupId>info.picocli</groupId>
            <artifactId>picocli</artifactId>
            <version>${picocli.version}</version>
            <!-- License: Apache 2.0 -->
         </dependency>
         <dependency>
            <groupId>info.picocli</groupId>
            <artifactId>picocli-shell-jline3</artifactId>
            <version>${picocli.version}</version>
            <!-- License: Apache 2.0 -->
         </dependency>
         <dependency>
            <groupId>org.jline</groupId>
            <artifactId>jline</artifactId>
            <version>${jline.version}</version>
            <!-- License: BSD 3-Clause -->
         </dependency>
         <dependency>
            <!-- used by jline to provide an ansi terminal -->
            <groupId>org.fusesource.jansi</groupId>
            <artifactId>jansi</artifactId>
            <version>${jansi.version}</version>
            <!-- License: Apache 2.0 -->
         </dependency>
         <!--needed to compile transport jar-->
         <dependency>
            <groupId>org.jctools</groupId>
            <artifactId>jctools-core</artifactId>
            <version>${jctools.version}</version>
            <!-- License: Apache 2.0 -->
         </dependency>
         <dependency>
            <groupId>org.hdrhistogram</groupId>
            <artifactId>HdrHistogram</artifactId>
            <version>${hdrhistogram.version}</version>
            <!-- Licence: BSD 2-Clause -->
         </dependency>
         <dependency>
            <groupId>io.netty</groupId>
            <artifactId>netty-buffer</artifactId>
            <version>${netty.version}</version>
            <!-- License: Apache 2.0 -->
         </dependency>
         <dependency>
            <groupId>io.netty</groupId>
            <artifactId>netty-transport</artifactId>
            <version>${netty.version}</version>
            <!-- License: Apache 2.0 -->
         </dependency>
         <dependency>
            <groupId>io.netty</groupId>
            <artifactId>netty-handler</artifactId>
            <version>${netty.version}</version>
            <!-- License: Apache 2.0 -->
         </dependency>
         <dependency>
            <groupId>io.netty</groupId>
            <artifactId>netty-handler-proxy</artifactId>
            <version>${netty.version}</version>
            <!-- License: Apache 2.0 -->
         </dependency>
         <dependency>
            <groupId>io.netty</groupId>
            <artifactId>netty-codec</artifactId>
            <version>${netty.version}</version>
            <!-- License: Apache 2.0 -->
         </dependency>
         <dependency>
            <groupId>io.netty</groupId>
            <artifactId>netty-codec-http</artifactId>
            <version>${netty.version}</version>
            <!-- License: Apache 2.0 -->
         </dependency>
         <dependency>
            <groupId>io.netty</groupId>
            <artifactId>netty-codec-mqtt</artifactId>
            <version>${netty.version}</version>
            <!-- License: Apache 2.0 -->
         </dependency>
         <dependency>
            <groupId>io.netty</groupId>
            <artifactId>netty-codec-socks</artifactId>
            <version>${netty.version}</version>
            <!-- License: Apache 2.0 -->
         </dependency>
         <dependency>
            <groupId>io.netty</groupId>
            <artifactId>netty-common</artifactId>
            <version>${netty.version}</version>
            <!-- License: Apache 2.0 -->
         </dependency>
         <dependency>
            <groupId>io.netty</groupId>
            <artifactId>netty-resolver</artifactId>
            <version>${netty.version}</version>
            <!-- License: Apache 2.0 -->
         </dependency>
         <dependency>
            <groupId>io.netty</groupId>
            <artifactId>netty-transport-native-unix-common</artifactId>
            <version>${netty.version}</version>
            <!-- License: Apache 2.0 -->
         </dependency>
         <dependency>
            <groupId>io.netty</groupId>
            <artifactId>netty-transport-classes-epoll</artifactId>
            <version>${netty.version}</version>
            <!-- License: Apache 2.0 -->
         </dependency>
         <dependency>
            <groupId>io.netty</groupId>
            <artifactId>netty-transport-native-epoll</artifactId>
            <version>${netty.version}</version>
            <classifier>${netty-transport-native-epoll-classifier}</classifier>
            <!-- License: Apache 2.0 -->
         </dependency>
         <dependency>
            <groupId>io.netty</groupId>
            <artifactId>netty-transport-classes-kqueue</artifactId>
            <version>${netty.version}</version>
            <!-- License: Apache 2.0 -->
         </dependency>
         <dependency>
            <groupId>io.netty</groupId>
            <artifactId>netty-transport-native-kqueue</artifactId>
            <version>${netty.version}</version>
            <classifier>${netty-transport-native-kqueue-classifier}</classifier>
            <!-- License: Apache 2.0 -->
         </dependency>
         <dependency>
            <groupId>org.apache.qpid</groupId>
            <artifactId>proton-j</artifactId>
            <version>${proton.version}</version>
            <!-- License: Apache 2.0 -->
         </dependency>
         <dependency>
            <groupId>org.apache.qpid</groupId>
            <artifactId>protonj2-test-driver</artifactId>
            <version>${protonj2.version}</version>
            <scope>test</scope>
            <!-- License: Apache 2.0 -->
         </dependency>
         <dependency>
            <groupId>org.apache.qpid</groupId>
            <artifactId>qpid-jms-client</artifactId>
            <version>${qpid.jms.version}</version>
         </dependency>
         <dependency>
            <groupId>org.apache.activemq</groupId>
            <artifactId>activemq-client</artifactId>
            <version>${activemq5-version}</version>
            <exclusions>
               <exclusion>
                  <groupId>org.apache.geronimo.specs</groupId>
                  <artifactId>geronimo-jms_1.1_spec</artifactId>
               </exclusion>
               <exclusion>
                  <groupId>org.apache.geronimo.specs</groupId>
                  <artifactId>geronimo-j2ee-management_1.1_spec</artifactId>
               </exclusion>
            </exclusions>
            <!-- License: Apache 2.0 -->
         </dependency>
         <dependency>
            <groupId>org.apache.activemq</groupId>
            <artifactId>activemq-client-jakarta</artifactId>
            <version>${activemq5-version}</version>
            <!-- License: Apache 2.0 -->
         </dependency>
         <dependency>
            <groupId>org.apache.activemq</groupId>
            <artifactId>activemq-openwire-legacy</artifactId>
            <version>${activemq5-version}</version>
            <!-- License: Apache 2.0 -->
         </dependency>
         <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
            <version>${slf4j.version}</version>
            <!-- License: MIT -->
         </dependency>
         <dependency>
            <groupId>org.apache.logging.log4j</groupId>
            <artifactId>log4j-slf4j2-impl</artifactId>
            <version>${log4j.version}</version>
         </dependency>
         <dependency>
            <groupId>org.apache.logging.log4j</groupId>
            <artifactId>log4j-api</artifactId>
            <version>${log4j.version}</version>
         </dependency>
         <dependency>
            <groupId>org.apache.logging.log4j</groupId>
            <artifactId>log4j-core</artifactId>
            <version>${log4j.version}</version>
         </dependency>
         <dependency>
            <groupId>commons-codec</groupId>
            <artifactId>commons-codec</artifactId>
            <version>${commons.codec.version}</version>
            <!-- License: Apache 2.0 -->
         </dependency>

         <!-- ## Jetty web Dependencies ##-->
         <dependency>
            <groupId>org.eclipse.jetty</groupId>
            <artifactId>jetty-bom</artifactId>
            <version>${jetty.version}</version>
            <type>pom</type>
            <scope>import</scope>
            <!-- License: (Joint): Apache 2.0 or EPL 2.0 -->
         </dependency>
         <dependency>
            <groupId>org.eclipse.jetty.toolchain</groupId>
            <artifactId>jetty-servlet-api</artifactId>
            <version>${jetty-servlet-api.version}</version>
            <!-- License: (Joint): Apache 2.0 or EPL 2.0 -->
         </dependency>
         <!-- ## End Jetty Wed Dependencies ## -->

         <!-- for URL reflection. Using Populate on URI Factory at activemq-commons -->
         <dependency>
            <groupId>commons-beanutils</groupId>
            <artifactId>commons-beanutils</artifactId>
            <version>${commons.beanutils.version}</version>
            <!-- License: Apache 2.0 -->
         </dependency>

         <!-- needed by commons-beanutils-->
         <dependency>
            <groupId>commons-logging</groupId>
            <artifactId>commons-logging</artifactId>
            <version>1.2</version>
            <!-- License: Apache 2.0 -->
         </dependency>

         <dependency>
            <groupId>commons-io</groupId>
            <artifactId>commons-io</artifactId>
            <version>${commons.io.version}</version>
         </dependency>

         <!-- needed by artemis-jdbc-store -->
         <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-dbcp2</artifactId>
            <version>${commons.dbcp2.version}</version>
            <!-- license Apache 2 -->
         </dependency>
         <!-- used by commons-dbcp2 -->
         <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-pool2</artifactId>
            <version>${commons.pool2.version}</version>
            <!-- license Apache 2 -->
            <scope>runtime</scope>
         </dependency>

         <!-- Needed for Micrometer -->
         <dependency>
            <groupId>io.micrometer</groupId>
            <artifactId>micrometer-core</artifactId>
            <version>${version.micrometer}</version>
            <optional>true</optional> <!-- keep optional as "true" at least until micrometer supports OSGi -->
            <exclusions>
               <exclusion>
                  <groupId>org.hdrhistogram</groupId>
                  <artifactId>HdrHistogram</artifactId>
               </exclusion>
               <exclusion>
                  <groupId>org.latencyutils</groupId>
                  <artifactId>LatencyUtils</artifactId>
               </exclusion>
            </exclusions>
            <!-- license Apache 2 -->
         </dependency>

         <dependency>
            <groupId>org.apache.openwebbeans</groupId>
            <artifactId>openwebbeans-impl</artifactId>
            <version>${owb.version}</version>
            <scope>test</scope>
         </dependency>
         <dependency>
            <groupId>org.apache.openwebbeans</groupId>
            <artifactId>openwebbeans-spi</artifactId>
            <version>${owb.version}</version>
            <scope>test</scope>
         </dependency>
         <dependency>
            <groupId>org.apache.openwebbeans</groupId>
            <artifactId>openwebbeans-resource</artifactId>
            <version>${owb.version}</version>
            <scope>test</scope>
         </dependency>
         <dependency>
            <groupId>org.apache.openwebbeans.arquillian</groupId>
            <artifactId>owb-arquillian-standalone</artifactId>
            <version>${owb.version}</version>
            <scope>test</scope>
         </dependency>
         <dependency>
            <groupId>org.jboss.weld.se</groupId>
            <artifactId>weld-se</artifactId>
            <version>${weld.version}</version>
            <scope>test</scope>
         </dependency>
         <dependency>
            <groupId>org.jboss.arquillian.container</groupId>
            <artifactId>arquillian-weld-embedded</artifactId>
            <version>${arquillian-weld-embedded.version}</version>
            <scope>test</scope>
         </dependency>
         <dependency>
            <groupId>org.jboss.arquillian.junit</groupId>
            <artifactId>arquillian-junit-container</artifactId>
            <version>${arquillian.version}</version>
            <scope>test</scope>
         </dependency>
         <dependency>
            <groupId>org.jboss.arquillian.junit</groupId>
            <artifactId>arquillian-junit-core</artifactId>
            <version>${arquillian.version}</version>
            <scope>test</scope>
         </dependency>
         <dependency>
            <groupId>org.jacoco</groupId>
            <artifactId>org.jacoco.ant</artifactId>
            <version>${version.org.jacoco}</version>
            <scope>test</scope>
         </dependency>
         <dependency>
            <groupId>org.jacoco</groupId>
            <artifactId>org.jacoco.core</artifactId>
            <version>${version.org.jacoco}</version>
            <scope>test</scope>
         </dependency>
         <dependency>
            <groupId>jakarta.enterprise</groupId>
            <artifactId>jakarta.enterprise.cdi-api</artifactId>
            <version>${jakarta.enterprise.cdi-api.version}</version>
            <scope>provided</scope>
         </dependency>
         <!--  OSGi support -->
         <dependency>
            <groupId>org.osgi</groupId>
            <artifactId>org.osgi.core</artifactId>
            <version>6.0.0</version>
            <scope>provided</scope>
            <!-- License: Apache 2.0 -->
         </dependency>
         <dependency>
            <groupId>org.osgi</groupId>
            <artifactId>osgi.cmpn</artifactId>
            <version>6.0.0</version>
            <scope>provided</scope>
            <!-- License: Apache 2.0 -->
         </dependency>
         <dependency>
            <groupId>com.google.guava</groupId>
            <artifactId>guava</artifactId>
            <version>${guava.version}</version>
            <!-- License: Apache 2.0 -->
         </dependency>
         <dependency>
            <groupId>com.github.ben-manes.caffeine</groupId>
            <artifactId>caffeine</artifactId>
            <version>${caffeine.version}</version>
            <!-- License: Apache 2.0 -->
         </dependency>
         <dependency>
            <groupId>com.google.code.findbugs</groupId>
            <artifactId>jsr305</artifactId>
            <version>${jsr305.version}</version>
         </dependency>
         <dependency>
            <groupId>jakarta.security.auth.message</groupId>
            <artifactId>jakarta.security.auth.message-api</artifactId>
            <version>${jakarta.security.auth.message-api.version}</version>
         </dependency>
         <!-- Curator Zookeeper RI -->
         <dependency>
            <groupId>org.apache.curator</groupId>
            <artifactId>curator-recipes</artifactId>
            <version>${curator.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-client</artifactId>
            <version>${curator.version}</version>
         </dependency>
         <dependency>
            <groupId>org.apache.zookeeper</groupId>
            <artifactId>zookeeper</artifactId>
            <version>${zookeeper.version}</version>
            <exclusions>
               <exclusion>
                  <groupId>ch.qos.logback</groupId>
                  <artifactId>*</artifactId>
               </exclusion>
               <exclusion>
                  <groupId>io.netty</groupId>
                  <artifactId>netty-transport-native-epoll</artifactId>
               </exclusion>
               <exclusion>
                  <groupId>org.apache.yetus</groupId>
                  <artifactId>audience-annotations</artifactId>
               </exclusion>
            </exclusions>
         </dependency>
         <dependency>
            <groupId>org.apache.zookeeper</groupId>
            <artifactId>zookeeper-jute</artifactId>
            <version>${zookeeper.version}</version>
         </dependency>



         <!-- johnzon and jakarta.json are shaded on artemis-commons.
              However during internal builds and test phase original bits may be used,
              and this library would still be needed for test phase.
              I am declaring scope as test by default to avoid any accidental use.
              The only place where we are allowed to use this library is within artemis-commons.
              anything other than that need to be carefully thought.
          -->
         <dependency>
            <groupId>org.apache.johnzon</groupId>
            <artifactId>johnzon-core</artifactId>
            <version>${johnzon.version}</version>
            <scope>test</scope>
         </dependency>
         <dependency>
            <groupId>jakarta.json</groupId>
            <artifactId>jakarta.json-api</artifactId>
            <version>${jakarta.json-api.version}</version>
            <scope>test</scope>
            <!-- License: EPL 2.0 -->
         </dependency>

         <dependency>
            <groupId>org.testcontainers</groupId>
            <artifactId>testcontainers</artifactId>
            <version>${testcontainers.version}</version>
            <scope>test</scope>
         </dependency>
         <dependency>
            <groupId>org.testcontainers</groupId>
            <artifactId>selenium</artifactId>
            <version>${testcontainers.version}</version>
            <scope>test</scope>
         </dependency>
         <dependency>
            <groupId>org.seleniumhq.selenium</groupId>
            <artifactId>selenium-api</artifactId>
            <version>${selenium.version}</version>
            <scope>test</scope>
         </dependency>
         <dependency>
            <groupId>org.seleniumhq.selenium</groupId>
            <artifactId>selenium-firefox-driver</artifactId>
            <version>${selenium.version}</version>
            <scope>test</scope>
         </dependency>
         <dependency>
            <groupId>org.seleniumhq.selenium</groupId>
            <artifactId>selenium-chrome-driver</artifactId>
            <version>${selenium.version}</version>
            <scope>test</scope>
         </dependency>
         <dependency>
            <groupId>org.seleniumhq.selenium</groupId>
            <artifactId>selenium-chromium-driver</artifactId>
            <version>${selenium.version}</version>
            <scope>test</scope>
         </dependency>
         <dependency>
            <groupId>org.seleniumhq.selenium</groupId>
            <artifactId>selenium-remote-driver</artifactId>
            <version>${selenium.version}</version>
            <scope>test</scope>
         </dependency>
         <dependency>
            <groupId>org.seleniumhq.selenium</groupId>
            <artifactId>selenium-support</artifactId>
            <version>${selenium.version}</version>
            <scope>test</scope>
         </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-databind.version}</version>
         </dependency>
         <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-annotations</artifactId>
            <version>${jackson.version}</version>
         </dependency>
         <dependency>
            <groupId>com.fasterxml.jackson.jaxrs</groupId>
            <artifactId>jackson-jaxrs-json-provider</artifactId>
            <version>${jackson.version}</version>
         </dependency>
         <dependency>
            <groupId>com.fasterxml.jackson.dataformat</groupId>
            <artifactId>jackson-dataformat-yaml</artifactId>
            <version>${jackson.version}</version>
         </dependency>
         <dependency>
            <groupId>com.fasterxml.jackson.jr</groupId>
            <artifactId>jackson-jr-objects</artifactId>
            <version>${jackson.version}</version>
         </dependency>

         <dependency>
            <groupId>org.apache.httpcomponents</groupId>
            <artifactId>httpcore</artifactId>
            <version>${apache.httpcore.version}</version>
         </dependency>
         <dependency>
            <groupId>org.apache.httpcomponents</groupId>
            <artifactId>httpclient</artifactId>
            <version>${apache.httpclient.version}</version>
         </dependency>

      </dependencies>
   </dependencyManagement>

   <profiles>
      <profile>
         <id>M2E</id>
         <activation>
            <property>
               <name>m2e.version</name>
            </property>
         </activation>
         <properties>
            <javac-compiler-id>javac</javac-compiler-id>
         </properties>
      </profile>

      <profile>
         <id>jdk11to15-errorprone</id>
         <activation>
            <jdk>[11,16)</jdk>
            <property>
               <name>errorprone</name>
            </property>
         </activation>
         <dependencies>
            <dependency>
               <groupId>com.google.errorprone</groupId>
               <artifactId>error_prone_core</artifactId>
            </dependency>
         </dependencies>
         <build>
            <plugins>
               <plugin>
                  <groupId>org.apache.maven.plugins</groupId>
                  <artifactId>maven-compiler-plugin</artifactId>
                  <configuration>
                     <compilerArgs>
                        <arg>-Xdiags:verbose</arg>
                        <arg>--add-exports=jdk.unsupported/sun.misc=ALL-UNNAMED</arg>
                        <arg>--add-exports=java.base/jdk.internal.misc=ALL-UNNAMED</arg>
                        <arg>-XDcompilePolicy=simple</arg>
                        <arg>-Xplugin:ErrorProne -Xep:ThreadLocalUsage:ERROR -Xep:MissingOverride:ERROR -Xep:NonAtomicVolatileUpdate:ERROR -Xep:SynchronizeOnNonFinalField:ERROR -Xep:StaticQualifiedUsingExpression:ERROR -Xep:WaitNotInLoop:ERROR -Xep:BanJNDI:OFF -XepExcludedPaths:.*/generated-sources/.*</arg>
                     </compilerArgs>
                  </configuration>
               </plugin>
            </plugins>
         </build>
      </profile>
      <profile>
         <id>jdk16on-errorprone</id>
         <!-- TODO: MissingOverride check only warns in this profile for now, as JDK15+ added a toString method to CharSequence -->
         <activation>
            <jdk>[16,)</jdk>
            <property>
               <name>errorprone</name>
            </property>
         </activation>
         <dependencies>
            <dependency>
               <groupId>com.google.errorprone</groupId>
               <artifactId>error_prone_core</artifactId>
            </dependency>
         </dependencies>
         <build>
            <plugins>
               <plugin>
                  <groupId>org.apache.maven.plugins</groupId>
                  <artifactId>maven-compiler-plugin</artifactId>
                  <configuration>
                     <fork>true</fork>
                     <compilerArgs>
                        <arg>-Xdiags:verbose</arg>
                        <arg>--add-exports=jdk.unsupported/sun.misc=ALL-UNNAMED</arg>
                        <arg>--add-exports=java.base/jdk.internal.misc=ALL-UNNAMED</arg>
                        <arg>-XDcompilePolicy=simple</arg>
                        <arg>-Xplugin:ErrorProne -Xep:ThreadLocalUsage:ERROR -Xep:MissingOverride:WARN -Xep:NonAtomicVolatileUpdate:ERROR -Xep:SynchronizeOnNonFinalField:ERROR -Xep:StaticQualifiedUsingExpression:ERROR -Xep:WaitNotInLoop:ERROR -Xep:BanJNDI:OFF -XepExcludedPaths:.*/generated-sources/.*</arg>
                        <arg>-J--add-exports=jdk.compiler/com.sun.tools.javac.api=ALL-UNNAMED</arg>
                        <arg>-J--add-exports=jdk.compiler/com.sun.tools.javac.file=ALL-UNNAMED</arg>
                        <arg>-J--add-exports=jdk.compiler/com.sun.tools.javac.main=ALL-UNNAMED</arg>
                        <arg>-J--add-exports=jdk.compiler/com.sun.tools.javac.model=ALL-UNNAMED</arg>
                        <arg>-J--add-exports=jdk.compiler/com.sun.tools.javac.parser=ALL-UNNAMED</arg>
                        <arg>-J--add-exports=jdk.compiler/com.sun.tools.javac.processing=ALL-UNNAMED</arg>
                        <arg>-J--add-exports=jdk.compiler/com.sun.tools.javac.tree=ALL-UNNAMED</arg>
                        <arg>-J--add-exports=jdk.compiler/com.sun.tools.javac.util=ALL-UNNAMED</arg>
                        <arg>-J--add-opens=jdk.compiler/com.sun.tools.javac.code=ALL-UNNAMED</arg>
                        <arg>-J--add-opens=jdk.compiler/com.sun.tools.javac.comp=ALL-UNNAMED</arg>
                     </compilerArgs>
                  </configuration>
               </plugin>
            </plugins>
         </build>
      </profile>
      <profile>
         <id>owasp</id>
         <build>
            <plugins>
               <plugin>
                  <groupId>org.owasp</groupId>
                  <artifactId>dependency-check-maven</artifactId>
                  <version>${owasp.version}</version>
                  <configuration>
                     <!-- <skipProvidedScope>true</skipProvidedScope>
                      <skipRuntimeScope>true</skipRuntimeScope> -->
                  </configuration>
                  <executions>
                     <execution>
                        <goals>
                           <!-- combine results for all modules into a single report -->
                           <goal>aggregate</goal>
                        </goals>
                     </execution>
                  </executions>
               </plugin>
            </plugins>
         </build>
      </profile>
      <profile>
         <id>dev</id>
         <build>
            <plugins>
               <plugin>
                  <groupId>org.apache.rat</groupId>
                  <artifactId>apache-rat-plugin</artifactId>
                  <executions>
                     <execution>
                        <phase>compile</phase>
                        <goals>
                           <goal>check</goal>
                        </goals>
                     </execution>
                  </executions>
               </plugin>
               <plugin>
                  <groupId>org.apache.maven.plugins</groupId>
                  <artifactId>maven-checkstyle-plugin</artifactId>
                  <executions>
                     <execution>
                        <phase>compile</phase>
                        <goals>
                           <goal>check</goal>
                        </goals>
                     </execution>
                  </executions>
               </plugin>
            </plugins>
         </build>
      </profile>
      <profile>
         <id>release</id>
         <modules>
            <module>artemis-website</module>
         </modules>
         <build>
            <plugins>
               <plugin>
                  <groupId>org.apache.maven.plugins</groupId>
                  <artifactId>maven-enforcer-plugin</artifactId>
                  <executions>
                     <execution>
                        <id>enforce-java-version</id>
                        <goals>
                           <goal>enforce</goal>
                        </goals>
                        <configuration>
                           <rules>
                              <requireJavaVersion>
                                 <version>[11, 12)</version>
                                 <message>JDK 11 is required when building the release</message>
                              </requireJavaVersion>
                           </rules>
                        </configuration>
                     </execution>
                  </executions>
               </plugin>
               <plugin>
                  <groupId>org.apache.rat</groupId>
                  <artifactId>apache-rat-plugin</artifactId>
                  <executions>
                     <execution>
                        <phase>compile</phase>
                        <goals>
                           <goal>check</goal>
                        </goals>
                     </execution>
                  </executions>
               </plugin>
               <plugin>
                  <groupId>org.apache.maven.plugins</groupId>
                  <artifactId>maven-checkstyle-plugin</artifactId>
                  <executions>
                     <execution>
                        <phase>compile</phase>
                        <goals>
                           <goal>check</goal>
                        </goals>
                     </execution>
                  </executions>
               </plugin>
            </plugins>
         </build>
      </profile>
      <!-- Override the apache-release profile from the parent to skip creating
           a source-release archive here, it is done in artemis-distribution. -->
      <profile>
         <id>apache-release</id>
         <build>
            <plugins>
               <plugin>
                  <artifactId>maven-assembly-plugin</artifactId>
                  <executions>
                     <execution>
                        <id>source-release-assembly</id>
                        <configuration>
                           <skipAssembly>true</skipAssembly>
                        </configuration>
                     </execution>
                  </executions>
               </plugin>
            </plugins>
         </build>
      </profile>
      <profile>
         <!-- this will activate the property required to play with tests retry -->
         <id>tests-retry</id>
         <properties>
            <retryTests>true</retryTests>
         </properties>
      </profile>
      <profile>
         <!-- tests is the profile we use to run the entire testsuite
               Running this entire build could take up to 2 hours -->
         <id>tests</id>
         <properties>
            <skipUnitTests>false</skipUnitTests>
            <skipJmsTests>false</skipJmsTests>
            <skipJoramTests>false</skipJoramTests>
            <skipIntegrationTests>false</skipIntegrationTests>
            <skipFeaturesVerification>false</skipFeaturesVerification>
            <skipIsolatedIntegrationTests>false</skipIsolatedIntegrationTests>
            <skipSmokeTests>false</skipSmokeTests>
            <skipTimingTests>true</skipTimingTests>
            <skipStressTests>true</skipStressTests>
            <skipSoakTests>true</skipSoakTests>
            <skipPerformanceTests>true</skipPerformanceTests>
            <skipExtraTests>false</skipExtraTests>
            <skipLeakTests>false</skipLeakTests>
         </properties>
      </profile>
      <profile>
         <!-- This will represent a subset of the tests
              This is used on PR checks -->
         <id>fast-tests</id>
         <properties>
            <fast-tests>true</fast-tests>
            <skipUnitTests>false</skipUnitTests>
            <skipJmsTests>false</skipJmsTests>
            <skipJoramTests>false</skipJoramTests>
            <skipLeakTests>true</skipLeakTests>
            <testFailureIgnore>false</testFailureIgnore>
            <!-- This enables the karaf-<foo>-integration-tests and
                 integration-tests module tests, see fast-tests profile
                 in the latter for specific tests it then runs -->
            <skipIntegrationTests>false</skipIntegrationTests>
            <skipFeaturesVerification>false</skipFeaturesVerification>
            <!-- Only a portion of the smoke-tests are run. See the filter
                 applied in the fast-tests profile under ./tests/smoke-tests -->
            <skipSmokeTests>false</skipSmokeTests>
         </properties>
      </profile>
      <!-- This profile generates jacoco coverage files. To generate html report use "-Pjacoco-generate-report" -->
      <profile>
         <id>jacoco</id>
         <dependencies>
            <dependency>
               <groupId>org.jacoco</groupId>
               <artifactId>org.jacoco.core</artifactId>
            </dependency>
         </dependencies>
         <properties>

            <!-- Property set by Jacoco plugin -->
            <jacoco.agent />

            <activemq-surefire-argline>
               -Dlog4j2.configurationFile="file:${activemq.basedir}/tests/config/${logging.config}"
               -Djava.library.path="${activemq.basedir}/activemq-artemis-native/bin" -Djgroups.bind_addr=localhost -Dorg.apache.activemq.artemis.api.core.UDPBroadcastEndpointFactory.localBindAddress=localhost
               -Djava.net.preferIPv4Stack=true -Dbasedir=${basedir}
               @{jacoco.agent} -Djacoco.agent=@{jacoco.agent}
            </activemq-surefire-argline>
         </properties>
         <build>
            <plugins>
               <plugin>
                  <groupId>org.jacoco</groupId>
                  <artifactId>jacoco-maven-plugin</artifactId>
                  <executions>
                     <execution>
                        <id>jacoco-prepare</id>
                        <phase>validate</phase>
                        <goals>
                           <goal>prepare-agent</goal>
                        </goals>
                        <configuration>
                           <destFile>${project.build.directory}/jacoco.exec</destFile>
                           <!-- Jacoco sets this property with agent configuration.
                           This property is passed to maven-surefire-plugin -->
                           <propertyName>jacoco.agent</propertyName>
                        </configuration>
                     </execution>
                     <execution>
                        <id>merge</id>
                        <phase>none</phase>
                        <goals>
                           <goal>merge</goal>
                        </goals>
                     </execution>
                  </executions>
                  <configuration>
                     <fileSets>
                        <fileSet implementation="org.apache.maven.shared.model.fileset.FileSet">
                           <directory>${activemq.basedir}</directory>
                           <includes>
                              <include>**/*.exec</include>
                           </includes>
                        </fileSet>
                     </fileSets>
                  </configuration>
               </plugin>
            </plugins>
         </build>
      </profile>
      <!-- This profile generates html report from jacoco coverage files. Use "-Pjacoco" profile to generate coverage. -->
      <profile>
         <id>jacoco-generate-report</id>
         <build>
            <plugins>
               <plugin>
                  <groupId>org.apache.maven.plugins</groupId>
                  <artifactId>maven-dependency-plugin</artifactId>
                  <executions>
                     <!-- Copy jacoco ant jar. This is needed to generate jacoco report with maven-antrun-plugin -->
                     <execution>
                        <goals>
                           <goal>copy</goal>
                        </goals>
                        <phase>process-test-resources</phase>
                        <inherited>false</inherited>
                        <configuration>
                           <artifactItems>
                              <artifactItem>
                                 <groupId>org.jacoco</groupId>
                                 <artifactId>org.jacoco.ant</artifactId>
                                 <version>${version.org.jacoco.plugin}</version>
                              </artifactItem>
                           </artifactItems>
                           <stripVersion>true</stripVersion>
                           <outputDirectory>${project.build.directory}/jacoco-jars</outputDirectory>
                        </configuration>
                     </execution>
                  </executions>
               </plugin>
               <plugin>
                  <groupId>org.apache.maven.plugins</groupId>
                  <artifactId>maven-antrun-plugin</artifactId>
                  <executions>
                     <execution>
                        <phase>post-integration-test</phase>
                        <goals><goal>run</goal></goals>
                        <inherited>false</inherited>
                        <configuration>
                           <target>
                              <property name="result.report.dir" location="target/jacoco-report" />
                              <taskdef name="report" classname="org.jacoco.ant.ReportTask">
                                 <classpath path="${project.build.directory}/jacoco-jars/org.jacoco.ant.jar" />
                              </taskdef>
                              <echo>Creating JaCoCo ActiveMQ Artemis test coverage reports...</echo>
                              <report>
                                 <executiondata>
                                    <fileset dir="${basedir}">
                                       <include name="**/target/jacoco.exec" />
                                    </fileset>
                                 </executiondata>
                                 <structure name="JaCoCo ActiveMQ Artemis">
                                    <classfiles>
                                       <fileset dir="${activemq.basedir}/artemis-boot/target/classes" />
                                       <fileset dir="${activemq.basedir}/artemis-cdi-client/target/classes" />
                                       <fileset dir="${activemq.basedir}/artemis-cli/target/classes" />
                                       <fileset dir="${activemq.basedir}/artemis-commons/target/classes" />
                                       <fileset dir="${activemq.basedir}/artemis-core-client/target/classes" />
                                       <fileset dir="${activemq.basedir}/artemis-dto/target/classes" />
                                       <fileset dir="${activemq.basedir}/artemis-jdbc-store/target/classes" />
                                       <fileset dir="${activemq.basedir}/artemis-jms-client/target/classes" />
                                       <fileset dir="${activemq.basedir}/artemis-jms-server/target/classes" />
                                       <fileset dir="${activemq.basedir}/artemis-journal/target/classes" />
                                       <fileset dir="${activemq.basedir}/activemq-artemis-native/target/classes" />
                                       <fileset dir="${activemq.basedir}/artemis-ra/target/classes" />
                                       <fileset dir="${activemq.basedir}/artemis-selector/target/classes" />
                                       <fileset dir="${activemq.basedir}/artemis-server/target/classes" />
                                       <fileset dir="${activemq.basedir}/artemis-server-osgi/target/classes" />
                                       <fileset dir="${activemq.basedir}/artemis-service-extensions/target" />
                                       <fileset dir="${activemq.basedir}/artemis-web/target/classes" />
                                    </classfiles>
                                    <sourcefiles encoding="UTF-8">
                                       <fileset dir="${activemq.basedir}/artemis-boot/src/main/java" />
                                       <fileset dir="${activemq.basedir}/artemis-cdi-client/src/main/java" />
                                       <fileset dir="${activemq.basedir}/artemis-cli/src/main/java" />
                                       <fileset dir="${activemq.basedir}/artemis-commons/src/main/java" />
                                       <fileset dir="${activemq.basedir}/artemis-core-client/src/main/java" />
                                       <fileset dir="${activemq.basedir}/artemis-dto/src/main/java" />
                                       <fileset dir="${activemq.basedir}/artemis-jdbc-store/src/main/java" />
                                       <fileset dir="${activemq.basedir}/artemis-jms-client/src/main/java" />
                                       <fileset dir="${activemq.basedir}/artemis-jms-server/src/main/java" />
                                       <fileset dir="${activemq.basedir}/artemis-journal/src/main/java" />
                                       <fileset dir="${activemq.basedir}/activemq-artemis-native/src/main/java" />
                                       <fileset dir="${activemq.basedir}/artemis-ra/src/main/java" />
                                       <fileset dir="${activemq.basedir}/artemis-selector/src/main/java" />
                                       <fileset dir="${activemq.basedir}/artemis-server/src/main/java" />
                                       <fileset dir="${activemq.basedir}/artemis-server-osgi/src/main/java" />
                                       <fileset dir="${activemq.basedir}/artemis-service-extensions/src/main/java" />
                                       <fileset dir="${activemq.basedir}/artemis-web/src/main/java" />
                                    </sourcefiles>
                                 </structure>
                                 <html destdir="\${result.report.dir}" />
                                 <xml destfile="\${result.report.dir}/report.xml" />
                              </report>
                           </target>
                        </configuration>
                     </execution>
                  </executions>
                  <dependencies>
                     <dependency>
                        <groupId>org.jacoco</groupId>
                        <artifactId>org.jacoco.ant</artifactId>
                        <version>${version.org.jacoco.plugin}</version>
                     </dependency>
                  </dependencies>
               </plugin>
            </plugins>
         </build>
      </profile>
   </profiles>

   <build>
      <extensions>
         <!-- Generate os.detected.classifier property for Netty native dependencies -->
         <extension>
            <groupId>kr.motd.maven</groupId>
            <artifactId>os-maven-plugin</artifactId>
            <version>1.7.1</version>
         </extension>
      </extensions>

      <pluginManagement>
         <plugins>
            <plugin>
               <groupId>org.eclipse.m2e</groupId>
               <artifactId>lifecycle-mapping</artifactId>
               <version>1.0.0</version>
               <configuration>
                  <lifecycleMappingMetadata>
                     <pluginExecutions>
                        <pluginExecution>
                           <pluginExecutionFilter>
                              <groupId>org.apache.rat</groupId>
                              <artifactId>apache-rat-plugin</artifactId>
                              <versionRange>[0.12,)</versionRange>
                              <goals>
                                 <goal>check</goal>
                              </goals>
                           </pluginExecutionFilter>
                           <action>
                              <ignore />
                           </action>
                        </pluginExecution>
                        <pluginExecution>
                           <pluginExecutionFilter>
                              <groupId>
                                 org.apache.servicemix.tooling
                           </groupId>
                              <artifactId>
                                 depends-maven-plugin
                           </artifactId>
                              <versionRange>
                                 [1.2,)
                           </versionRange>
                              <goals>
                                 <goal>
                                    generate-depends-file
                              </goal>
                              </goals>
                           </pluginExecutionFilter>
                           <action>
                              <ignore />
                           </action>
                        </pluginExecution>
                     </pluginExecutions>
                  </lifecycleMappingMetadata>
               </configuration>
            </plugin>
            <plugin>
               <groupId>org.codehaus.mojo</groupId>
               <artifactId>javacc-maven-plugin</artifactId>
               <version>2.6</version>
               <executions>
                  <execution>
                     <id>javacc</id>
                     <goals>
                        <goal>javacc</goal>
                     </goals>
                  </execution>
               </executions>
            </plugin>
            <plugin>
               <groupId>org.apache.maven.plugins</groupId>
               <artifactId>maven-compiler-plugin</artifactId>
               <configuration>
                  <showWarnings>true</showWarnings>
                  <compilerArgs>
                     <arg>--add-exports=java.base/jdk.internal.misc=ALL-UNNAMED</arg>
                  </compilerArgs>
               </configuration>
            </plugin>
            <plugin>
               <groupId>org.apache.maven.plugins</groupId>
               <artifactId>maven-rar-plugin</artifactId>
               <version>3.0.0</version>
            </plugin>
            <plugin>
               <groupId>net.sf.maven-sar</groupId>
               <artifactId>maven-sar-plugin</artifactId>
               <version>1.0</version>
            </plugin>
            <plugin>
               <groupId>org.eclipse.jetty</groupId>
               <artifactId>jetty-maven-plugin</artifactId>
               <version>${jetty.version}</version>
            </plugin>
            <plugin>
               <groupId>org.wildfly.extras.batavia</groupId>
               <artifactId>transformer-tools-mvn</artifactId>
               <version>${version.batavia}</version>
            </plugin>
            <plugin>
               <inherited>true</inherited>
               <groupId>org.apache.maven.plugins</groupId>
               <artifactId>maven-source-plugin</artifactId>
               <executions>
                  <execution>
                     <id>attach-sources</id>
                     <phase>verify</phase>
                     <goals>
                        <goal>jar-no-fork</goal>
                     </goals>
                  </execution>
               </executions>
            </plugin>
            <plugin>
               <groupId>org.apache.maven.plugins</groupId>
               <artifactId>maven-surefire-plugin</artifactId>
               <configuration>
                  <forkCount>1</forkCount>
                  <reuseForks>true</reuseForks>
                  <testFailureIgnore>${testFailureIgnore}</testFailureIgnore>
                  <runOrder>alphabetical</runOrder>
                  <redirectTestOutputToFile>${maven.test.redirectTestOutputToFile}</redirectTestOutputToFile>
                  <argLine>${activemq-surefire-argline}</argLine>
                  <environmentVariables>
                     <PN_TRACE_FRM>${proton.trace.frames}</PN_TRACE_FRM>
                  </environmentVariables>
               </configuration>
            </plugin>
            <plugin>
               <groupId>org.apache.maven.plugins</groupId>
               <artifactId>maven-surefire-report-plugin</artifactId>
            </plugin>
            <plugin>
               <groupId>org.apache.maven.plugins</groupId>
               <artifactId>maven-pmd-plugin</artifactId>
               <version>3.6</version>
               <configuration>
                  <linkXRef>true</linkXRef>
                  <minimumTokens>100</minimumTokens>
               </configuration>
            </plugin>
            <plugin>
               <groupId>org.codehaus.mojo</groupId>
               <artifactId>build-helper-maven-plugin</artifactId>
               <version>1.8</version>
            </plugin>
            <plugin>
               <groupId>org.codehaus.mojo</groupId>
               <artifactId>xml-maven-plugin</artifactId>
               <version>1.0</version>
            </plugin>
            <!-- Many examples use it -->
            <plugin>
               <groupId>org.apache.activemq</groupId>
               <artifactId>artemis-maven-plugin</artifactId>
               <version>${project.version}</version>
            </plugin>
            <plugin>
               <groupId>org.jacoco</groupId>
               <artifactId>jacoco-maven-plugin</artifactId>
               <version>${version.org.jacoco.plugin}</version>
            </plugin>
            <plugin>
               <groupId>org.apache.maven.plugins</groupId>
               <artifactId>maven-checkstyle-plugin</artifactId>
               <dependencies>
                  <dependency>
                     <groupId>com.github.sevntu-checkstyle</groupId>
                     <artifactId>sevntu-checks</artifactId>
                     <version>${sevntu.checks.version}</version>
                  </dependency>
                  <dependency>
                     <groupId>com.puppycrawl.tools</groupId>
                     <artifactId>checkstyle</artifactId>
                     <version>${checkstyle.version}</version>
                  </dependency>
               </dependencies>
               <configuration>
                  <configLocation>${activemq.basedir}/etc/checkstyle.xml</configLocation>
                  <suppressionsLocation>${activemq.basedir}/etc/checkstyle-suppressions.xml</suppressionsLocation>
                  <failsOnError>false</failsOnError>
                  <failOnViolation>true</failOnViolation>
                  <consoleOutput>true</consoleOutput>
                  <includeTestSourceDirectory>true</includeTestSourceDirectory>
               </configuration>
            </plugin>
            <plugin>
               <groupId>org.apache.rat</groupId>
               <artifactId>apache-rat-plugin</artifactId>
               <configuration>
                  <excludes>
                     <exclude>**/src/main/webapp/hawtconfig.json</exclude>
                     <exclude>.repository/**</exclude>
                     <exclude>.travis.yml</exclude>
                     <exclude>.github/workflows/*</exclude>
                     <exclude>**/footer.html</exclude>
                     <exclude>**/*.txt</exclude>
                     <exclude>**/*.md</exclude>
                     <exclude>**/*.adoc</exclude>
                     <exclude>etc/ide-settings/**</exclude>
                     <exclude>**/*.json</exclude>
                     <exclude>docs/resources/font-awesome/**/*</exclude>
                     <exclude>docs/user-manual/_diagrams/*.svg</exclude>
                     <exclude>docs/user-manual/02-27-00-scripts-profiles.diff</exclude>
                     <exclude>docs/user-manual/02-27-00-scripts-profiles-windows.diff</exclude>
                     <exclude>**/target/</exclude>
                     <exclude>**/META-INF/services/*</exclude>
                     <exclude>**/META-INF/MANIFEST.MF</exclude>
                     <exclude>**/*.iml</exclude>
                     <exclude>**/*.jceks</exclude>
                     <exclude>**/*.jks</exclude>
                     <exclude>**/*.p12</exclude>
                     <exclude>**/xml.xsd</exclude>
                     <exclude>**/org/apache/activemq/artemis/utils/json/**</exclude>
                     <exclude>**/org/apache/activemq/artemis/utils/Base64.java</exclude>
                     <exclude>**/.settings/**</exclude>
                     <exclude>**/.project</exclude>
                     <exclude>**/.classpath</exclude>
                     <exclude>**/.editorconfig</exclude>
                     <exclude>**/.checkstyle</exclude>
                     <exclude>**/.factorypath</exclude>
                     <exclude>**/org.apache.activemq.artemis.cfg</exclude>
                     <exclude>**/nb-configuration.xml</exclude>
                     <exclude>**/nbactions-tests.xml</exclude>
                     <exclude>**/.vscode/settings.json</exclude>
                     <!-- activemq5 unit tests exclude -->
                     <exclude>**/*.data</exclude>
                     <exclude>**/*.bin</exclude>
                     <exclude>**/src/test/resources/keystore</exclude>
                     <exclude>**/src/test/java/org/apache/activemq/security/*.ts</exclude>
                     <exclude>**/*.log</exclude>
                     <exclude>**/*.redo</exclude>

                     <!-- NPM files -->
                     <exclude>**/node/**</exclude>
                     <exclude>**/node_modules/**</exclude>
                     <exclude>**/package.json</exclude>
                     <exclude>**/package-lock.json</exclude>

                     <!-- Build time overlay folder -->
                     <exclude>**/overlays/**</exclude>

                     <!-- things from cmake on the native build -->
                     <exclude>**/CMakeFiles/</exclude>
                     <exclude>**/Makefile</exclude>
                     <exclude>**/cmake_install.cmake</exclude>
                     <exclude>activemq-artemis-native/src/main/c/org_apache_activemq_artemis_jlibaio_LibaioContext.h</exclude>
                     <exclude>**/dependency-reduced-pom.xml</exclude>

                     <!-- Mockito -->
                     <exclude>**/src/test/resources/mockito-extensions/org.mockito.plugins.MockMaker</exclude>

                     <!-- .NET Examples-->
                     <exclude>examples/protocols/amqp/dotnet/**/obj/**/*</exclude>
                     <exclude>examples/protocols/amqp/dotnet/**/bin/**/*</exclude>
                     <exclude>examples/protocols/amqp/dotnet/**/readme.md</exclude>
                     <exclude>examples/protocols/amqp/**/readme.md</exclude>

                     <!-- DB Test config files -->
                     <exclude>tests/db-tests/jdbc-drivers/**/*</exclude>
                  </excludes>
               </configuration>
            </plugin>
            <plugin>
               <groupId>org.codehaus.mojo</groupId>
               <artifactId>exec-maven-plugin</artifactId>
               <version>${exec-maven-plugin.version}</version>
            </plugin>
            <plugin>
               <groupId>org.apache.maven.plugins</groupId>
               <artifactId>maven-release-plugin</artifactId>
               <configuration>
                  <autoVersionSubmodules>true</autoVersionSubmodules>
                  <tagNameFormat>@{project.version}</tagNameFormat>
                  <arguments>-DskipTests</arguments>
               </configuration>
            </plugin>
         </plugins>
      </pluginManagement>

      <plugins>
         <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-enforcer-plugin</artifactId>
            <executions>
               <execution>
                  <id>enforce-java-version</id>
                  <goals>
                     <goal>enforce</goal>
                  </goals>
                  <configuration>
                     <rules>
                        <requireJavaVersion>
                           <version>[11,)</version>
                           <message>You must use JDK 11+ when building</message>
                        </requireJavaVersion>
                     </rules>
                  </configuration>
               </execution>
               <execution>
                  <id>enforce-maven-version</id>
                  <goals>
                     <goal>enforce</goal>
                  </goals>
                  <configuration>
                     <rules>
                        <requireMavenVersion>
                           <version>3.5.0</version>
                           <message>You must use Maven 3.5.0+ to build</message>
                        </requireMavenVersion>
                     </rules>
                  </configuration>
               </execution>
            </executions>
         </plugin>
         <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-javadoc-plugin</artifactId>
            <configuration>
               <noindex>true</noindex>
            </configuration>
         </plugin>
         <plugin>
            <artifactId>maven-source-plugin</artifactId>
         </plugin>
         <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-help-plugin</artifactId>
         </plugin>
         <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>findbugs-maven-plugin</artifactId>
            <version>2.5.2</version>
            <configuration>
               <excludeFilterFile>${user.dir}/etc/findbugs-exclude.xml</excludeFilterFile>
               <findbugsXmlOutput>true</findbugsXmlOutput>
               <xmlOutput>true</xmlOutput>
               <effort>Max</effort>
               <failOnError>false</failOnError>
            </configuration>
         </plugin>
         <plugin>
            <groupId>org.apache.felix</groupId>
            <artifactId>maven-bundle-plugin</artifactId>
            <version>${maven.bundle.plugin.version}</version>
            <extensions>true</extensions>
         </plugin>

         <!-- This is placing the .so in the root target/bin/ dir, so the testsuite can use it, by
              leveraging the surefire argLine. This avoids having to build a distribution to run tests.
              Note the plugin config is not inherited, we only do this at the root. -->
         <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-dependency-plugin</artifactId>
            <inherited>false</inherited>
            <executions>
               <execution>
                  <id>copy</id>
                  <phase>generate-sources</phase>
                  <goals>
                     <goal>unpack</goal>
                  </goals>
               </execution>
            </executions>
            <configuration>
               <artifactItems>
                  <artifactItem>
                     <groupId>org.apache.activemq</groupId>
                     <artifactId>activemq-artemis-native</artifactId>
                     <version>${activemq-artemis-native-version}</version>
                     <type>jar</type>
                     <overWrite>false</overWrite>
                     <outputDirectory>${project.build.directory}/bin</outputDirectory>
                     <includes>**/*.so</includes>
                  </artifactItem>
               </artifactItems>
            </configuration>
         </plugin>
         <plugin>
            <groupId>com.google.cloud.tools</groupId>
            <artifactId>jib-maven-plugin</artifactId>
            <version>${jib.maven.plugin.version}</version>
         </plugin>
      </plugins>
   </build>

   <reporting>
      <plugins>
         <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-checkstyle-plugin</artifactId>
            <configuration>
               <configLocation>${activemq.basedir}/etc/checkstyle.xml</configLocation>
               <suppressionsLocation>${activemq.basedir}/etc/checkstyle-suppressions.xml</suppressionsLocation>
               <failsOnError>false</failsOnError>
            </configuration>
         </plugin>
         <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>findbugs-maven-plugin</artifactId>
            <version>2.5.2</version>
            <configuration>
               <excludeFilterFile>${user.dir}/etc/findbugs-exclude.xml</excludeFilterFile>
               <effort>Max</effort>
               <failOnError>false</failOnError>
            </configuration>
         </plugin>
         <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-javadoc-plugin</artifactId>
            <configuration>
               <minmemory>128m</minmemory>
               <maxmemory>1024m</maxmemory>
               <noindex>true</noindex>
               <quiet>false</quiet>
               <!-- XXX FIXME 'aggregate' is deprecated -->
               <aggregate>true</aggregate>
               <excludePackageNames>com.restfully.*:org.jboss.resteasy.examples.*:org.jboss.resteasy.tests.*
               </excludePackageNames>
            </configuration>
         </plugin>
         <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-project-info-reports-plugin</artifactId>
         </plugin>
         <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-surefire-report-plugin</artifactId>
         </plugin>
         <plugin>
            <groupId>org.owasp</groupId>
            <artifactId>dependency-check-maven</artifactId>
            <version>${owasp.version}</version>
            <reportSets>
               <reportSet>
                  <reports>
                     <report>aggregate</report>
                  </reports>
               </reportSet>
            </reportSets>
         </plugin>
      </plugins>
   </reporting>

   <!--
     un comment this session here to validate repository releases.
     <repositories>
      <repository>
         <id>release validation</id>
         <name>Maven 1.0.0 release</name>
         <layout>default</layout>
         <url>https://repository.apache.org/content/repositories/orgapacheactivemq-XXXX</url>
         <snapshots>
            <enabled>false</enabled>
         </snapshots>
      </repository>
   </repositories> -->
</project>
