import static java.util.Objects.requireNonNull;
+import com.google.common.annotations.VisibleForTesting;
import java.util.ServiceLoader;
-
+import org.opendaylight.mdsal.binding.dom.codec.api.BindingNormalizedNodeSerializer;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-/**
- *
- */
-public final class ServiceLoaderRIBExtensionConsumerContext extends SimpleRIBExtensionProviderContext implements AutoCloseable {
+public final class ServiceLoaderRIBExtensionConsumerContext extends SimpleRIBExtensionProviderContext
+ implements AutoCloseable {
private static final Logger LOG = LoggerFactory.getLogger(ServiceLoaderRIBExtensionConsumerContext.class);
private final ServiceLoader<RIBExtensionProviderActivator> loader;
- private ServiceLoaderRIBExtensionConsumerContext(final ServiceLoader<RIBExtensionProviderActivator> loader) {
+ private ServiceLoaderRIBExtensionConsumerContext(final ServiceLoader<RIBExtensionProviderActivator> loader,
+ final BindingNormalizedNodeSerializer mappingService) {
this.loader = requireNonNull(loader);
for (RIBExtensionProviderActivator a : loader) {
- a.startRIBExtensionProvider(this);
+ a.startRIBExtensionProvider(this, mappingService);
}
}
- public static ServiceLoaderRIBExtensionConsumerContext createConsumerContext() {
- final ServiceLoader<RIBExtensionProviderActivator> loader = ServiceLoader.load(RIBExtensionProviderActivator.class);
- final ServiceLoaderRIBExtensionConsumerContext ctx = new ServiceLoaderRIBExtensionConsumerContext(loader);
+ @VisibleForTesting
+ static ServiceLoaderRIBExtensionConsumerContext createConsumerContext(
+ final BindingNormalizedNodeSerializer mappingService) {
+ final ServiceLoader<RIBExtensionProviderActivator> loader =
+ ServiceLoader.load(RIBExtensionProviderActivator.class);
- return ctx;
+ return new ServiceLoaderRIBExtensionConsumerContext(loader, mappingService);
}
@Override
+ @SuppressWarnings("checkstyle:IllegalCatch")
public void close() {
for (RIBExtensionProviderActivator a : this.loader) {
try {