Bug 498 - Fixed PCEP and BGP testtools 24/6324/2
authorMilos Fabian <milfabia@cisco.com>
Wed, 23 Apr 2014 07:45:36 +0000 (09:45 +0200)
committerMilos Fabian <milfabia@cisco.com>
Wed, 23 Apr 2014 08:27:54 +0000 (10:27 +0200)
-added missing registration of extension parsers/serializers
-refactored ServiceLoaderBGPExtensionProviderContext - BGPExtensionProviderContext hold as a singleton

Change-Id: Idc5991a017c9bbc7550a1d4170f88f2086fd6416
Signed-off-by: Milos Fabian <milfabia@cisco.com>
bgp/parser-impl/src/test/java/org/opendaylight/protocol/bgp/parser/impl/BGPParserTest.java
bgp/parser-impl/src/test/java/org/opendaylight/protocol/bgp/parser/impl/ComplementaryTest.java
bgp/parser-impl/src/test/java/org/opendaylight/protocol/bgp/parser/impl/OpenTest.java
bgp/parser-impl/src/test/java/org/opendaylight/protocol/bgp/parser/impl/ParserTest.java
bgp/parser-impl/src/test/java/org/opendaylight/protocol/bgp/parser/impl/PathAttributeParserTest.java
bgp/parser-spi/src/main/java/org/opendaylight/protocol/bgp/parser/spi/pojo/ServiceLoaderBGPExtensionProviderContext.java
bgp/testtool/src/main/java/org/opendaylight/protocol/bgp/testtool/Main.java
bgp/testtool/src/test/java/org/opendaylight/protocol/bgp/testtool/BGPSpeakerMock.java
integration-tests/src/test/java/org/opendaylight/protocol/integration/bgp/ParserToSalTest.java
pcep/testtool/src/main/java/org/opendaylight/protocol/pcep/testtool/Main.java

index 79464e6cdc6c0a2afccb6660031fba91bcb7a645..e604fd35781f7887d0866566468e292a63cc693d 100644 (file)
@@ -132,7 +132,7 @@ public class BGPParserTest {
 
        @BeforeClass
        public static void setUp() throws Exception {
-               updateParser = new BGPUpdateMessageParser(ServiceLoaderBGPExtensionProviderContext.createConsumerContext().getAttributeRegistry());
+               updateParser = new BGPUpdateMessageParser(ServiceLoaderBGPExtensionProviderContext.getSingletonInstance().getAttributeRegistry());
 
                for (int i = 1; i <= COUNTER; i++) {
                        final String name = "/up" + i + ".bin";
@@ -1169,7 +1169,7 @@ public class BGPParserTest {
         */
        @Test
        public void testOpenMessage() throws Exception {
-               final MessageRegistry msgReg = ServiceLoaderBGPExtensionProviderContext.createConsumerContext().getMessageRegistry();
+               final MessageRegistry msgReg = ServiceLoaderBGPExtensionProviderContext.getSingletonInstance().getMessageRegistry();
                final Open open = (Open) msgReg.parseMessage(Unpooled.copiedBuffer(inputBytes.get(13)));
                final Set<BgpTableType> types = Sets.newHashSet();
                for (final BgpParameters param : open.getBgpParameters()) {
index 7a0d7e544c1e306d088adf1aa15592d9433b9e6f..e27f0a621cbce5f06c6f29cd64aa1350b8c77d54 100644 (file)
@@ -243,7 +243,7 @@ public class ComplementaryTest {
 
        @Test
        public void testBGPHeaderParser() throws Exception {
-               final MessageRegistry msgReg = ServiceLoaderBGPExtensionProviderContext.createConsumerContext().getMessageRegistry();
+               final MessageRegistry msgReg = ServiceLoaderBGPExtensionProviderContext.getSingletonInstance().getMessageRegistry();
                try {
                        msgReg.parseMessage(Unpooled.copiedBuffer(new byte[] { (byte) 0, (byte) 0 }));
                        fail("Exception should have occured.");
@@ -268,7 +268,7 @@ public class ComplementaryTest {
 
        @Test
        public void testMessageParser() throws Exception {
-               final MessageRegistry msgReg = ServiceLoaderBGPExtensionProviderContext.createConsumerContext().getMessageRegistry();
+               final MessageRegistry msgReg = ServiceLoaderBGPExtensionProviderContext.getSingletonInstance().getMessageRegistry();
                String ex = "";
                try {
                        msgReg.serializeMessage(null);
index 32ad4b0ae10457371a73cff8aca2032039d05572..cba188b7224d27b9ccd57d3b5cfc4636af93102f 100644 (file)
@@ -41,7 +41,7 @@ public class OpenTest {
                                new As4BytesCaseBuilder().setAs4BytesCapability(new As4BytesCapabilityBuilder().setAsNumber(new AsNumber(1000L)).build()).build()).build());
                final Open open = new OpenBuilder().setBgpIdentifier(new Ipv4Address("127.0.0.1")).setMyAsNumber(30).setHoldTimer(3).setVersion(
                                new ProtocolVersion((short) 4)).setBgpParameters(tlvs).build();
-               final byte[] msg = new BGPOpenMessageParser(ServiceLoaderBGPExtensionProviderContext.createConsumerContext().getParameterRegistry()).serializeMessage(open);
+               final byte[] msg = new BGPOpenMessageParser(ServiceLoaderBGPExtensionProviderContext.getSingletonInstance().getParameterRegistry()).serializeMessage(open);
                assertArrayEquals(this.result, msg);
        }
 }
index 799079c7ad23292b3ef8bae494832f80ca583d10..f8150ac9a43baf10fc39b44bae14adf7752d11f3 100644 (file)
@@ -85,7 +85,7 @@ public class ParserTest {
 
        @BeforeClass
        public static void setupClass() throws Exception {
-               reg = ServiceLoaderBGPExtensionProviderContext.createConsumerContext().getMessageRegistry();
+               reg = ServiceLoaderBGPExtensionProviderContext.getSingletonInstance().getMessageRegistry();
        }
 
        @Test
index d9fcf82a2971cc70bb1bea3ebc06a4c9e83e359f..f68034c9920459ea3912430554f21d20da4eaef3 100644 (file)
@@ -24,7 +24,7 @@ public class PathAttributeParserTest {
        @Test
        public void testOriginParser() throws Exception {
                try {
-                       ServiceLoaderBGPExtensionProviderContext.createConsumerContext().getAttributeRegistry().parseAttributes(Unpooled.copiedBuffer(new byte[] { 0x40, 0x01, 0x01, 0x04 }));
+                       ServiceLoaderBGPExtensionProviderContext.getSingletonInstance().getAttributeRegistry().parseAttributes(Unpooled.copiedBuffer(new byte[] { 0x40, 0x01, 0x01, 0x04 }));
                        fail("This needs to fail.");
                } catch (final BGPDocumentedException e) {
                        assertEquals("Unknown Origin type.", e.getMessage());
index 2a35d08bd29a7aab5c845fcdf3c1be95f3e5cac4..98c00d01f8c7d3d92a32adffd75f5fda66ac3c5a 100644 (file)
@@ -9,23 +9,39 @@ package org.opendaylight.protocol.bgp.parser.spi.pojo;
 
 import java.util.ServiceLoader;
 
-import org.opendaylight.protocol.bgp.parser.spi.BGPExtensionConsumerContext;
 import org.opendaylight.protocol.bgp.parser.spi.BGPExtensionProviderActivator;
 import org.opendaylight.protocol.bgp.parser.spi.BGPExtensionProviderContext;
 
 public final class ServiceLoaderBGPExtensionProviderContext {
-       private ServiceLoaderBGPExtensionProviderContext() {
+    private static final class Holder {
+        private static final BGPExtensionProviderContext INSTANCE;
 
-       }
+        static {
+            try {
+                INSTANCE = create();
+            } catch (final Exception e) {
+                throw new ExceptionInInitializerError(e);
+            }
+        }
+    }
 
-       public static BGPExtensionConsumerContext createConsumerContext() {
-               final BGPExtensionProviderContext ctx = new SimpleBGPExtensionProviderContext();
+    public static BGPExtensionProviderContext create() throws Exception {
+        final BGPExtensionProviderContext ctx = new SimpleBGPExtensionProviderContext();
 
-               final ServiceLoader<BGPExtensionProviderActivator> loader = ServiceLoader.load(BGPExtensionProviderActivator.class);
-               for (BGPExtensionProviderActivator a : loader) {
-                       a.start(ctx);
-               }
+        final ServiceLoader<BGPExtensionProviderActivator> loader = ServiceLoader
+                .load(BGPExtensionProviderActivator.class);
+        for (BGPExtensionProviderActivator a : loader) {
+            a.start(ctx);
+        }
 
-               return ctx;
-       }
+        return ctx;
+    }
+
+    public static BGPExtensionProviderContext getSingletonInstance() {
+        return Holder.INSTANCE;
+    }
+
+    private ServiceLoaderBGPExtensionProviderContext() {
+
+    }
 }
index dae066981f77f4a67081916104c1c6c287494cc7..3beecf80487d944f53f902931483d35f1918655d 100644 (file)
@@ -17,6 +17,7 @@ import java.util.HashMap;
 import java.util.Map;
 
 import org.opendaylight.protocol.bgp.parser.BGPSessionListener;
+import org.opendaylight.protocol.bgp.parser.impl.BGPActivator;
 import org.opendaylight.protocol.bgp.parser.spi.pojo.ServiceLoaderBGPExtensionProviderContext;
 import org.opendaylight.protocol.bgp.rib.impl.BGPDispatcherImpl;
 import org.opendaylight.protocol.bgp.rib.impl.BGPSessionProposalImpl;
@@ -63,7 +64,9 @@ public final class Main {
        private static final int RECONNECT_MILLIS = 5000;
 
        private Main() throws Exception {
-               this.dispatcher = new BGPDispatcherImpl(ServiceLoaderBGPExtensionProviderContext.createConsumerContext().getMessageRegistry(),
+           BGPActivator bgpActivator = new BGPActivator();
+           bgpActivator.start(ServiceLoaderBGPExtensionProviderContext.getSingletonInstance());
+               this.dispatcher = new BGPDispatcherImpl(ServiceLoaderBGPExtensionProviderContext.getSingletonInstance().getMessageRegistry(),
                                new HashedWheelTimer(), new NioEventLoopGroup(), new NioEventLoopGroup());
        }
 
index 298d723933dde0ba37592e8b5503e4de7768f835..4b851411821e729efe62243bb9d4dcd8d6eb5189 100644 (file)
@@ -84,7 +84,7 @@ public class BGPSpeakerMock<M, S extends ProtocolSession<M>, L extends SessionLi
 
                final SessionNegotiatorFactory<Notification, BGPSessionImpl, BGPSessionListener> snf = new BGPSessionNegotiatorFactory(new HashedWheelTimer(), prefs, new AsNumber(72L));
 
-               final BGPSpeakerMock<Notification, BGPSessionImpl, BGPSessionListener> mock = new BGPSpeakerMock<>(snf, new BGPHandlerFactory(ServiceLoaderBGPExtensionProviderContext.createConsumerContext().getMessageRegistry()), new DefaultPromise<BGPSessionImpl>(GlobalEventExecutor.INSTANCE));
+               final BGPSpeakerMock<Notification, BGPSessionImpl, BGPSessionListener> mock = new BGPSpeakerMock<>(snf, new BGPHandlerFactory(ServiceLoaderBGPExtensionProviderContext.getSingletonInstance().getMessageRegistry()), new DefaultPromise<BGPSessionImpl>(GlobalEventExecutor.INSTANCE));
 
                mock.createServer(new InetSocketAddress("127.0.0.2", 12345), f);
        }
index 189424545f3f7bf5570652946f4087d7ad751f72..fde8121d8506da7421fe9e9a156dd3eee003c702 100644 (file)
@@ -96,7 +96,7 @@ public class ParserToSalTest {
        public void setUp() throws Exception {
                MockitoAnnotations.initMocks(this);
                final List<byte[]> bgpMessages = HexDumpBGPFileParser.parseMessages(ParserToSalTest.class.getResourceAsStream(this.hex_messages));
-               this.mock = new BGPMock(new EventBus("test"), ServiceLoaderBGPExtensionProviderContext.createConsumerContext().getMessageRegistry(), Lists.newArrayList(fixMessages(bgpMessages)));
+               this.mock = new BGPMock(new EventBus("test"), ServiceLoaderBGPExtensionProviderContext.getSingletonInstance().getMessageRegistry(), Lists.newArrayList(fixMessages(bgpMessages)));
 
                Mockito.doReturn(this.mockedTransaction).when(this.providerService).beginTransaction();
 
index 7ae1c16e1caad8681dc6454867fb17834fb3e5ed..7ce538f9ae6d89b8490b18335db00bd0bebc03bf 100644 (file)
@@ -15,6 +15,7 @@ import java.net.InetSocketAddress;
 
 import org.opendaylight.protocol.pcep.PCEPSessionProposalFactory;
 import org.opendaylight.protocol.pcep.ietf.initiated00.Stateful07SessionProposalFactory;
+import org.opendaylight.protocol.pcep.ietf.stateful07.StatefulActivator;
 import org.opendaylight.protocol.pcep.impl.DefaultPCEPSessionNegotiatorFactory;
 import org.opendaylight.protocol.pcep.impl.PCEPDispatcherImpl;
 import org.opendaylight.protocol.pcep.spi.pojo.ServiceLoaderPCEPExtensionProviderContext;
@@ -116,6 +117,9 @@ public final class Main {
 
                final Open prefs = spf.getSessionProposal(address, 0);
 
+               StatefulActivator activator07 = new StatefulActivator();
+               activator07.start(ServiceLoaderPCEPExtensionProviderContext.getSingletonInstance());
+
                final PCEPDispatcherImpl dispatcher = new PCEPDispatcherImpl(ServiceLoaderPCEPExtensionProviderContext.getSingletonInstance().getMessageHandlerRegistry(), new DefaultPCEPSessionNegotiatorFactory(new HashedWheelTimer(), prefs, 5), new NioEventLoopGroup(), new NioEventLoopGroup());
 
                dispatcher.createServer(address, new TestingSessionListenerFactory()).get();