<?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.30.0</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.3.3</karaf.version>
      <pax.exam.version>4.13.4</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.2</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>
      <guava.version>32.0.1-jre</guava.version>
      <hawtio.version>2.15.0</hawtio.version>
      <jsr305.version>3.0.2</jsr305.version>
      <jetty.version>10.0.15</jetty.version>
      <tomcat.servlet-api.version>8.5.78</tomcat.servlet-api.version>
      <jgroups.version>5.2.16.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.94.Final</netty.version>
      <hdrhistogram.version>2.1.12</hdrhistogram.version>
      <curator.version>5.2.0</curator.version>
      <zookeeper.version>3.6.3</zookeeper.version>
      <woodstox.version>4.4.0</woodstox.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>
      <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>
      <airline.version>2.9.0</airline.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>6.1.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>
      <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

      -->

      <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
         -Dlog4j2.configurationFile="file:${activemq.basedir}/tests/config/${logging.config}"
      </activemq-surefire-argline>
      <activemq.basedir>${project.basedir}</activemq.basedir>
      <skipOWASP>true</skipOWASP>

      <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-07-20T19:30:28Z</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.30.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>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>com.github.rvesse</groupId>
            <artifactId>airline</artifactId>
            <version>${airline.version}</version>
            <exclusions>
               <exclusion>
                  <groupId>com.github.rvesse</groupId>
                  <artifactId>airline-backcompat-javaxinject</artifactId>
               </exclusion>
            </exclusions>
            <!-- 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>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-server</artifactId>
            <version>${jetty.version}</version>
            <exclusions>
               <exclusion>
                  <groupId>javax.servlet</groupId>
                  <artifactId>javax.servlet-api</artifactId>
               </exclusion>
            </exclusions>
            <!-- License: (Joint): Apache 2.0 & EPL 1.0 -->
         </dependency>
         <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 & EPL 1.0 -->
         </dependency>
         <dependency>
            <groupId>org.apache.tomcat</groupId>
            <artifactId>tomcat-servlet-api</artifactId>
            <version>${tomcat.servlet-api.version}</version>
         </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.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>org.slf4j</groupId>
                  <artifactId>slf4j-log4j12</artifactId>
               </exclusion>
               <exclusion>
                  <groupId>log4j</groupId>
                  <artifactId>log4j</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>
         <properties>
            <skipOWASP>false</skipOWASP>
         </properties>
      </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>
            <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>
            <!-- 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>2.3</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>
               </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>etc/ide-settings/**</exclude>
                     <exclude>**/*.json</exclude>
                     <exclude>docs/**/*.json</exclude>
                     <exclude>docs/**/_book/</exclude>
                     <exclude>docs/**/_layouts/</exclude>
                     <exclude>docs/user-manual/en/diagrams/*.svg</exclude>
                     <exclude>docs/user-manual/en/02-27-00-scripts-profiles.diff</exclude>
                     <exclude>docs/user-manual/en/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>
                  </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>
         <plugin>
            <groupId>org.owasp</groupId>
            <artifactId>dependency-check-maven</artifactId>
            <version>${owasp.version}</version>
            <configuration>
                <skip>${skipOWASP}</skip>
                <!-- <skipProvidedScope>true</skipProvidedScope>
                <skipRuntimeScope>true</skipRuntimeScope> -->
            </configuration>
            <executions>
               <execution>
                  <goals>
                     <goal>check</goal>
                  </goals>
               </execution>
            </executions>
         </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>
