Bundle-SymbolicName: com.example.mybundle
Bundle-Version: 1.0.0
Import-Package: com.example.myservice
Export-Package: com.example.mybundle
Bundle-Activator: com.example.mybundle.Activator
public class MyServiceImplementation implements MyService {
public void doSomething() {
System.out.println("Doing something...");
}
}
public class Activator implements BundleActivator {
public void start(BundleContext context) throws Exception {
context.registerService(MyService.class.getName(), new MyServiceImplementation(), null);
}
public void stop(BundleContext context) throws Exception {
}
}
public class Consumer {
private MyService myService;
public void bindMyService(MyService service) {
this.myService = service;
myService.doSomething();
}
public void unbindMyService(MyService service) {
}
}
public class Activator implements BundleActivator {
private ServiceTracker<MyService, Consumer> serviceTracker;
public void start(BundleContext context) throws Exception {
serviceTracker = new ServiceTracker<>(context, MyService.class, new Consumer());
serviceTracker.open();
}
public void stop(BundleContext context) throws Exception {
serviceTracker.close();
}
}