Remove global BindingToNormalizedNodeCodec instance
[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="newInstance">
12     <argument ref="classLoadingStrategy"/>
13   </bean>
14
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"/>
20   </bean>
21
22   <service ref="mappingCodec" odl:type="default">
23     <interfaces>
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>
28     </interfaces>
29   </service>
30
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"
34         odl:type="default">
35     <!-- Set the appropriate service properties so the corresponding CSS module is restarted if this
36          blueprint container is restarted -->
37     <service-properties>
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"/>
41     </service-properties>
42   </service>
43
44   <!-- Binding RPC Registry Service -->
45
46   <reference id="domRpcService" interface="org.opendaylight.controller.md.sal.dom.api.DOMRpcService"/>
47
48   <bean id="bindingRpcServiceAdapter" class="org.opendaylight.controller.md.sal.binding.impl.BindingDOMRpcServiceAdapter" >
49     <argument ref="domRpcService"/>
50     <argument ref="mappingCodec"/>
51   </bean>
52
53   <reference id="domRpcRegistry" interface="org.opendaylight.controller.md.sal.dom.api.DOMRpcProviderService"/>
54
55   <bean id="bindingRpcProviderAdapter" class="org.opendaylight.controller.md.sal.binding.impl.BindingDOMRpcProviderServiceAdapter" >
56     <argument ref="domRpcRegistry"/>
57     <argument ref="mappingCodec"/>
58   </bean>
59
60   <bean id="bindingRpcRegistry" class="org.opendaylight.controller.md.sal.binding.compat.HeliumRpcProviderRegistry" >
61     <argument ref="bindingRpcServiceAdapter"/>
62     <argument ref="bindingRpcProviderAdapter"/>
63   </bean>
64
65   <service ref="bindingRpcRegistry" interface="org.opendaylight.controller.sal.binding.api.RpcProviderRegistry"
66           odl:type="default"/>
67
68   <!-- Binding MountPoint Service -->
69
70   <reference id="domMountPointService" interface="org.opendaylight.controller.md.sal.dom.api.DOMMountPointService"/>
71
72   <bean id="bindingMountPointService" class="org.opendaylight.controller.md.sal.binding.impl.BindingDOMMountPointServiceAdapter" >
73     <argument ref="domMountPointService"/>
74     <argument ref="mappingCodec"/>
75   </bean>
76
77   <service ref="bindingMountPointService" interface="org.opendaylight.controller.md.sal.binding.api.MountPointService"
78           odl:type="default"/>
79
80   <!-- Binding Notification Service -->
81
82   <reference id="domNotificationService" interface="org.opendaylight.controller.md.sal.dom.api.DOMNotificationService"/>
83
84   <bean id="bindingNotificationServiceAdapter" class="org.opendaylight.controller.md.sal.binding.impl.BindingDOMNotificationServiceAdapter">
85     <argument>
86       <bean factory-ref="mappingCodec" factory-method="getCodecRegistry"/>
87     </argument>
88     <argument ref="domNotificationService"/>
89   </bean>
90
91   <service ref="bindingNotificationServiceAdapter" interface="org.opendaylight.controller.md.sal.binding.api.NotificationService"
92           odl:type="default"/>
93
94   <reference id="domNotificationPublishService" interface="org.opendaylight.controller.md.sal.dom.api.DOMNotificationPublishService"/>
95
96   <bean id="bindingNotificationPublishAdapter" class="org.opendaylight.controller.md.sal.binding.impl.BindingDOMNotificationPublishServiceAdapter">
97     <argument ref="mappingCodec"/>
98     <argument ref="domNotificationPublishService"/>
99   </bean>
100
101   <service ref="bindingNotificationPublishAdapter" interface="org.opendaylight.controller.md.sal.binding.api.NotificationPublishService"
102           odl:type="default"/>
103
104   <reference id="domNotificationListenerRegistry" interface="org.opendaylight.controller.md.sal.dom.spi.DOMNotificationSubscriptionListenerRegistry"/>
105
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"/>
110   </bean>
111
112   <service ref="bindingNotificationProviderService" odl:type="default">
113     <interfaces>
114       <value>org.opendaylight.controller.sal.binding.api.NotificationProviderService</value>
115       <value>org.opendaylight.controller.sal.binding.api.NotificationService</value>
116     </interfaces>
117   </service>
118
119   <!-- Binding DataBroker -->
120
121   <reference id="domDefaultDataBroker" interface="org.opendaylight.controller.md.sal.dom.api.DOMDataBroker"
122           odl:type="default"/>
123
124   <bean id="bindingDataBroker" class="org.opendaylight.controller.md.sal.binding.impl.BindingDOMDataBrokerAdapter">
125     <argument ref="domDefaultDataBroker"/>
126     <argument ref="mappingCodec"/>
127   </bean>
128
129   <service ref="bindingDataBroker" interface="org.opendaylight.controller.md.sal.binding.api.DataBroker"
130           odl:type="default"/>
131
132   <!-- Binding PingPong DataBroker -->
133
134   <reference id="domPingPongDataBroker" interface="org.opendaylight.controller.md.sal.dom.api.DOMDataBroker"
135           odl:type="pingpong"/>
136
137   <bean id="bindingPingPongDataBroker" class="org.opendaylight.controller.md.sal.binding.impl.BindingDOMDataBrokerAdapter">
138     <argument ref="domPingPongDataBroker"/>
139     <argument ref="mappingCodec"/>
140   </bean>
141
142   <service ref="bindingPingPongDataBroker" interface="org.opendaylight.controller.md.sal.binding.api.DataBroker"
143           odl:type="pingpong"/>
144
145 </blueprint>