Building binaries
Prerequisites
Following tools are required to build RadarGun from sources
- git >= 1.6.5, needed for obtaining the source code. Alternatively, a ZIPped archive of the sources can be used instead.
- A Java Development Kit version 1.8 or above is required.
- Apache Maven >= 3.0, needed for downloading dependencies and building the source code
Download source code
Move to a directory where you will build the binaries and run:
$ git clone git://github.com/radargun/radargun.git
Compile and build distribution
$ cd radargun
$ mvn clean install -DskipTests
This operation might take a few minutes, as it will download the dependencies needed by the various plugins (e.g., it will download Infinispan and its dependencies, EHCache and its dependencies, etc). Once the install is complete, you will find the distribution in ./target/distribution/RadarGun-<version>.zip. Unzip this on cluster nodes where you wish to run RadarGun.
Distributions’s content
bin
conf
test-data
lib
plugins(*)
chm
couchbase
docker
ehcache25
hazelcast2/36/37
infinispan4/50/51/52/53/60/70/71/72/80/81/82/90
jbosscache2/3
jcache
jgroups30/32/33/34/35/36
process
redis32
resteasy-http
spymemcached
tomcat8
reporters
reporter-default
reported-perfrepo
schema
*-All plugin folders contain lib and conf folder
-
The
bindirectory contains scripts for launching the main, the workers and some other utility scripts. This directory also contains scripts to run RadarGun in local mode. For details on how to run a distributed benchmark see Benchmark configuration and Using scripts. -
The
confdirectory contains example configuration files for various benchmarks, log4j configuration and test-data folder with various benchmark-specific data sets -
The
pluginsdirectory contains a directory for each (product,version) combo that can be benchmarked.conffolder contains configuration files used by the product, which can be referenced in benchmark configuration.libfolder contains all libraries and other resources needed to run selected product. -
The
reportersdirectory includes reporters, which provide way to process and output statistics gathered during test runs. -
The
schemadirectory includes XSD schema files which can be used to verify whether benchmark configuration is correct.
Build parameters
The build process can be altered by providing command line properties. By default maven will build all plugins and extensions (with exceptions listed below) as well es execute all tests. By disabling of extension or plugins unrelated to your present work you can significantly speed up the build itself.
All properties have to be provided separatelly preceeded by “-D” -> property “skipTests” can be enabled (therefore disabling the execution od test cases) by adding “-DskipTests” or “-DskipTests=true” to maven command.
Note: Some extensions depend on other and build will break if dependencies are not resolved
Various
- skipTests - will disable test case execution, by far the most time consuming part of the build process
- make-site - will render the project siteinto target folder (NOTE: Requires jekyll to be installed and accessible trough PATH)
Extensions
- Enabled by default:
- cache (parameter
-Dno-cacheto disable) - query (parameter
-Dno-queryto disable) - hdrhistogram (parameter
-Dno-hdrhistogramto disable) - mapreduce (parameter
-Dno-mapreduceto disable) - rest (parameter
-Dno-restto disable) - reporter-default (parameter
-Dno-reporter-defaultto disable) - reporter-perfrepo (parameter
-Dno-reporter-perfrepoto disable)
- cache (parameter
- Disabled by default:
- jpa (parameter
-Djpato enable) - example-extension (parameter
-Dexample-extensionto enable)
- jpa (parameter
Plugins
- Enabled by default:
- chm (parameter
-Dno-chmto disable) - couchbase (parameter
-Dno-couchbaseto disable) - ehcache (parameter
-Dno-ehcacheto disable) - hazelcast (parameter
-Dno-hazelcastto disable) - jbosscache (parameter
-Dno-jbosscacheto disable) - jgroups (parameter
-Dno-jgroupsto disable) - infinispan (parameter
-Dno-infinispanto disable) - process (parameter
-Dno-processto disable) - redis (parameter
-Dno-redisto disable) - resteasy-http (parameter
-Dno-resteasy-httpto disable) - spark (parameter
-Dno-sparkto disable) - spymemcached (parameter
-Dno-spymemcachedto disable) - jcache (parameter
-Dno-jcacheto disable) - tomcat (parameter
-Dno-tomcatto disable) - docker (parameter
-Dno-dockerto disable)
- chm (parameter
- Disabled by default:
- jgroups35 (parameter
-Djgroups35to enable) - coherence (parameter
-Dcoherenceto enable) - jdg-early (parameter
-Djdg-earlyto enable) - jdg (parameter
-Djdgto enable)
- jgroups35 (parameter