<dependency> <groupId>org.osgi</groupId> <artifactId>org.osgi.util.tracker</artifactId> <version>1.6.0</version> </dependency> import org.osgi.util.tracker.ServiceTracker; import org.osgi.framework.BundleContext; public class MessageProviderTracker extends ServiceTracker<MessageProvider, MessageProvider> { public MessageProviderTracker(BundleContext context) { super(context, MessageProvider.class, null); } @Override public MessageProvider addingService(ServiceReference<MessageProvider> reference) { MessageProvider provider = super.addingService(reference); return provider; } @Override public void modifiedService(ServiceReference<MessageProvider> reference, MessageProvider provider) { super.modifiedService(reference, provider); } @Override public void removedService(ServiceReference<MessageProvider> reference, MessageProvider provider) { super.removedService(reference, provider); } } import org.osgi.framework.BundleActivator; import org.osgi.framework.BundleContext; public class MyBundleActivator implements BundleActivator { private MessageProviderTracker tracker; public void start(BundleContext context) throws Exception { tracker = new MessageProviderTracker(context); tracker.open(); MessageProvider provider = tracker.getService(); } public void stop(BundleContext context) throws Exception { tracker.close(); } }


上一篇:
下一篇:
切换中文