public interface RemoteService {
String sayHello();
}
public class RemoteServiceImpl implements RemoteService {
@Override
public String sayHello() {
return "Hello from remote service!";
}
}
public class ServiceRegistrar {
public void registerRemoteService(BundleContext context) {
RemoteService remoteService = new RemoteServiceImpl();
Dictionary<String, Object> properties = new Hashtable<>();
properties.put(RemoteConstants.SERVICE_EXPORTED_INTERFACES, RemoteService.class.getName());
context.registerService(RemoteService.class, remoteService, properties);
}
}
public class ServiceConsumer {
public void consumeRemoteService(BundleContext context) {
ServiceReference<RemoteService> serviceReference = context.getServiceReference(RemoteService.class);
RemoteService remoteService = context.getService(serviceReference);
String result = remoteService.sayHello();
System.out.println(result);
}
}