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.mdsal.binding.generator.api.ClassLoadingStrategy"/>
8 <reference id="schemaService" interface="org.opendaylight.mdsal.dom.api.DOMSchemaService" />
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="mappingCodecListenerReg" 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.mdsal.binding.dom.codec.api.BindingNormalizedNodeSerializer</value>
25 <value>org.opendaylight.mdsal.binding.dom.codec.api.BindingCodecTreeFactory</value>
29 <!-- TODO: remove this service as it is referring to a class. To do that we need to migrate everyone over to 'factory' -->
30 <service id="codec" ref="mappingCodec" interface="org.opendaylight.controller.md.sal.binding.impl.BindingToNormalizedNodeCodec"/>
32 <!-- Adapter service -->
33 <bean id="adapterFactory" class="org.opendaylight.controller.md.sal.binding.impl.BindingToDOMAdapterFactory">
34 <argument ref="mappingCodec"/>
37 <service id="factory" ref="adapterFactory">
39 <value>org.opendaylight.controller.md.sal.binding.spi.AdapterFactory</value>
43 <!-- Binding RPC Registry Service -->
45 <reference id="domRpcService" interface="org.opendaylight.controller.md.sal.dom.api.DOMRpcService"/>
47 <bean id="bindingRpcServiceAdapter" class="org.opendaylight.controller.md.sal.binding.impl.BindingDOMRpcServiceAdapter" >
48 <argument ref="domRpcService"/>
49 <argument ref="mappingCodec"/>
52 <reference id="domRpcRegistry" interface="org.opendaylight.controller.md.sal.dom.api.DOMRpcProviderService"/>
54 <bean id="bindingRpcProviderAdapter" class="org.opendaylight.controller.md.sal.binding.impl.BindingDOMRpcProviderServiceAdapter" >
55 <argument ref="domRpcRegistry"/>
56 <argument ref="mappingCodec"/>
59 <bean id="bindingRpcRegistry" class="org.opendaylight.controller.md.sal.binding.compat.HeliumRpcProviderRegistry" >
60 <argument ref="bindingRpcServiceAdapter"/>
61 <argument ref="bindingRpcProviderAdapter"/>
64 <service ref="bindingRpcRegistry" interface="org.opendaylight.controller.sal.binding.api.RpcProviderRegistry"
67 <!-- Binding MountPoint Service -->
69 <reference id="domMountPointService" interface="org.opendaylight.controller.md.sal.dom.api.DOMMountPointService"/>
71 <bean id="bindingMountPointService" class="org.opendaylight.controller.md.sal.binding.impl.BindingDOMMountPointServiceAdapter" >
72 <argument ref="domMountPointService"/>
73 <argument ref="mappingCodec"/>
76 <service ref="bindingMountPointService" interface="org.opendaylight.controller.md.sal.binding.api.MountPointService"
79 <!-- Binding Notification Service -->
81 <reference id="domNotificationService" interface="org.opendaylight.controller.md.sal.dom.api.DOMNotificationService"/>
83 <bean id="bindingNotificationServiceAdapter" class="org.opendaylight.controller.md.sal.binding.impl.BindingDOMNotificationServiceAdapter">
85 <bean factory-ref="mappingCodec" factory-method="getCodecRegistry"/>
87 <argument ref="domNotificationService"/>
90 <service ref="bindingNotificationServiceAdapter" interface="org.opendaylight.controller.md.sal.binding.api.NotificationService"
93 <reference id="domNotificationPublishService" interface="org.opendaylight.controller.md.sal.dom.api.DOMNotificationPublishService"/>
95 <bean id="bindingNotificationPublishAdapter" class="org.opendaylight.controller.md.sal.binding.impl.BindingDOMNotificationPublishServiceAdapter">
96 <argument ref="mappingCodec"/>
97 <argument ref="domNotificationPublishService"/>
100 <service ref="bindingNotificationPublishAdapter" interface="org.opendaylight.controller.md.sal.binding.api.NotificationPublishService"
103 <reference id="domNotificationListenerRegistry" interface="org.opendaylight.controller.md.sal.dom.spi.DOMNotificationSubscriptionListenerRegistry"/>
105 <bean id="bindingNotificationProviderService" class="org.opendaylight.controller.md.sal.binding.compat.HeliumNotificationProviderServiceWithInterestListeners">
106 <argument ref="bindingNotificationPublishAdapter"/>
107 <argument ref="bindingNotificationServiceAdapter"/>
108 <argument ref="domNotificationListenerRegistry"/>
111 <service ref="bindingNotificationProviderService" odl:type="default">
113 <value>org.opendaylight.controller.sal.binding.api.NotificationProviderService</value>
114 <value>org.opendaylight.controller.sal.binding.api.NotificationService</value>
118 <!-- Binding DataBroker -->
120 <reference id="domDefaultDataBroker" interface="org.opendaylight.controller.md.sal.dom.api.DOMDataBroker"
123 <bean id="bindingDataBroker" factory-ref="adapterFactory" factory-method="createDataBroker">
124 <argument ref="domDefaultDataBroker"/>
127 <service ref="bindingDataBroker" interface="org.opendaylight.controller.md.sal.binding.api.DataBroker"
130 <!-- Binding PingPong DataBroker -->
132 <reference id="domPingPongDataBroker" interface="org.opendaylight.controller.md.sal.dom.api.DOMDataBroker"
133 odl:type="pingpong"/>
135 <bean id="bindingPingPongDataBroker" factory-ref="adapterFactory" factory-method="createDataBroker">
136 <argument ref="domPingPongDataBroker"/>
139 <service ref="bindingPingPongDataBroker" interface="org.opendaylight.controller.md.sal.binding.api.DataBroker"
140 odl:type="pingpong"/>
142 <!-- Legacy BindingAwareBroker -->
144 <bean id="bindingAwareBroker" class="org.opendaylight.controller.sal.binding.impl.RootBindingAwareBroker"
145 init-method="start" destroy-method="close">
146 <argument value="deprecated-BindingAwareBroker"/>
147 <property name="dataBroker" ref="bindingDataBroker"/>
148 <property name="mountService" ref="bindingMountPointService"/>
149 <property name="rpcBroker" ref="bindingRpcRegistry"/>
150 <property name="notificationBroker" ref="bindingNotificationProviderService"/>
151 <property name="notificationPublishService" ref="bindingNotificationPublishAdapter"/>
154 <service ref="bindingAwareBroker" interface="org.opendaylight.controller.sal.binding.api.BindingAwareBroker"/>