Refactor DataBroker adapter wiring
[controller.git] / opendaylight / md-sal / sal-binding-broker / src / main / resources / org / opendaylight / blueprint / binding-broker.xml
index 2595420c846a4cb5856ae8cb598a40df7047db01..e156c1e7a13d7d0fe2909c904f586691a67ec749 100644 (file)
     </interfaces>
   </service>
 
+  <!-- TODO: remove this service as it is referring to a class. To do that we need to migrate everyone over to 'factory' -->
   <service id="codec" ref="mappingCodec" interface="org.opendaylight.controller.md.sal.binding.impl.BindingToNormalizedNodeCodec"/>
 
+  <!-- Adapter service -->
+  <bean id="adapterFactory" class="org.opendaylight.controller.md.sal.binding.impl.BindingToDOMAdapterFactory">
+    <argument ref="mappingCodec"/>
+  </bean>
+
+  <service id="factory" ref="adapterFactory">
+    <interfaces>
+      <value>org.opendaylight.controller.md.sal.binding.spi.AdapterFactory</value>
+    </interfaces>
+  </service>
+
   <!-- Binding RPC Registry Service -->
 
   <reference id="domRpcService" interface="org.opendaylight.controller.md.sal.dom.api.DOMRpcService"/>
   <reference id="domDefaultDataBroker" interface="org.opendaylight.controller.md.sal.dom.api.DOMDataBroker"
           odl:type="default"/>
 
-  <bean id="bindingDataBroker" class="org.opendaylight.controller.md.sal.binding.impl.BindingDOMDataBrokerAdapter">
+  <bean id="bindingDataBroker" factory-ref="adapterFactory" factory-method="createDataBroker">
     <argument ref="domDefaultDataBroker"/>
-    <argument ref="mappingCodec"/>
   </bean>
 
   <service ref="bindingDataBroker" interface="org.opendaylight.controller.md.sal.binding.api.DataBroker"
   <reference id="domPingPongDataBroker" interface="org.opendaylight.controller.md.sal.dom.api.DOMDataBroker"
           odl:type="pingpong"/>
 
-  <bean id="bindingPingPongDataBroker" class="org.opendaylight.controller.md.sal.binding.impl.BindingDOMDataBrokerAdapter">
+  <bean id="bindingPingPongDataBroker" factory-ref="adapterFactory" factory-method="createDataBroker">
     <argument ref="domPingPongDataBroker"/>
-    <argument ref="mappingCodec"/>
   </bean>
 
   <service ref="bindingPingPongDataBroker" interface="org.opendaylight.controller.md.sal.binding.api.DataBroker"