import org.osgi.framework.BundleActivator; import org.osgi.framework.BundleContext; import org.osgi.framework.BundleEvent; import org.osgi.framework.BundleListener; import org.osgi.framework.FrameworkEvent; import org.osgi.framework.FrameworkListener; import org.osgi.framework.ServiceEvent; import org.osgi.framework.ServiceListener; public class Activator implements BundleActivator, FrameworkListener, BundleListener, ServiceListener { public void start(BundleContext context) throws Exception { //add listener context.addFrameworkListener(this); context.addBundleListener(this); context.addServiceListener(this); } public void stop(BundleContext context) throws Exception { } //process framework event public void frameworkEvent(FrameworkEvent event) { if ((event.getType() & FrameworkEvent.ERROR) != 0) { System.err.println("Framework ERROR: " event.getBundle()); } } //process bundle event public void bundleChanged(BundleEvent event) { if ((event.getType() & BundleEvent.STARTED) != 0) { System.err.println("Bundle STARTED: " event.getBundle()); } else if ((event.getType() & BundleEvent.STOPPED) != 0) { System.err.println("Bundle STOPPED: " event.getBundle()); } } //process service event public void serviceChanged(ServiceEvent event) { if ((event.getType() & ServiceEvent.REGISTERED) != 0) { System.err.println("Service REGISTERED: " event.getServiceReference()); } } }
2011年5月3日 星期二
OSGi - Listener
這邊例出簡單的OSGi Listener , 下面例出如何在Bundle組件中通過實現FrameworkListener,BundleListener and ServiceListener Interface,並使用BundleContext註冊監聽OSGi環境的各種事件:
訂閱:
張貼留言 (Atom)
沒有留言:
張貼留言