<?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>16</version>
  </parent>

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

  <name>Qpid Java Build</name>
  <url>http://qpid.apache.org/components</url>
  <description>Apache Qpid Java Components</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/tags/6.0.3</connection>
    <developerConnection>scm:svn:https://svn.apache.org/repos/asf/qpid/java/tags/6.0.3</developerConnection>
    <url>http://svn.apache.org/viewvc/qpid/java/tags/6.0.3</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-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 -->
    <qpid.home.qbtc.output>${qpid.home}${file.separator}target${file.separator}qbtc-test-config</qpid.home.qbtc.output> <!-- override for broker tests -->
    <qpid.work>${project.build.directory}${file.separator}QPID_WORK</qpid.work>
    <!-- Directory used for per test log file output -->
    <test.output.dir>${basedir}${file.separator}target${file.separator}surefire-reports</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.command>"${qpid.home}${file.separator}bin${file.separator}qpid-server" -sp ${at.sign}STORE_PATH -st ${at.sign}STORE_TYPE</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</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>

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

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

    <!-- These versions needs to be kept in sync with versions in parent pom-->
    <maven-project-info-reports-plugin-version>2.8</maven-project-info-reports-plugin-version>
    <maven-failsafe-and-surefire-plugins-version>2.18.1</maven-failsafe-and-surefire-plugins-version>
  </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/management-amqp</module>
    <module>broker-plugins/management-http</module>
    <module>broker-plugins/management-jmx</module>
    <module>broker-plugins/memory-store</module>
    <module>broker-plugins/websocket</module>
    <module>common</module>
    <module>client</module>
    <module>client/example</module>
    <module>management/common</module>
    <module>jca</module>
    <module>jca/rar</module>

    <module>tools</module>
    <module>management/example</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/jmx</module>
    <module>bdbstore/systests</module>

    <module>joramtests</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>
        <!-- REMOVE 2 PLUGINS BELOW AFTER CHANGING APACHE PARENT TO V 17 -->
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-project-info-reports-plugin</artifactId>
          <version>${maven-project-info-reports-plugin-version}</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-surefire-report-plugin</artifactId>
          <version>${maven-failsafe-and-surefire-plugins-version}</version>
        </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>
          <execution>
             <id>create-qbtc-output-dir</id>
             <phase>pre-integration-test</phase>
             <goals>
               <goal>run</goal>
             </goals>
             <configuration>
               <target>
                 <mkdir dir="${qpid.home.qbtc.output}" />
               </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>
          <systemPropertyVariables>
            <!-- Defaults -->
            <QPID_HOME>${qpid.home}</QPID_HOME>
            <QPID_WORK>${qpid.work}</QPID_WORK>
            <java.naming.factory.initial>org.apache.qpid.jndi.PropertiesFileInitialContextFactory</java.naming.factory.initial>
            <broker.config>${qpid.home}${file.separator}etc${file.separator}config-systests.json</broker.config>
            <max_prefetch>1000</max_prefetch>
            <qpid.dest_syntax>BURL</qpid.dest_syntax>
            <test.port>15672</test.port>
            <test.mport>18999</test.mport>
            <test.cport>19099</test.cport>
            <test.hport>18080</test.hport>
            <test.port.ssl>15671</test.port.ssl>
            <test.port.alt>25672</test.port.alt>
            <test.port.alt.ssl>25671</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.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>

            <!-- This must be a child of qpid home currently due to the horrible mechanics of QBTC  -->
            <test.output>${qpid.home.qbtc.output}</test.output>
            <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>
          </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>
          </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>
        <!--While the version is specified in pluginManagement, it has to be set here otherwise the
            version specified within the build.plugins section of the parent pom takes precendece -->
        <version>${maven-project-info-reports-plugin-version}</version>
        <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>
        <version>${maven-failsafe-and-surefire-plugins-version}</version>
        <reportSets>
          <reportSet>
            <reports>
              <report>report-only</report>
            </reports>
          </reportSet>
        </reportSets>
        <configuration>
          <alwaysGenerateSurefireReport>false</alwaysGenerateSurefireReport>
        </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>
          </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>

    <!--
    Split store profiles.
    Virtual host configuration can be overridden by setting blueprint property like below
    -Dprofile.virtualhostnode.context.blueprint='{"type":"BDB","storePath":"${QPID_WORK}/${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}${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}${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.command>"${cpp-broker-dir}/qpidd" -p ${at.sign}PORT --data-dir "${qpid.work}/${at.sign}PORT" -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>
        </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</licenseMerge>
                <licenseMerge>Eclipse Public License - Version 1.0|Eclipse Public License - v 1.0</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>

