<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>
@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());
}
}
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;
private final DataBroker dataBroker;
private final DOMDataBroker domDataBroker;
private final RIBExtensionConsumerContext extensions;
+ private final BindingCodecTreeFactory codecFactory;
private final Runnable scheduler = new Runnable() {
@Override
};
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);
this.dataBroker = dps;
this.domDataBroker = Preconditions.checkNotNull(domDataBroker);
this.extensions = Preconditions.checkNotNull(extensions);
+ this.codecFactory = codecFactory;
LOG.debug("Instantiating RIB table {} at {}", ribId, getInstanceIdentifier());
}
}
+ 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 {
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));
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;
@Mock
DOMTransactionChain domChain;
+ @Mock
+ BindingCodecTreeFactory codecFactory;
+
@Mock
ApplicationPeer peer;
}
}).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();
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;
@Mock
ReconnectStrategyFactory sessionStrategy;
+ @Mock
+ BindingCodecTreeFactory codecFactory;
+
@Before
public void setUp() throws Exception {
MockitoAnnotations.initMocks(this);
}
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);