Gemini Management 2.0.0.M01

GeminiLogoSmall

Gemini Management is an implementation of the OSGi Enterprise JMX specification. The 2.0.x line moves up to version 5.0 of the specification with several improvements and a new MBean.

Gemini Management now includes and re-exports the ‘org.osgi.jmx‘ packages from the 5.0 specification meaning you don’t need to separately include the APIs in your runtime. This first milestone hasn’t been checked against the specifications compliance suite yet but it will be before the final release. Some non-spec additions from the 1.0.x releases have been removed from Gemini Management as they have been superseded by new additions to the specification. This mainly affects the bundleState MBean which now allows for listing bundles with only certain information given now being selected by name instead of by an integer mask.

The main new addition is the new wiringState MBean. It allows the wiring of bundles to be explored including previous revisions of a bundle and the closure of a bundles wiring. In the case of package imports and exports this MBean gives much better information than the packageState MBean.

Their are two extensions to the serviceState MBean that allows for additional inspections of services based on the bundle registering or consuming the service. They have been found very useful in Virgo and are defined with these two additions to the serviceState Mbean API.

/**
 * Answer the list of services representing the services this bundle exports
 * 
 * @param bundleId - the bundle identifier
 * @return the list of services
 * @throws IOException if the operation fails
 * @throws IllegalArgumentException if the bundle indicated does not exist
 */
CompositeData[] getRegisteredServices(long bundleId) throws IOException;

/**
 * Answer the list of services which refer to the the services this bundle is using
 * 
 * @param bundleIdentifier - the bundle identifier
 * @return the list of servics
 * @throws IOException if the operation fails
 * @throws IllegalArgumentException if the bundle indicated does not exist
 */
CompositeData[] getServicesInUse(long bundleIdentifier) throws IOException;

Before the final release the code will be run against the 5.0 specifications compliance suite and any bugs fixed. In the mean time the the milestone can be downloaded from the projects Eclipse website here.

Leave a Reply

Your email address will not be published.