iPOJO
Written by Clement   
Wednesday, 21 March 2007

iPOJO is a service component runtime aiming to simplify OSGi application development. Based on the concept of POJO, application logic is developed easily. Non functional properties are injected in the component at runtime.

iPOJO strength points are :

  • components are developed as POJO
  • the component model is extensible, you can easily add non-functional properties
  • the standard component model manages service providing, service dependencies, dynamic reconfiguration ...
  • iPOJO manage the component lifecycle and the environment dynamics

iPOJO is an alternative to Service Component Runtime. The proposed model is less "verbose" both for the code and the metadata. The approach is different too.

iPOJO defines a simple component model containing standard component-oriented concepts : component types, factories,  component instances, lifecycle ... iPOJO manage a "container" around instances. In fact, this container is a plug-in platform where Handler will be plugged at runtime according to the non-functional requirements of the component.  Each handler manages a non-functional aspect. The required handlers (and non-functional requirements) are described in the component type. Handler can be developed separately from the iPOJO runtime and are deployed separately too.

A component is implemented in Java in a "POJO" class. This class does not have any links on OSGi. All requirements, as service dependencies, will be injected at runtime when needed. 

Several handlers are provided with iPOJO. These "core" handlers target mainly dynamic service environment. The provided handlers are:

  • The dependency handler : managing service dependencies
  • The provided service handler : managing service publishing and providing
  • The configuration handler : managing the configuration and the dynamic reconfiguration of the instance
  • The lifecycle callback handler : allows the invocation of method when the instance starts and stops
  • The architecture handler : allows to get a description of the instance

An external handler library is currently in construction. Contained handlers will manage events, stream, and service ranking... 

iPOJO Component are packaged is bundle. However, iPOJO considers the bundle only as a deployment unit and not as a "functional" component.  

 

iPOJO project is hosted as a subproject of the Apache Felix project . To get iPOJO, download and compile Felix

For further information about iPOJO, visit the iPOJO Web Page at http://cwiki.apache.org/confluence/display/FELIX/iPOJO. You can find iPOJO presentation and published paper on the different sections of this site too.   

Last Updated ( Monday, 13 August 2007 )