Refactor DataBroker adapter wiring
authorRobert Varga <robert.varga@pantheon.tech>
Mon, 18 Jun 2018 18:43:39 +0000 (20:43 +0200)
committerRobert Varga <robert.varga@pantheon.tech>
Thu, 21 Jun 2018 09:11:39 +0000 (11:11 +0200)
We really want to expose a factory, which is able to create adapters
based on a codec.

Create AdapterFactory to serve as such a class and use it as
intermediary for instantiation. This removes reference to binding.impl
classes.

Change-Id: I1cf6867121af1703849db642512776d8ef790ae0
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
binding-impl/pom.xml
binding-impl/src/main/resources/org/opendaylight/blueprint/impl-blueprint.xml

index 849d0cce3e74302979845d2ae9769aa42370d22f..11da07fde8d611a8f65ca5eb3b22a94185a20487 100644 (file)
@@ -49,10 +49,9 @@ and is available at http://www.eclipse.org/legal/epl-v10.html
                 <instructions>
                     <Import-Package>
                       org.opendaylight.controller.md.sal.trace.api,
-                      org.opendaylight.mdsal.binding.generator.api,
                       org.opendaylight.controller.md.sal.dom.api,
                       org.opendaylight.controller.md.sal.binding.api,
-                      org.opendaylight.controller.md.sal.binding.impl,
+                      org.opendaylight.controller.md.sal.binding.spi,
                       org.opendaylight.controller.sal.core.api.model,
                       *
                     </Import-Package>
index 00995434413160b229946e7df4c047574759ff94..6f362132c6bc9f253d06d9b133c651ce22f9a62e 100644 (file)
@@ -16,11 +16,10 @@ and is available at http://www.eclipse.org/legal/epl-v10.html
       interface="org.opendaylight.controller.md.sal.trace.api.TracingDOMDataBroker"
       odl:type="default" />
 
-  <odl:static-reference id="mappingCodec" interface="org.opendaylight.controller.md.sal.binding.impl.BindingToNormalizedNodeCodec"/>
+  <reference id="adapterFactory" interface="org.opendaylight.controller.md.sal.binding.spi.AdapterFactory"/>
 
-  <bean id="tracingBindingDataBroker" class="org.opendaylight.controller.md.sal.binding.impl.BindingDOMDataBrokerAdapter">
+  <bean id="tracingBindingDataBroker" factory-ref="adapterFactory" factory-method="createDataBroker">
     <argument ref="tracingDefaultDOMBroker"/>
-    <argument ref="mappingCodec"/>
   </bean>
 
   <service id="tracingBindingDataBrokerSvc" ref="tracingBindingDataBroker"
@@ -31,9 +30,8 @@ and is available at http://www.eclipse.org/legal/epl-v10.html
       interface="org.opendaylight.controller.md.sal.trace.api.TracingDOMDataBroker"
       odl:type="pingpong"/>
 
-  <bean id="bindingTracingPingPongDataBroker" class="org.opendaylight.controller.md.sal.binding.impl.BindingDOMDataBrokerAdapter">
+  <bean id="bindingTracingPingPongDataBroker" factory-ref="adapterFactory" factory-method="createDataBroker">
     <argument ref="tracingPingPongDOMDataBroker"/>
-    <argument ref="mappingCodec"/>
   </bean>
 
   <service ref="bindingTracingPingPongDataBroker" interface="org.opendaylight.controller.md.sal.binding.api.DataBroker"