Jump to: navigation, search

Eclipse4/RCP/EAS/OSGi Services

< Eclipse4‎ | RCP‎ | EAS
Revision as of 13:09, 14 April 2011 by Remysuen.ca.ibm.com (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

The Eclipse 4 dependency injection framework exposes OSGi services for consumption to clients by default. This removes a lot of the boilerplate ServiceTracker code and allows clients to simply annotate a field to have an OSGi service injected.

API Comparison

Service retrieval

OSGi APIS Eclipse 4 Dependency Injection
public class Model {
 
  private EventAdmin eventAdmin;
 
  public Model(BundleContext ctxt) {
    ServiceTracker tracker = new ServiceTracker<EventAdmin, EventAdmin>(
        ctxt, EventAdmin.class, null);
    tracker.open();
    eventAdmin = tracker.getService();
  }
}
public class Model {
  @Inject
  private EventAdmin eventAdmin;
}