Add blueprint wiring to sal-binding-broker-impl
[controller.git] / opendaylight / md-sal / sal-binding-broker / src / main / resources / org / opendaylight / blueprint / binding-broker.xml
diff --git a/opendaylight/md-sal/sal-binding-broker/src/main/resources/org/opendaylight/blueprint/binding-broker.xml b/opendaylight/md-sal/sal-binding-broker/src/main/resources/org/opendaylight/blueprint/binding-broker.xml
new file mode 100644 (file)
index 0000000..db405e0
--- /dev/null
@@ -0,0 +1,124 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0"
+           xmlns:odl="http://opendaylight.org/xmlns/blueprint/v1.0.0">
+
+  <!-- Runtime binding/normalized mapping service -->
+
+  <reference id="classLoadingStrategy" interface="org.opendaylight.yangtools.sal.binding.generator.api.ClassLoadingStrategy"/>
+  <reference id="schemaService" interface="org.opendaylight.controller.sal.core.api.model.SchemaService" />
+
+  <bean id="mappingCodec" class="org.opendaylight.controller.md.sal.binding.impl.BindingToNormalizedNodeCodecFactory"
+         factory-method="getOrCreateInstance">
+    <argument ref="classLoadingStrategy"/>
+    <argument ref="schemaService"/>
+  </bean>
+
+  <service ref="mappingCodec" odl:type="default">
+    <interfaces>
+      <value>org.opendaylight.yangtools.binding.data.codec.api.BindingCodecTreeFactory</value>
+      <value>org.opendaylight.yangtools.binding.data.codec.api.BindingNormalizedNodeSerializer</value>
+    </interfaces>
+  </service>
+
+  <!-- Binding RPC Registry Service -->
+
+  <reference id="domRpcService" interface="org.opendaylight.controller.md.sal.dom.api.DOMRpcService"/>
+
+  <bean id="bindingRpcServiceAdapter" class="org.opendaylight.controller.md.sal.binding.impl.BindingDOMRpcServiceAdapter" >
+    <argument ref="domRpcService"/>
+    <argument ref="mappingCodec"/>
+  </bean>
+
+  <reference id="domRpcRegistry" interface="org.opendaylight.controller.md.sal.dom.api.DOMRpcProviderService"/>
+
+  <bean id="bindingRpcProviderAdapter" class="org.opendaylight.controller.md.sal.binding.impl.BindingDOMRpcProviderServiceAdapter" >
+    <argument ref="domRpcRegistry"/>
+    <argument ref="mappingCodec"/>
+  </bean>
+
+  <bean id="bindingRpcRegistry" class="org.opendaylight.controller.md.sal.binding.compat.HeliumRpcProviderRegistry" >
+    <argument ref="bindingRpcServiceAdapter"/>
+    <argument ref="bindingRpcProviderAdapter"/>
+  </bean>
+
+  <service ref="bindingRpcRegistry" interface="org.opendaylight.controller.sal.binding.api.RpcProviderRegistry"
+          odl:type="default"/>
+
+  <!-- Binding MountPoint Service -->
+
+  <reference id="domMountPointService" interface="org.opendaylight.controller.md.sal.dom.api.DOMMountPointService"/>
+
+  <bean id="bindingMountPointService" class="org.opendaylight.controller.md.sal.binding.impl.BindingDOMMountPointServiceAdapter" >
+    <argument ref="domMountPointService"/>
+    <argument ref="mappingCodec"/>
+  </bean>
+
+  <service ref="bindingMountPointService" interface="org.opendaylight.controller.md.sal.binding.api.MountPointService"
+          odl:type="default"/>
+
+  <!-- Binding Notification Service -->
+
+  <reference id="domNotificationService" interface="org.opendaylight.controller.md.sal.dom.api.DOMNotificationService"/>
+
+  <bean id="bindingNotificationServiceAdapter" class="org.opendaylight.controller.md.sal.binding.impl.BindingDOMNotificationServiceAdapter">
+    <argument>
+      <bean factory-ref="mappingCodec" factory-method="getCodecRegistry"/>
+    </argument>
+    <argument ref="domNotificationService"/>
+  </bean>
+
+  <service ref="bindingNotificationServiceAdapter" interface="org.opendaylight.controller.md.sal.binding.api.NotificationService"
+          odl:type="default"/>
+
+  <reference id="domNotificationPublishService" interface="org.opendaylight.controller.md.sal.dom.api.DOMNotificationPublishService"/>
+
+  <bean id="bindingNotificationPublishAdapter" class="org.opendaylight.controller.md.sal.binding.impl.BindingDOMNotificationPublishServiceAdapter">
+    <argument ref="mappingCodec"/>
+    <argument ref="domNotificationPublishService"/>
+  </bean>
+
+  <service ref="bindingNotificationPublishAdapter" interface="org.opendaylight.controller.md.sal.binding.api.NotificationPublishService"
+          odl:type="default"/>
+
+  <reference id="domNotificationListenerRegistry" interface="org.opendaylight.controller.md.sal.dom.spi.DOMNotificationSubscriptionListenerRegistry"/>
+
+  <bean id="bindingNotificationProviderService" class="org.opendaylight.controller.md.sal.binding.compat.HeliumNotificationProviderServiceWithInterestListeners">
+    <argument ref="bindingNotificationPublishAdapter"/>
+    <argument ref="bindingNotificationServiceAdapter"/>
+    <argument ref="domNotificationListenerRegistry"/>
+  </bean>
+
+  <service ref="bindingNotificationProviderService" odl:type="default">
+    <interfaces>
+      <value>org.opendaylight.controller.sal.binding.api.NotificationProviderService</value>
+      <value>org.opendaylight.controller.sal.binding.api.NotificationService</value>
+    </interfaces>
+  </service>
+
+  <!-- Binding DataBroker -->
+
+  <reference id="domDefaultDataBroker" interface="org.opendaylight.controller.md.sal.dom.api.DOMDataBroker"
+          odl:type="default"/>
+
+  <bean id="bindingDataBroker" class="org.opendaylight.controller.md.sal.binding.impl.BindingDOMDataBrokerAdapter">
+    <argument ref="domDefaultDataBroker"/>
+    <argument ref="mappingCodec"/>
+  </bean>
+
+  <service ref="bindingDataBroker" interface="org.opendaylight.controller.md.sal.binding.api.DataBroker"
+          odl:type="default"/>
+
+  <!-- Binding PingPong DataBroker -->
+
+  <reference id="domPingPongDataBroker" interface="org.opendaylight.controller.md.sal.dom.api.DOMDataBroker"
+          odl:type="pingpong"/>
+
+  <bean id="bindingPingPongDataBroker" class="org.opendaylight.controller.md.sal.binding.impl.BindingDOMDataBrokerAdapter">
+    <argument ref="domPingPongDataBroker"/>
+    <argument ref="mappingCodec"/>
+  </bean>
+
+  <service ref="bindingPingPongDataBroker" interface="org.opendaylight.controller.md.sal.binding.api.DataBroker"
+          odl:type="pingpong"/>
+
+</blueprint>