Skip to content


Repository files navigation

51Degrees Pipeline

51Degrees Java Pipeline

Developer Documentation


This repository contains all the projects required to build the Java implementation of the 51Degrees Pipeline API.

The specification is also available on GitHub and is recommended reading if you wish to understand the concepts and design of this API.

Reference documentation for the Java implementation can be found on the Java API documentation page.


The tested versions page shows the JDK versions that we currently test against. The software may run fine against other versions, but additional caution should be applied.


  • pipeline.common - Some shared library classes.
  • pipeline.caching - 51Degrees' caching interfaces and high-performance LRU implementation.
  • pipeline.core - The core software that comprises the Pipeline API.
  • pipeline.engines - Shared functionality that is available to all 'engines' (specialized 'flow elements')
  • pipeline.engines.fiftyone - Functionality that is specific to 51Degrees engines.
  • pipeline.cloudrequestengine - An engine that is used to retrieve data from 51Degrees' cloud API.


Packages can be found on Maven under the group com.51degrees.

Alternatively clone this git repository and in the root run mvn install to build and install the packages locally.


Most packages contain tests which use junit and mockito. These tests can be run using maven by calling: mvn test


There are several examples available in the pipeline.developer-examples folder that demonstrate how to make use of the Pipeline API in isolation. These are described in the table below. If you want examples that demonstrate how to use 51Degrees products such as device detection, then these are available in the corresponding repository and on our website.

Example Description
pipeline.developer-examples.flowelement Shows how to create a custom flow element that returns star sign based on a supplied date of birth.
pipeline.developer-examples.onpremise-engine Shows how to modify SimpleFlowElement to make use of the 'engine' functionality and use a custom data file to map dates to star signs rather than relying on hard coded data.
pipeline.developer-examples.clientside-element Shows how to modify SimpleFlowElement to request the data of birth from the user using client-side JavaScript.
pipeline.developer-examples.clientside-element-mvc An example project showing how to use the code from SimpleClientSideElement in a Java web application using the Model-View-Controller Pattern. Shows how to modify SimpleFlowElement to perform the star sign lookup via a cloud service rather than locally.
pipeline.developer-examples.usage-sharing Shows how to share usage with 51Degrees. This helps us to keep our products up to date and accurate.