<?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.qpid</groupId>
    <artifactId>qpid-parent</artifactId>
    <version>1.0</version>
  </parent>

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

  <name>Qpid Java Build</name>
  <description>Apache Qpid Java Build POM</description>

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

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

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

    <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 -l ${at.sign}LOG_CONFIG_FILE</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 -l ${at.sign}LOG_CONFIG_FILE</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>
    <dollar.sign>$</dollar.sign>
    <at.sign>@</at.sign>
    <bdb-version>5.0.104</bdb-version>
    <derby-version>10.11.1.1</derby-version>
  </properties>

  <modules>
    <module>amqp-1-0-common</module>
    <module>amqp-1-0-client</module>
    <module>amqp-1-0-client-jms</module>
    <module>amqp-1-0-client-jms/example</module>
    <module>amqp-1-0-client-websocket</module>
    <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>
  </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>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-antrun-plugin</artifactId>
        <!--version specified in pluginManagement -->
        <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>
              </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>
        <!--version specified in pluginManagement -->
        <configuration>
          <includes>
            <include>**/*Test.java</include>
          </includes>
          <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>
            <java.naming.provider.url>test-profiles${file.separator}test-provider.properties</java.naming.provider.url>
            <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>
            <amqj.logging.level>debug</amqj.logging.level>
            <amqj.server.logging.level>debug</amqj.server.logging.level>
            <amqj.protocol.logging.level>debug</amqj.protocol.logging.level>
            <root.logging.level>warn</root.logging.level>
            <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>

            <!-- This must be a child of qpid home currently due to the horrible mechanics of QBTC  -->
            <test.output>${qpid.home.qbtc.output}</test.output>
            <broker.clean.between.tests>true</broker.clean.between.tests>
          </systemPropertyVariables>
        </configuration>
      </plugin>

      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-enforcer-plugin</artifactId>
        <!--version specified in pluginManagement -->
        <executions>
          <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>build/**</exclude>
            <exclude>lib/**</exclude>
            <exclude>test-profiles/test_resources/ssl/**</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>
          </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"}</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"}</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"}</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"}</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"}</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"}</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"}</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"}</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"}</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"}</profile.virtualhostnode.context.blueprint>
      </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"}</profile.virtualhostnode.context.blueprint>
      </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"}</profile.virtualhostnode.context.blueprint>
      </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"}</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}{QPID_WORK}/${dollar.sign}{this:name}/derby"}</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>
                  <skipAssembly>true</skipAssembly>
                </configuration>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </profile>

  </profiles>
</project>

