public void start(BundleContext bundleContext) throws Exception { this.bundleContext = bundleContext; serviceReference = bundleContext.getServiceReference(Printer.class.getName()); if (serviceReference != null) { Printer printer = (Printer) bundleContext.getService(serviceReference); if (printer != null) { runnablePrinterClient.setPrinterService(printer); runnablePrinterClient.start(); } } bundleContext.addServiceListener(this, "(objectClass=" + Printer.class.getName() + ")"); }
public void serviceChanged(ServiceEvent serviceEvent) { switch (serviceEvent.getType()) { case ServiceEvent.UNREGISTERING: { runnablePrinterClient.stop(); bundleContext.ungetService(serviceEvent.getServiceReference()); break; } case ServiceEvent.REGISTERED: { Printer printer = (Printer) bundleContext.getService(serviceEvent.getServiceReference()); if (printer != null) { runnablePrinterClient.setPrinterService(printer); runnablePrinterClient.start(); } break; } } }