Bundle-SymbolicName: HelloService
Import-Package: org.osgi.framework;version="1.7.0"
Export-Package: com.example.service;version="1.0.0"
Bundle-SymbolicName: Client
Import-Package: org.osgi.framework;version="1.7.0", com.example.service;version="[1.0.0,2.0.0)"
package com.example.service;
public interface HelloService {
void sayHello(String name);
}
package com.example.service;
public class HelloServiceImpl implements HelloService {
public void sayHello(String name) {
System.out.println("Hello, " + name + "!");
}
}
package com.example.client;
import com.example.service.HelloService;
import org.osgi.framework.BundleContext;
import org.osgi.framework.ServiceReference;
import org.osgi.util.tracker.ServiceTracker;
public class Client {
private ServiceTracker<HelloService, HelloService> serviceTracker;
public void start(BundleContext context) {
serviceTracker = new ServiceTracker<>(context, HelloService.class, null);
serviceTracker.open();
HelloService helloService = serviceTracker.getService();
helloService.sayHello("World");
}
public void stop() {
serviceTracker.close();
}
}