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