Bump upstreams
[bgpcep.git] / bgp / rib-impl / src / main / java / org / opendaylight / protocol / bgp / rib / impl / config / OSGiBgpDeployer.java
1 /*
2  * Copyright (c) 2021 PANTHEON.tech s.r.o. All Rights Reserved.
3  *
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
7  */
8 package org.opendaylight.protocol.bgp.rib.impl.config;
9
10 import org.opendaylight.mdsal.binding.api.DataBroker;
11 import org.opendaylight.mdsal.binding.api.RpcProviderService;
12 import org.opendaylight.mdsal.dom.api.DOMDataBroker;
13 import org.opendaylight.mdsal.singleton.api.ClusterSingletonServiceProvider;
14 import org.opendaylight.protocol.bgp.openconfig.routing.policy.spi.BGPRibRoutingPolicyFactory;
15 import org.opendaylight.protocol.bgp.openconfig.spi.BGPTableTypeRegistryConsumer;
16 import org.opendaylight.protocol.bgp.rib.impl.spi.BGPDispatcher;
17 import org.opendaylight.protocol.bgp.rib.impl.spi.CodecsRegistry;
18 import org.opendaylight.protocol.bgp.rib.spi.RIBExtensionConsumerContext;
19 import org.opendaylight.protocol.bgp.rib.spi.state.BGPStateProviderRegistry;
20 import org.osgi.service.component.annotations.Activate;
21 import org.osgi.service.component.annotations.Component;
22 import org.osgi.service.component.annotations.Deactivate;
23 import org.osgi.service.component.annotations.Reference;
24 import org.osgi.service.metatype.annotations.AttributeDefinition;
25 import org.osgi.service.metatype.annotations.Designate;
26 import org.osgi.service.metatype.annotations.ObjectClassDefinition;
27
28 @Component(service = { })
29 @Designate(ocd = OSGiBgpDeployer.Configuration.class)
30 public final class OSGiBgpDeployer extends DefaultBgpDeployer {
31     @ObjectClassDefinition(description = "Configuration of the OSGiBgpDeployer")
32     public @interface Configuration {
33         @AttributeDefinition(description = "Instance name of deployed BGP")
34         String networkInstanceName() default "global-bgp";
35     }
36
37     @Activate
38     public OSGiBgpDeployer(@Reference final ClusterSingletonServiceProvider provider,
39                            @Reference final RpcProviderService rpcRegistry,
40                            @Reference final RIBExtensionConsumerContext ribExtensionContext,
41                            @Reference final BGPDispatcher bgpDispatcher,
42                            @Reference final BGPRibRoutingPolicyFactory routingPolicyFactory,
43                            @Reference final CodecsRegistry codecsRegistry,
44                            @Reference final DOMDataBroker domDataBroker,
45                            @Reference final DataBroker dataBroker,
46                            @Reference final BGPTableTypeRegistryConsumer mappingService,
47                            @Reference final BGPStateProviderRegistry stateProviderRegistry,
48                            final Configuration configuration) {
49         super(configuration.networkInstanceName(), provider, rpcRegistry, ribExtensionContext, bgpDispatcher,
50                 routingPolicyFactory, codecsRegistry, domDataBroker, dataBroker, mappingService, stateProviderRegistry);
51         init();
52     }
53
54     @Override
55     @Deactivate
56     public void close() {
57         super.close();
58     }
59 }