@Override public void listenerAdded(final ServiceController<?> controller) { if (controller == controllerController) { controller.removeListener(this); } else { untick(); } }
private void handleStateChange(ServiceController controller) { state = controller.getState(); if (state == State.UP) { value = controller.getValue(); } if (state == State.UP || state == State.START_FAILED || state == State.REMOVED) { controller.removeListener(this); finished = true; notifyAll(); } }
/** {@inheritDoc} */ public void serviceStarted(final ServiceController<? extends Object> serviceController) { startedServicesUpdater.incrementAndGet(this); if (expectedOnDemandServices.contains(serviceController.getName())) { startedOnDemandServicesUpdater.incrementAndGet(this); } if (!expectedOnDemandServices.contains(serviceController.getName()) && countUpdater.decrementAndGet(this) == 0) { batchComplete(); } serviceController.removeListener(this); }
/** {@inheritDoc} */ public void serviceFailed( ServiceController<? extends Object> serviceController, StartException reason) { final ServiceName serviceName = serviceController.getName(); log.errorf(reason, "Service [%s] start failed", serviceName); serviceFailures.put(serviceName, reason); if (!expectedOnDemandServices.contains(serviceController.getName()) && countUpdater.decrementAndGet(this) == 0) { batchComplete(); } serviceController.removeListener(this); }