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

  <parent>
    <groupId>org.apache.activemq</groupId>
    <artifactId>activemq-parent</artifactId>
    <version>5.17.3</version>
  </parent>

  <artifactId>activemq-amqp</artifactId>
  <packaging>jar</packaging>

  <name>ActiveMQ :: AMQP</name>
  <description>ActiveMQ implementaiton of AMQP messaging protocol</description>

  <dependencies>
    <dependency>
      <groupId>org.apache.activemq</groupId>
      <artifactId>activemq-broker</artifactId>
    </dependency>
    <dependency>
      <groupId>org.slf4j</groupId>
      <artifactId>slf4j-api</artifactId>
    </dependency>
    <dependency>
      <groupId>org.apache.qpid</groupId>
      <artifactId>proton-j</artifactId>
      <version>${qpid-proton-version}</version>
    </dependency>
    <dependency>
      <groupId>org.fusesource.hawtbuf</groupId>
      <artifactId>hawtbuf</artifactId>
      <version>${hawtbuf-version}</version>
    </dependency>

    <!-- Testing Dependencies -->
    <dependency>
      <groupId>org.apache.qpid</groupId>
      <artifactId>qpid-jms-client</artifactId>
      <version>${qpid-jms-version}</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.activemq</groupId>
      <artifactId>activemq-kahadb-store</artifactId>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>${project.groupId}</groupId>
      <artifactId>activemq-jaas</artifactId>
      <scope>test</scope>
    </dependency>

    <!--  Joram JMS conformance tests -->
    <dependency>
      <groupId>org.fusesource.joram-jms-tests</groupId>
      <artifactId>joram-jms-tests</artifactId>
      <version>1.0</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.eclipse.jetty</groupId>
      <artifactId>jetty-server</artifactId>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.eclipse.jetty</groupId>
      <artifactId>jetty-jndi</artifactId>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.activemq</groupId>
      <artifactId>activemq-broker</artifactId>
      <type>test-jar</type>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.activemq</groupId>
      <artifactId>activemq-spring</artifactId>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.activemq</groupId>
      <artifactId>activemq-http</artifactId>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.activemq</groupId>
      <artifactId>activemq-mqtt</artifactId>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.eclipse.jetty.websocket</groupId>
      <artifactId>websocket-server</artifactId>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-context</artifactId>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.activemq.tooling</groupId>
      <artifactId>activemq-junit</artifactId>
      <scope>test</scope>
     </dependency>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.mockito</groupId>
      <artifactId>mockito-core</artifactId>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.apache.logging.log4j</groupId>
      <artifactId>log4j-slf4j-impl</artifactId>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>io.netty</groupId>
      <artifactId>netty-buffer</artifactId>
      <version>${netty-version}</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>io.netty</groupId>
      <artifactId>netty-common</artifactId>
      <version>${netty-version}</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>io.netty</groupId>
      <artifactId>netty-handler</artifactId>
      <version>${netty-version}</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>io.netty</groupId>
      <artifactId>netty-codec-http</artifactId>
      <version>${netty-version}</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>io.netty</groupId>
      <artifactId>netty-transport</artifactId>
      <version>${netty-version}</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.fusesource.stompjms</groupId>
      <artifactId>stompjms-client</artifactId>
      <version>${stompjms-version}</version>
      <scope>test</scope>
    </dependency>
  </dependencies>

  <profiles>
    <profile>
      <!-- profile which is activated is the swiftmq-client-home prop is defined.
           It tests the amqp broker impl using the swiftmq client libs -->
      <id>swiftmq-client</id>
      <activation>
        <property><name>swiftmq-client-home</name></property>
      </activation>
      <dependencies>
        <dependency>
          <groupId>com.swiftmq</groupId>
          <artifactId>swiftmq</artifactId>
          <version>9.2.0</version>
          <scope>system</scope>
          <systemPath>${swiftmq-client-home}/jars/swiftmq.jar</systemPath>
        </dependency>
        <dependency>
          <groupId>com.swiftmq</groupId>
          <artifactId>swiftmq-amqp</artifactId>
          <version>9.2.0</version>
          <scope>system</scope>
          <systemPath>${swiftmq-client-home}/jars/amqp.jar</systemPath>
        </dependency>
      </dependencies>
      <build>
        <plugins>
          <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>build-helper-maven-plugin</artifactId>
            <executions>
              <execution>
                <id>add-test-source</id>
                <phase>generate-sources</phase>
                <goals>
                  <goal>add-test-source</goal>
                </goals>
                <configuration>
                  <sources>
                    <source>${basedir}/src/test-swiftmq/java</source>
                  </sources>
                </configuration>
              </execution>
            </executions>
          </plugin>
            <plugin>
                <artifactId>maven-surefire-plugin</artifactId>
                <configuration>
                    <forkCount>1</forkCount>
                    <reuseForks>false</reuseForks>
                    <surefire.argLine>-Xmx512M -Djava.awt.headless=true</surefire.argLine>
                    <runOrder>alphabetical</runOrder>
                    <forkedProcessTimeoutInSeconds>120</forkedProcessTimeoutInSeconds>
                    <includes>
                        <include>**/*Test.*</include>
                    </includes>
                </configuration>
            </plugin>
        </plugins>
      </build>
    </profile>
    <profile>
      <id>activemq.tests-sanity</id>
      <activation>
        <property>
          <name>activemq.tests</name>
          <value>smoke</value>
        </property>
      </activation>
      <build>
        <plugins>
          <plugin>
            <artifactId>maven-surefire-plugin</artifactId>
            <configuration>
              <includes>
                <include>**/AmqpConnectionsTest.*</include>
                <include>**/JMSClientSslTest.*</include>
                <include>**/JoramJmsNioTest.*</include>
                <include>**/AmqpFrameParserTest.*</include>
              </includes>
            </configuration>
          </plugin>
        </plugins>
      </build>
    </profile>
    <profile>
      <id>activemq.tests-autoTransport</id>
      <activation>
        <property>
          <name>activemq.tests</name>
          <value>autoTransport</value>
        </property>
      </activation>
      <build>
        <plugins>
          <plugin>
            <artifactId>maven-surefire-plugin</artifactId>
            <configuration>
              <includes>
                <include>**/auto/*Test.java</include>
              </includes>
            </configuration>
          </plugin>
        </plugins>
      </build>
    </profile>

      <profile>
          <id>activemq.tests.windows.excludes</id>
          <activation>
              <os>
                  <family>Windows</family>
              </os>
          </activation>
          <build>
              <plugins>
                  <plugin>
                      <artifactId>maven-surefire-plugin</artifactId>
                      <configuration>
                          <excludes combine.children="append">
                              <exclude>**/JoramJmsTest.*</exclude>
                              <exclude>**/JoramJmsNioTest.*</exclude>
                              <exclude>**/JoramSslTest.*</exclude>
                              <exclude>**/JoramJmsNioPlusSslTest.*</exclude>
                          </excludes>
                      </configuration>
                  </plugin>
              </plugins>
          </build>
      </profile>
      <profile>
          <id>activemq.tests.solaris.excludes</id>
          <activation>
              <property>
                  <name>os.name</name>
                  <value>SunOS</value>
              </property>
          </activation>
          <build>
              <plugins>
                  <plugin>
                      <artifactId>maven-surefire-plugin</artifactId>
                      <configuration>
                          <excludes combine.children="append">
                              <exclude>**/JoramJmsTest.*</exclude>
                              <exclude>**/JMSClientSslTest.*</exclude>
                              <exclude>**/JMSClientNioTest.*</exclude>
                          </excludes>
                      </configuration>
                  </plugin>
              </plugins>
          </build>
      </profile>

  </profiles>
</project>
