From 940f20de3ab01a057adb2e589f0f5d3788782a3d Mon Sep 17 00:00:00 2001 From: Robert Varga Date: Wed, 30 Jun 2021 17:16:44 +0200 Subject: [PATCH] Use proper extension loading in bgp-rib-impl tests Do not use global state in ServiceLoaderBGPExtensionProviderContext(), but rather a normal ServiceLoader operation. Change-Id: I36975d09cda8ff8e8e6815b15811b0aa56ade8f6 Signed-off-by: Robert Varga --- .../bgp/rib/impl/AbstractBGPDispatcherTest.java | 7 ++++--- .../protocol/bgp/rib/impl/BGPParserTest.java | 7 ++++--- .../protocol/bgp/rib/impl/ParserToSalTest.java | 10 ++++++---- 3 files changed, 14 insertions(+), 10 deletions(-) diff --git a/bgp/rib-impl/src/test/java/org/opendaylight/protocol/bgp/rib/impl/AbstractBGPDispatcherTest.java b/bgp/rib-impl/src/test/java/org/opendaylight/protocol/bgp/rib/impl/AbstractBGPDispatcherTest.java index 4ceb6a2cc5..8fc0d97ad4 100644 --- a/bgp/rib-impl/src/test/java/org/opendaylight/protocol/bgp/rib/impl/AbstractBGPDispatcherTest.java +++ b/bgp/rib-impl/src/test/java/org/opendaylight/protocol/bgp/rib/impl/AbstractBGPDispatcherTest.java @@ -18,13 +18,13 @@ import io.netty.channel.nio.NioEventLoopGroup; import java.net.InetSocketAddress; import java.util.ArrayList; import java.util.List; +import java.util.ServiceLoader; import java.util.concurrent.TimeUnit; import org.junit.After; import org.junit.Before; import org.opendaylight.protocol.bgp.parser.BgpExtendedMessageUtil; import org.opendaylight.protocol.bgp.parser.BgpTableTypeImpl; -import org.opendaylight.protocol.bgp.parser.spi.BGPExtensionProviderContext; -import org.opendaylight.protocol.bgp.parser.spi.pojo.ServiceLoaderBGPExtensionProviderContext; +import org.opendaylight.protocol.bgp.parser.spi.BGPExtensionConsumerContext; import org.opendaylight.protocol.bgp.rib.impl.spi.BGPSessionPreferences; import org.opendaylight.protocol.util.InetSocketAddressUtil; import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.AsNumber; @@ -70,7 +70,8 @@ public class AbstractBGPDispatcherTest { this.registry = new StrictBGPPeerRegistry(); this.clientListener = new SimpleSessionListener(); this.serverListener = new SimpleSessionListener(); - final BGPExtensionProviderContext ctx = ServiceLoaderBGPExtensionProviderContext.getSingletonInstance(); + final BGPExtensionConsumerContext ctx = ServiceLoader.load(BGPExtensionConsumerContext.class).findFirst() + .orElseThrow(); this.serverDispatcher = new BGPDispatcherImpl(ctx, this.boss, this.worker, this.registry); this.clientAddress = InetSocketAddressUtil.getRandomLoopbackInetSocketAddress(); diff --git a/bgp/rib-impl/src/test/java/org/opendaylight/protocol/bgp/rib/impl/BGPParserTest.java b/bgp/rib-impl/src/test/java/org/opendaylight/protocol/bgp/rib/impl/BGPParserTest.java index 1e137021a0..07b691b7ae 100644 --- a/bgp/rib-impl/src/test/java/org/opendaylight/protocol/bgp/rib/impl/BGPParserTest.java +++ b/bgp/rib-impl/src/test/java/org/opendaylight/protocol/bgp/rib/impl/BGPParserTest.java @@ -15,17 +15,18 @@ import io.netty.buffer.ByteBuf; import io.netty.buffer.Unpooled; import java.util.ArrayList; import java.util.List; +import java.util.ServiceLoader; import org.junit.Test; +import org.opendaylight.protocol.bgp.parser.spi.BGPExtensionConsumerContext; import org.opendaylight.protocol.bgp.parser.spi.MessageRegistry; -import org.opendaylight.protocol.bgp.parser.spi.pojo.ServiceLoaderBGPExtensionProviderContext; import org.opendaylight.protocol.util.ByteArray; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.message.rev200120.Keepalive; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.message.rev200120.KeepaliveBuilder; import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.message.rev200120.Notify; public class BGPParserTest { - private final MessageRegistry registry = ServiceLoaderBGPExtensionProviderContext.getSingletonInstance( - ).getMessageRegistry(); + private final MessageRegistry registry = ServiceLoader.load(BGPExtensionConsumerContext.class).findFirst() + .orElseThrow().getMessageRegistry(); @Test public void testMessageToByteEncoding() { diff --git a/bgp/rib-impl/src/test/java/org/opendaylight/protocol/bgp/rib/impl/ParserToSalTest.java b/bgp/rib-impl/src/test/java/org/opendaylight/protocol/bgp/rib/impl/ParserToSalTest.java index 2111153d79..2bb810128b 100644 --- a/bgp/rib-impl/src/test/java/org/opendaylight/protocol/bgp/rib/impl/ParserToSalTest.java +++ b/bgp/rib-impl/src/test/java/org/opendaylight/protocol/bgp/rib/impl/ParserToSalTest.java @@ -26,6 +26,7 @@ import java.net.InetSocketAddress; import java.util.Collection; import java.util.Collections; import java.util.List; +import java.util.ServiceLoader; import java.util.concurrent.ExecutionException; import org.junit.Before; import org.junit.Ignore; @@ -35,7 +36,7 @@ import org.opendaylight.mdsal.binding.dom.adapter.CurrentAdapterSerializer; import org.opendaylight.protocol.bgp.inet.RIBActivator; import org.opendaylight.protocol.bgp.mode.impl.base.BasePathSelectionModeFactory; import org.opendaylight.protocol.bgp.parser.BgpTableTypeImpl; -import org.opendaylight.protocol.bgp.parser.spi.pojo.ServiceLoaderBGPExtensionProviderContext; +import org.opendaylight.protocol.bgp.parser.spi.BGPExtensionConsumerContext; import org.opendaylight.protocol.bgp.rib.impl.spi.BGPDispatcher; import org.opendaylight.protocol.bgp.rib.mock.BGPMock; import org.opendaylight.protocol.bgp.rib.spi.RIBExtensionProviderActivator; @@ -82,8 +83,9 @@ public class ParserToSalTest extends DefaultRibPoliciesMockTest { final String hexMessages = "/bgp_hex.txt"; final List bgpMessages = HexDumpBGPFileParser .parseMessages(ParserToSalTest.class.getResourceAsStream(hexMessages)); - this.mock = new BGPMock(new EventBus("test"), ServiceLoaderBGPExtensionProviderContext - .getSingletonInstance().getMessageRegistry(), Lists.newArrayList(fixMessages(bgpMessages))); + this.mock = new BGPMock(new EventBus("test"), + ServiceLoader.load(BGPExtensionConsumerContext.class).findFirst().orElseThrow().getMessageRegistry(), + Lists.newArrayList(fixMessages(bgpMessages))); doReturn(GlobalEventExecutor.INSTANCE.newSucceededFuture(null)).when(this.dispatcher) .createReconnectingClient(any(InetSocketAddress.class), any(InetSocketAddress.class), @@ -143,7 +145,7 @@ public class ParserToSalTest extends DefaultRibPoliciesMockTest { private void assertTablesExists(final List expectedTables) throws InterruptedException, ExecutionException { readDataOperational(getDataBroker(), BGP_IID, bgpRib -> { - final var tables = bgpRib.getRib().values().iterator().next().getLocRib().getTables(); + final var tables = bgpRib.nonnullRib().values().iterator().next().getLocRib().getTables(); assertNotNull(tables); for (final BgpTableType tableType : expectedTables) { -- 2.36.6