<?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</groupId>
    <artifactId>apache</artifactId>
    <version>17</version>
  </parent>

  <groupId>org.apache.qpid</groupId>
  <artifactId>qpid-java-build</artifactId>
  <version>7.0.0-SNAPSHOT</version>
  <packaging>pom</packaging>

  <name>Apache Qpid for Java</name>
  <url>http://qpid.apache.org/components</url>
  <description>Apache Qpid for Java</description>
  <inceptionYear>2006</inceptionYear>

  <issueManagement>
    <system>JIRA</system>
    <url>https://issues.apache.org/jira/browse/QPID</url>
  </issueManagement>

  <ciManagement>
    <system>Jenkins</system>
    <url>https://builds.apache.org/view/M-R/view/Qpid/</url>
  </ciManagement>

  <mailingLists>
    <mailingList>
      <name>Apache Qpid Users</name>
      <subscribe>users-subscribe@qpid.apache.org</subscribe>
      <unsubscribe>users-unsubscribe@qpid.apache.org</unsubscribe>
      <post>users@qpid.apache.org</post>
      <archive>http://mail-archives.apache.org/mod_mbox/qpid-users/</archive>
    </mailingList>
    <mailingList>
      <name>Apache Qpid Developers</name>
      <subscribe>dev-subscribe@qpid.apache.org</subscribe>
      <unsubscribe>dev-unsubscribe@qpid.apache.org</unsubscribe>
      <post>dev@qpid.apache.org</post>
      <archive>http://mail-archives.apache.org/mod_mbox/qpid-dev/</archive>
    </mailingList>
  </mailingLists>

  <scm>
    <connection>scm:svn:http://svn.apache.org/repos/asf/qpid/java/trunk</connection>
    <developerConnection>scm:svn:https://svn.apache.org/repos/asf/qpid/java/trunk</developerConnection>
    <url>http://svn.apache.org/viewvc/qpid/java/trunk</url>
  </scm>

  <distributionManagement>
    <site>
      <id>${project.artifactId}-site</id>
      <url>${project.baseUri}</url>
    </site>
  </distributionManagement>

  <properties>
    <minimum-maven-version>3.0.0</minimum-maven-version>
    <minimum-java-version>1.7.0</minimum-java-version>
    <java.source>1.7</java.source>
    <java.target>1.7</java.target>

    <!-- enforcer plugin config properties -->
    <supported-test-profiles-regex>(java-mms.0-9|java-mms.0-9-1|java-mms.0-10|java-mms.1-0|java-bdb.0-9|java-bdb.0-9-1|java-bdb.0-10|java-dby.0-9|java-dby.0-9-1|java-dby.0-10|java-dby-mem.0-9|java-dby-mem.0-9-1|java-dby-mem.0-10|cpp|java-json.0-9-1|java-json.0-10)</supported-test-profiles-regex>

    <!-- surefire forked jvm arguments -->
    <argLine>-Xmx512m</argLine>

    <!-- test profile properties and defaults-->
    <qpid.home>${basedir}</qpid.home> <!-- override for broker tests -->
    <!-- Directory used for per test log file output -->
    <test.output.dir>${basedir}${file.separator}target${file.separator}surefire-reports${file.separator}${profile}</test.output.dir>

    <profile>java-mms.0-10</profile>
    <profile.broker.language>java</profile.broker.language>
    <profile.broker.type>internal</profile.broker.type>
    <profile.broker.stopped>Exception</profile.broker.stopped>
    <profile.broker.ready>BRK-1004</profile.broker.ready>
    <profile.broker.amqpTcpPortRegEx>BRK-1002 : Starting : Listening on TCP port (\d+)</profile.broker.amqpTcpPortRegEx>
    <profile.broker.amqpTlsPortRegEx>BRK-1002 : Starting : Listening on SSL port (\d+)</profile.broker.amqpTlsPortRegEx>
    <profile.broker.httpTcpPortRegEx>MNG-1002 : Starting : HTTP : Listening on TCP port (\d+)</profile.broker.httpTcpPortRegEx>
    <profile.broker.httpTlsPortRegEx>MNG-1002 : Starting : HTTP : Listening on SSL port (\d+)</profile.broker.httpTlsPortRegEx>
    <profile.broker.command>"${qpid.home}${file.separator}bin${file.separator}qpid-server" -sp "${at.sign}STORE_PATH" -st ${at.sign}STORE_TYPE -prop test.port=${at.sign}PORT -prop "qpid.work_dir=${at.sign}QPID_WORK"</profile.broker.command>
    <profile.broker.command.windows>"${qpid.home}${file.separator}bin${file.separator}qpid-server.bat" -sp "${at.sign}STORE_PATH" -st ${at.sign}STORE_TYPE -prop test.port=${at.sign}PORT -prop "qpid.work_dir=${at.sign}QPID_WORK"</profile.broker.command.windows>
    <profile.test.excludes>Excludes JavaExcludes ${profile}.excludes ${profile.specific.excludes}</profile.test.excludes>
    <profile.specific.excludes>JavaTransientExcludes Java010Excludes</profile.specific.excludes>
    <profile.broker.version>v0_10</profile.broker.version>
    <profile.test.amqp_port_protocols>["AMQP_0_8","AMQP_0_9","AMQP_0_9_1","AMQP_0_10"]</profile.test.amqp_port_protocols>
    <profile.broker.persistent>false</profile.broker.persistent>
    <profile.virtualhostnode.type>Memory</profile.virtualhostnode.type>
    <profile.broker.clean.between.tests>true</profile.broker.clean.between.tests>
    <profile.test_receive_timeout>1000</profile.test_receive_timeout>
    <profile.java.naming.factory.initial>org.apache.qpid.jndi.PropertiesFileInitialContextFactory</profile.java.naming.factory.initial>
    <profile.java.naming.provider.url>test-profiles${file.separator}test-provider.properties</profile.java.naming.provider.url>

    <dollar.sign>$</dollar.sign>
    <at.sign>@</at.sign>
    <bdb-version>5.0.104</bdb-version>
    <derby-version>10.11.1.1</derby-version>
    <logback-version>1.1.3</logback-version>
    <guava-version>18.0</guava-version>
    <fasterxml-jackson-version>2.5.3</fasterxml-jackson-version>
    <slf4j-version>1.7.12</slf4j-version>
    <jetty-version>8.1.17.v20150415</jetty-version>

    <!-- dependency version numbers -->
    <bonecp-version>0.7.1.RELEASE</bonecp-version>
    <commons-cli-version>1.2</commons-cli-version>
    <commons-codec-version>1.9</commons-codec-version>
    <commons-collections-version>3.2.1</commons-collections-version>
    <commons-lang-version>2.6</commons-lang-version>

    <geronimo-jms-1-1-version>1.1.1</geronimo-jms-1-1-version>
    <geronimo-jta-version>1.1.1</geronimo-jta-version>
    <geronimo-servlet-version>1.0</geronimo-servlet-version>
    <geronimo-j2ee-connector-version>2.0.0</geronimo-j2ee-connector-version>
    <geronimo-ejb-version>1.0.1</geronimo-ejb-version>
    <geronimo-kernel-version>2.2.1</geronimo-kernel-version>
    <bcel-version>5.2</bcel-version>

    <velocity-version>1.4</velocity-version>
    <jython-version>2.5.3</jython-version>
    <csvjdbc-version>1.0.8</csvjdbc-version>
    <jfreechart-version>1.0.13</jfreechart-version>

    <!-- test dependency version numbers -->
    <junit-version>4.11</junit-version>
    <mockito-version>1.9.5</mockito-version>
    <hamcrest-version>1.3</hamcrest-version>
    <httpclient-version>4.4</httpclient-version>
    <qpid-jms-client-version>0.11.0</qpid-jms-client-version>

    <exec-maven-plugin-version>1.3.2</exec-maven-plugin-version>
    <javacc-maven-plugin-version>2.6</javacc-maven-plugin-version>
    <maven-rar-plugin-version>2.3</maven-rar-plugin-version>
    <license-maven-plugin-version>1.6</license-maven-plugin-version>
    <jacoco-plugin-version>0.7.0.201403182114</jacoco-plugin-version>
    <maven-jxr-plugin-version>2.3</maven-jxr-plugin-version>
    <findbugs-maven-plugin-version>2.5.2</findbugs-maven-plugin-version>
    <jacoco-plugin-version>0.7.5.201505241946</jacoco-plugin-version>
    <apache-rat-plugin-version>0.11</apache-rat-plugin-version>
    <maven-docbx-plugin-version>2.0.15</maven-docbx-plugin-version>
    <maven-docbook-xml-plugin-version>5.0-all</maven-docbook-xml-plugin-version>

    <qpid.legacy.jms.client.groupid>org.apache.qpid</qpid.legacy.jms.client.groupid>
    <qpid.legacy.jms.client.artifactid>qpid-client</qpid.legacy.jms.client.artifactid>
    <qpid.legacy.jms.client.version>${project.version}</qpid.legacy.jms.client.version>
    <qpid.legacy.jms.client.type>jar</qpid.legacy.jms.client.type>
  </properties>

  <modules>
    <module>broker-codegen</module>
    <module>broker-core</module>
    <module>broker</module>
    <module>broker-plugins/access-control</module>
    <module>broker-plugins/amqp-0-8-protocol</module>
    <module>broker-plugins/amqp-0-10-protocol</module>
    <module>broker-plugins/amqp-1-0-protocol</module>
    <module>broker-plugins/amqp-msg-conv-0-8-to-0-10</module>
    <module>broker-plugins/amqp-msg-conv-0-8-to-1-0</module>
    <module>broker-plugins/amqp-msg-conv-0-10-to-1-0</module>
    <module>broker-plugins/derby-store</module>
    <module>broker-plugins/jdbc-provider-bone</module>
    <module>broker-plugins/jdbc-store</module>
    <module>broker-plugins/logging-logback</module>
    <module>broker-plugins/management-amqp</module>
    <module>broker-plugins/management-http</module>
    <module>broker-plugins/memory-store</module>
    <module>broker-plugins/websocket</module>
    <module>common</module>
    <module>client</module>
    <module>client/example</module>
    <module>jca</module>
    <module>jca/rar</module>

    <module>tools</module>

    <module>qpid-systests-parent</module>
    <module>qpid-test-utils</module>
    <module>systests</module>
    <module>perftests</module>
    <module>qpid-perftests-systests</module>

    <module>perftests/visualisation-jfc</module>
    <module>bdbstore</module>
    <module>bdbstore/systests</module>

    <module>joramtests</module>
    <module>tck</module>

    <module>doc</module>
  </modules>

  <dependencies>

    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <scope>test</scope>
    </dependency>

    <dependency>
      <groupId>org.mockito</groupId>
      <artifactId>mockito-all</artifactId>
      <scope>test</scope>
    </dependency>
  </dependencies>

  <dependencyManagement>
    <dependencies>
      <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>${junit-version}</version>
        <scope>test</scope>
      </dependency>
      <dependency>
        <groupId>org.mockito</groupId>
        <artifactId>mockito-all</artifactId>
        <version>${mockito-version}</version>
        <scope>test</scope>
      </dependency>
    </dependencies>
  </dependencyManagement>

  <build>

    <pluginManagement>
      <plugins>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-compiler-plugin</artifactId>
          <configuration>
            <source>${java.source}</source>
            <target>${java.target}</target>
            <optimize>true</optimize>
            <showDeprecation>true</showDeprecation>
            <showWarnings>true</showWarnings>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.jacoco</groupId>
          <artifactId>jacoco-maven-plugin</artifactId>
          <version>${jacoco-plugin-version}</version>
        </plugin>
        <plugin>
          <groupId>org.codehaus.mojo</groupId>
          <artifactId>license-maven-plugin</artifactId>
          <version>${license-maven-plugin-version}</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-jxr-plugin</artifactId>
          <version>${maven-jxr-plugin-version}</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-rar-plugin</artifactId>
          <version>${maven-rar-plugin-version}</version>
        </plugin>
        <plugin>
          <groupId>org.codehaus.mojo</groupId>
          <artifactId>findbugs-maven-plugin</artifactId>
          <version>${findbugs-maven-plugin-version}</version>
        </plugin>
        <plugin>
          <groupId>com.agilejava.docbkx</groupId>
          <artifactId>docbkx-maven-plugin</artifactId>
          <version>${maven-docbx-plugin-version}</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-release-plugin</artifactId>
          <configuration>
            <tagNameFormat>@{project.version}</tagNameFormat>
          </configuration>
        </plugin>
      </plugins>
    </pluginManagement>

    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-antrun-plugin</artifactId>
        <executions>
          <execution>
            <id>output-test-properties</id>
            <phase>validate</phase>
            <goals>
              <goal>run</goal>
            </goals>
            <configuration>
              <target>
                <echo>Qpid Test Profile Properties</echo>
                <echo>[profile] ${profile}</echo>
                <echo>[profile.broker.language] ${profile.broker.language}</echo>
                <echo>[profile.broker.type] ${profile.broker.type}</echo>
                <echo>[profile.broker.command] ${profile.broker.command}</echo>
                <echo>[profile.specific.excludes] ${profile.specific.excludes}</echo>
                <echo>[profile.test.excludes] ${profile.test.excludes}</echo>
                <echo>[profile.broker.version] ${profile.broker.version}</echo>
                <echo>[profile.test.amqp_port_protocols] ${profile.test.amqp_port_protocols}</echo>
                <echo>[profile.broker.persistent] ${profile.broker.persistent}</echo>
                <echo>[profile.virtualhostnode.type] ${profile.virtualhostnode.type}</echo>
                <echo>[profile.virtualhostnode.context.blueprint] ${profile.virtualhostnode.context.blueprint}</echo>
                <echo>[profile.test_receive_timeout] ${profile.test_receive_timeout}</echo>
              </target>
            </configuration>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-surefire-plugin</artifactId>
        <configuration>
          <includes>
            <include>**/*Test.java</include>
          </includes>
          <redirectTestOutputToFile>true</redirectTestOutputToFile>
          <reportsDirectory>${test.output.dir}</reportsDirectory>
          <systemPropertyVariables>
            <!-- Defaults -->
            <QPID_HOME>${qpid.home}</QPID_HOME>
            <broker.config>${qpid.home}${file.separator}etc${file.separator}config-systests.json</broker.config>
            <qpid.dest_syntax>BURL</qpid.dest_syntax>
            <test.port>0</test.port>
            <test.hport>0</test.hport>
            <test.port.ssl>0</test.port.ssl>
            <test.port.alt>0</test.port.alt>
            <test.port.alt.ssl>0</test.port.alt.ssl>
            <test.exclude>true</test.exclude>
            <test.mem>512M</test.mem>
            <profile.clustered>false</profile.clustered>

            <!-- Profile Based Values -->
            <profile>${profile}</profile>
            <broker.language>${profile.broker.language}</broker.language>
            <broker.type>${profile.broker.type}</broker.type>
            <broker.stopped>${profile.broker.stopped}</broker.stopped>
            <broker.ready>${profile.broker.ready}</broker.ready>
            <broker.amqpTcpPortRegEx>${profile.broker.amqpTcpPortRegEx}</broker.amqpTcpPortRegEx>
            <broker.httpTcpPortRegEx>${profile.broker.httpTcpPortRegEx}</broker.httpTcpPortRegEx>
            <broker.amqpTlsPortRegEx>${profile.broker.amqpTlsPortRegEx}</broker.amqpTlsPortRegEx>
            <broker.httpTlsPortRegEx>${profile.broker.httpTlsPortRegEx}</broker.httpTlsPortRegEx>
            <broker.command>${profile.broker.command}</broker.command>
            <broker.command.windows>${profile.broker.command.windows}</broker.command.windows>
            <test.excludes>${profile.test.excludes}</test.excludes>
            <broker.version>${profile.broker.version}</broker.version>
            <test.amqp_port_protocols>${profile.test.amqp_port_protocols}</test.amqp_port_protocols>
            <broker.persistent>${profile.broker.persistent}</broker.persistent>
            <virtualhostnode.type>${profile.virtualhostnode.type}</virtualhostnode.type>
            <virtualhostnode.context.blueprint>${profile.virtualhostnode.context.blueprint}</virtualhostnode.context.blueprint>
            <broker.clean.between.tests>${profile.broker.clean.between.tests}</broker.clean.between.tests>
            <qpid.globalAddressDomains>[]</qpid.globalAddressDomains>
            <test.output.dir>${test.output.dir}</test.output.dir>
            <broker.clean.between.tests>true</broker.clean.between.tests>
            <qpid.test_receive_timeout>${profile.test_receive_timeout}</qpid.test_receive_timeout>
            <java.naming.factory.initial>${profile.java.naming.factory.initial}</java.naming.factory.initial>
            <java.naming.provider.url>${profile.java.naming.provider.url}</java.naming.provider.url>
          </systemPropertyVariables>
        </configuration>
      </plugin>

      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-enforcer-plugin</artifactId>
        <executions>
          <execution>
            <id>enforce-minimum-versions</id>
            <goals>
              <goal>enforce</goal>
            </goals>
            <configuration>
              <rules>
                <requireJavaVersion>
                  <version>${minimum-java-version}</version>
                </requireJavaVersion>
                <requireMavenVersion>
                  <version>${minimum-maven-version}</version>
                </requireMavenVersion>
              </rules>
              <fail>true</fail>
            </configuration>
          </execution>
          <execution>
            <id>enforce-versions-standard-properties</id>
            <goals>
              <goal>enforce</goal>
            </goals>
            <configuration>
              <rules>
                <requireProperty>
                  <property>profile</property>
                  <message>You must set a test profile!</message>
                  <regex>${supported-test-profiles-regex}</regex>
                  <regexMessage>You have set an unsupported test profile! Allowed values match: ${supported-test-profiles-regex}</regexMessage>
                </requireProperty>
              </rules>
              <fail>true</fail>
            </configuration>
          </execution>
        </executions>
      </plugin>

      <plugin>
        <groupId>org.jacoco</groupId>
        <artifactId>jacoco-maven-plugin</artifactId>
        <executions>
          <execution>
            <id>default-prepare-agent</id>
            <goals>
              <goal>prepare-agent</goal>
            </goals>
          </execution>
        </executions>
      </plugin>

      <plugin>
        <groupId>org.apache.rat</groupId>
        <artifactId>apache-rat-plugin</artifactId>
        <configuration>
          <excludes>
            <exclude>test-profiles/test_resources/ssl/**</exclude>
            <exclude>specs/**</exclude>
            <exclude>DEPENDENCIES</exclude>
            <exclude>.travis.yml</exclude>
          </excludes>
        </configuration>
      </plugin>

    </plugins>
  </build>

  <repositories>
    <!-- For the BDB JE dependency of the optional bdbstore plugin modules-->
    <repository>
      <id>oracle.releases</id>
      <url>http://download.oracle.com/maven</url>
      <layout>default</layout>
      <releases>
        <enabled>true</enabled>
      </releases>
      <snapshots>
        <enabled>false</enabled>
      </snapshots>
    </repository>
  </repositories>

  <reporting>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-project-info-reports-plugin</artifactId>
        <configuration>
          <dependencyDetailsEnabled>false</dependencyDetailsEnabled>
          <dependencyLocationsEnabled>false</dependencyLocationsEnabled>
        </configuration>
      </plugin>

      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>license-maven-plugin</artifactId>
        <version>${license-maven-plugin-version}</version>
      </plugin>

      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-surefire-report-plugin</artifactId>
        <reportSets>
          <reportSet>
            <reports>
              <report>report-only</report>
            </reports>
          </reportSet>
        </reportSets>
        <configuration>
          <alwaysGenerateSurefireReport>false</alwaysGenerateSurefireReport>
          <reportsDirectory>${test.output.dir}</reportsDirectory>
        </configuration>
      </plugin>

      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-jxr-plugin</artifactId>
        <version>${maven-jxr-plugin-version}</version>
      </plugin>

      <plugin>
        <groupId>org.jacoco</groupId>
        <artifactId>jacoco-maven-plugin</artifactId>
        <version>${jacoco-plugin-version}</version>
      </plugin>

      <plugin>
        <groupId>org.apache.rat</groupId>
        <artifactId>apache-rat-plugin</artifactId>
        <version>${apache-rat-plugin-version}</version>
        <configuration>
          <excludes>
            <exclude>build/**</exclude>
            <exclude>lib/**</exclude>
            <exclude>test-profiles/test_resources/ssl/**</exclude>
            <exclude>DEPENDENCIES</exclude>
            <exclude>.travis.yml</exclude>
          </excludes>
        </configuration>
      </plugin>

    </plugins>
  </reporting>

  <profiles>
    <profile>
      <id>java-mms.0-10</id>
      <activation>
        <activeByDefault>true</activeByDefault>
        <property>
          <name>profile</name>
          <value>java-mms.0-10</value>
        </property>
      </activation>
      <properties>
        <profile>java-mms.0-10</profile>
        <profile.specific.excludes>JavaTransientExcludes Java010Excludes</profile.specific.excludes>
        <profile.broker.version>v0_10</profile.broker.version>
        <profile.test.amqp_port_protocols>["AMQP_0_8","AMQP_0_9","AMQP_0_9_1","AMQP_0_10"]</profile.test.amqp_port_protocols>
        <profile.broker.persistent>false</profile.broker.persistent>
        <profile.virtualhostnode.type>Memory</profile.virtualhostnode.type>
        <profile.virtualhostnode.context.blueprint>{"type":"ProvidedStore","globalAddressDomains":"${dollar.sign}{qpid.globalAddressDomains}"}</profile.virtualhostnode.context.blueprint>
      </properties>
    </profile>

    <profile>
      <id>java-mms.0-9-1</id>
      <activation>
        <property>
          <name>profile</name>
          <value>java-mms.0-9-1</value>
        </property>
      </activation>
      <properties>
        <profile>java-mms.0-9-1</profile>
        <profile.specific.excludes>JavaTransientExcludes XAExcludes JavaPre010Excludes</profile.specific.excludes>
        <profile.broker.version>v0_9_1</profile.broker.version>
        <profile.test.amqp_port_protocols>["AMQP_0_8","AMQP_0_9","AMQP_0_9_1"]</profile.test.amqp_port_protocols>
        <profile.broker.persistent>false</profile.broker.persistent>
        <profile.virtualhostnode.type>Memory</profile.virtualhostnode.type>
        <profile.virtualhostnode.context.blueprint>{"type":"ProvidedStore","globalAddressDomains":"${dollar.sign}{qpid.globalAddressDomains}"}</profile.virtualhostnode.context.blueprint>
      </properties>
    </profile>

    <profile>
      <id>java-mms.0-9</id>
      <activation>
        <property>
          <name>profile</name>
          <value>java-mms.0-9</value>
        </property>
      </activation>
      <properties>
        <profile>java-mms.0-9</profile>
        <profile.specific.excludes>JavaTransientExcludes XAExcludes JavaPre010Excludes</profile.specific.excludes>
        <profile.broker.version>v0_9</profile.broker.version>
        <profile.test.amqp_port_protocols>["AMQP_0_8","AMQP_0_9"]</profile.test.amqp_port_protocols>
        <profile.broker.persistent>false</profile.broker.persistent>
        <profile.virtualhostnode.type>Memory</profile.virtualhostnode.type>
        <profile.virtualhostnode.context.blueprint>{"type":"ProvidedStore","globalAddressDomains":"${dollar.sign}{qpid.globalAddressDomains}"}</profile.virtualhostnode.context.blueprint>
      </properties>
    </profile>

    <profile>
      <id>java-bdb.0-10</id>
      <activation>
        <property>
          <name>profile</name>
          <value>java-bdb.0-10</value>
        </property>
      </activation>
      <properties>
        <profile>java-bdb.0-10</profile>
        <profile.specific.excludes>JavaPersistentExcludes Java010Excludes JavaBDBExcludes</profile.specific.excludes>
        <profile.broker.version>v0_10</profile.broker.version>
        <profile.test.amqp_port_protocols>["AMQP_0_8","AMQP_0_9","AMQP_0_9_1","AMQP_0_10"]</profile.test.amqp_port_protocols>
        <profile.broker.persistent>true</profile.broker.persistent>
        <profile.virtualhostnode.type>BDB</profile.virtualhostnode.type>
        <profile.virtualhostnode.context.blueprint>{"type":"ProvidedStore","globalAddressDomains":"${dollar.sign}{qpid.globalAddressDomains}"}</profile.virtualhostnode.context.blueprint>
      </properties>
    </profile>

    <profile>
      <id>java-bdb.0-9-1</id>
      <activation>
        <property>
          <name>profile</name>
          <value>java-bdb.0-9-1</value>
        </property>
      </activation>
      <properties>
        <profile>java-bdb.0-9-1</profile>
        <profile.specific.excludes>JavaPersistentExcludes XAExcludes JavaPre010Excludes JavaBDBExcludes</profile.specific.excludes>
        <profile.broker.version>v0_9_1</profile.broker.version>
        <profile.test.amqp_port_protocols>["AMQP_0_8","AMQP_0_9","AMQP_0_9_1"]</profile.test.amqp_port_protocols>
        <profile.broker.persistent>true</profile.broker.persistent>
        <profile.virtualhostnode.type>BDB</profile.virtualhostnode.type>
        <profile.virtualhostnode.context.blueprint>{"type":"ProvidedStore","globalAddressDomains":"${dollar.sign}{qpid.globalAddressDomains}"}</profile.virtualhostnode.context.blueprint>
      </properties>
    </profile>

    <profile>
      <id>java-bdb.0-9</id>
      <activation>
        <property>
          <name>profile</name>
          <value>java-bdb.0-9</value>
        </property>
      </activation>
      <properties>
        <profile>java-bdb.0-9</profile>
        <profile.specific.excludes>JavaPersistentExcludes XAExcludes JavaPre010Excludes JavaBDBExcludes</profile.specific.excludes>
        <profile.broker.version>v0_9</profile.broker.version>
        <profile.test.amqp_port_protocols>["AMQP_0_8","AMQP_0_9"]</profile.test.amqp_port_protocols>
        <profile.broker.persistent>true</profile.broker.persistent>
        <profile.virtualhostnode.type>BDB</profile.virtualhostnode.type>
        <profile.virtualhostnode.context.blueprint>{"type":"ProvidedStore","globalAddressDomains":"${dollar.sign}{qpid.globalAddressDomains}"}</profile.virtualhostnode.context.blueprint>
      </properties>
    </profile>

    <profile>
      <id>java-dby-mem.0-10</id>
      <activation>
        <property>
          <name>profile</name>
          <value>java-dby-mem.0-10</value>
        </property>
      </activation>
      <properties>
        <profile>java-dby-mem.0-10</profile>
        <profile.specific.excludes>JavaPersistentExcludes JavaDerbyExcludes Java010Excludes</profile.specific.excludes>
        <profile.broker.version>v0_10</profile.broker.version>
        <profile.test.amqp_port_protocols>["AMQP_0_8","AMQP_0_9","AMQP_0_9_1","AMQP_0_10"]</profile.test.amqp_port_protocols>
        <profile.broker.persistent>true</profile.broker.persistent>
        <profile.virtualhostnode.type>DERBY</profile.virtualhostnode.type>
        <profile.virtualhostnode.context.blueprint>{"type":"ProvidedStore","globalAddressDomains":"${dollar.sign}{qpid.globalAddressDomains}"}</profile.virtualhostnode.context.blueprint>
      </properties>
    </profile>

    <profile>
      <id>java-dby-mem.0-9-1</id>
      <activation>
        <property>
          <name>profile</name>
          <value>java-dby-mem.0-9-1</value>
        </property>
      </activation>
      <properties>
        <profile>java-dby-mem.0-9-1</profile>
        <profile.specific.excludes>JavaPersistentExcludes JavaDerbyExcludes XAExcludes JavaPre010Excludes</profile.specific.excludes>
        <profile.broker.version>v0_9_1</profile.broker.version>
        <profile.test.amqp_port_protocols>["AMQP_0_8","AMQP_0_9","AMQP_0_9_1"]</profile.test.amqp_port_protocols>
        <profile.broker.persistent>true</profile.broker.persistent>
        <profile.virtualhostnode.type>DERBY</profile.virtualhostnode.type>
        <profile.virtualhostnode.context.blueprint>{"type":"ProvidedStore","globalAddressDomains":"${dollar.sign}{qpid.globalAddressDomains}"}</profile.virtualhostnode.context.blueprint>
      </properties>
    </profile>

    <profile>
      <id>java-dby-mem.0-9</id>
      <activation>
        <property>
          <name>profile</name>
          <value>java-dby-mem.0-9</value>
        </property>
      </activation>
      <properties>
        <profile>java-dby-mem.0-9</profile>
        <profile.specific.excludes>JavaPersistentExcludes JavaDerbyExcludes XAExcludes JavaPre010Excludes</profile.specific.excludes>
        <profile.broker.version>v0_9</profile.broker.version>
        <profile.test.amqp_port_protocols>["AMQP_0_8","AMQP_0_9"]</profile.test.amqp_port_protocols>
        <profile.broker.persistent>true</profile.broker.persistent>
        <profile.virtualhostnode.type>DERBY</profile.virtualhostnode.type>
        <profile.virtualhostnode.context.blueprint>{"type":"ProvidedStore","globalAddressDomains":"${dollar.sign}{qpid.globalAddressDomains}"}</profile.virtualhostnode.context.blueprint>
      </properties>
    </profile>

    <profile>
      <id>java-dby.0-10</id>
      <activation>
        <property>
          <name>profile</name>
          <value>java-dby.0-10</value>
        </property>
      </activation>
      <properties>
        <profile>java-dby.0-10</profile>
        <profile.specific.excludes>JavaPersistentExcludes JavaDerbyExcludes Java010Excludes</profile.specific.excludes>
        <profile.broker.version>v0_10</profile.broker.version>
        <profile.test.amqp_port_protocols>["AMQP_0_8","AMQP_0_9","AMQP_0_9_1","AMQP_0_10"]</profile.test.amqp_port_protocols>
        <profile.broker.persistent>true</profile.broker.persistent>
        <profile.virtualhostnode.type>DERBY</profile.virtualhostnode.type>
        <profile.virtualhostnode.context.blueprint>{"type":"ProvidedStore","globalAddressDomains":"${dollar.sign}{qpid.globalAddressDomains}"}</profile.virtualhostnode.context.blueprint>
        <profile.test_receive_timeout>2000</profile.test_receive_timeout>
      </properties>
    </profile>

    <profile>
      <id>java-dby.0-9-1</id>
      <activation>
        <property>
          <name>profile</name>
          <value>java-dby.0-9-1</value>
        </property>
      </activation>
      <properties>
        <profile>java-dby.0-9-1</profile>
        <profile.specific.excludes>JavaPersistentExcludes JavaDerbyExcludes XAExcludes JavaPre010Excludes</profile.specific.excludes>
        <profile.broker.version>v0_9_1</profile.broker.version>
        <profile.test.amqp_port_protocols>["AMQP_0_8","AMQP_0_9","AMQP_0_9_1"]</profile.test.amqp_port_protocols>
        <profile.broker.persistent>true</profile.broker.persistent>
        <profile.virtualhostnode.type>DERBY</profile.virtualhostnode.type>
        <profile.virtualhostnode.context.blueprint>{"type":"ProvidedStore","globalAddressDomains":"${dollar.sign}{qpid.globalAddressDomains}"}</profile.virtualhostnode.context.blueprint>
        <profile.test_receive_timeout>2000</profile.test_receive_timeout>
      </properties>
    </profile>

    <profile>
      <id>java-dby.0-9</id>
      <activation>
        <property>
          <name>profile</name>
          <value>java-dby.0-9</value>
        </property>
      </activation>
      <properties>
        <profile>java-dby.0-9</profile>
        <profile.specific.excludes>JavaPersistentExcludes JavaDerbyExcludes XAExcludes JavaPre010Excludes</profile.specific.excludes>
        <profile.broker.version>v0_9</profile.broker.version>
        <profile.test.amqp_port_protocols>["AMQP_0_8","AMQP_0_9"]</profile.test.amqp_port_protocols>
        <profile.broker.persistent>true</profile.broker.persistent>
        <profile.virtualhostnode.type>DERBY</profile.virtualhostnode.type>
        <profile.virtualhostnode.context.blueprint>{"type":"ProvidedStore","globalAddressDomains":"${dollar.sign}{qpid.globalAddressDomains}"}</profile.virtualhostnode.context.blueprint>
        <profile.test_receive_timeout>2000</profile.test_receive_timeout>
      </properties>
    </profile>

    <profile>
      <id>java-mms.1-0</id>
      <activation>
        <property>
          <name>profile</name>
          <value>java-mms.1-0</value>
        </property>
      </activation>
      <properties>
        <profile>java-mms.1-0</profile>
        <profile.specific.excludes>JavaTransientExcludes Java10Excludes Java10BrokenTestsExcludes Java10UninvestigatedTestsExcludes</profile.specific.excludes>
        <profile.broker.version>v1_0</profile.broker.version>
        <profile.test.amqp_port_protocols>["AMQP_0_8","AMQP_0_9","AMQP_0_9_1","AMQP_0_10","AMQP_1_0"]</profile.test.amqp_port_protocols>
        <profile.broker.persistent>false</profile.broker.persistent>
        <profile.virtualhostnode.type>Memory</profile.virtualhostnode.type>
        <profile.virtualhostnode.context.blueprint>{"type":"ProvidedStore","globalAddressDomains":"${dollar.sign}{qpid.globalAddressDomains}"}</profile.virtualhostnode.context.blueprint>
        <profile.java.naming.factory.initial>org.apache.qpid.jms.jndi.JmsInitialContextFactory</profile.java.naming.factory.initial>
        <profile.java.naming.provider.url>test-profiles${file.separator}test-provider-1-0.properties</profile.java.naming.provider.url>

      </properties>
    </profile>

    <!--
    Split store profiles.
    Virtual host configuration can be overridden by setting blueprint property like below
    -Dprofile.virtualhostnode.context.blueprint='{"type":"BDB","storePath":"${qpid.work_dir}/${this:name}/bdb"}'
    -->
    <profile>
      <id>java-json.0-9-1</id>
      <activation>
        <property>
          <name>profile</name>
          <value>java-json.0-9-1</value>
        </property>
      </activation>
      <properties>
        <profile>java-json.0-9-1</profile>
        <profile.specific.excludes>JavaPersistentExcludes JavaJsonExcludes XAExcludes JavaPre010Excludes</profile.specific.excludes>
        <profile.broker.version>v0_9_1</profile.broker.version>
        <profile.test.amqp_port_protocols>["AMQP_0_8","AMQP_0_9","AMQP_0_9_1"]</profile.test.amqp_port_protocols>
        <profile.broker.persistent>true</profile.broker.persistent>
        <profile.virtualhostnode.type>JSON</profile.virtualhostnode.type>
        <profile.virtualhostnode.context.blueprint>{"type":"DERBY","storePath":"${dollar.sign}{json:qpid.work_dir}${dollar.sign}{json:file.separator}${dollar.sign}{this:name}${dollar.sign}{json:file.separator}derby","globalAddressDomains":"${dollar.sign}{qpid.globalAddressDomains}"}</profile.virtualhostnode.context.blueprint>
      </properties>
    </profile>

      <profile>
          <id>java-json.0-10</id>
          <activation>
              <property>
                  <name>profile</name>
                  <value>java-json.0-10</value>
              </property>
          </activation>
          <properties>
              <profile>java-json.0-10</profile>
              <profile.specific.excludes>JavaPersistentExcludes JavaJsonExcludes XAExcludes Java010Excludes</profile.specific.excludes>
              <profile.broker.version>v0_10</profile.broker.version>
              <profile.test.amqp_port_protocols>["AMQP_0_8","AMQP_0_9","AMQP_0_9_1","AMQP_0_10"]</profile.test.amqp_port_protocols>
              <profile.broker.persistent>true</profile.broker.persistent>
              <profile.virtualhostnode.type>JSON</profile.virtualhostnode.type>
              <profile.virtualhostnode.context.blueprint>{"type":"DERBY","storePath":"${dollar.sign}{json:qpid.work_dir}${dollar.sign}{json:file.separator}${dollar.sign}{this:name}${dollar.sign}{json:file.separator}derby","globalAddressDomains":"${dollar.sign}{qpid.globalAddressDomains}"}</profile.virtualhostnode.context.blueprint>
          </properties>
      </profile>

      <profile>
      <id>cpp</id>
      <activation>
        <property>
          <name>profile</name>
          <value>cpp</value>
        </property>
      </activation>
      <properties>
        <profile>cpp</profile>
        <profile.broker.language>cpp</profile.broker.language>
        <profile.broker.type>spawned</profile.broker.type>
        <profile.broker.stopped>Exception constructed</profile.broker.stopped>
        <profile.broker.ready>Listening on TCP</profile.broker.ready>
        <profile.broker.amqpTcpPortRegEx>Listening on TCP/TCP6 port (\d+)</profile.broker.amqpTcpPortRegEx>
        <profile.broker.amqpTlsPortRegEx>Listening for SSL connections on TCP/TCP6 port (\d+)</profile.broker.amqpTlsPortRegEx>
        <profile.broker.httpTcpPortRegEx>x^</profile.broker.httpTcpPortRegEx>
        <profile.broker.httpTlsPortRegEx>x^</profile.broker.httpTlsPortRegEx>
        <profile.broker.command>"${cpp-broker-dir}/qpidd" -p ${at.sign}PORT --data-dir "${at.sign}QPID_WORK" -t --auth no --no-module-dir</profile.broker.command>
        <profile.broker.command.windows />
        <profile.test.excludes>Excludes CPPExcludes ${profile}.excludes ${profile.specific.excludes} cpp.excludes</profile.test.excludes>
        <profile.specific.excludes>CPPPrefetchExcludes CPPTransientExcludes</profile.specific.excludes>
        <profile.broker.version>v0_10</profile.broker.version>
        <profile.broker.persistent>false</profile.broker.persistent>
      </properties>
      <build>
        <plugins>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-enforcer-plugin</artifactId>
            <executions>
              <execution>
                <id>enforce-cpp-broker-dir-defined</id>
                <goals>
                  <goal>enforce</goal>
                </goals>
                <configuration>
                  <rules>
                    <requireProperty>
                      <property>cpp-broker-dir</property>
                      <message>You must set a the CPP broker directory property for this profile. (e.g. -Dcpp-broker-dir=/somedir/cpp/src)</message>
                    </requireProperty>
                  </rules>
                  <fail>true</fail>
                </configuration>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </profile>

    <!-- Profile to update the Apache parent pom profile of the same name to prevent source assembly at java build level.-->
    <profile>
      <id>apache-release</id>
      <build>
        <plugins>
          <plugin>
            <artifactId>maven-assembly-plugin</artifactId>
            <executions>
              <execution>
                <id>source-release-assembly</id>
                <phase>package</phase>
                <goals>
                  <goal>single</goal>
                </goals>
                <configuration>
                  <formats>
                    <format>tar.gz</format>
                  </formats>
                  <tarLongFileMode>gnu</tarLongFileMode>
                  <finalName>qpid-java-${project.version}</finalName>
                  <appendAssemblyId>false</appendAssemblyId>
                </configuration>
              </execution>
            </executions>
          </plugin>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-enforcer-plugin</artifactId>
            <executions>
              <execution>
                <id>enforce-java-for-release</id>
                <goals>
                  <goal>enforce</goal>
                </goals>
                <configuration>
                  <rules>
                    <requireJavaVersion>
                      <version>[1.7,1.8)</version>
                      <message>Please, use JDK 1.7 for release</message>
                    </requireJavaVersion>
                  </rules>
                </configuration>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </profile>

    <profile>
      <id>dependency-check</id>
      <!-- Use this profile with the packaging phase, to perform some checks on the module dependencies.

           Verifies that only the explicitly included licences have been used for any compile or runtime dependencies,
           and additionally for any modules that set 'dependency-change-verification' true also checks for a change in
           dependencies against a previous reference output that might signal need for updates to LICENSE and/or NOTICE
           files included in their binary assembly files.
      -->
      <properties>
        <license-maven-plugin-output-dir>${project.build.directory}/license-maven-plugin</license-maven-plugin-output-dir>
        <dependency-verification-output-dir>${project.build.directory}/dependency-change-verification</dependency-verification-output-dir>
        <dependency-verification-generated-file>${dependency-verification-output-dir}/PROCESSED_DEPENDENCIES_INFO</dependency-verification-generated-file>
        <dependency-verification-reference-file>${basedir}/src/main/assembly/dependency-verification/DEPENDENCIES_REFERENCE</dependency-verification-reference-file>
        <dependency-change-verification>false</dependency-change-verification>
      </properties>

      <build>
        <plugins>
          <plugin>
            <groupId>org.codehaus.mojo</groupId>
            <artifactId>license-maven-plugin</artifactId>
            <!-- version specified in pluginManagement -->
            <configuration>
              <failIfWarning>true</failIfWarning>
              <excludedScopes>provided</excludedScopes>
              <outputDirectory>${license-maven-plugin-output-dir}</outputDirectory>
              <!-- Exclude logback from being checked, it is dual licensed and lists both licenses in META-INF Bundle-License   -->
              <!-- Exclude BCEL from being checked, it is ALv2 but doesnt have the necessary metadata -->
              <excludedGroups>org.apache.bcel|ch.qos.logback</excludedGroups>
              <includedLicenses>
                <includedLicense>Apache Software License, Version 2.0</includedLicense>
                <includedLicense>The MIT License</includedLicense>
                <includedLicense>BSD License</includedLicense>
                <includedLicense>Eclipse Public License - Version 1.0</includedLicense>
                <includedLicense>Common Public License Version 1.0</includedLicense>
                <includedLicense>Academic Free License v2.1</includedLicense>
              </includedLicenses>
              <licenseMerges>
                <licenseMerge>Apache Software License, Version 2.0|The Apache Software License, Version 2.0|Apache Software License - Version 2.0|Apache v2|Apache 2|Apache License, Version 2.0</licenseMerge>
                <licenseMerge>The MIT License|MIT License</licenseMerge>
                <licenseMerge>BSD License|New BSD|New BSD License|BSD-3-Clause</licenseMerge>
                <licenseMerge>Eclipse Public License - Version 1.0|Eclipse Public License - v 1.0</licenseMerge>
                <licenseMerge>Academic Free License v2.1|AFL-2.1</licenseMerge>
              </licenseMerges>
            </configuration>
            <executions>
              <execution>
                <id>check-third-party-licensing</id>
                <phase>prepare-package</phase>
                <goals>
                  <goal>add-third-party</goal>
                </goals>
              </execution>
            </executions>
          </plugin>

          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-antrun-plugin</artifactId>
            <!--version specified in pluginManagement -->
            <executions>
              <execution>
                <id>dependency-change-verification</id>
                <phase>prepare-package</phase>
                <goals>
                  <goal>run</goal>
                </goals>
                <configuration>
                  <target if="${dependency-change-verification}">
                    <!-- Set the output location for the generated file -->
                    <condition property="dependency-verification-output-file" value="${dependency-verification-reference-file}" else="${dependency-verification-generated-file}">
                      <istrue value="${update-dependency-reference}" />
                    </condition>
                    <!--  Output the ALv2 header and a title, then append the DEPENDENCIES file contents,
                          processing to strip out the qpid module version info -->
                    <echo>Generating dependency info at: ${dependency-verification-output-file}</echo>
                    <concat destfile="${dependency-verification-output-file}" append="false">
                      <header filtering="no" trimleading="yes">
                        #
                        # 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.
                        #

                        #// ------------------------------------------------------------------
                        # TRIMMED 3RD PARTY DEPENDENCY INFORMATION FOR MODIFICATION CHECKS
                        #
                      </header>
                      <path path="${project.build.outputDirectory}/META-INF/DEPENDENCIES" />
                    </concat>

                    <replaceregexp file="${dependency-verification-output-file}" flags="gm" replace="">
                      <regexp id="stripqpidcontentheader" pattern="^\/\/\ .*\n|^Qpid\ .*\n" />
                    </replaceregexp>
                    <replaceregexp file="${dependency-verification-output-file}" flags="gm">
                      <regexp id="stripqpidcontentversions" pattern="(^.*org.apache.qpid:.*:.*):.*" />
                      <substitution expression="\1" />
                    </replaceregexp>
                    <!-- Ensure the reference file is present -->
                    <fail message="Dependency info reference file was not present at: ${dependency-verification-reference-file}. You can generate an initial reference file by running again with -Dupdate-dependency-reference.">
                      <condition>
                        <not>
                          <available file="${dependency-verification-reference-file}" />
                        </not>
                      </condition>
                    </fail>
                    <!--  Compare output to the reference file to check they are the same, fail if they arent -->
                    <echo>Comparing to against reference info at: ${dependency-verification-reference-file}</echo>
                    <fail message="Generated dependency info does not match the reference. Ensure LICENCE and NOTICE files are correct and then update the reference by running again with -Dupdate-dependency-reference. Generated file: '${dependency-verification-output-file}'. Reference file: '${dependency-verification-reference-file}'.">
                      <condition>
                        <not>
                          <filesmatch file1="${dependency-verification-output-file}" file2="${dependency-verification-reference-file}" textfile="true" />
                        </not>
                      </condition>
                    </fail>
                  </target>
                </configuration>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </profile>
  </profiles>
</project>

