<?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.31.2</version>

   <parent>
      <groupId>org.apache</groupId>
      <artifactId>apache</artifactId>
      <version>30</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-web</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-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.3</karaf.version>
      <pax.exam.version>4.13.5</pax.exam.version>
      <commons.config.version>2.9.0</commons.config.version>
      <commons.lang.version>3.12.0</commons.lang.version>
      <activemq5-version>5.17.6</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.6</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>
      <maven.checkstyle.plugin.version>3.2.2</maven.checkstyle.plugin.version>
      <jib.maven.plugin.version>3.3.2</jib.maven.plugin.version>
      <sevntu.checks.version>1.39.0</sevntu.checks.version>
      <checkstyle.version>10.11.0</checkstyle.version>
      <mockito.version>5.4.0</mockito.version>
      <jctools.version>2.1.2</jctools.version>
      <netty.version>4.1.100.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>

      <!-- 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-M17</protonj2.version>
      <slf4j.version>1.7.36</slf4j.version>
      <log4j.version>2.20.0</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.14.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>2023-10-27T10:11:40Z</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.31.2</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>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-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-slf4j-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>
            <module>examples</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>
      <profile>
         <id>examples</id>
         <modules>
            <module>examples</module>
         </modules>
         <properties>
            <skipTests>true</skipTests>
         </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>
               <version>${maven.checkstyle.plugin.version}</version>
               <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>
