8b13c00f9666c78ad8051970c9715fd0094445f9
[controller.git] / opendaylight / md-sal / sal-binding-broker / src / main / resources / OSGI-INF / 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   <reference id="classLoadingStrategy" interface="org.opendaylight.mdsal.binding.generator.api.ClassLoadingStrategy" />
6   <reference id="schemaService" interface="org.opendaylight.mdsal.dom.api.DOMSchemaService" />
7   <reference id="domRpcService" interface="org.opendaylight.controller.md.sal.dom.api.DOMRpcService"/>
8   <reference id="domRpcRegistry" interface="org.opendaylight.controller.md.sal.dom.api.DOMRpcProviderService"/>
9   <reference id="domMountPointService" interface="org.opendaylight.controller.md.sal.dom.api.DOMMountPointService"/>
10   <reference id="domNotificationService" interface="org.opendaylight.controller.md.sal.dom.api.DOMNotificationService"/>
11   <reference id="domNotificationPublishService" interface="org.opendaylight.controller.md.sal.dom.api.DOMNotificationPublishService"/>
12   <reference id="domNotificationListenerRegistry" interface="org.opendaylight.controller.md.sal.dom.spi.DOMNotificationSubscriptionListenerRegistry"/>
13   <reference id="domDefaultDataBroker" interface="org.opendaylight.controller.md.sal.dom.api.DOMDataBroker"
14           odl:type="default"/>
15   <reference id="domPingPongDataBroker" interface="org.opendaylight.controller.md.sal.dom.api.DOMDataBroker"
16           odl:type="pingpong"/>
17
18   <bean id="wiring" class="org.opendaylight.controller.md.sal.binding.impl.BindingBrokerWiring">
19     <argument ref="classLoadingStrategy"/>
20     <argument ref="schemaService"/>
21     <argument ref="domRpcService"/>
22     <argument ref="domRpcRegistry"/>
23     <argument ref="domMountPointService"/>
24     <argument ref="domNotificationService"/>
25     <argument ref="domNotificationPublishService"/>
26     <argument ref="domNotificationListenerRegistry"/>
27     <argument ref="domDefaultDataBroker"/>
28     <argument ref="domPingPongDataBroker"/>
29   </bean>
30
31   <!-- Runtime binding/normalized mapping service -->
32
33   <bean id="mappingCodec" factory-ref="wiring" factory-method="getBindingToNormalizedNodeCodec" />
34
35   <service ref="mappingCodec" odl:type="default">
36     <interfaces>
37       <value>org.opendaylight.mdsal.binding.dom.codec.api.BindingNormalizedNodeSerializer</value>
38       <value>org.opendaylight.mdsal.binding.dom.codec.api.BindingCodecTreeFactory</value>
39     </interfaces>
40   </service>
41
42   <!-- TODO: remove this service as it is referring to a class. To do that we need to migrate everyone over to 'factory' -->
43   <service id="codec" ref="mappingCodec" interface="org.opendaylight.controller.md.sal.binding.impl.BindingToNormalizedNodeCodec"/>
44
45   <!-- Adapter service -->
46   <bean id="adapterFactory" factory-ref="wiring" factory-method="getAdapterFactory" />
47
48   <service id="factory" ref="adapterFactory">
49     <interfaces>
50       <value>org.opendaylight.controller.md.sal.binding.spi.AdapterFactory</value>
51     </interfaces>
52   </service>
53
54   <!-- Binding RPC Registry Service -->
55
56   <bean id="bindingRpcRegistry" factory-ref="wiring" factory-method="getRpcProviderRegistry" />
57
58   <service ref="bindingRpcRegistry" interface="org.opendaylight.controller.sal.binding.api.RpcProviderRegistry"
59           odl:type="default"/>
60
61   <!-- Binding MountPoint Service -->
62
63   <bean id="bindingMountPointService" factory-ref="wiring" factory-method="getMountPointService" />
64
65   <service ref="bindingMountPointService" interface="org.opendaylight.controller.md.sal.binding.api.MountPointService"
66           odl:type="default"/>
67
68   <!-- Binding Notification Service -->
69
70   <bean id="bindingNotificationServiceAdapter" factory-ref="wiring" factory-method="getNotificationService" />
71   <service ref="bindingNotificationServiceAdapter" interface="org.opendaylight.controller.md.sal.binding.api.NotificationService"
72           odl:type="default"/>
73
74   <bean id="bindingNotificationPublishAdapter" factory-ref="wiring" factory-method="getNotificationPublishService" />
75   <service ref="bindingNotificationPublishAdapter" interface="org.opendaylight.controller.md.sal.binding.api.NotificationPublishService"
76           odl:type="default"/>
77
78   <bean id="notificationProviderService" factory-ref="wiring" factory-method="getNotificationProviderService" />
79   <service ref="notificationProviderService" interface="org.opendaylight.controller.sal.binding.api.NotificationProviderService" odl:type="default" />
80
81   <bean id="deprecatedNotificationService" factory-ref="wiring" factory-method="getNotificationProviderService" />
82   <service ref="deprecatedNotificationService" interface="org.opendaylight.controller.sal.binding.api.NotificationService" odl:type="default" />
83
84   <!-- Binding DataBroker -->
85
86   <bean id="bindingDataBroker" factory-ref="wiring" factory-method="getDataBroker" />
87
88   <service ref="bindingDataBroker" interface="org.opendaylight.controller.md.sal.binding.api.DataBroker"
89           odl:type="default"/>
90
91   <!-- Binding PingPong DataBroker -->
92
93   <bean id="bindingPingPongDataBroker" factory-ref="wiring" factory-method="getPingPongDataBroker" />
94
95   <service ref="bindingPingPongDataBroker" interface="org.opendaylight.controller.md.sal.binding.api.DataBroker"
96           odl:type="pingpong"/>
97
98   <!-- Legacy BindingAwareBroker -->
99
100   <bean id="bindingNotificationProviderService" class="org.opendaylight.controller.md.sal.binding.compat.HeliumNotificationProviderServiceWithInterestListeners">
101     <argument ref="bindingNotificationPublishAdapter"/>
102     <argument ref="bindingNotificationServiceAdapter"/>
103     <argument ref="domNotificationListenerRegistry"/>
104   </bean>
105
106   <bean id="bindingAwareBroker" class="org.opendaylight.controller.sal.binding.impl.RootBindingAwareBroker"
107       init-method="start" destroy-method="close">
108     <argument value="deprecated-BindingAwareBroker"/>
109     <property name="dataBroker" ref="bindingDataBroker"/>
110     <property name="mountService" ref="bindingMountPointService"/>
111     <property name="rpcBroker" ref="bindingRpcRegistry"/>
112     <property name="notificationBroker" ref="bindingNotificationProviderService"/>
113     <property name="notificationPublishService" ref="bindingNotificationPublishAdapter"/>
114   </bean>
115
116   <service ref="bindingAwareBroker" interface="org.opendaylight.controller.sal.binding.api.BindingAwareBroker"/>
117 </blueprint>

©2013 OpenDaylight, A Linux Foundation Collaborative Project. All Rights Reserved.
OpenDaylight is a registered trademark of The OpenDaylight Project, Inc.
Linux Foundation and OpenDaylight are registered trademarks of the Linux Foundation.
Linux is a registered trademark of Linus Torvalds.