1 <?xml version="1.0" encoding="UTF-8"?>
2 <blueprint xmlns="http://www.osgi.org/xmlns/blueprint/v1.0.0"
3 xmlns:odl="http://opendaylight.org/xmlns/blueprint/v1.0.0">
5 <!-- Runtime binding/normalized mapping service -->
7 <reference id="classLoadingStrategy" interface="org.opendaylight.yangtools.sal.binding.generator.api.ClassLoadingStrategy"/>
8 <reference id="schemaService" interface="org.opendaylight.controller.sal.core.api.model.SchemaService" />
10 <bean id="mappingCodec" class="org.opendaylight.controller.md.sal.binding.impl.BindingToNormalizedNodeCodecFactory"
11 factory-method="newInstance">
12 <argument ref="classLoadingStrategy"/>
15 <!-- Register the BindingToNormalizedNodeCodec with the SchemaService as a SchemaContextListener -->
16 <bean id="mappingCodecReg" class="org.opendaylight.controller.md.sal.binding.impl.BindingToNormalizedNodeCodecFactory"
17 factory-method="registerInstance" destroy-method="close">
18 <argument ref="mappingCodec"/>
19 <argument ref="schemaService"/>
22 <service ref="mappingCodec" odl:type="default">
24 <value>org.opendaylight.yangtools.binding.data.codec.api.BindingCodecTreeFactory</value>
25 <value>org.opendaylight.yangtools.binding.data.codec.api.BindingNormalizedNodeSerializer</value>
26 <value>org.opendaylight.mdsal.binding.dom.codec.api.BindingNormalizedNodeSerializer</value>
27 <value>org.opendaylight.mdsal.binding.dom.codec.api.BindingCodecTreeFactory</value>
31 <!-- We also register the BindingToNormalizedNodeCodec with its actual class name for
32 backwards compatibility for CSS users that inject the binding-dom-mapping-service -->
33 <service ref="mappingCodec" interface="org.opendaylight.controller.md.sal.binding.impl.BindingToNormalizedNodeCodec"
35 <!-- Set the appropriate service properties so the corresponding CSS module is restarted if this
36 blueprint container is restarted -->
38 <entry key="config-module-namespace" value="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding:impl"/>
39 <entry key="config-module-name" value="runtime-generated-mapping"/>
40 <entry key="config-instance-name" value="runtime-mapping-singleton"/>
44 <!-- Binding RPC Registry Service -->
46 <reference id="domRpcService" interface="org.opendaylight.controller.md.sal.dom.api.DOMRpcService"/>
48 <bean id="bindingRpcServiceAdapter" class="org.opendaylight.controller.md.sal.binding.impl.BindingDOMRpcServiceAdapter" >
49 <argument ref="domRpcService"/>
50 <argument ref="mappingCodec"/>
53 <reference id="domRpcRegistry" interface="org.opendaylight.controller.md.sal.dom.api.DOMRpcProviderService"/>
55 <bean id="bindingRpcProviderAdapter" class="org.opendaylight.controller.md.sal.binding.impl.BindingDOMRpcProviderServiceAdapter" >
56 <argument ref="domRpcRegistry"/>
57 <argument ref="mappingCodec"/>
60 <bean id="bindingRpcRegistry" class="org.opendaylight.controller.md.sal.binding.compat.HeliumRpcProviderRegistry" >
61 <argument ref="bindingRpcServiceAdapter"/>
62 <argument ref="bindingRpcProviderAdapter"/>
65 <service ref="bindingRpcRegistry" interface="org.opendaylight.controller.sal.binding.api.RpcProviderRegistry"
68 <!-- Binding MountPoint Service -->
70 <reference id="domMountPointService" interface="org.opendaylight.controller.md.sal.dom.api.DOMMountPointService"/>
72 <bean id="bindingMountPointService" class="org.opendaylight.controller.md.sal.binding.impl.BindingDOMMountPointServiceAdapter" >
73 <argument ref="domMountPointService"/>
74 <argument ref="mappingCodec"/>
77 <service ref="bindingMountPointService" interface="org.opendaylight.controller.md.sal.binding.api.MountPointService"
80 <!-- Binding Notification Service -->
82 <reference id="domNotificationService" interface="org.opendaylight.controller.md.sal.dom.api.DOMNotificationService"/>
84 <bean id="bindingNotificationServiceAdapter" class="org.opendaylight.controller.md.sal.binding.impl.BindingDOMNotificationServiceAdapter">
86 <bean factory-ref="mappingCodec" factory-method="getCodecRegistry"/>
88 <argument ref="domNotificationService"/>
91 <service ref="bindingNotificationServiceAdapter" interface="org.opendaylight.controller.md.sal.binding.api.NotificationService"
94 <reference id="domNotificationPublishService" interface="org.opendaylight.controller.md.sal.dom.api.DOMNotificationPublishService"/>
96 <bean id="bindingNotificationPublishAdapter" class="org.opendaylight.controller.md.sal.binding.impl.BindingDOMNotificationPublishServiceAdapter">
97 <argument ref="mappingCodec"/>
98 <argument ref="domNotificationPublishService"/>
101 <service ref="bindingNotificationPublishAdapter" interface="org.opendaylight.controller.md.sal.binding.api.NotificationPublishService"
104 <reference id="domNotificationListenerRegistry" interface="org.opendaylight.controller.md.sal.dom.spi.DOMNotificationSubscriptionListenerRegistry"/>
106 <bean id="bindingNotificationProviderService" class="org.opendaylight.controller.md.sal.binding.compat.HeliumNotificationProviderServiceWithInterestListeners">
107 <argument ref="bindingNotificationPublishAdapter"/>
108 <argument ref="bindingNotificationServiceAdapter"/>
109 <argument ref="domNotificationListenerRegistry"/>
112 <service ref="bindingNotificationProviderService" odl:type="default">
114 <value>org.opendaylight.controller.sal.binding.api.NotificationProviderService</value>
115 <value>org.opendaylight.controller.sal.binding.api.NotificationService</value>
119 <!-- Binding DataBroker -->
121 <reference id="domDefaultDataBroker" interface="org.opendaylight.controller.md.sal.dom.api.DOMDataBroker"
124 <bean id="bindingDataBroker" class="org.opendaylight.controller.md.sal.binding.impl.BindingDOMDataBrokerAdapter">
125 <argument ref="domDefaultDataBroker"/>
126 <argument ref="mappingCodec"/>
129 <service ref="bindingDataBroker" interface="org.opendaylight.controller.md.sal.binding.api.DataBroker"
132 <!-- Binding PingPong DataBroker -->
134 <reference id="domPingPongDataBroker" interface="org.opendaylight.controller.md.sal.dom.api.DOMDataBroker"
135 odl:type="pingpong"/>
137 <bean id="bindingPingPongDataBroker" class="org.opendaylight.controller.md.sal.binding.impl.BindingDOMDataBrokerAdapter">
138 <argument ref="domPingPongDataBroker"/>
139 <argument ref="mappingCodec"/>
142 <service ref="bindingPingPongDataBroker" interface="org.opendaylight.controller.md.sal.binding.api.DataBroker"
143 odl:type="pingpong"/>