<!--
  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>

   <parent>
      <groupId>org.apache.activemq.tests</groupId>
      <artifactId>artemis-tests-pom</artifactId>
      <version>2.33.0</version>
   </parent>

   <artifactId>compatibility-tests</artifactId>
   <packaging>jar</packaging>
   <name>ActiveMQ Artemis Compatibility Tests</name>

   <properties>
      <activemq.basedir>${project.basedir}/../..</activemq.basedir>
      <skipCompatibilityTests>true</skipCompatibilityTests>
   </properties>

   <dependencies>
      <dependency>
         <groupId>org.apache.activemq</groupId>
         <artifactId>artemis-jms-client</artifactId>
      </dependency>
      <dependency>
         <groupId>org.apache.activemq</groupId>
         <artifactId>artemis-jms-server</artifactId>
      </dependency>
      <dependency>
         <groupId>org.apache.activemq</groupId>
         <artifactId>artemis-ra</artifactId>
      </dependency>
      <dependency>
         <groupId>org.apache.activemq</groupId>
         <artifactId>artemis-cli</artifactId>
      </dependency>
      <dependency>
         <groupId>org.apache.activemq</groupId>
         <artifactId>artemis-commons</artifactId>
      </dependency>
      <dependency>
         <groupId>org.apache.activemq</groupId>
         <artifactId>artemis-journal</artifactId>
      </dependency>
      <dependency>
         <groupId>org.apache.activemq</groupId>
         <artifactId>artemis-jdbc-store</artifactId>
      </dependency>
      <dependency>
         <groupId>org.apache.activemq</groupId>
         <artifactId>artemis-amqp-protocol</artifactId>
      </dependency>
      <dependency>
         <groupId>org.apache.activemq</groupId>
         <artifactId>artemis-stomp-protocol</artifactId>
      </dependency>
      <dependency>
         <groupId>org.apache.activemq</groupId>
         <artifactId>artemis-openwire-protocol</artifactId>
         <exclusions>
            <exclusion>
               <groupId>org.apache.geronimo.specs</groupId>
               <artifactId>geronimo-jms_1.1_spec</artifactId>
            </exclusion>
         </exclusions>
      </dependency>
      <dependency>
         <groupId>org.apache.activemq</groupId>
         <artifactId>artemis-hornetq-protocol</artifactId>
      </dependency>
      <dependency>
         <groupId>org.apache.activemq</groupId>
         <artifactId>artemis-core-client</artifactId>
      </dependency>
      <dependency>
         <groupId>org.apache.activemq</groupId>
         <artifactId>artemis-server</artifactId>
      </dependency>
      <dependency>
         <groupId>org.apache.activemq</groupId>
         <artifactId>activemq-artemis-native</artifactId>
         <version>${activemq-artemis-native-version}</version>
      </dependency>
      <dependency>
         <groupId>org.apache.activemq</groupId>
         <artifactId>artemis-service-extensions</artifactId>
      </dependency>
      <dependency>
         <groupId>org.apache.activemq</groupId>
         <artifactId>artemis-unit-test-support</artifactId>
         <version>${project.version}</version>
      </dependency>
      <dependency>
         <groupId>org.apache.activemq</groupId>
         <artifactId>artemis-features</artifactId>
         <classifier>features</classifier>
         <type>xml</type>
      </dependency>
      <dependency>
         <groupId>org.apache.groovy</groupId>
         <artifactId>groovy-all</artifactId>
         <version>${groovy.version}</version>
         <type>pom</type>
         <exclusions>
            <exclusion>
               <groupId>org.apache.groovy</groupId>
               <artifactId>groovy-test-junit5</artifactId>
            </exclusion>
         </exclusions>
      </dependency>
      <dependency>
         <groupId>org.apache.activemq</groupId>
         <artifactId>activemq-client</artifactId>
         <scope>test</scope>
         <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>
      </dependency>
      <dependency>
         <groupId>org.apache.activemq</groupId>
         <artifactId>artemis-mqtt-protocol</artifactId>
      </dependency>
      <dependency>
         <groupId>org.fusesource.mqtt-client</groupId>
         <artifactId>mqtt-client</artifactId>
      </dependency>
      <dependency>
         <groupId>jakarta.resource</groupId>
         <artifactId>jakarta.resource-api</artifactId>
      </dependency>
      <dependency>
         <groupId>jakarta.transaction</groupId>
         <artifactId>jakarta.transaction-api</artifactId>
      </dependency>
      <dependency>
         <groupId>jakarta.jms</groupId>
         <artifactId>jakarta.jms-api</artifactId>
      </dependency>
      <dependency>
         <groupId>jakarta.management.j2ee</groupId>
         <artifactId>jakarta.management.j2ee-api</artifactId>
      </dependency>
      <dependency>
         <groupId>io.netty</groupId>
         <artifactId>netty-buffer</artifactId>
      </dependency>
      <dependency>
         <groupId>io.netty</groupId>
         <artifactId>netty-codec-http</artifactId>
      </dependency>
      <dependency>
         <groupId>io.netty</groupId>
         <artifactId>netty-codec-mqtt</artifactId>
         <version>${netty.version}</version>
      </dependency>
      <dependency>
         <groupId>io.netty</groupId>
         <artifactId>netty-handler</artifactId>
      </dependency>
      <dependency>
         <groupId>io.netty</groupId>
         <artifactId>netty-transport</artifactId>
      </dependency>
      <dependency>
         <groupId>junit</groupId>
         <artifactId>junit</artifactId>
      </dependency>
      <dependency>
         <groupId>org.apache.qpid</groupId>
         <artifactId>qpid-jms-client</artifactId>
      </dependency>
      <dependency>
         <groupId>org.apache.qpid</groupId>
         <artifactId>proton-j</artifactId>
      </dependency>
      <!-- logging -->
      <dependency>
         <groupId>org.slf4j</groupId>
         <artifactId>slf4j-api</artifactId>
      </dependency>
      <dependency>
         <groupId>org.apache.logging.log4j</groupId>
         <artifactId>log4j-slf4j2-impl</artifactId>
         <scope>test</scope>
      </dependency>
      <dependency>
         <groupId>org.jboss.marshalling</groupId>
         <artifactId>jboss-marshalling-river</artifactId>
         <version>2.0.9.Final</version>
      </dependency>

      <!-- The johnzon-core and json-api contents are repackaged in -commons,
           However maven can still need them during tests, which run against
           the original -commons classes when built+run in the same reactor,
           and not the jar containing the shaded bits. -->
      <dependency>
         <groupId>org.apache.johnzon</groupId>
         <artifactId>johnzon-core</artifactId>
         <scope>test</scope>
      </dependency>
      <dependency>
         <groupId>jakarta.json</groupId>
         <artifactId>jakarta.json-api</artifactId>
         <scope>test</scope>
      </dependency>
   </dependencies>

   <build>
      <testResources>
         <testResource>
            <directory>src/test/resources</directory>
            <filtering>true</filtering>
         </testResource>
      </testResources>
      <plugins>
         <plugin>
            <groupId>org.apache.servicemix.tooling</groupId>
            <artifactId>depends-maven-plugin</artifactId>
            <version>1.2</version>
            <executions>
               <execution>
                  <id>generate-depends-file</id>
                  <goals>
                     <goal>generate-depends-file</goal>
                  </goals>
               </execution>
            </executions>
         </plugin>
         <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-surefire-plugin</artifactId>
            <configuration>
               <forkCount>1</forkCount>
               <reuseForks>true</reuseForks>
               <skipTests>${skipCompatibilityTests}</skipTests>
               <argLine>${activemq-surefire-argline}</argLine>
            </configuration>
         </plugin>
      </plugins>
   </build>
   <profiles>
      <profile>
         <id>compatibility-tests</id>
         <properties>
            <skipCompatibilityTests>false</skipCompatibilityTests>
         </properties>
         <build>
            <plugins>
               <plugin>
                  <groupId>org.apache.activemq</groupId>
                  <artifactId>artemis-maven-plugin</artifactId>
                  <version>${project.version}</version>
                  <executions>
                     <!-- The executions of dependency-scan will calculate dependencies for each specific version used here on this testsuite. -->
                     <execution>
                        <id>snapshot-check</id>
                        <phase>compile</phase>
                        <goals>
                           <goal>dependency-scan</goal>
                        </goals>
                        <configuration>
                           <libListWithDeps>
                              <arg>org.apache.activemq:artemis-jms-server:${project.version}</arg>
                              <arg>org.apache.activemq:artemis-cli:${project.version}</arg>
                              <arg>org.apache.activemq:artemis-jms-client:${project.version}</arg>
                              <arg>org.apache.activemq:artemis-hornetq-protocol:${project.version}</arg>
                              <arg>org.apache.activemq:artemis-amqp-protocol:${project.version}</arg>
                              <arg>org.apache.activemq:artemis-hornetq-protocol:${project.version}</arg>
                              <arg>org.apache.groovy:groovy-all:pom:${groovy.version}</arg>
                           </libListWithDeps>
                           <libList>
                              <arg>org.apache.activemq:artemis-unit-test-support:${project.version}</arg>
                              <arg>org.apache.activemq.tests:compatibility-tests:${project.version}</arg>
                           </libList>
                           <file>${basedir}/target/ARTEMIS-SNAPSHOT.cp</file>
                        </configuration>
                     </execution><!-- The executions of dependency-scan will calculate dependencies for each specific version used here on this testsuite. -->
                     <execution>
                        <id>jakartaee</id>
                        <phase>compile</phase>
                        <goals>
                           <goal>dependency-scan</goal>
                        </goals>
                        <configuration>
                           <libListWithDeps>
                              <arg>org.apache.activemq:artemis-core-client:${project.version}</arg>
                              <arg>org.apache.activemq:artemis-commons:${project.version}</arg>
                              <arg>org.apache.activemq:artemis-selector:${project.version}</arg>
                              <arg>org.apache.activemq:artemis-server:${project.version}</arg>
                              <arg>org.apache.activemq:artemis-journal:${project.version}</arg>
                              <arg>org.apache.activemq:artemis-hornetq-protocol:${project.version}</arg>
                              <arg>org.apache.activemq:artemis-jakarta-openwire-protocol:${project.version}</arg>
                              <arg>org.apache.logging.log4j:log4j-slf4j2-impl:${log4j.version}</arg>
                              <arg>org.apache.groovy:groovy-all:pom:${groovy.version}</arg>
                           </libListWithDeps>
                           <libList>
                              <arg>jakarta.jms:jakarta.jms-api:3.0.0</arg>
                              <arg>jakarta.json:jakarta.json-api:2.0.0</arg>
                              <arg>jakarta.transaction:jakarta.transaction-api:2.0.0</arg>
                              <arg>org.apache.activemq:artemis-jakarta-server:${project.version}</arg>
                              <arg>org.apache.activemq:artemis-jakarta-client:${project.version}</arg>
                              <arg>org.apache.activemq:artemis-jakarta-service-extensions:${project.version}</arg>
                              <arg>org.apache.activemq:artemis-unit-test-support:${project.version}</arg>
                              <arg>org.apache.activemq.tests:compatibility-tests:${project.version}</arg>
                           </libList>
                           <file>${basedir}/target/ARTEMIS-JAKARTAEE.cp</file>
                        </configuration>
                     </execution>
                     <execution>
                        <phase>compile</phase>
                        <goals>
                           <goal>dependency-scan</goal>
                        </goals>
                        <id>263-check</id>
                        <configuration>
                           <libListWithDeps>
                              <arg>org.apache.activemq:artemis-jms-server:2.6.3</arg>
                              <arg>org.apache.activemq:artemis-jms-client:2.6.3</arg>
                              <arg>org.apache.activemq:artemis-cli:2.6.3</arg>
                              <arg>org.apache.activemq:artemis-hornetq-protocol:2.6.3</arg>
                              <arg>org.apache.activemq:artemis-amqp-protocol:2.6.3</arg>
                              <arg>org.apache.activemq:artemis-hornetq-protocol:2.6.3</arg>
                              <arg>org.apache.groovy:groovy-all:pom:${groovy.version}</arg>
                           </libListWithDeps>
                           <libList>
                              <arg>org.apache.activemq.tests:compatibility-tests:${project.version}</arg>
                           </libList>
                           <file>${basedir}/target/ARTEMIS-263.cp</file>
                        </configuration>
                     </execution>
                     <execution>
                        <phase>compile</phase>
                        <goals>
                           <goal>dependency-scan</goal>
                        </goals>
                        <id>270-check</id>
                        <configuration>
                           <libListWithDeps>
                              <arg>org.apache.activemq:artemis-jms-server:2.7.0</arg>
                              <arg>org.apache.activemq:artemis-jms-client:2.7.0</arg>
                              <arg>org.apache.activemq:artemis-cli:2.7.0</arg>
                              <arg>org.apache.activemq:artemis-hornetq-protocol:2.7.0</arg>
                              <arg>org.apache.activemq:artemis-amqp-protocol:2.7.0</arg>
                              <arg>org.apache.activemq:artemis-hornetq-protocol:2.7.0</arg>
                              <arg>org.apache.groovy:groovy-all:pom:${groovy.version}</arg>
                           </libListWithDeps>
                           <libList>
                              <arg>org.apache.activemq.tests:compatibility-tests:${project.version}</arg>
                           </libList>
                           <file>${basedir}/target/ARTEMIS-270.cp</file>
                        </configuration>
                     </execution>
                     <execution>
                        <phase>compile</phase>
                        <goals>
                           <goal>dependency-scan</goal>
                        </goals>
                        <id>2_10_0-check</id>
                        <configuration>
                           <optional>true</optional>
                           <libListWithDeps>
                              <arg>org.apache.activemq:artemis-jms-server:2.10.0</arg>
                              <arg>org.apache.activemq:artemis-jms-client:2.10.0</arg>
                              <arg>org.apache.activemq:artemis-cli:2.10.0</arg>
                              <arg>org.apache.activemq:artemis-hornetq-protocol:2.10.0</arg>
                              <arg>org.apache.activemq:artemis-amqp-protocol:2.10.0</arg>
                              <arg>org.apache.activemq:artemis-hornetq-protocol:2.10.0</arg>
                              <arg>org.apache.groovy:groovy-all:pom:${groovy.version}</arg>
                              <arg>org.jboss.marshalling:jboss-marshalling-river:2.0.9.Final</arg>
                           </libListWithDeps>
                           <libList>
                              <arg>org.apache.activemq.tests:compatibility-tests:${project.version}</arg>
                           </libList>
                           <file>${basedir}/target/ARTEMIS-2_10_0.cp</file>
                        </configuration>
                     </execution>
                     <execution>
                        <phase>compile</phase>
                        <goals>
                           <goal>dependency-scan</goal>
                        </goals>
                        <id>2_17_0-check</id>
                        <configuration>
                           <optional>true</optional>
                           <libListWithDeps>
                              <arg>org.apache.activemq:artemis-jms-server:2.17.0</arg>
                              <arg>org.apache.activemq:artemis-jms-client:2.17.0</arg>
                              <arg>org.apache.activemq:artemis-cli:2.17.0</arg>
                              <arg>org.apache.activemq:artemis-hornetq-protocol:2.17.0</arg>
                              <arg>org.apache.activemq:artemis-amqp-protocol:2.17.0</arg>
                              <arg>org.apache.activemq:artemis-hornetq-protocol:2.17.0</arg>
                              <arg>org.apache.groovy:groovy-all:pom:${groovy.version}</arg>
                              <arg>org.jboss.marshalling:jboss-marshalling-river:2.0.9.Final</arg>
                           </libListWithDeps>
                           <libList>
                              <arg>org.apache.activemq.tests:compatibility-tests:${project.version}</arg>
                           </libList>
                           <file>${basedir}/target/ARTEMIS-2_17_0.cp</file>
                        </configuration>
                     </execution>
                     <execution>
                        <phase>compile</phase>
                        <goals>
                           <goal>dependency-scan</goal>
                        </goals>
                        <id>2_18_0-check</id>
                        <configuration>
                           <optional>true</optional>
                           <libListWithDeps>
                              <arg>org.apache.activemq:artemis-jms-server:2.18.0</arg>
                              <arg>org.apache.activemq:artemis-jms-client:2.18.0</arg>
                              <arg>org.apache.activemq:artemis-cli:2.18.0</arg>
                              <arg>org.apache.activemq:artemis-hornetq-protocol:2.18.0</arg>
                              <arg>org.apache.activemq:artemis-amqp-protocol:2.18.0</arg>
                              <arg>org.apache.activemq:artemis-hornetq-protocol:2.18.0</arg>
                              <arg>org.apache.groovy:groovy-all:pom:${groovy.version}</arg>
                              <arg>org.jboss.marshalling:jboss-marshalling-river:2.0.9.Final</arg>
                           </libListWithDeps>
                           <libList>
                              <arg>org.apache.activemq.tests:compatibility-tests:${project.version}</arg>
                           </libList>
                           <file>${basedir}/target/ARTEMIS-2_18_0.cp</file>
                        </configuration>
                     </execution>
                     <execution>
                        <phase>compile</phase>
                        <goals>
                           <goal>dependency-scan</goal>
                        </goals>
                        <id>2_28_0-check</id>
                        <configuration>
                           <optional>true</optional>
                           <libListWithDeps>
                              <arg>org.apache.activemq:artemis-jms-server:2.28.0</arg>
                              <arg>org.apache.activemq:artemis-cli:2.28.0</arg>
                              <arg>org.apache.activemq:artemis-jms-client:2.28.0</arg>
                              <arg>org.apache.activemq:artemis-hornetq-protocol:2.28.0</arg>
                              <arg>org.apache.activemq:artemis-amqp-protocol:2.28.0</arg>
                              <arg>org.apache.groovy:groovy-all:pom:${groovy.version}</arg>
                           </libListWithDeps>
                           <libList>
                              <arg>org.apache.activemq.tests:compatibility-tests:${project.version}</arg>
                           </libList>
                           <file>${basedir}/target/ARTEMIS-2_28_0.cp</file>
                        </configuration>
                     </execution>

                     <execution>
                        <phase>compile</phase>
                        <goals>
                           <goal>dependency-scan</goal>
                        </goals>
                        <id>2_22_0-check</id>
                        <configuration>
                           <optional>true</optional>
                           <libListWithDeps>
                              <arg>org.apache.activemq:artemis-jms-server:2.22.0</arg>
                              <arg>org.apache.activemq:artemis-jms-client:2.22.0</arg>
                              <arg>org.apache.activemq:artemis-cli:2.22.0</arg>
                              <arg>org.apache.activemq:artemis-hornetq-protocol:2.22.0</arg>
                              <arg>org.apache.activemq:artemis-amqp-protocol:2.22.0</arg>
                              <arg>org.apache.activemq:artemis-hornetq-protocol:2.22.0</arg>
                              <arg>org.apache.groovy:groovy-all:pom:${groovy.version}</arg>
                              <arg>org.jboss.marshalling:jboss-marshalling-river:2.0.9.Final</arg>
                           </libListWithDeps>
                           <libList>
                              <arg>org.apache.activemq.tests:compatibility-tests:${project.version}</arg>
                           </libList>
                           <file>${basedir}/target/ARTEMIS-2_22_0.cp</file>
                        </configuration>
                     </execution>
                     <execution>
                        <phase>compile</phase>
                        <goals>
                           <goal>dependency-scan</goal>
                        </goals>
                        <id>240-check</id>
                        <configuration>
                           <libListWithDeps>
                              <arg>org.apache.activemq:artemis-jms-server:2.4.0</arg>
                              <arg>org.apache.activemq:artemis-jms-client:2.4.0</arg>
                              <arg>org.apache.activemq:artemis-cli:2.4.0</arg>
                              <arg>org.apache.activemq:artemis-hornetq-protocol:2.4.0</arg>
                              <arg>org.apache.activemq:artemis-amqp-protocol:2.4.0</arg>
                              <arg>org.apache.activemq:artemis-hornetq-protocol:2.4.0</arg>
                              <arg>org.apache.qpid:qpid-jms-client:0.26.0</arg>
                              <arg>org.apache.groovy:groovy-all:pom:${groovy.version}</arg>
                           </libListWithDeps>
                           <libList>
                              <arg>org.apache.activemq.tests:compatibility-tests:${project.version}</arg>
                           </libList>
                           <file>${basedir}/target/ARTEMIS-240.cp</file>
                        </configuration>
                     </execution>
                     <execution>
                        <phase>compile</phase>
                        <goals>
                           <goal>dependency-scan</goal>
                        </goals>
                        <id>210-check</id>
                        <configuration>
                           <libListWithDeps>
                              <arg>org.apache.activemq:artemis-jms-server:2.1.0</arg>
                              <arg>org.apache.activemq:artemis-jms-client:2.1.0</arg>
                              <arg>org.apache.activemq:artemis-cli:2.1.0</arg>
                              <arg>org.apache.activemq:artemis-hornetq-protocol:2.1.0</arg>
                              <arg>org.apache.activemq:artemis-amqp-protocol:2.1.0</arg>
                              <arg>org.apache.activemq:artemis-hornetq-protocol:2.1.0</arg>
                              <arg>org.apache.qpid:qpid-jms-client:0.22.0</arg>
                              <arg>org.apache.groovy:groovy-all:pom:${groovy.version}</arg>
                           </libListWithDeps>
                           <libList>
                              <arg>org.apache.activemq.tests:compatibility-tests:${project.version}</arg>
                           </libList>
                           <file>${basedir}/target/ARTEMIS-210.cp</file>
                        </configuration>
                     </execution>
                     <execution>
                        <phase>compile</phase>
                        <goals>
                           <goal>dependency-scan</goal>
                        </goals>
                        <id>200-check</id>
                        <configuration>
                           <libListWithDeps>
                              <arg>org.apache.activemq:artemis-jms-server:2.0.0</arg>
                              <arg>org.apache.activemq:artemis-jms-client:2.0.0</arg>
                              <arg>org.apache.activemq:artemis-cli:2.0.0</arg>
                              <arg>org.apache.activemq:artemis-hornetq-protocol:2.0.0</arg>
                              <arg>org.apache.activemq:artemis-amqp-protocol:2.0.0</arg>
                              <arg>org.apache.activemq:artemis-hornetq-protocol:2.0.0</arg>
                              <arg>org.apache.qpid:qpid-jms-client:0.20.0</arg>
                              <arg>org.apache.groovy:groovy-all:pom:${groovy.version}</arg>
                           </libListWithDeps>
                           <libList>
                              <arg>org.apache.activemq.tests:compatibility-tests:${project.version}</arg>
                           </libList>
                           <file>${basedir}/target/ARTEMIS-200.cp</file>
                        </configuration>
                     </execution>
                     <execution>
                        <id>140-check</id>
                        <phase>compile</phase>
                        <goals>
                           <goal>dependency-scan</goal>
                        </goals>
                        <configuration>
                           <libListWithDeps>
                              <arg>org.apache.activemq:artemis-jms-server:1.4.0</arg>
                              <arg>org.apache.activemq:artemis-jms-client:1.4.0</arg>
                              <arg>org.apache.activemq:artemis-cli:1.4.0</arg>
                              <arg>org.apache.activemq:artemis-hornetq-protocol:1.4.0</arg>
                              <arg>org.apache.activemq:artemis-amqp-protocol:1.4.0</arg>
                              <arg>org.apache.activemq:artemis-hornetq-protocol:1.4.0</arg>
                              <arg>org.apache.groovy:groovy-all:pom:${groovy.version}</arg>
                           </libListWithDeps>
                           <libList>
                              <arg>org.apache.activemq.tests:compatibility-tests:${project.version}</arg>
                           </libList>
                           <file>${basedir}/target/ARTEMIS-140.cp</file>
                        </configuration>
                     </execution>
                     <execution>
                        <id>155-check</id>
                        <phase>compile</phase>
                        <goals>
                           <goal>dependency-scan</goal>
                        </goals>
                        <configuration>
                           <libListWithDeps>
                              <arg>org.apache.activemq:artemis-jms-server:1.5.5</arg>
                              <arg>org.apache.activemq:artemis-jms-client:1.5.5</arg>
                              <arg>org.apache.activemq:artemis-cli:1.5.5</arg>
                              <arg>org.apache.activemq:artemis-hornetq-protocol:1.5.5</arg>
                              <arg>org.apache.activemq:artemis-amqp-protocol:1.5.5</arg>
                              <arg>org.apache.activemq:artemis-hornetq-protocol:1.5.5</arg>
                              <arg>org.apache.groovy:groovy-all:pom:${groovy.version}</arg>
                              <arg>org.jboss.marshalling:jboss-marshalling-river:2.0.9.Final</arg>
                           </libListWithDeps>
                           <libList>
                              <arg>org.apache.activemq.tests:compatibility-tests:${project.version}</arg>
                           </libList>
                           <file>${basedir}/target/ARTEMIS-155.cp</file>
                        </configuration>
                     </execution>
                     <execution>
                        <id>hornetq-235</id>
                        <phase>compile</phase>
                        <goals>
                           <goal>dependency-scan</goal>
                        </goals>
                        <configuration>
                           <optional>true</optional>
                           <extraRepositories>
                              <!-- some of the dependencies are not on maven central,
                                   and the artemis maven plugin has the capability of using this extra repo -->
                              <arg>https://repository.jboss.org/nexus/content/groups/public</arg>
                           </extraRepositories>
                           <libListWithDeps>
                              <arg>org.hornetq:hornetq-jms-server:2.3.5.Final</arg>
                              <arg>org.apache.groovy:groovy-all:pom:${groovy.version}</arg>
                           </libListWithDeps>
                           <libList>
                              <arg>org.apache.activemq.tests:compatibility-tests:${project.version}</arg>
                           </libList>
                           <file>${basedir}/target/HORNETQ-235.cp</file>
                        </configuration>
                     </execution>
                     <execution>
                        <id>hornetq-247</id>
                        <phase>compile</phase>
                        <goals>
                           <goal>dependency-scan</goal>
                        </goals>
                        <configuration>
                           <optional>true</optional>
                           <extraRepositories>
                              <!-- some of the dependencies are not on maven central,
                                   and the artemis maven plugin has the capability of using this extra repo -->
                              <arg>https://repository.jboss.org/nexus/content/groups/public</arg>
                           </extraRepositories>
                           <libListWithDeps>
                              <arg>org.hornetq:hornetq-jms-server:2.4.7.Final</arg>
                              <arg>org.apache.groovy:groovy-all:pom:${groovy.version}</arg>
                           </libListWithDeps>
                           <libList>
                              <arg>org.apache.activemq.tests:compatibility-tests:${project.version}</arg>
                           </libList>
                           <file>${basedir}/target/HORNETQ-247.cp</file>
                        </configuration>
                     </execution>

                     <execution>
                        <id>openwire-5.11</id>
                        <phase>compile</phase>
                        <goals>
                           <goal>dependency-scan</goal>
                        </goals>
                        <configuration>
                           <optional>true</optional>
                           <libListWithDeps>
                              <arg>org.apache.activemq:activemq-client:5.11.0</arg>
                              <arg>org.apache.logging.log4j:log4j-slf4j2-impl:${log4j.version}</arg>
                              <arg>org.apache.groovy:groovy-all:pom:${groovy.version}</arg>
                           </libListWithDeps>
                           <libList>
                              <arg>org.apache.activemq.tests:compatibility-tests:${project.version}</arg>
                           </libList>
                           <file>${basedir}/target/AMQ_5_11.cp</file>
                        </configuration>
                     </execution>
                  </executions>
               </plugin>
            </plugins>
         </build>
      </profile>
   </profiles>
   <distributionManagement>
      <repository>
         <id>jboss-releases-repository</id>
         <name>JBoss Releases Repository</name>
         <url>https://repository.jboss.org/nexus/service/local/staging/deploy/maven2/</url>
      </repository>
      <snapshotRepository>
         <id>jboss-snapshots-repository</id>
         <name>JBoss Snapshots Repository</name>
         <url>https://repository.jboss.org/nexus/content/repositories/snapshots/</url>
      </snapshotRepository>
   </distributionManagement>

</project>
