public interface GreetingService {
void sayHello(String name);
}
public class GreetingServiceImpl implements GreetingService {
@Override
public void sayHello(String name) {
System.out.println("Hello, " + name + "!");
}
}
import org.osgi.framework.BundleActivator;
import org.osgi.framework.BundleContext;
import org.osgi.framework.ServiceRegistration;
public class Activator implements BundleActivator {
private ServiceRegistration<GreetingService> registration;
@Override
public void start(BundleContext context) {
GreetingService greetingService = new GreetingServiceImpl();
registration = context.registerService(GreetingService.class, greetingService, null);
}
@Override
public void stop(BundleContext context) {
registration.unregister();
}
}
import org.osgi.framework.BundleContext;
import org.osgi.framework.ServiceReference;
import org.osgi.util.tracker.ServiceTracker;
public class GreetingClient {
private ServiceTracker<GreetingService, GreetingService> serviceTracker;
public void start(BundleContext context) {
serviceTracker = new ServiceTracker<>(context, GreetingService.class, null);
serviceTracker.open();
GreetingService greetingService = serviceTracker.getService();
greetingService.sayHello("John");
}
public void stop() {
serviceTracker.close();
}
}