2 * Copyright (c) 2016 Brocade Communications Systems, Inc. and others. All rights reserved.
4 * This program and the accompanying materials are made available under the
5 * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 * and is available at http://www.eclipse.org/legal/epl-v10.html
8 package org.opendaylight.protocol.bgp.rib.spi;
10 import static java.util.Objects.requireNonNull;
12 import java.util.List;
13 import org.opendaylight.mdsal.binding.dom.codec.api.BindingNormalizedNodeSerializer;
14 import org.slf4j.Logger;
15 import org.slf4j.LoggerFactory;
18 * Starts and stops RIBExtensionProviderActivator instances for a RIBExtensionProviderContext.
20 public final class SimpleRIBExtensionProviderContextActivator implements AutoCloseable {
21 private static final Logger LOG = LoggerFactory.getLogger(SimpleRIBExtensionProviderContextActivator.class);
23 private final RIBExtensionProviderContext providerContext;
24 private final List<RIBExtensionProviderActivator> extensionActivators;
25 private final BindingNormalizedNodeSerializer mappingService;
27 public SimpleRIBExtensionProviderContextActivator(final RIBExtensionProviderContext providerContext,
28 final List<RIBExtensionProviderActivator> extensionActivators,
29 final BindingNormalizedNodeSerializer mappingService) {
30 this.providerContext = requireNonNull(providerContext);
31 this.extensionActivators = requireNonNull(extensionActivators);
32 this.mappingService = requireNonNull(mappingService);
36 LOG.info("Starting {} RIBExtensionProviderActivator instances", this.extensionActivators.size());
38 for (final RIBExtensionProviderActivator e : this.extensionActivators) {
39 e.startRIBExtensionProvider(this.providerContext, this.mappingService);
45 LOG.info("Stopping {} RIBExtensionProviderActivator instances", this.extensionActivators.size());
47 for (final RIBExtensionProviderActivator e : this.extensionActivators) {
48 e.stopRIBExtensionProvider();