OSGi Concepts Services

From CDOT Wiki
Revision as of 16:33, 21 January 2011 by Jordan.anastasiade (talk | contribs)
Jump to: navigation, search

OSGi Services

A bundles can register and use services in OSGi. OSGi provides therefore a central registry for this purpose. A service is defined by a Java interface (POJI - Plain Old Java Interface) [1].
Access to the service registry is performed via the class BundleContext. OSGi injects the BundleContext into each bundle during the startup of the bundle. A bundle can also register itself to the BundleContext ServiceEvents which are for example triggered if a new service is installed or de-installed.

For example, let us suppose that one wants to define a service that is capable to define the day and time. For the purpose one defines an interface:

package cs.ecl.osgi.simple.declarativeservice.say;

public interface Sayable {
	String say();

An implementation of this interface could be:

package cs.ecl.osgi.simple.declarativeservice.say.internals;

import java.util.Date;

import cs.ecl.osgi.simple.declarativeservice.say.Sayable;

public class TodaySay implements Sayable {

	public String say() {
		return " Declarative Service: Today is " + new Date();