PerfCake 8.x

Developers' Guide

Pavel Macík

Martin Večeřa


Table of Contents

Acknowledgements
1. Introduction
I. General Contributors' and Developers' Guide
2. Developing with PerfCake
2.1. Building from source
2.2. Using PerfCake from a Maven project
2.3. Maven Project
2.3.1. Project Structure
2.3.2. Maven Profiles
2.3.3. Standard Maven Goals
2.3.4. Documentation
2.3.5. Code Style with Checkstyle
2.3.6. License
2.3.7. JaCoCo Code Coverage
2.3.8. FindBugs Report
2.3.9. Digital Signatures
2.3.10. Distribution
2.3.11. Transformation of Scenarios
2.4. Coding Standards
2.4.1. Source file basics
File name
File encoding: UTF-8
Special characters
2.4.2. Source file structure
License or copyright information, if present
Package statement
Import statements
Class declaration
2.4.3. Formating
Braces
Block indentation: +3 spaces
One statement per line
Column limit: 400
Line-wrapping
Whitespace
Grouping parentheses: recommended
Specific constructs
2.4.4. Naming
Rules common to all identifiers
Rules by identifier type
Camel case: defined
2.4.5. Programming practices
@Override: always used
Caught exceptions: not ignored
Static members: qualified using class
Finalizers: not used
2.4.6. JavaDoc
Formatting
The summary fragment
Where JavaDoc is used
2.5. Test Development
2.6. Writing Guides
3. PerfCake Architecture
3.1. PerfCake Architecture Overview
3.2. Run Info
3.3. Generators
3.3.1. Generators Architecture
3.3.2. Writing a New Generator
3.4. Message Senders
3.5. Receivers and Correlators
3.6. Sequences
3.7. Reporting
3.7.1. Reporting Architecture
3.7.2. Reporters
3.7.3. Destinations
3.7.4. Accumulators
3.8. Validators
3.8.1. Validators Architecture
3.8.2. Writing a New Validator
II. Core Developers' Guide
4. Release Procedure
5. Continuous Integration

List of Figures

3.1. Architecture Overview
3.2. Generators Architecture
3.3. Reporting Architecture
3.4. Validators Architecture
4.1. Prepare a release branch
4.2. Merge the changes to the devel branch
4.3. Merge the changes to the master branch as well
4.4. Merge the changes to the master branch as well

List of Tables

2.1. XML plugin properties
2.2. Special characters examples
2.3. Camel case examples

List of Examples

2.1. Ignoring a chackstyle warning