public void unsetReadyService(final ReadyService readyService) { readyService.unregisterTracker(this); }
private void unregisterReadyMarker(Bundle bundle) { String bsn = bundle.getSymbolicName(); ReadyMarker readyMarker = bundleReadyMarkerRegistrations.remove(bsn); if (readyMarker != null) { readyService.unmarkReady(readyMarker); } }
@Reference public void setReadyService(final ReadyService readyService) { readyService.registerTracker(this, new ReadyMarkerFilter().withType(GenericThingProvider.XML_THING_TYPE)); }
private void registerReadyMarker(Bundle bundle) { String bsn = bundle.getSymbolicName(); if (!bundleReadyMarkerRegistrations.containsKey(bsn)) { ReadyMarker readyMarker = new ReadyMarker(readyMarkerKey, bsn); readyService.markReady(readyMarker); bundleReadyMarkerRegistrations.put(bsn, readyMarker); } }
private static void waitForReadyMarker(BundleContext context, String marker, Bundle bundle) { if (bundle.getHeaders().get(Constants.FRAGMENT_HOST) != null) { return; } long startTime = System.nanoTime(); ServiceReference<?> readyServiceRef = context.getServiceReference(ReadyService.class.getName()); ReadyService readyService = (ReadyService) context.getService(readyServiceRef); ReadyMarker expected = new ReadyMarker(marker, bundle.getSymbolicName()); while (!readyService.isReady(expected)) { if (System.nanoTime() - startTime > TimeUnit.SECONDS.toNanos(WAIT_TIMOUT)) { Assert.fail(MessageFormat.format("Timout waiting for marker {0} at bundle {1}", marker, bundle.getSymbolicName())); } try { Thread.sleep(100); } catch (InterruptedException e) { Thread.currentThread().interrupt(); } } context.ungetService(readyServiceRef); }
@Activate protected synchronized void activate(ComponentContext componentContext) { readyService.registerTracker(this, new ReadyMarkerFilter().withType(XML_THING_TYPE)); for (ThingHandlerFactory factory : thingHandlerFactories) { handleThingHandlerFactoryAddition(getBundleName(factory)); } thingRegistry.addThingTracker(this); active = true; }
@Deactivate protected synchronized void deactivate(ComponentContext componentContext) { active = false; thingRegistry.removeThingTracker(this); for (ThingHandlerFactory factory : thingHandlerFactories) { removeThingHandlerFactory(factory); } readyService.unregisterTracker(this); }
private void unregisterReadyMarkers() { for (ReadyMarker readyMarker : bundleReadyMarkerRegistrations.values()) { readyService.unmarkReady(readyMarker); } bundleReadyMarkerRegistrations.clear(); }