diff options
3 files changed, 22 insertions, 7 deletions
diff --git a/fib-management/fib-management-impl/src/main/java/io/fd/hc2vpp/fib/management/read/FibManagementReaderFactory.java b/fib-management/fib-management-impl/src/main/java/io/fd/hc2vpp/fib/management/read/FibManagementReaderFactory.java index d3adc91f7..4c1de905f 100644 --- a/fib-management/fib-management-impl/src/main/java/io/fd/hc2vpp/fib/management/read/FibManagementReaderFactory.java +++ b/fib-management/fib-management-impl/src/main/java/io/fd/hc2vpp/fib/management/read/FibManagementReaderFactory.java @@ -19,7 +19,7 @@ package io.fd.hc2vpp.fib.management.read; import com.google.inject.Inject; import io.fd.hc2vpp.common.translate.util.JvppReplyConsumer; import io.fd.hc2vpp.fib.management.FibManagementIIds; -import io.fd.honeycomb.translate.impl.read.GenericListReader; +import io.fd.honeycomb.translate.impl.read.GenericInitListReader; import io.fd.honeycomb.translate.read.ReaderFactory; import io.fd.honeycomb.translate.read.registry.ModifiableReaderRegistryBuilder; import io.fd.honeycomb.translate.util.read.cache.DumpCacheManager; @@ -47,7 +47,7 @@ public final class FibManagementReaderFactory implements ReaderFactory, JvppRepl registry.addStructuralReader(FibManagementIIds.FIB_MNGMNT, FibTableManagementBuilder.class); registry.addStructuralReader(FibManagementIIds.FM_FIB_TABLES, FibTablesBuilder.class); - registry.add(new GenericListReader<>(FibManagementIIds.FM_FTBLS_TABLE, + registry.add(new GenericInitListReader<>(FibManagementIIds.FM_FTBLS_TABLE, new FibTableCustomizer(ipv4DumpManager, ipv6DumpManager))); } diff --git a/fib-management/fib-management-impl/src/main/java/io/fd/hc2vpp/fib/management/read/FibTableCustomizer.java b/fib-management/fib-management-impl/src/main/java/io/fd/hc2vpp/fib/management/read/FibTableCustomizer.java index 0151a1548..08c8328e4 100644 --- a/fib-management/fib-management-impl/src/main/java/io/fd/hc2vpp/fib/management/read/FibTableCustomizer.java +++ b/fib-management/fib-management-impl/src/main/java/io/fd/hc2vpp/fib/management/read/FibTableCustomizer.java @@ -20,7 +20,8 @@ package io.fd.hc2vpp.fib.management.read; import io.fd.hc2vpp.common.translate.util.ByteDataTranslator; import io.fd.honeycomb.translate.read.ReadContext; import io.fd.honeycomb.translate.read.ReadFailedException; -import io.fd.honeycomb.translate.spi.read.ListReaderCustomizer; +import io.fd.honeycomb.translate.spi.read.Initialized; +import io.fd.honeycomb.translate.spi.read.InitializingListReaderCustomizer; import io.fd.honeycomb.translate.util.read.cache.DumpCacheManager; import io.fd.vpp.jvpp.core.dto.Ip6FibDetailsReplyDump; import io.fd.vpp.jvpp.core.dto.IpFibDetailsReplyDump; @@ -40,7 +41,7 @@ import org.opendaylight.yangtools.concepts.Builder; import org.opendaylight.yangtools.yang.binding.DataObject; import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; -class FibTableCustomizer implements ListReaderCustomizer<Table, TableKey, TableBuilder>, ByteDataTranslator { +class FibTableCustomizer implements InitializingListReaderCustomizer<Table, TableKey, TableBuilder>, ByteDataTranslator { private final DumpCacheManager<IpFibDetailsReplyDump, Void> ipv4DumpManager; private final DumpCacheManager<Ip6FibDetailsReplyDump, Void> ipv6DumpManager; @@ -116,4 +117,12 @@ class FibTableCustomizer implements ListReaderCustomizer<Table, TableKey, TableB builder.setName(toString(tableName)); } } + + @Nonnull + @Override + public Initialized<Table> init(@Nonnull final InstanceIdentifier<Table> id, + @Nonnull final Table readValue, + @Nonnull final ReadContext ctx) { + return Initialized.create(id, readValue); + } } diff --git a/fib-management/fib-management-impl/src/test/java/io/fd/hc2vpp/fib/management/read/FibTableCustomizerTest.java b/fib-management/fib-management-impl/src/test/java/io/fd/hc2vpp/fib/management/read/FibTableCustomizerTest.java index 6b2d8c4d7..081553e47 100644 --- a/fib-management/fib-management-impl/src/test/java/io/fd/hc2vpp/fib/management/read/FibTableCustomizerTest.java +++ b/fib-management/fib-management-impl/src/test/java/io/fd/hc2vpp/fib/management/read/FibTableCustomizerTest.java @@ -22,7 +22,7 @@ import static org.junit.Assert.assertThat; import static org.mockito.ArgumentMatchers.any; import static org.mockito.Mockito.when; -import io.fd.hc2vpp.common.test.read.ListReaderCustomizerTest; +import io.fd.hc2vpp.common.test.read.InitializingListReaderCustomizerTest; import io.fd.hc2vpp.common.translate.util.AddressTranslator; import io.fd.hc2vpp.fib.management.FibManagementIIds; import io.fd.honeycomb.translate.ModificationCache; @@ -52,8 +52,8 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.vpp.fib. import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.vpp.fib.table.management.rev180521.vpp.fib.table.management.fib.tables.TableKey; import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; -public class FibTableCustomizerTest extends ListReaderCustomizerTest<Table, TableKey, TableBuilder> implements - AddressTranslator { +public class FibTableCustomizerTest extends InitializingListReaderCustomizerTest<Table, TableKey, TableBuilder> + implements AddressTranslator { private static final String IPV4_VRF_1 = "IPV4_VRF_1"; private static final IpAddress NEXT_HOP_1 = new IpAddress(new Ipv6Address("a::1")); @@ -165,6 +165,12 @@ public class FibTableCustomizerTest extends ListReaderCustomizerTest<Table, Tabl Assert.assertEquals(IPV4_VRF_1, builder.getName()); } + @Test + public void testInit() { + final Table data = new TableBuilder().build(); + invokeInitTest(TABLE_V4_ID, data, TABLE_V4_ID, data); + } + @Override protected ReaderCustomizer<Table, TableBuilder> initCustomizer() { return new FibTableCustomizer(manager_v4, manager_v6); |