blob: 5ba7c82fb833dd2b444e9ece20af9126c1cafb0a [file] [log] [blame]
<?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-broker-parent</artifactId>
<version>7.1.4</version>
</parent>
<artifactId>qpid-perftests</artifactId>
<name>Apache Qpid Broker-J Performance Tests</name>
<description>Performance testing configuration, code and tests</description>
<properties>
<dependency-change-verification>true</dependency-change-verification>
<!-- Properties filtered into the JNDI properties -->
<perftests.messaging-hostport-plain>localhost:5672</perftests.messaging-hostport-plain>
<perftests.messaging-hostport-tls>localhost:5672</perftests.messaging-hostport-tls>
<perftests.messaging-user>guest</perftests.messaging-user>
<perftests.messaging-password>guest</perftests.messaging-password>
<perftests.results-directory>results</perftests.results-directory>
<!-- Properties used by the REST API Queue Creator -->
<perftests.manangement-user>guest</perftests.manangement-user>
<perftests.manangement-password>guest</perftests.manangement-password>
<perftests.broker-virtualhostnode>default</perftests.broker-virtualhostnode>
<perftests.broker-virtualhost>default</perftests.broker-virtualhost>
<perftests.manangement-url>http://localhost:8080</perftests.manangement-url>
<perftests.hillclimb>false</perftests.hillclimb>
<perftests.hillclimb.max_runs>3</perftests.hillclimb.max_runs>
<perftests.hillclimb.start_target_rate>1025.0</perftests.hillclimb.start_target_rate>
<perftests.hillclimb.production_to_target_ratio_success_threshold>0.95</perftests.hillclimb.production_to_target_ratio_success_threshold>
<perftests.hillclimb.consumption_to_production_ratio_success_threshold>0.95</perftests.hillclimb.consumption_to_production_ratio_success_threshold>
<perftests.hillclimb.minimum_delta>1.0</perftests.hillclimb.minimum_delta>
<perftests.hillclimb.bias>0.25</perftests.hillclimb.bias>
<!-- The following provide values for the disttest command line -->
<perftests.test-config>${basedir}/etc/testdefs</perftests.test-config>
<perftests.test-config.write_to_db>false</perftests.test-config.write_to_db>
<perftests.distributed>false</perftests.distributed>
<!-- Overrides for system properties understood by disttest itself -->
<qpid.disttest.loglevel>info</qpid.disttest.loglevel>
<qpid.disttest.duration>5000</qpid.disttest.duration>
<qpid.disttest.registrationTimeout>60000</qpid.disttest.registrationTimeout>
<qpid.disttest.commandResponseTimeout>120000</qpid.disttest.commandResponseTimeout>
</properties>
<dependencies>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
</dependency>
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
</dependency>
<dependency>
<groupId>org.apache.derby</groupId>
<artifactId>derby</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.apache.httpcomponents</groupId>
<artifactId>httpclient</artifactId>
</dependency>
<!-- test deps -->
<dependency>
<groupId>org.apache.qpid</groupId>
<artifactId>qpid-test-utils</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<resources>
<resource>
<directory>src/main/resources</directory>
</resource>
<resource>
<directory>src/main/java</directory>
<excludes>
<exclude>**/*.java/</exclude>
</excludes>
</resource>
</resources>
<testResources>
<testResource>
<directory>src/test/java</directory>
<excludes>
<exclude>**/*.java</exclude>
</excludes>
</testResource>
<testResource>
<directory>src/test/resources</directory>
<filtering>true</filtering>
<includes>
<include>**/*</include>
</includes>
</testResource>
</testResources>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-assembly-plugin</artifactId>
<configuration>
<descriptors>
<descriptor>src/main/assembly/qpid-perftests-bin.xml</descriptor>
</descriptors>
</configuration>
<executions>
<execution>
<id>make-assembly</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-deploy-plugin</artifactId>
<configuration>
<skip>true</skip>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.rat</groupId>
<artifactId>apache-rat-plugin</artifactId>
<configuration>
<excludes>
<exclude>src/main/java/json2.js</exclude>
<exclude>src/test/java/org/apache/qpid/disttest/controller/config/sampleConfig.json</exclude>
<exclude>src/test/java/org/apache/qpid/disttest/results/formatting/expectedOutput.csv</exclude>
<exclude>visualisation-jfc/**</exclude>
</excludes>
</configuration>
</plugin>
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<configuration>
<delimiters>
<delimiter>${*}</delimiter>
</delimiters>
<useDefaultDelimiters>false</useDefaultDelimiters>
</configuration>
</plugin>
</plugins>
</build>
<profiles>
<profile>
<id>addJms11IfNecessary</id>
<activation>
<property>
<name>perftests</name>
<value>!qpid-jms-client</value>
</property>
</activation>
<dependencies>
<dependency>
<groupId>org.apache.geronimo.specs</groupId>
<artifactId>geronimo-jms_1.1_spec</artifactId>
</dependency>
</dependencies>
</profile>
<profile>
<id>perftests</id>
<activation>
<property>
<name>perftests</name>
</property>
</activation>
<dependencies>
<dependency>
<groupId>org.apache.derby</groupId>
<artifactId>derby</artifactId>
<scope>runtime</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-enforcer-plugin</artifactId>
<executions>
<execution>
<id>enforce-property</id>
<goals>
<goal>enforce</goal>
</goals>
<configuration>
<rules>
<requireProperty>
<property>perftests</property>
<regex>^(qpid-jms-client)|(jms-client-0-9)|(jms-client-0-10)$</regex>
</requireProperty>
</rules>
<fail>true</fail>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<executions>
<execution>
<id>run-perftests</id>
<goals>
<goal>java</goal>
</goals>
<phase>integration-test</phase>
<configuration>
<mainClass>org.apache.qpid.disttest.ControllerRunner</mainClass>
<classpathScope>runtime</classpathScope>
<arguments>
<argument>jndi-config=${java.naming.provider.url}</argument>
<argument>test-config=${perftests.test-config}</argument>
<argument>distributed=${perftests.distributed}</argument>
<argument>writeToDb=${perftests.test-config.write_to_db}</argument>
<argument>registrationTimeout=${qpid.disttest.registrationTimeout}</argument>
<argument>commandResponseTimeout=${qpid.disttest.commandResponseTimeout}</argument>
<argument>hill-climb=${perftests.hillclimb}</argument>
<argument>hill-climber.max-runs=${perftests.hillclimb.max_runs}</argument>
<argument>hill-climber.start-target-rate=${perftests.hillclimb.start_target_rate}</argument>
<argument>hill-climber.production-to-target-ratio-success-threshold=${perftests.hillclimb.production_to_target_ratio_success_threshold}</argument>
<argument>hill-climber.consumption-to-production-ratio-success-threshold=${perftests.hillclimb.consumption_to_production_ratio_success_threshold}</argument>
<argument>hill-climber.minimum-delta=${perftests.hillclimb.minimum_delta}</argument>
<argument>hill-climber.bias=${perftests.hillclimb.bias}</argument>
</arguments>
<systemProperties>
<systemProperty>
<key>qpid.disttest.loglevel</key>
<value>${qpid.disttest.loglevel}</value>
</systemProperty>
<systemProperty>
<key>qpid.disttest.duration</key>
<value>${qpid.disttest.duration}</value>
</systemProperty>
<systemProperty>
<key>java.naming.factory.initial</key>
<value>${java.naming.factory.initial}</value>
</systemProperty>
<systemProperty>
<key>qpid.disttest.queue.creator.class</key>
<value>org.apache.qpid.disttest.jms.QpidRestAPIQueueCreator</value>
</systemProperty>
<systemProperty>
<key>perftests.manangement-user</key>
<value>${perftests.manangement-user}</value>
</systemProperty>
<systemProperty>
<key>perftests.manangement-password</key>
<value>${perftests.manangement-password}</value>
</systemProperty>
<systemProperty>
<key>perftests.broker-virtualhostnode</key>
<value>${perftests.broker-virtualhostnode}</value>
</systemProperty>
<systemProperty>
<key>perftests.broker-virtualhost</key>
<value>${perftests.broker-virtualhost}</value>
</systemProperty>
<systemProperty>
<key>perftests.manangement-url</key>
<value>${perftests.manangement-url}</value>
</systemProperty>
<!-- The following two are used by the legacy client only -->
<systemProperty>
<key>qpid.dest_syntax</key>
<value>${qpid.dest_syntax}</value>
</systemProperty>
<systemProperty>
<key>qpid.amqp.version</key>
<value>${qpid.amqp.version}</value>
</systemProperty>
</systemProperties>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<skip>true</skip>
</configuration>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>qpid-jms-client</id>
<activation>
<property>
<name>perftests</name>
<value>qpid-jms-client</value>
</property>
</activation>
<properties>
<java.naming.factory.initial>org.apache.qpid.jms.jndi.JmsInitialContextFactory</java.naming.factory.initial>
<java.naming.provider.url>${project.build.directory}/test-classes/qpid-jms-client/jndi.properties</java.naming.provider.url>
<qpid.amqp.version />
<qpid.dest_syntax />
</properties>
<dependencies>
<dependency>
<groupId>org.apache.qpid</groupId>
<artifactId>qpid-jms-client</artifactId>
<scope>runtime</scope>
</dependency>
</dependencies>
</profile>
<profile>
<id>jms-client-0-9</id>
<activation>
<property>
<name>perftests</name>
<value>jms-client-0-9</value>
</property>
</activation>
<properties>
<java.naming.factory.initial>org.apache.qpid.jndi.PropertiesFileInitialContextFactory</java.naming.factory.initial>
<java.naming.provider.url>${project.build.directory}/test-classes/jms-client/jndi.properties</java.naming.provider.url>
<qpid.amqp.version>0-9</qpid.amqp.version>
<qpid.dest_syntax>BURL</qpid.dest_syntax>
</properties>
<dependencies>
<dependency>
<groupId>org.apache.qpid</groupId>
<artifactId>qpid-client</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>javax.xml.bind</groupId>
<artifactId>jaxb-api</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.glassfish.jaxb</groupId>
<artifactId>jaxb-runtime</artifactId>
<scope>runtime</scope>
</dependency>
</dependencies>
</profile>
<profile>
<id>jms-client-0-10</id>
<activation>
<property>
<name>perftests</name>
<value>jms-client-0-10</value>
</property>
</activation>
<properties>
<java.naming.factory.initial>org.apache.qpid.jndi.PropertiesFileInitialContextFactory</java.naming.factory.initial>
<java.naming.provider.url>${project.build.directory}/test-classes/jms-client/jndi.properties</java.naming.provider.url>
<qpid.amqp.version>0-10</qpid.amqp.version>
<qpid.dest_syntax>BURL</qpid.dest_syntax>
</properties>
<dependencies>
<dependency>
<groupId>org.apache.qpid</groupId>
<artifactId>qpid-client</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>javax.xml.bind</groupId>
<artifactId>jaxb-api</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.glassfish.jaxb</groupId>
<artifactId>jaxb-runtime</artifactId>
<scope>runtime</scope>
</dependency>
</dependencies>
</profile>
</profiles>
</project>