Page tree
Skip to end of metadata
Go to start of metadata

Introduction

One of the major new features in pulse™ 2.x is the addition of a plugin system. This system allows you to provide their your integration with various tools that are not supported by the default pulse™ implementation. This takes the adaptability of pulse™ to the next level.

Plugin Highlights

The pulse™ plugin system is designed with the philosophy that writing plugins should be standardised and simple.

Highlight

Details

Standard OSGi

The pulse™ plugin framework is built on standard OSGi technology, using the Equinox framework from Eclipse. At their core OSGi plugins are just jar files with a simple manifest.

Defined Extension Points

Equinox extension points are used to define where you can plug in to pulse™.

Auto-generated UI

Plugin integration with the pulse™ templated configuration system is automatic - you define your configuration as Java classes with annotations and pulse™ generates the UI for you.

Support Classes

Many plugins have similar functionality, so pulse™ provides support base classes that make writing common plugin types easy. For example, parsing test results from a new XML format.

Available Extension Points

A number of extension points are already available, with more planned over time.

Extension Point

Description

Commands

Allows addition of new command types - commands being a single step in a build. For example, pulse™ includes Apache Ant and make commands.

Config

Allows new configuration types to be defined, usually used as part of a larger plugin (e.g. a new command or SCM).

Patch Formats

Allows a new type of patch file to be defined for packaging personal build changes. For example, pulse™ includes support for unified diffs and git diffs.

Post Processors

Allows the addition of processors that can extract features (errors/warnings) and/or test results from build artifacts.

Resource Locators

Allows new automatic resource location steps to be added. For example, pulse™ ships with support for finding and configuration the location of Apache Maven installations on agents.

SCMs

Allows integration with an SCM (or version control system), for example Subversion.

Upgrade

Used to specify upgrade tasks, usually updating configuration schema, required when updating to new plugin versions.

Getting Started

Ready to dive in? Here are some starting points for learning about and developing plugins:

  • Sample and Community Plugins - the easiest way to get started is to learn from existing examples.
  • Plugin Framework - a description of the pulse™ plugin framework fundamentals, including the anatomy of a plugin.
  • Plugin Configuration - describes how to define configuration for your plugins, and customise the generated UI.
  • No labels