@Retention(value=CLASS)
@Target(value=FIELD)
public @interface Inject
@Component class X implements Z { @Inject BundleContext bundleContext; @Inject Component component; @Inject DependencyManager manager; OtherService otherService; @Init void init() { System.out.println("Bundle Context: " + bundleContext); System.out.println("Manager: " + manager); // Use DM API for defining an extra service dependency componnent.add(manager.createServiceDependency() .setService(OtherService.class) .setRequired(true) .setInstanceBound(true)); } @Start void start() { System.out.println("OtherService: " + otherService); } }