public interface GreetingService {
String sayHello(String name);
}
public class GreetingServiceImpl implements GreetingService {
@Override
public String sayHello(String name) {
return "Hello, " + name + "!";
}
}
public class Activator implements BundleActivator {
private ServiceRegistration<GreetingService> registration;
@Override
public void start(BundleContext context) throws Exception {
GreetingService greetingService = new GreetingServiceImpl();
registration = context.registerService(GreetingService.class, greetingService, null);
}
@Override
public void stop(BundleContext context) throws Exception {
registration.unregister();
}
}
public class Client {
private GreetingService greetingService;
public void bindGreetingService(GreetingService greetingService) {
this.greetingService = greetingService;
}
public void sayHello() {
if (greetingService != null) {
String message = greetingService.sayHello("John");
System.out.println(message);
}
}
}
Require-Bundle: org.osgi.core
<?xml version="1.0" encoding="UTF-8"?>
<service xmlns="http://www.osgi.org/xmlns/scr/v1.4.0">
<provide interface="com.example.GreetingService"/>
<implementation class="com.example.GreetingServiceImpl"/>
</service>