void notifySatisfiableComponents() { getComponents(StartupComponent::isSatisfiable) .forEach(startupComponent -> { if (logger.isDebugEnabled()) { logger.debug("Notifying RequiredCapabilityListener of component {} from bundle({}:{}) " + "since all the required capabilities are available", startupComponent.getName(), startupComponent.getBundle().getSymbolicName(), startupComponent.getBundle().getVersion()); } startupComponent.setSatisfied(true); RequiredCapabilityListener capabilityListener = startupComponent.getListener(); try { capabilityListener.onAllRequiredCapabilitiesAvailable(); } catch (RuntimeException e) { logger.error("Runtime Exception occurred while calling onAllRequiredCapabilitiesAvailable of " + "component " + startupComponent.getName(), e); } }); } }