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 {
private final String id;
private final AtomicBoolean started = new AtomicBoolean();
private final AtomicBoolean satisfied = new AtomicBoolean();
private final String id;
private final AtomicBoolean started = new AtomicBoolean();
private final AtomicBoolean satisfied = new AtomicBoolean();
private volatile SatisfactionCallback satisfactionCallback;
private volatile String failureMessage;
private volatile Throwable failureCause;
private volatile SatisfactionCallback satisfactionCallback;
private volatile String failureMessage;
private volatile Throwable failureCause;
- protected AbstractDependentComponentFactoryMetadata(String id) {
- this.id = Preconditions.checkNotNull(id);
+ protected AbstractDependentComponentFactoryMetadata(final String id) {
+ this.id = requireNonNull(id);
- protected void setFailure(String failureMessage, Throwable failureCause) {
+ @SuppressWarnings("checkstyle:hiddenField")
+ protected void setFailure(final String failureMessage, final Throwable failureCause) {
- protected void setDependendencyDesc(String dependendencyDesc) {
- this.dependendencyDesc = dependendencyDesc;
+ protected void setDependencyDesc(final String dependencyDesc) {
+ this.dependencyDesc = dependencyDesc;
- protected void retrieveService(String name, Class<?> interfaceClass, Consumer<Object> onServiceRetrieved) {
+ protected void retrieveService(final String name, final Class<?> interfaceClass,
+ final Consumer<Object> onServiceRetrieved) {
- protected void retrieveService(String name, String interfaceName, Consumer<Object> onServiceRetrieved) {
+ protected void retrieveService(final String name, final String interfaceName,
+ final Consumer<Object> onServiceRetrieved) {
StaticServiceReferenceRecipe recipe = new StaticServiceReferenceRecipe(getId() + "-" + name,
container, interfaceName);
StaticServiceReferenceRecipe recipe = new StaticServiceReferenceRecipe(getId() + "-" + name,
container, interfaceName);
this.container = newContainer;
log.debug("{}: In init", logName());
this.container = newContainer;
log.debug("{}: In init", logName());
try {
ServiceReference<T> serviceReference =
container().getBundleContext().getServiceReference(serviceInterface);
try {
ServiceReference<T> serviceReference =
container().getBundleContext().getServiceReference(serviceInterface);
// This is thrown if the BundleContext is no longer valid which is possible on shutdown so we
// log as debug.
log.debug("{}: Error obtaining {}", logName(), serviceInterface.getSimpleName(), e);
// This is thrown if the BundleContext is no longer valid which is possible on shutdown so we
// log as debug.
log.debug("{}: Error obtaining {}", logName(), serviceInterface.getSimpleName(), e);