<?xml version="1.0"?>
<!--
  ~ 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/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.apache.qpid</groupId>
        <artifactId>qpid-systests-parent</artifactId>
        <version>8.0.2-SNAPSHOT</version>
        <relativePath>../../qpid-systests-parent/pom.xml</relativePath>
    </parent>

    <artifactId>qpid-systests-end-to-end-conversion-tests</artifactId>
    <name>Apache Qpid Broker-J End to End Conversion Tests</name>
    <description>End to end conversion tests</description>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <amqp10ClientGavs>org.apache.qpid:qpid-jms-client:${qpid-jms-client-version},org.slf4j:slf4j-simple:${slf4j-version}</amqp10ClientGavs>
        <amqp0xClientGavs>org.apache.qpid:qpid-client:${qpid-jms-client-amqp-0-x-version},org.apache.geronimo.specs:geronimo-jms_1.1_spec:${geronimo-jms-1-1-version},org.slf4j:slf4j-simple:${slf4j-version},javax.xml.bind:jaxb-api:${jaxb-api-version},org.glassfish.jaxb:jaxb-runtime:${jaxb-api-version}</amqp0xClientGavs>
    </properties>

    <dependencies>

        <dependency>
            <groupId>org.apache.geronimo.specs</groupId>
            <artifactId>geronimo-jms_1.1_spec</artifactId>
        </dependency>

        <dependency>
            <groupId>org.apache.qpid</groupId>
            <artifactId>qpid-broker</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.apache.maven</groupId>
            <artifactId>maven-core</artifactId>
        </dependency>
        <dependency>
            <groupId>org.apache.maven.resolver</groupId>
            <artifactId>maven-resolver-api</artifactId>
        </dependency>
        <dependency>
            <groupId>org.apache.maven.resolver</groupId>
            <artifactId>maven-resolver-connector-basic</artifactId>
        </dependency>
        <dependency>
            <groupId>org.apache.maven.resolver</groupId>
            <artifactId>maven-resolver-transport-file</artifactId>
        </dependency>
        <dependency>
            <groupId>org.apache.maven.resolver</groupId>
            <artifactId>maven-resolver-transport-http</artifactId>
        </dependency>
        <dependency>
            <groupId>org.apache.qpid</groupId>
            <artifactId>qpid-systests-utils</artifactId>
        </dependency>

    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <configuration>
                    <skipTests>${skipITs}</skipTests>
                    <workingDirectory>${project.basedir}</workingDirectory>
                    <systemPropertyVariables>
                        <qpid.initialConfigurationLocation>classpath:config-end-to-end-conversion-tests.json</qpid.initialConfigurationLocation>
                        <qpid.systests.end_to_end_conversion.localRepository>${settings.localRepository}</qpid.systests.end_to_end_conversion.localRepository>
                        <qpid.systests.end_to_end_conversion.remoteRepository>https://repo.maven.apache.org/maven2/</qpid.systests.end_to_end_conversion.remoteRepository>
                    </systemPropertyVariables>
                </configuration>
                <executions>
                    <execution>
                        <id>0-9-1 -&gt; 1.0</id>
                        <configuration>
                            <skipTests>${skipITs}</skipTests>
                            <systemPropertyVariables>
                                <qpid.systests.end_to_end_conversion.executionId>0-9-1_to_1.0</qpid.systests.end_to_end_conversion.executionId>
                                <qpid.systests.end_to_end_conversion.publisherGavs>${amqp0xClientGavs}</qpid.systests.end_to_end_conversion.publisherGavs>
                                <qpid.systests.end_to_end_conversion.publisherAdditionalJavaArguments>-Dqpid.amqp.version=0-9-1</qpid.systests.end_to_end_conversion.publisherAdditionalJavaArguments>
                                <qpid.systests.end_to_end_conversion.subscriberGavs>${amqp10ClientGavs}</qpid.systests.end_to_end_conversion.subscriberGavs>
                                <qpid.systests.end_to_end_conversion.subscriberAdditionalJavaArguments />
                            </systemPropertyVariables>
                        </configuration>
                        <goals>
                            <goal>test</goal>
                        </goals>
                    </execution>
                    <execution>
                        <id>1.0 -&gt; 0-9-1</id>
                        <configuration>
                            <skipTests>${skipITs}</skipTests>
                            <systemPropertyVariables>
                                <qpid.systests.end_to_end_conversion.executionId>1.0_to_0-9-1</qpid.systests.end_to_end_conversion.executionId>
                                <qpid.systests.end_to_end_conversion.publisherGavs>${amqp10ClientGavs}</qpid.systests.end_to_end_conversion.publisherGavs>
                                <qpid.systests.end_to_end_conversion.publisherAdditionalJavaArguments />
                                <qpid.systests.end_to_end_conversion.subscriberGavs>${amqp0xClientGavs}</qpid.systests.end_to_end_conversion.subscriberGavs>
                                <qpid.systests.end_to_end_conversion.subscriberAdditionalJavaArguments>-Dqpid.amqp.version=0-9-1</qpid.systests.end_to_end_conversion.subscriberAdditionalJavaArguments>
                            </systemPropertyVariables>
                        </configuration>
                        <goals>
                            <goal>test</goal>
                        </goals>
                    </execution>
                    <execution>
                        <id>0-10 -&gt; 1.0</id>
                        <configuration>
                            <skipTests>${skipITs}</skipTests>
                            <systemPropertyVariables>
                                <qpid.systests.end_to_end_conversion.executionId>0-10_to_1.0</qpid.systests.end_to_end_conversion.executionId>
                                <qpid.systests.end_to_end_conversion.publisherGavs>${amqp0xClientGavs}</qpid.systests.end_to_end_conversion.publisherGavs>
                                <qpid.systests.end_to_end_conversion.publisherAdditionalJavaArguments>-Dqpid.amqp.version=0-10</qpid.systests.end_to_end_conversion.publisherAdditionalJavaArguments>
                                <qpid.systests.end_to_end_conversion.subscriberGavs>${amqp10ClientGavs}</qpid.systests.end_to_end_conversion.subscriberGavs>
                                <qpid.systests.end_to_end_conversion.subscriberAdditionalJavaArguments />
                            </systemPropertyVariables>
                        </configuration>
                        <goals>
                            <goal>test</goal>
                        </goals>
                    </execution>
                    <execution>
                        <id>1.0 -&gt; 0-10</id>
                        <configuration>
                            <skipTests>${skipITs}</skipTests>
                            <systemPropertyVariables>
                                <qpid.systests.end_to_end_conversion.executionId>1.0_to_0-10</qpid.systests.end_to_end_conversion.executionId>
                                <qpid.systests.end_to_end_conversion.publisherGavs>${amqp10ClientGavs}</qpid.systests.end_to_end_conversion.publisherGavs>
                                <qpid.systests.end_to_end_conversion.publisherAdditionalJavaArguments />
                                <qpid.systests.end_to_end_conversion.subscriberGavs>${amqp0xClientGavs}</qpid.systests.end_to_end_conversion.subscriberGavs>
                                <qpid.systests.end_to_end_conversion.subscriberAdditionalJavaArguments>-Dqpid.amqp.version=0-10</qpid.systests.end_to_end_conversion.subscriberAdditionalJavaArguments>
                            </systemPropertyVariables>
                        </configuration>
                        <goals>
                            <goal>test</goal>
                        </goals>
                    </execution>
                    <execution>
                        <id>0-9-1 -&gt; 0-10</id>
                        <configuration>
                            <skipTests>${skipITs}</skipTests>
                            <systemPropertyVariables>
                                <qpid.systests.end_to_end_conversion.executionId>0-9-1_to_0-10</qpid.systests.end_to_end_conversion.executionId>
                                <qpid.systests.end_to_end_conversion.publisherGavs>${amqp0xClientGavs}</qpid.systests.end_to_end_conversion.publisherGavs>
                                <qpid.systests.end_to_end_conversion.publisherAdditionalJavaArguments>-Dqpid.amqp.version=0-9-1</qpid.systests.end_to_end_conversion.publisherAdditionalJavaArguments>
                                <qpid.systests.end_to_end_conversion.subscriberGavs>${amqp0xClientGavs}</qpid.systests.end_to_end_conversion.subscriberGavs>
                                <qpid.systests.end_to_end_conversion.subscriberAdditionalJavaArguments>-Dqpid.amqp.version=0-10</qpid.systests.end_to_end_conversion.subscriberAdditionalJavaArguments>
                            </systemPropertyVariables>
                        </configuration>
                        <goals>
                            <goal>test</goal>
                        </goals>
                    </execution>
                    <execution>
                        <id>0-10 -&gt; 0-9-1</id>
                        <configuration>
                            <skipTests>${skipITs}</skipTests>
                            <systemPropertyVariables>
                                <qpid.systests.end_to_end_conversion.executionId>0-10_to_0-9-1</qpid.systests.end_to_end_conversion.executionId>
                                <qpid.systests.end_to_end_conversion.publisherGavs>${amqp0xClientGavs}</qpid.systests.end_to_end_conversion.publisherGavs>
                                <qpid.systests.end_to_end_conversion.publisherAdditionalJavaArguments>-Dqpid.amqp.version=0-10</qpid.systests.end_to_end_conversion.publisherAdditionalJavaArguments>
                                <qpid.systests.end_to_end_conversion.subscriberGavs>${amqp0xClientGavs}</qpid.systests.end_to_end_conversion.subscriberGavs>
                                <qpid.systests.end_to_end_conversion.subscriberAdditionalJavaArguments>-Dqpid.amqp.version=0-9-1</qpid.systests.end_to_end_conversion.subscriberAdditionalJavaArguments>
                            </systemPropertyVariables>
                        </configuration>
                        <goals>
                            <goal>test</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>


</project>
