import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.concurrent.atomic.AtomicBoolean;
import java.util.function.Consumer;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.concurrent.atomic.AtomicBoolean;
import java.util.function.Consumer;
import org.apache.aries.blueprint.di.AbstractRecipe;
import org.apache.aries.blueprint.di.ExecutionContext;
import org.apache.aries.blueprint.di.Recipe;
import org.apache.aries.blueprint.ext.DependentComponentFactoryMetadata;
import org.apache.aries.blueprint.services.ExtendedBlueprintContainer;
import org.apache.aries.blueprint.di.AbstractRecipe;
import org.apache.aries.blueprint.di.ExecutionContext;
import org.apache.aries.blueprint.di.Recipe;
import org.apache.aries.blueprint.ext.DependentComponentFactoryMetadata;
import org.apache.aries.blueprint.services.ExtendedBlueprintContainer;
import org.opendaylight.controller.blueprint.BlueprintContainerRestartService;
import org.osgi.framework.ServiceReference;
import org.osgi.service.blueprint.container.ComponentDefinitionException;
import org.opendaylight.controller.blueprint.BlueprintContainerRestartService;
import org.osgi.framework.ServiceReference;
import org.osgi.service.blueprint.container.ComponentDefinitionException;
* @author Thomas Pantelis
*/
abstract class AbstractDependentComponentFactoryMetadata implements DependentComponentFactoryMetadata {
* @author Thomas Pantelis
*/
abstract class AbstractDependentComponentFactoryMetadata implements DependentComponentFactoryMetadata {
final Logger log = LoggerFactory.getLogger(getClass());
private final String id;
private final AtomicBoolean started = new AtomicBoolean();
final Logger log = LoggerFactory.getLogger(getClass());
private final String id;
private final AtomicBoolean started = new AtomicBoolean();
private boolean stoppedServiceRecipes;
protected AbstractDependentComponentFactoryMetadata(final String id) {
private boolean stoppedServiceRecipes;
protected AbstractDependentComponentFactoryMetadata(final String id) {
protected void setFailure(final String failureMessage, final Throwable failureCause) {
this.failureMessage = failureMessage;
this.failureCause = failureCause;
protected void setFailure(final String failureMessage, final Throwable failureCause) {
this.failureMessage = failureMessage;
this.failureCause = failureCause;
try {
ServiceReference<T> serviceReference =
container().getBundleContext().getServiceReference(serviceInterface);
try {
ServiceReference<T> serviceReference =
container().getBundleContext().getServiceReference(serviceInterface);