Added config model for mdsal.binding.codec.
[controller.git] / opendaylight / md-sal / sal-binding-broker / src / main / resources / org / opendaylight / blueprint / binding-broker.xml
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">
4
5   <!-- Runtime binding/normalized mapping service -->
6
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" />
9
10   <bean id="mappingCodec" class="org.opendaylight.controller.md.sal.binding.impl.BindingToNormalizedNodeCodecFactory"
11          factory-method="getOrCreateInstance">
12     <argument ref="classLoadingStrategy"/>
13     <argument ref="schemaService"/>
14   </bean>
15
16   <service ref="mappingCodec" odl:type="default">
17     <interfaces>
18       <value>org.opendaylight.yangtools.binding.data.codec.api.BindingCodecTreeFactory</value>
19       <value>org.opendaylight.yangtools.binding.data.codec.api.BindingNormalizedNodeSerializer</value>
20       <value>org.opendaylight.mdsal.binding.dom.codec.api.BindingNormalizedNodeSerializer</value>
21       <value>org.opendaylight.mdsal.binding.dom.codec.api.BindingCodecTreeFactory</value>
22     </interfaces>
23   </service>
24
25   <!-- Binding RPC Registry Service -->
26
27   <reference id="domRpcService" interface="org.opendaylight.controller.md.sal.dom.api.DOMRpcService"/>
28
29   <bean id="bindingRpcServiceAdapter" class="org.opendaylight.controller.md.sal.binding.impl.BindingDOMRpcServiceAdapter" >
30     <argument ref="domRpcService"/>
31     <argument ref="mappingCodec"/>
32   </bean>
33
34   <reference id="domRpcRegistry" interface="org.opendaylight.controller.md.sal.dom.api.DOMRpcProviderService"/>
35
36   <bean id="bindingRpcProviderAdapter" class="org.opendaylight.controller.md.sal.binding.impl.BindingDOMRpcProviderServiceAdapter" >
37     <argument ref="domRpcRegistry"/>
38     <argument ref="mappingCodec"/>
39   </bean>
40
41   <bean id="bindingRpcRegistry" class="org.opendaylight.controller.md.sal.binding.compat.HeliumRpcProviderRegistry" >
42     <argument ref="bindingRpcServiceAdapter"/>
43     <argument ref="bindingRpcProviderAdapter"/>
44   </bean>
45
46   <service ref="bindingRpcRegistry" interface="org.opendaylight.controller.sal.binding.api.RpcProviderRegistry"
47           odl:type="default"/>
48
49   <!-- Binding MountPoint Service -->
50
51   <reference id="domMountPointService" interface="org.opendaylight.controller.md.sal.dom.api.DOMMountPointService"/>
52
53   <bean id="bindingMountPointService" class="org.opendaylight.controller.md.sal.binding.impl.BindingDOMMountPointServiceAdapter" >
54     <argument ref="domMountPointService"/>
55     <argument ref="mappingCodec"/>
56   </bean>
57
58   <service ref="bindingMountPointService" interface="org.opendaylight.controller.md.sal.binding.api.MountPointService"
59           odl:type="default"/>
60
61   <!-- Binding Notification Service -->
62
63   <reference id="domNotificationService" interface="org.opendaylight.controller.md.sal.dom.api.DOMNotificationService"/>
64
65   <bean id="bindingNotificationServiceAdapter" class="org.opendaylight.controller.md.sal.binding.impl.BindingDOMNotificationServiceAdapter">
66     <argument>
67       <bean factory-ref="mappingCodec" factory-method="getCodecRegistry"/>
68     </argument>
69     <argument ref="domNotificationService"/>
70   </bean>
71
72   <service ref="bindingNotificationServiceAdapter" interface="org.opendaylight.controller.md.sal.binding.api.NotificationService"
73           odl:type="default"/>
74
75   <reference id="domNotificationPublishService" interface="org.opendaylight.controller.md.sal.dom.api.DOMNotificationPublishService"/>
76
77   <bean id="bindingNotificationPublishAdapter" class="org.opendaylight.controller.md.sal.binding.impl.BindingDOMNotificationPublishServiceAdapter">
78     <argument ref="mappingCodec"/>
79     <argument ref="domNotificationPublishService"/>
80   </bean>
81
82   <service ref="bindingNotificationPublishAdapter" interface="org.opendaylight.controller.md.sal.binding.api.NotificationPublishService"
83           odl:type="default"/>
84
85   <reference id="domNotificationListenerRegistry" interface="org.opendaylight.controller.md.sal.dom.spi.DOMNotificationSubscriptionListenerRegistry"/>
86
87   <bean id="bindingNotificationProviderService" class="org.opendaylight.controller.md.sal.binding.compat.HeliumNotificationProviderServiceWithInterestListeners">
88     <argument ref="bindingNotificationPublishAdapter"/>
89     <argument ref="bindingNotificationServiceAdapter"/>
90     <argument ref="domNotificationListenerRegistry"/>
91   </bean>
92
93   <service ref="bindingNotificationProviderService" odl:type="default">
94     <interfaces>
95       <value>org.opendaylight.controller.sal.binding.api.NotificationProviderService</value>
96       <value>org.opendaylight.controller.sal.binding.api.NotificationService</value>
97     </interfaces>
98   </service>
99
100   <!-- Binding DataBroker -->
101
102   <reference id="domDefaultDataBroker" interface="org.opendaylight.controller.md.sal.dom.api.DOMDataBroker"
103           odl:type="default"/>
104
105   <bean id="bindingDataBroker" class="org.opendaylight.controller.md.sal.binding.impl.BindingDOMDataBrokerAdapter">
106     <argument ref="domDefaultDataBroker"/>
107     <argument ref="mappingCodec"/>
108   </bean>
109
110   <service ref="bindingDataBroker" interface="org.opendaylight.controller.md.sal.binding.api.DataBroker"
111           odl:type="default"/>
112
113   <!-- Binding PingPong DataBroker -->
114
115   <reference id="domPingPongDataBroker" interface="org.opendaylight.controller.md.sal.dom.api.DOMDataBroker"
116           odl:type="pingpong"/>
117
118   <bean id="bindingPingPongDataBroker" class="org.opendaylight.controller.md.sal.binding.impl.BindingDOMDataBrokerAdapter">
119     <argument ref="domPingPongDataBroker"/>
120     <argument ref="mappingCodec"/>
121   </bean>
122
123   <service ref="bindingPingPongDataBroker" interface="org.opendaylight.controller.md.sal.binding.api.DataBroker"
124           odl:type="pingpong"/>
125
126 </blueprint>