BUG-2383 : wired codec tree factory to RIB 80/16980/3
authorDana Kutenicsova <dkutenic@cisco.com>
Mon, 23 Mar 2015 11:33:35 +0000 (12:33 +0100)
committerDana Kutenicsova <dkutenic@cisco.com>
Mon, 23 Mar 2015 12:57:37 +0000 (13:57 +0100)
Change-Id: I4c928c15a9f0902453096bf8db2e1ff571209c36
Signed-off-by: Dana Kutenicsova <dkutenic@cisco.com>
bgp/controller-config/src/main/resources/initial/41-bgp-example.xml
bgp/rib-impl/src/main/java/org/opendaylight/controller/config/yang/bgp/rib/impl/RIBImplModule.java
bgp/rib-impl/src/main/java/org/opendaylight/protocol/bgp/rib/impl/RIBImpl.java
bgp/rib-impl/src/main/yang/odl-bgp-rib-impl-cfg.yang
bgp/rib-impl/src/test/java/org/opendaylight/controller/config/yang/bgp/rib/impl/AbstractRIBImplModuleTest.java
bgp/rib-impl/src/test/java/org/opendaylight/protocol/bgp/rib/impl/ApplicationPeerTest.java
bgp/topology-provider/src/test/java/org/opendaylight/bgpcep/bgp/topology/provider/ParserToSalTest.java

index 7131812b9ba640c2ea71a71854848ab188da03bd..d33d6e6a322f34419dc7602397bfaeb1681c5663 100644 (file)
                         <type xmlns:sal="urn:opendaylight:params:xml:ns:yang:controller:md:sal:dom">sal:dom-async-data-broker</type>
                         <name>pingpong-broker</name>
                     </dom-data-provider>
+                    <codec-tree-factory>
+                        <type xmlns:binding="urn:opendaylight:params:xml:ns:yang:controller:md:sal:binding">binding:binding-codec-tree-factory</type>
+                        <name>runtime-mapping-singleton</name>
+                    </codec-tree-factory>
                     <session-reconnect-strategy>
                         <type xmlns:prefix="urn:opendaylight:params:xml:ns:yang:controller:protocol:framework">prefix:reconnect-strategy-factory</type>
                         <name>example-reconnect-strategy-factory</name>
index 821bc5c59a712f7bf49cffd9cd358ed5952c55cf..4822b8e58ddcc0a6c9a77a0a1420fb0defb154e0 100644 (file)
@@ -52,7 +52,7 @@ public final class RIBImplModule extends org.opendaylight.controller.config.yang
     @Override
     public java.lang.AutoCloseable createInstance() {
         return new RIBImpl(getRibId(), new AsNumber(getLocalAs()), getBgpRibId(), getExtensionsDependency(),
-            getBgpDispatcherDependency(), getTcpReconnectStrategyDependency(), getSessionReconnectStrategyDependency(),
+            getBgpDispatcherDependency(), getTcpReconnectStrategyDependency(), getCodecTreeFactoryDependency(), getSessionReconnectStrategyDependency(),
             getDataProviderDependency(), getDomDataProviderDependency(), getLocalTableDependency());
     }
 }
index 2bf4da2d1736489d1aec34d6e85835c95d1761f4..73a53fca8b62dfa144bb235345bb67a256fc2ffc 100644 (file)
@@ -80,6 +80,7 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.rib.
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.rib.rev130925.rib.TablesKey;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.types.rev130919.Ipv4AddressFamily;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.types.rev130919.UnicastSubsequentAddressFamily;
+import org.opendaylight.yangtools.binding.data.codec.api.BindingCodecTreeFactory;
 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -122,6 +123,7 @@ public final class RIBImpl extends DefaultRibReference implements AutoCloseable,
     private final DataBroker dataBroker;
     private final DOMDataBroker domDataBroker;
     private final RIBExtensionConsumerContext extensions;
+    private final BindingCodecTreeFactory codecFactory;
 
     private final Runnable scheduler = new Runnable() {
         @Override
@@ -154,7 +156,7 @@ public final class RIBImpl extends DefaultRibReference implements AutoCloseable,
     };
 
     public RIBImpl(final RibId ribId, final AsNumber localAs, final Ipv4Address localBgpId, final RIBExtensionConsumerContext extensions,
-        final BGPDispatcher dispatcher, final ReconnectStrategyFactory tcpStrategyFactory,
+        final BGPDispatcher dispatcher, final ReconnectStrategyFactory tcpStrategyFactory, final BindingCodecTreeFactory codecFactory,
         final ReconnectStrategyFactory sessionStrategyFactory, final DataBroker dps, final DOMDataBroker domDataBroker, final List<BgpTableType> localTables) {
         super(InstanceIdentifier.create(BgpRib.class).child(Rib.class, new RibKey(Preconditions.checkNotNull(ribId))));
         this.chain = dps.createTransactionChain(this);
@@ -170,6 +172,7 @@ public final class RIBImpl extends DefaultRibReference implements AutoCloseable,
         this.dataBroker = dps;
         this.domDataBroker = Preconditions.checkNotNull(domDataBroker);
         this.extensions = Preconditions.checkNotNull(extensions);
+        this.codecFactory = codecFactory;
 
         LOG.debug("Instantiating RIB table {} at {}", ribId, getInstanceIdentifier());
 
index c84f70d14fc312b0094e40a09b09d79f478846dd..1623b9a456d7fcb9473af0705bf51944eac2bb26 100644 (file)
@@ -638,6 +638,15 @@ module odl-bgp-rib-impl-cfg {
                 }
             }
 
+            container codec-tree-factory {
+                uses config:service-ref {
+                    refine type {
+                        mandatory true;
+                        config:required-identity mdsb:binding-codec-tree-factory;
+                    }
+                }
+            }
+
             container dom-data-provider {
                 uses config:service-ref {
                     refine type {
index ce75133e7e8adde4ba81f605c90b3eddfb5328a1..68b59296dcbcdf70a13de93b62e6bfc7fc4cdc21 100644 (file)
@@ -230,6 +230,7 @@ public abstract class AbstractRIBImplModuleTest extends AbstractConfigTest {
         mxBean.setSessionReconnectStrategy(reconnectObjectName);
         mxBean.setDataProvider(dataBroker);
         mxBean.setDomDataProvider(lookupDomAsyncDataBroker(transaction));
+        mxBean.setCodecTreeFactory(lookupMappingServiceInstance(transaction));
         final ObjectName reconnectStrategyON = TimedReconnectStrategyModuleTest.createInstance(transaction, TCP_RS_INSTANCE_NAME);
         mxBean.setTcpReconnectStrategy(reconnectStrategyON);
         mxBean.setBgpDispatcher(BGPDispatcherImplModuleTest.createInstance(transaction));
index 68166ffa05ea0c774c766ee0f341b076a135147e..c63b153d2395e82c95fe9211d807d892e3e97219 100644 (file)
@@ -111,6 +111,7 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.rib.
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.types.rev130919.Ipv4AddressFamily;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.types.rev130919.UnicastSubsequentAddressFamily;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.network.concepts.rev131125.IsoSystemIdentifier;
+import org.opendaylight.yangtools.binding.data.codec.api.BindingCodecTreeFactory;
 import org.opendaylight.yangtools.yang.binding.DataObject;
 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
 import org.opendaylight.yangtools.yang.binding.Notification;
@@ -148,6 +149,9 @@ public class ApplicationPeerTest {
     @Mock
     DOMTransactionChain domChain;
 
+    @Mock
+    BindingCodecTreeFactory codecFactory;
+
     @Mock
     ApplicationPeer peer;
 
@@ -227,7 +231,7 @@ public class ApplicationPeerTest {
             }
         }).when(this.transWrite).delete(Mockito.eq(LogicalDatastoreType.OPERATIONAL), Mockito.any(InstanceIdentifier.class));
         this.r = new RIBImpl(new RibId("test"), new AsNumber(5L), new Ipv4Address("127.0.0.1"),
-            context , this.dispatcher, this.tcpStrategyFactory, this.tcpStrategyFactory, this.dps, this.dom, localTables);
+            context , this.dispatcher, this.tcpStrategyFactory, this.codecFactory, this.tcpStrategyFactory, this.dps, this.dom, localTables);
         this.peer = new ApplicationPeer(new ApplicationRibId("t"), new Ipv4Address("127.0.0.1"), this.r);
         final ReadOnlyTransaction readTx = Mockito.mock(ReadOnlyTransaction.class);
         Mockito.doReturn(readTx).when(this.dps).newReadOnlyTransaction();
index 8c07f7d8fe8d76b0d8b7c412ca8f0798ee0179dd..e89a79c79b08005371eec1f6cdbc25852a8a4b37 100644 (file)
@@ -57,6 +57,7 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.rib.
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.rib.rev130925.rib.Tables;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.types.rev130919.Ipv4AddressFamily;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.types.rev130919.UnicastSubsequentAddressFamily;
+import org.opendaylight.yangtools.binding.data.codec.api.BindingCodecTreeFactory;
 import org.opendaylight.yangtools.concepts.ListenerRegistration;
 import org.opendaylight.yangtools.yang.binding.InstanceIdentifier;
 
@@ -79,6 +80,9 @@ public class ParserToSalTest extends AbstractDataBrokerTest {
     @Mock
     ReconnectStrategyFactory sessionStrategy;
 
+    @Mock
+    BindingCodecTreeFactory codecFactory;
+
     @Before
     public void setUp() throws Exception {
         MockitoAnnotations.initMocks(this);
@@ -105,7 +109,7 @@ public class ParserToSalTest extends AbstractDataBrokerTest {
     }
 
     private void runTestWithTables(final List<BgpTableType> tables) {
-        final RIBImpl rib = new RIBImpl(new RibId(TEST_RIB_ID), new AsNumber(72L), new Ipv4Address("127.0.0.1"), this.ext, this.dispatcher, this.tcpStrategyFactory, this.sessionStrategy, getDataBroker(), getDomBroker(), tables);
+        final RIBImpl rib = new RIBImpl(new RibId(TEST_RIB_ID), new AsNumber(72L), new Ipv4Address("127.0.0.1"), this.ext, this.dispatcher, this.tcpStrategyFactory, this.codecFactory, this.sessionStrategy, getDataBroker(), getDomBroker(), tables);
         final BGPPeer peer = new BGPPeer("peer-" + this.mock.toString(), rib);
 
         final ListenerRegistration<?> reg = this.mock.registerUpdateListener(peer);