Use proper extension loading in bgp-rib-impl tests 44/96744/1
authorRobert Varga <robert.varga@pantheon.tech>
Wed, 30 Jun 2021 15:16:44 +0000 (17:16 +0200)
committerRobert Varga <robert.varga@pantheon.tech>
Wed, 30 Jun 2021 15:18:10 +0000 (17:18 +0200)
Do not use global state in ServiceLoaderBGPExtensionProviderContext(),
but rather a normal ServiceLoader operation.

Change-Id: I36975d09cda8ff8e8e6815b15811b0aa56ade8f6
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
bgp/rib-impl/src/test/java/org/opendaylight/protocol/bgp/rib/impl/AbstractBGPDispatcherTest.java
bgp/rib-impl/src/test/java/org/opendaylight/protocol/bgp/rib/impl/BGPParserTest.java
bgp/rib-impl/src/test/java/org/opendaylight/protocol/bgp/rib/impl/ParserToSalTest.java

index 4ceb6a2cc55ce6946a53d5bb11bde72ff51044ee..8fc0d97ad423b0747d2e82ac91c10c8a9ebe598a 100644 (file)
@@ -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();
index 1e137021a00d6b5f0ae0df32a42f7a92b9683d72..07b691b7ae592390a65bef5869537968c38b87f7 100644 (file)
@@ -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() {
index 2111153d795740e10e9566c370cd0f2808269dea..2bb810128b4bc4ca8f19ea70dba23d2d79cae0d8 100644 (file)
@@ -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<byte[]> 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<BgpTableType> 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) {