Remove OSGi dependency from bgp modules
[bgpcep.git] / bgp / rib-impl / src / main / resources / org / opendaylight / blueprint / bgp-rib.xml
index 1474b5ef19480a1951afc73d976a19875893e796..bd9d1866dee85d4695a9d625e30f284975d37b3f 100644 (file)
@@ -1,4 +1,11 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!--
+  Copyright (c) 2016 Brocade Communications Systems, Inc. and others.  All rights reserved.
+
+  This program and the accompanying materials are made available under the
+  terms of the Eclipse Public License v1.0 which accompanies this distribution,
+  and is available at http://www.eclipse.org/legal/epl-v10.html
+-->
 <blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0"
            xmlns:odl="http://opendaylight.org/xmlns/blueprint/v1.0.0">
 
   <reference id="globalWorkerGroup" interface="io.netty.channel.EventLoopGroup" odl:type="global-worker-group"/>
   <reference id="clusterSingletonServiceProvider" interface="org.opendaylight.mdsal.singleton.common.api.ClusterSingletonServiceProvider"/>
 
+  <bean id="BGPPeerRegistry" class="org.opendaylight.protocol.bgp.rib.impl.StrictBGPPeerRegistry"
+          factory-method="instance" destroy-method="close"/>
+
+  <service ref="BGPPeerRegistry" interface="org.opendaylight.protocol.bgp.rib.impl.spi.BGPPeerRegistry"
+          odl:type="default"/>
+
   <bean id="BGPDispatcher" class="org.opendaylight.protocol.bgp.rib.impl.BGPDispatcherImpl"  destroy-method="close">
     <argument>
       <bean factory-ref="BGPExtensionContext" factory-method="getMessageRegistry"/>
     </argument>
     <argument ref="globalBossGroup"/>
     <argument ref="globalWorkerGroup"/>
+    <argument ref="BGPPeerRegistry"/>
   </bean>
 
-  <service ref="BGPDispatcher" interface="org.opendaylight.protocol.bgp.rib.impl.spi.BGPDispatcher">
-    <!-- The following service properties specify the config system module and instance that correspond to
-         this OSGi service which enables the config system module to be restarted when this blueprint
-         container is restarted. -->
-    <service-properties>
-      <entry key="config-module-namespace" value="urn:opendaylight:params:xml:ns:yang:controller:bgp:rib:impl"/>
-      <entry key="config-module-name" value="bgp-dispatcher-impl"/>
-      <entry key="config-instance-name" value="global-bgp-dispatcher"/>
-    </service-properties>
-  </service>
-
-  <bean id="BGPPeerRegistry" class="org.opendaylight.protocol.bgp.rib.impl.StrictBGPPeerRegistry"
-          factory-method="instance" destroy-method="close"/>
-
-  <service ref="BGPPeerRegistry" interface="org.opendaylight.protocol.bgp.rib.impl.spi.BGPPeerRegistry"
-          odl:type="default">
-    <!-- The following service properties specify the config system module and instance that correspond to
-         this OSGi service which enables the config system module to be restarted when this blueprint
-         container is restarted. -->
-    <service-properties>
-      <entry key="config-module-namespace" value="urn:opendaylight:params:xml:ns:yang:controller:bgp:rib:impl"/>
-      <entry key="config-module-name" value="strict-bgp-peer-registry"/>
-      <entry key="config-instance-name" value="global-bgp-peer-registry"/>
-    </service-properties>
-  </service>
+  <service ref="BGPDispatcher" interface="org.opendaylight.protocol.bgp.rib.impl.spi.BGPDispatcher"/>
 
   <reference id="dataBroker" interface="org.opendaylight.controller.md.sal.binding.api.DataBroker" odl:type="pingpong"/>
   <reference id="globalBgpExtensions" interface="org.opendaylight.protocol.bgp.rib.spi.RIBExtensionConsumerContext"/>
   <reference id="codecTreeFactory" interface="org.opendaylight.mdsal.binding.dom.codec.api.BindingCodecTreeFactory"/>
   <reference id="domDataBroker" interface="org.opendaylight.controller.md.sal.dom.api.DOMDataBroker" odl:type="pingpong"/>
   <reference id="bgpTableTypeRegistry" interface="org.opendaylight.protocol.bgp.openconfig.spi.BGPTableTypeRegistryConsumer"/>
-  <reference id="schemaService" interface="org.opendaylight.controller.sal.core.api.model.SchemaService"/>
+  <odl:static-reference id="domSchemaService" interface="org.opendaylight.mdsal.dom.api.DOMSchemaService"/>
   <reference id="rpcRegistry" interface="org.opendaylight.controller.sal.binding.api.RpcProviderRegistry"/>
 
-  <bean id="bgpDeployer" class="org.opendaylight.protocol.bgp.rib.impl.config.BgpDeployerImpl"  destroy-method="close">
+  <bean id="bgpDeployer" class="org.opendaylight.protocol.bgp.rib.impl.config.BgpDeployerImpl"
+        init-method="init"
+        destroy-method="close">
     <argument value="global-bgp"/>
-    <argument ref="blueprintContainer"/>
-    <argument ref="blueprintBundleContext"/>
+    <argument ref="clusterSingletonServiceProvider"/>
     <argument ref="dataBroker"/>
     <argument ref="bgpTableTypeRegistry"/>
-  </bean>
-
-  <service ref="bgpDeployer" interface="org.opendaylight.protocol.bgp.rib.impl.spi.BgpDeployer"/>
-
-  <bean id="ribImpl" class="org.opendaylight.protocol.bgp.rib.impl.config.RibImpl" scope="prototype">
-    <argument ref="clusterSingletonServiceProvider"/>
     <argument ref="globalBgpExtensions"/>
     <argument ref="BGPDispatcher"/>
+    <argument ref="policiesProvider"/>
     <argument ref="codecTreeFactory"/>
     <argument ref="domDataBroker"/>
-    <argument ref="schemaService"/>
-  </bean>
-
-  <bean id="bgpPeer" class="org.opendaylight.protocol.bgp.rib.impl.config.BgpPeer" scope="prototype">
+    <argument ref="domSchemaService"/>
     <argument ref="rpcRegistry"/>
-    <argument ref="BGPPeerRegistry"/>
   </bean>
 
-  <bean id="appPeer" class="org.opendaylight.protocol.bgp.rib.impl.config.AppPeer" scope="prototype"/>
+  <reference id="policiesProvider" interface="org.opendaylight.protocol.bgp.openconfig.routing.policy.spi.BGPRibRoutingPolicyFactory"/>
 
-  <reference id="bgpConfigLoader" interface="org.opendaylight.protocol.bgp.config.loader.spi.ConfigLoader"/>
+  <bean id="bgpStateCollector" class="org.opendaylight.protocol.bgp.rib.impl.state.BGPStateCollectorImpl"/>
+  <service ref="bgpStateCollector" interface="org.opendaylight.protocol.bgp.rib.spi.state.BGPStateConsumer"/>
 
-  <bean id="protocolsInitialConfig" class="org.opendaylight.protocol.bgp.rib.impl.ProtocolsConfigFileProcessor" destroy-method="close">
-      <argument ref="bgpConfigLoader"/>
-      <argument ref="bgpDeployer"/>
-  </bean>
+  <reference-list id="ribStatsListener" interface="org.opendaylight.protocol.bgp.rib.spi.state.BGPRibStateConsumer"
+    availability="optional">
+      <reference-listener bind-method="bind" unbind-method="unbind">
+          <ref component-id="bgpStateCollector"/>
+      </reference-listener>
+  </reference-list>
+
+  <reference-list id="peersStatsListener" interface="org.opendaylight.protocol.bgp.rib.spi.state.BGPPeerStateConsumer"
+                  availability="optional">
+      <reference-listener bind-method="bind" unbind-method="unbind">
+          <ref component-id="bgpStateCollector"/>
+      </reference-listener>
+  </reference-list>
 </blueprint>
\ No newline at end of file