From b9d14eac27f6164f6d76b179b0c961ad9dd5fdda Mon Sep 17 00:00:00 2001 From: lubos-cicut Date: Fri, 13 Oct 2023 15:49:15 +0200 Subject: [PATCH] Do not use RpcService in bgp-benchmark-app Migrated usage of RpcService to Rpc for bgp-benchmark-app. JIRA: BGPCEP-1027 Change-Id: I9db81fa5ea4bd12f3ab5037e361fbbeeb91520db Signed-off-by: lubos-cicut --- .../bgp/benchmark/app/AppPeerBenchmark.java | 25 ++++++++++++------- .../benchmark/app/AppPeerBenchmarkTest.java | 9 +++---- 2 files changed, 20 insertions(+), 14 deletions(-) diff --git a/bgp/benchmark-app/src/main/java/org/opendaylight/protocol/bgp/benchmark/app/AppPeerBenchmark.java b/bgp/benchmark-app/src/main/java/org/opendaylight/protocol/bgp/benchmark/app/AppPeerBenchmark.java index 04c5cfb0a4..526e1b5a8c 100644 --- a/bgp/benchmark-app/src/main/java/org/opendaylight/protocol/bgp/benchmark/app/AppPeerBenchmark.java +++ b/bgp/benchmark-app/src/main/java/org/opendaylight/protocol/bgp/benchmark/app/AppPeerBenchmark.java @@ -12,6 +12,7 @@ import static org.opendaylight.protocol.bgp.parser.spi.PathIdUtil.NON_PATH_ID; import com.google.common.annotations.VisibleForTesting; import com.google.common.base.Stopwatch; +import com.google.common.collect.ImmutableClassToInstanceMap; import com.google.common.net.InetAddresses; import com.google.common.util.concurrent.FutureCallback; import com.google.common.util.concurrent.ListenableFuture; @@ -58,18 +59,20 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.type import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.types.rev200120.UnicastSubsequentAddressFamily; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.types.rev200120.next.hop.c.next.hop.Ipv4NextHopCaseBuilder; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.types.rev200120.next.hop.c.next.hop.ipv4.next.hop._case.Ipv4NextHopBuilder; +import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.odl.bgp.app.peer.benchmark.rev200120.AddPrefix; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.odl.bgp.app.peer.benchmark.rev200120.AddPrefixInput; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.odl.bgp.app.peer.benchmark.rev200120.AddPrefixOutput; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.odl.bgp.app.peer.benchmark.rev200120.AddPrefixOutputBuilder; +import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.odl.bgp.app.peer.benchmark.rev200120.DeletePrefix; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.odl.bgp.app.peer.benchmark.rev200120.DeletePrefixInput; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.odl.bgp.app.peer.benchmark.rev200120.DeletePrefixOutput; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.odl.bgp.app.peer.benchmark.rev200120.DeletePrefixOutputBuilder; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.odl.bgp.app.peer.benchmark.rev200120.OdlBgpAppPeerBenchmarkService; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.odl.bgp.app.peer.benchmark.rev200120.output.Result; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.odl.bgp.app.peer.benchmark.rev200120.output.ResultBuilder; -import org.opendaylight.yangtools.concepts.ObjectRegistration; +import org.opendaylight.yangtools.concepts.Registration; import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; import org.opendaylight.yangtools.yang.binding.KeyedInstanceIdentifier; +import org.opendaylight.yangtools.yang.binding.Rpc; import org.opendaylight.yangtools.yang.binding.util.BindingMap; import org.opendaylight.yangtools.yang.common.RpcResult; import org.opendaylight.yangtools.yang.common.RpcResultBuilder; @@ -77,7 +80,7 @@ import org.opendaylight.yangtools.yang.common.Uint32; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -public final class AppPeerBenchmark implements OdlBgpAppPeerBenchmarkService, TransactionChainListener, AutoCloseable { +public final class AppPeerBenchmark implements TransactionChainListener, AutoCloseable { private static final Logger LOG = LoggerFactory.getLogger(AppPeerBenchmark.class); @@ -94,7 +97,7 @@ public final class AppPeerBenchmark implements OdlBgpAppPeerBenchmarkService, Tr private static final String PREFIX = SLASH + "32"; private final TransactionChain txChain; - private final ObjectRegistration rpcRegistration; + private final Registration rpcRegistration; private final InstanceIdentifier appIID; private final InstanceIdentifier routesIId; private final String appRibId; @@ -109,7 +112,11 @@ public final class AppPeerBenchmark implements OdlBgpAppPeerBenchmarkService, Tr routesIId = appIID .child(Tables.class, new TablesKey(Ipv4AddressFamily.VALUE, UnicastSubsequentAddressFamily.VALUE)) .child(Ipv4RoutesCase.class, Ipv4Routes.class); - rpcRegistration = rpcProviderRegistry.registerRpcImplementation(OdlBgpAppPeerBenchmarkService.class, this); + rpcRegistration = rpcProviderRegistry.registerRpcImplementations( + ImmutableClassToInstanceMap.>builder() + .put(AddPrefix.class, this::addPrefix) + .put(DeletePrefix.class, this::deletePrefix) + .build()); LOG.info("BGP Application Peer Benchmark Application started."); } @@ -146,8 +153,8 @@ public final class AppPeerBenchmark implements OdlBgpAppPeerBenchmarkService, Tr LOG.debug("DatastoreBaAbstractWrite closed successfully, chain {}", chain); } - @Override - public ListenableFuture> addPrefix(final AddPrefixInput input) { + @VisibleForTesting + ListenableFuture> addPrefix(final AddPrefixInput input) { final long duration = addRoute(input.getPrefix(), input.getNexthop(), input.getCount(), input.getBatchsize()); final long rate = countRate(duration, input.getCount()); @@ -156,8 +163,8 @@ public final class AppPeerBenchmark implements OdlBgpAppPeerBenchmarkService, Tr .buildFuture(); } - @Override - public ListenableFuture> deletePrefix(final DeletePrefixInput input) { + @VisibleForTesting + ListenableFuture> deletePrefix(final DeletePrefixInput input) { final long duration = deleteRoute(input.getPrefix(), input.getCount(), input.getBatchsize()); final long rate = countRate(duration, input.getCount()); diff --git a/bgp/benchmark-app/src/test/java/org/opendaylight/protocol/bgp/benchmark/app/AppPeerBenchmarkTest.java b/bgp/benchmark-app/src/test/java/org/opendaylight/protocol/bgp/benchmark/app/AppPeerBenchmarkTest.java index f472acf8eb..0f14c74c80 100644 --- a/bgp/benchmark-app/src/test/java/org/opendaylight/protocol/bgp/benchmark/app/AppPeerBenchmarkTest.java +++ b/bgp/benchmark-app/src/test/java/org/opendaylight/protocol/bgp/benchmark/app/AppPeerBenchmarkTest.java @@ -32,9 +32,8 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.odl.bgp. import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.odl.bgp.app.peer.benchmark.rev200120.DeletePrefixInput; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.odl.bgp.app.peer.benchmark.rev200120.DeletePrefixInputBuilder; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.odl.bgp.app.peer.benchmark.rev200120.DeletePrefixOutput; -import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.odl.bgp.app.peer.benchmark.rev200120.OdlBgpAppPeerBenchmarkService; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.odl.bgp.app.peer.benchmark.rev200120.output.Result; -import org.opendaylight.yangtools.concepts.ObjectRegistration; +import org.opendaylight.yangtools.concepts.Registration; import org.opendaylight.yangtools.yang.binding.InstanceIdentifier; import org.opendaylight.yangtools.yang.common.RpcResult; import org.opendaylight.yangtools.yang.common.Uint32; @@ -49,12 +48,12 @@ public class AppPeerBenchmarkTest extends AbstractConcurrentDataBrokerTest { @Mock private RpcProviderService rpcRegistry; @Mock - private ObjectRegistration registration; + private Registration registration; + @Before public void setUp() { - doReturn(this.registration).when(this.rpcRegistry).registerRpcImplementation(any(), - any(OdlBgpAppPeerBenchmarkService.class)); + doReturn(this.registration).when(this.rpcRegistry).registerRpcImplementations(any()); doNothing().when(this.registration).close(); } -- 2.36.6