The BlueJ extensions mechanism is a way of adding new functionality to BlueJ as and when it is needed, avoiding user interface clutter and user confusion.

This BlueJ Extensions API provides access for extensions to the BlueJ application via a proxy object, and to the classes and objects which BlueJ is manipulating via a number of wrapper classes.

Check the guide for writing BlueJ extensions for an implementation example.

Packages 
Package Description
bluej.extensions2
Domain classes used to produce the JSON and XML output for the RESTful services.
bluej.extensions2.editor  
bluej.extensions2.event