Merge "BUG-113: Concentrate singleton instances into SingletonProviderContext"
authorDana Kutenicsova <dkutenic@cisco.com>
Mon, 14 Oct 2013 19:31:16 +0000 (19:31 +0000)
committerGerrit Code Review <gerrit@opendaylight.org>
Mon, 14 Oct 2013 19:31:16 +0000 (19:31 +0000)
16 files changed:
bgp/parser-impl/src/main/java/org/opendaylight/protocol/bgp/parser/impl/BGPMessageFactoryImpl.java
bgp/parser-impl/src/main/java/org/opendaylight/protocol/bgp/parser/impl/SimpleAddressFamilyRegistry.java
bgp/parser-impl/src/main/java/org/opendaylight/protocol/bgp/parser/impl/SimpleAttributeRegistry.java
bgp/parser-impl/src/main/java/org/opendaylight/protocol/bgp/parser/impl/SimpleCapabilityRegistry.java
bgp/parser-impl/src/main/java/org/opendaylight/protocol/bgp/parser/impl/SimpleMessageRegistry.java
bgp/parser-impl/src/main/java/org/opendaylight/protocol/bgp/parser/impl/SimpleNlriRegistry.java
bgp/parser-impl/src/main/java/org/opendaylight/protocol/bgp/parser/impl/SimpleParameterRegistry.java
bgp/parser-impl/src/main/java/org/opendaylight/protocol/bgp/parser/impl/SimpleSubsequentAddressFamilyRegistry.java
bgp/parser-impl/src/main/java/org/opendaylight/protocol/bgp/parser/impl/SingletonProviderContext.java
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/PathAttributeParserTest.java
bgp/rib-impl/src/test/java/org/opendaylight/protocol/bgp/rib/impl/ParserTest.java
bgp/rib-mock/src/main/java/org/opendaylight/protocol/bgp/rib/mock/BGPMock.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

index 899883654a33b05dbc699519b2d824d628649415..852d419682a60cd041198652adcf428ebbce51f3 100644 (file)
@@ -11,7 +11,6 @@ import java.util.List;
 
 import org.opendaylight.protocol.bgp.parser.BGPMessageFactory;
 import org.opendaylight.protocol.bgp.parser.spi.MessageRegistry;
-import org.opendaylight.protocol.bgp.parser.spi.ProviderContext;
 import org.opendaylight.protocol.framework.DeserializerException;
 import org.opendaylight.protocol.framework.DocumentedException;
 import org.opendaylight.yangtools.yang.binding.Notification;
@@ -20,28 +19,12 @@ import com.google.common.base.Preconditions;
 import com.google.common.collect.Lists;
 
 public final class BGPMessageFactoryImpl implements BGPMessageFactory {
-       private static final class Holder {
-               private static final BGPMessageFactoryImpl INSTANCE;
-
-               static {
-                       final ProviderContext pc = SingletonProviderContext.getInstance();
-
-                       new ActivatorImpl().start(pc);
-
-                       INSTANCE = new BGPMessageFactoryImpl(pc.getMessageRegistry());
-               }
-       }
-
        private final MessageRegistry registry;
 
-       private BGPMessageFactoryImpl(final MessageRegistry registry) {
+       public BGPMessageFactoryImpl(final MessageRegistry registry) {
                this.registry = Preconditions.checkNotNull(registry);
        }
 
-       public static BGPMessageFactoryImpl getInstance() {
-               return Holder.INSTANCE;
-       }
-
        /*
         * (non-Javadoc)
         * @see org.opendaylight.protocol.bgp.parser.BGPMessageParser#parse(byte[])
index 0fbc48a2c0d6b20c689bc0be35ecf4fdb1fc46ea..00225385ad1def5eb4b74229cbcc88351bef33fa 100644 (file)
@@ -13,18 +13,6 @@ import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.type
 import com.google.common.base.Preconditions;
 
 public final class SimpleAddressFamilyRegistry extends AbstractFamilyRegistry<AddressFamily, Integer> implements AddressFamilyRegistry {
-       private static final class Holder {
-               private static final AddressFamilyRegistry INSTANCE = new SimpleAddressFamilyRegistry();
-       }
-
-       private SimpleAddressFamilyRegistry() {
-
-       }
-
-       public static AddressFamilyRegistry getInstance() {
-               return Holder.INSTANCE;
-       }
-
        @Override
        public AutoCloseable registerAddressFamily(final Class<? extends AddressFamily> clazz, final int number) {
                Preconditions.checkArgument(number >= 0 && number <= 65535);
index d05678a8fdd269858755fb31972cbed624283df6..1480f06adacfec0b65c2fe6a3bce45991945c887 100644 (file)
@@ -24,18 +24,6 @@ import com.google.common.base.Preconditions;
 import com.google.common.primitives.UnsignedBytes;
 
 public final class SimpleAttributeRegistry implements AttributeRegistry {
-       private static final class Holder {
-               private static final AttributeRegistry INSTANCE = new SimpleAttributeRegistry();
-       }
-
-       private SimpleAttributeRegistry() {
-
-       }
-
-       public static AttributeRegistry getInstance() {
-               return Holder.INSTANCE;
-       }
-
        private final HandlerRegistry<DataContainer, AttributeParser, AttributeSerializer> handlers = new HandlerRegistry<>();
 
        @Override
index 9575020170e1b23ed5bdbca103d550cdb631c0dd..88127c9f4de24021e6c0522a4a949e7a07e9bad8 100644 (file)
@@ -19,20 +19,8 @@ import org.opendaylight.yangtools.yang.binding.DataContainer;
 import com.google.common.base.Preconditions;
 
 public final class SimpleCapabilityRegistry implements CapabilityRegistry {
-       private static final class Holder {
-               private static final CapabilityRegistry INSTANCE = new SimpleCapabilityRegistry();
-       }
-
        private final HandlerRegistry<DataContainer, CapabilityParser, CapabilitySerializer> handlers = new HandlerRegistry<>();
 
-       private SimpleCapabilityRegistry() {
-
-       }
-
-       public static CapabilityRegistry getInstance() {
-               return Holder.INSTANCE;
-       }
-
        @Override
        public AutoCloseable registerCapabilityParser(final int messageType, final CapabilityParser parser) {
                Preconditions.checkArgument(messageType >= 0 && messageType <= 255);
index ccc68170d6c323fa9cac4dd8bc27c1bd13abdfa7..b49b72e31bcf548be5e0d5d65ca12d4d4140c9a0 100644 (file)
@@ -9,27 +9,14 @@ package org.opendaylight.protocol.bgp.parser.impl;
 
 import org.opendaylight.protocol.bgp.parser.BGPDocumentedException;
 import org.opendaylight.protocol.bgp.parser.spi.MessageParser;
-import org.opendaylight.protocol.bgp.parser.spi.MessageRegistry;
 import org.opendaylight.protocol.bgp.parser.spi.MessageSerializer;
 import org.opendaylight.protocol.concepts.HandlerRegistry;
 import org.opendaylight.yangtools.yang.binding.DataContainer;
 import org.opendaylight.yangtools.yang.binding.Notification;
 
 public final class SimpleMessageRegistry extends AbstractMessageRegistry {
-       private static final class Holder {
-               private static final MessageRegistry INSTANCE = new SimpleMessageRegistry();
-       }
-
        private final HandlerRegistry<DataContainer, MessageParser, MessageSerializer> handlers = new HandlerRegistry<>();
 
-       private SimpleMessageRegistry() {
-
-       }
-
-       public static MessageRegistry getInstance() {
-               return Holder.INSTANCE;
-       }
-
        @Override
        protected Notification parseBody(final int type, final byte[] body, final int messageLength) throws BGPDocumentedException {
                final MessageParser parser = handlers.getParser(type);
index c2ca36f3ca0813525a9757ddc943c02629bc1b20..73f1df7b18e3a6b65dc987c72a1915806129d93f 100644 (file)
@@ -30,25 +30,15 @@ import com.google.common.base.Preconditions;
 import com.google.common.primitives.UnsignedBytes;
 
 public final class SimpleNlriRegistry implements NlriRegistry {
-       private static final class Holder {
-               private static final NlriRegistry INSTANCE =
-                               new SimpleNlriRegistry(SimpleAddressFamilyRegistry.getInstance(),
-                                               SimpleSubsequentAddressFamilyRegistry.getInstance());
-       }
-
        private final ConcurrentMap<BgpTableType, NlriParser> handlers = new ConcurrentHashMap<>();
        private final SubsequentAddressFamilyRegistry safiReg;
        private final AddressFamilyRegistry afiReg;
 
-       private SimpleNlriRegistry(final AddressFamilyRegistry afiReg, final SubsequentAddressFamilyRegistry safiReg) {
+       public SimpleNlriRegistry(final AddressFamilyRegistry afiReg, final SubsequentAddressFamilyRegistry safiReg) {
                this.afiReg = Preconditions.checkNotNull(afiReg);
                this.safiReg = Preconditions.checkNotNull(safiReg);
        }
 
-       public static NlriRegistry getInstance() {
-               return Holder.INSTANCE;
-       }
-
        private static BgpTableType createKey(final Class<? extends AddressFamily> afi,
                        final Class<? extends SubsequentAddressFamily> safi) {
                Preconditions.checkNotNull(afi);
index aea2b5d14cc5fbde93db80654100ad5f8ac048de..2e3ae5e05747e82efe0c372af2533d5951b64228 100644 (file)
@@ -19,20 +19,8 @@ import org.opendaylight.yangtools.yang.binding.DataContainer;
 import com.google.common.base.Preconditions;
 
 public final class SimpleParameterRegistry implements ParameterRegistry {
-       private static final class Holder {
-               private static final ParameterRegistry INSTANCE = new SimpleParameterRegistry();
-       }
-
        private final HandlerRegistry<DataContainer, ParameterParser, ParameterSerializer> handlers = new HandlerRegistry<>();
 
-       private SimpleParameterRegistry() {
-
-       }
-
-       public static ParameterRegistry getInstance() {
-               return Holder.INSTANCE;
-       }
-
        @Override
        public AutoCloseable registerParameterParser(final int messageType, final ParameterParser parser) {
                Preconditions.checkArgument(messageType >= 0 && messageType <= 255);
index 4033fd484282771863233dbfff590ab15528f75a..9951ade9572c855dcf881c9350280d7119c38359 100644 (file)
@@ -14,19 +14,6 @@ import com.google.common.base.Preconditions;
 
 public final class SimpleSubsequentAddressFamilyRegistry extends
 AbstractFamilyRegistry<SubsequentAddressFamily, Integer> implements SubsequentAddressFamilyRegistry {
-       private static final class Holder {
-               private static final SubsequentAddressFamilyRegistry INSTANCE =
-                               new SimpleSubsequentAddressFamilyRegistry();
-       }
-
-       private SimpleSubsequentAddressFamilyRegistry() {
-
-       }
-
-       public static final SubsequentAddressFamilyRegistry getInstance() {
-               return Holder.INSTANCE;
-       }
-
        @Override
        public AutoCloseable registerSubsequentAddressFamily(final Class<? extends SubsequentAddressFamily> clazz, final int number) {
                Preconditions.checkArgument(number >= 0 && number <= 255);
index 9befb4ba9cd75da5fbefe92f1673a9950f365169..122e315cf88835cacfbc62200d8afebcceb2ba39 100644 (file)
@@ -18,11 +18,25 @@ import org.opendaylight.protocol.bgp.parser.spi.SubsequentAddressFamilyRegistry;
 
 public final class SingletonProviderContext implements ProviderContext {
        private static final class Holder {
-               private static final ProviderContext INSTANCE = new SingletonProviderContext();
+               private static final ProviderContext INSTANCE;
+
+               static {
+                       final ProviderContext pc = new SingletonProviderContext();
+                       new ActivatorImpl().start(pc);
+                       INSTANCE = pc;
+               }
        }
 
-       private SingletonProviderContext() {
+       private final AddressFamilyRegistry afiReg = new SimpleAddressFamilyRegistry();
+       private final AttributeRegistry attrReg = new SimpleAttributeRegistry();
+       private final CapabilityRegistry capReg = new SimpleCapabilityRegistry();
+       private final MessageRegistry msgReg = new SimpleMessageRegistry();
+       private final NlriRegistry nlriReg;
+       private final ParameterRegistry paramReg = new SimpleParameterRegistry();
+       private final SubsequentAddressFamilyRegistry safiReg= new SimpleSubsequentAddressFamilyRegistry();
 
+       private SingletonProviderContext() {
+               nlriReg = new SimpleNlriRegistry(afiReg, safiReg);
        }
 
        public static ProviderContext getInstance() {
@@ -31,36 +45,36 @@ public final class SingletonProviderContext implements ProviderContext {
 
        @Override
        public AddressFamilyRegistry getAddressFamilyRegistry() {
-               return SimpleAddressFamilyRegistry.getInstance();
+               return afiReg;
        }
 
        @Override
        public AttributeRegistry getAttributeRegistry() {
-               return SimpleAttributeRegistry.getInstance();
+               return attrReg;
        }
 
        @Override
        public CapabilityRegistry getCapabilityRegistry() {
-               return SimpleCapabilityRegistry.getInstance();
+               return capReg;
        }
 
        @Override
        public MessageRegistry getMessageRegistry() {
-               return SimpleMessageRegistry.getInstance();
+               return msgReg;
        }
 
        @Override
        public NlriRegistry getNlriRegistry() {
-               return SimpleNlriRegistry.getInstance();
+               return nlriReg;
        }
 
        @Override
        public ParameterRegistry getParameterRegistry() {
-               return SimpleParameterRegistry.getInstance();
+               return paramReg;
        }
 
        @Override
        public SubsequentAddressFamilyRegistry getSubsequentAddressFamilyRegistry() {
-               return SimpleSubsequentAddressFamilyRegistry.getInstance();
+               return safiReg;
        }
 }
index c12dfedbfe10de00baa8ff54de17f4c69242caf4..14115505bdc6d97d4050a6f50a2354d2b85d0f7f 100644 (file)
@@ -22,9 +22,9 @@ import java.util.Set;
 import org.junit.BeforeClass;
 import org.junit.Ignore;
 import org.junit.Test;
-import org.opendaylight.protocol.bgp.parser.BGPMessageFactory;
 import org.opendaylight.protocol.bgp.parser.BgpTableTypeImpl;
 import org.opendaylight.protocol.bgp.parser.impl.message.BGPUpdateMessageParser;
+import org.opendaylight.protocol.bgp.parser.spi.MessageRegistry;
 import org.opendaylight.protocol.bgp.parser.spi.MessageUtil;
 import org.opendaylight.protocol.concepts.IGPMetric;
 import org.opendaylight.protocol.concepts.IPv4;
@@ -85,14 +85,11 @@ public class BGPParserTest {
 
        private static int MAX_SIZE = 300;
 
-       private static BGPMessageFactory reg;
-
        private static BGPUpdateMessageParser updateParser;
 
        @BeforeClass
        public static void setUp() throws Exception {
-               reg = BGPMessageFactoryImpl.getInstance();
-               updateParser = new BGPUpdateMessageParser(SimpleAttributeRegistry.getInstance());
+               updateParser = new BGPUpdateMessageParser(SingletonProviderContext.getInstance().getAttributeRegistry());
 
                for (int i = 1; i <= COUNTER; i++) {
                        final String name = "/up" + i + ".bin";
@@ -1039,8 +1036,8 @@ public class BGPParserTest {
         */
        @Test
        public void testOpenMessage() throws Exception {
-               final BGPMessageFactory msgFactory = BGPMessageFactoryImpl.getInstance();
-               final Open open = (Open) msgFactory.parse(inputBytes.get(13)).get(0);
+               final MessageRegistry msgReg = SingletonProviderContext.getInstance().getMessageRegistry();
+               final Open open = (Open) msgReg.parseMessage(inputBytes.get(13));
                final Set<BgpTableType> types = Sets.newHashSet();
                for (final BgpParameters param : open.getBgpParameters()) {
                        final CParameters p = param.getCParameters();
index 69a6b0a5d17744c04d55b771b2a74f5048be88ff..551c96c8307991d3d34e648a156a050ea566a4e7 100644 (file)
@@ -18,9 +18,9 @@ import java.util.Map;
 
 import org.junit.Test;
 import org.opendaylight.protocol.bgp.parser.BGPDocumentedException;
-import org.opendaylight.protocol.bgp.parser.BGPMessageFactory;
 import org.opendaylight.protocol.bgp.parser.BgpTableTypeImpl;
 import org.opendaylight.protocol.bgp.parser.impl.message.update.CommunitiesParser;
+import org.opendaylight.protocol.bgp.parser.spi.MessageRegistry;
 import org.opendaylight.protocol.framework.DeserializerException;
 import org.opendaylight.protocol.framework.DocumentedException;
 import org.opendaylight.protocol.util.ByteList;
@@ -220,9 +220,9 @@ public class ComplementaryTest {
 
        @Test
        public void testBGPHeaderParser() throws IOException {
-               final BGPMessageFactory h = BGPMessageFactoryImpl.getInstance();
+               final MessageRegistry msgReg = SingletonProviderContext.getInstance().getMessageRegistry();
                try {
-                       h.parse(new byte[] { (byte) 0, (byte) 0 });
+                       msgReg.parseMessage(new byte[] { (byte) 0, (byte) 0 });
                        fail("Exception should have occured.");
                } catch (final IllegalArgumentException e) {
                        assertEquals("Too few bytes in passed array. Passed: 2. Expected: >= 19.", e.getMessage());
@@ -249,10 +249,10 @@ public class ComplementaryTest {
 
        @Test
        public void testMessageParser() throws IOException {
-               final BGPMessageFactory parser = BGPMessageFactoryImpl.getInstance();
+               final MessageRegistry msgReg = SingletonProviderContext.getInstance().getMessageRegistry();
                String ex = "";
                try {
-                       parser.put(null);
+                       msgReg.serializeMessage(null);
                } catch (final IllegalArgumentException e) {
                        ex = e.getMessage();
                }
index 50f01b5aaff959fb2da628375fbacf5c5d330802..a233d114b7fbfaed8372a434b77c81d5ed9bdea6 100644 (file)
@@ -11,7 +11,6 @@ import static org.junit.Assert.assertArrayEquals;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.fail;
 
-import org.junit.Before;
 import org.junit.Test;
 import org.opendaylight.protocol.bgp.parser.BGPDocumentedException;
 import org.opendaylight.protocol.bgp.parser.BGPParsingException;
@@ -20,17 +19,10 @@ import org.opendaylight.protocol.bgp.parser.BGPParsingException;
  * To test incorrect values.
  */
 public class PathAttributeParserTest {
-
-       @Before
-       public void setUp() {
-               // Activates everything
-               BGPMessageFactoryImpl.getInstance();
-       }
-
        @Test
        public void testOriginParser() {
                try {
-                       SimpleAttributeRegistry.getInstance().parseAttributes(new byte[] { 0x40, 0x01, 0x01, 0x04 });
+                       SingletonProviderContext.getInstance().getAttributeRegistry().parseAttributes(new byte[] { 0x40, 0x01, 0x01, 0x04 });
                        fail("This needs to fail.");
                } catch (final BGPDocumentedException e) {
                        assertEquals("Unknown Origin type.", e.getMessage());
index 4ca8627dd86066b8b9c03419bbdf0788b908c6b2..311f7234b4927592ebf8be871ceff0743cff30d9 100644 (file)
@@ -24,10 +24,10 @@ import org.junit.Test;
 import org.opendaylight.protocol.bgp.parser.BGPDocumentedException;
 import org.opendaylight.protocol.bgp.parser.BGPError;
 import org.opendaylight.protocol.bgp.parser.BgpTableTypeImpl;
-import org.opendaylight.protocol.bgp.parser.impl.BGPMessageFactoryImpl;
+import org.opendaylight.protocol.bgp.parser.impl.SingletonProviderContext;
+import org.opendaylight.protocol.bgp.parser.spi.MessageRegistry;
 import org.opendaylight.protocol.framework.DeserializerException;
 import org.opendaylight.protocol.framework.DocumentedException;
-import org.opendaylight.protocol.framework.ProtocolMessageFactory;
 import org.opendaylight.protocol.util.ByteArray;
 import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev100924.Ipv4Address;
 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.linkstate.rev130918.LinkstateAddressFamily;
@@ -80,7 +80,8 @@ public class ParserTest {
                (byte) 0x40, (byte) 0x04, (byte) 0x00, (byte) 0x47, (byte) 0x02, (byte) 0x06, (byte) 0x01, (byte) 0x04, (byte) 0x00,
                (byte) 0x01, (byte) 0x00, (byte) 0x01 };
 
-       final ProtocolMessageFactory<Notification> factory = BGPMessageFactoryImpl.getInstance();
+       final MessageRegistry factory =
+                       SingletonProviderContext.getInstance().getMessageRegistry();
 
        @Test
        public void testHeaderErrors() throws DeserializerException, DocumentedException {
@@ -88,7 +89,7 @@ public class ParserTest {
                                (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0x00 };
                wrong = ByteArray.cutBytes(wrong, 16);
                try {
-                       this.factory.parse(wrong);
+                       this.factory.parseMessage(wrong);
                        fail("Exception should have occcured.");
                } catch (final IllegalArgumentException e) {
                        assertEquals("Too few bytes in passed array. Passed: " + wrong.length + ". Expected: >= 19.", e.getMessage());
@@ -103,7 +104,7 @@ public class ParserTest {
                                (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff, (byte) 0xff,
                                (byte) 0x00, (byte) 0x13, (byte) 0x08 };
                try {
-                       this.factory.parse(bytes);
+                       this.factory.parseMessage(bytes);
                        fail("Exception should have occured.");
                } catch (final DocumentedException e) {
                        assertEquals(BGPError.BAD_MSG_TYPE, ((BGPDocumentedException) e).getError());
@@ -115,10 +116,10 @@ public class ParserTest {
        @Test
        public void testKeepAliveMsg() throws DeserializerException, DocumentedException {
                final Notification keepAlive = new KeepaliveBuilder().build();
-               final byte[] bytes = this.factory.put(keepAlive);
+               final byte[] bytes = this.factory.serializeMessage(keepAlive);
                assertArrayEquals(keepAliveBMsg, bytes);
 
-               final Notification m = this.factory.parse(bytes).get(0);
+               final Notification m = this.factory.parseMessage(bytes);
 
                assertTrue(m instanceof Keepalive);
        }
@@ -130,7 +131,7 @@ public class ParserTest {
                                (byte) 0x00, (byte) 0x14, (byte) 0x04, (byte) 0x05 };
 
                try {
-                       this.factory.parse(bytes);
+                       this.factory.parseMessage(bytes);
                        fail("Exception should have occured.");
                } catch (final DocumentedException e) {
                        assertThat(e.getMessage(), containsString("Message length field not within valid range."));
@@ -144,10 +145,10 @@ public class ParserTest {
        public void testOpenMessage() throws UnknownHostException, DeserializerException, DocumentedException {
                final Notification open = new OpenBuilder().setMyAsNumber(100).setHoldTimer(180).setBgpIdentifier(new Ipv4Address("20.20.20.20")).setVersion(
                                new ProtocolVersion((short) 4)).build();
-               final byte[] bytes = this.factory.put(open);
+               final byte[] bytes = this.factory.serializeMessage(open);
                assertArrayEquals(openBMsg, bytes);
 
-               final Notification m = this.factory.parse(bytes).get(0);
+               final Notification m = this.factory.parseMessage(bytes);
 
                assertTrue(m instanceof Open);
                assertEquals(100, ((Open) m).getMyAsNumber().intValue());
@@ -164,7 +165,7 @@ public class ParserTest {
                                (byte) 0x14, (byte) 0x14, (byte) 0x14, (byte) 0x00 };
 
                try {
-                       this.factory.parse(bMsg);
+                       this.factory.parseMessage(bMsg);
                        fail("Exception should have occured.");
                } catch (final DocumentedException e) {
                        assertEquals("Hold time value not acceptable.", e.getMessage());
@@ -182,7 +183,7 @@ public class ParserTest {
                                (byte) 0xff, (byte) 0xff };
 
                try {
-                       this.factory.parse(bMsg);
+                       this.factory.parseMessage(bMsg);
                        fail("Exception should have occured.");
                } catch (final DocumentedException e) {
                        assertEquals("Open message too small.", e.getMessage());
@@ -198,7 +199,7 @@ public class ParserTest {
                                (byte) 0x14, (byte) 0x14, (byte) 0x14, (byte) 0x00 };
 
                try {
-                       this.factory.parse(bMsg);
+                       this.factory.parseMessage(bMsg);
                        fail("Exception should have occured.");
                } catch (final DocumentedException e) {
                        assertEquals("BGP Protocol version 8 not supported.", e.getMessage());
@@ -212,10 +213,10 @@ public class ParserTest {
        public void testNotificationMsg() throws DeserializerException, DocumentedException {
                Notification notMsg = new NotifyBuilder().setErrorCode(BGPError.OPT_PARAM_NOT_SUPPORTED.getCode()).setErrorSubcode(
                                BGPError.OPT_PARAM_NOT_SUPPORTED.getSubcode()).setData(new byte[] { 4, 9 }).build();
-               byte[] bytes = this.factory.put(notMsg);
+               byte[] bytes = this.factory.serializeMessage(notMsg);
                assertArrayEquals(notificationBMsg, bytes);
 
-               Notification m = this.factory.parse(bytes).get(0);
+               Notification m = this.factory.parseMessage(bytes);
 
                assertTrue(m instanceof Notify);
                assertEquals(BGPError.OPT_PARAM_NOT_SUPPORTED, BGPError.forValue(((Notify) m).getErrorCode(), ((Notify) m).getErrorSubcode()));
@@ -223,9 +224,9 @@ public class ParserTest {
 
                notMsg = new NotifyBuilder().setErrorCode(BGPError.CONNECTION_NOT_SYNC.getCode()).setErrorSubcode(
                                BGPError.CONNECTION_NOT_SYNC.getSubcode()).build();
-               bytes = this.factory.put(notMsg);
+               bytes = this.factory.serializeMessage(notMsg);
 
-               m = this.factory.parse(bytes).get(0);
+               m = this.factory.parseMessage(bytes);
 
                assertTrue(m instanceof Notify);
                assertEquals(BGPError.CONNECTION_NOT_SYNC, BGPError.forValue(((Notify) m).getErrorCode(), ((Notify) m).getErrorSubcode()));
@@ -239,7 +240,7 @@ public class ParserTest {
                                (byte) 0x00, (byte) 0x14, (byte) 0x03, (byte) 0x02 };
 
                try {
-                       this.factory.parse(bMsg);
+                       this.factory.parseMessage(bMsg);
                        fail("Exception should have occured.");
                } catch (final DocumentedException e) {
                        assertEquals("Notification message too small.", e.getMessage());
@@ -256,7 +257,7 @@ public class ParserTest {
                                (byte) 0x00, (byte) 0x15, (byte) 0x03, (byte) 0x02, (byte) 0xaa };
 
                try {
-                       this.factory.parse(bMsg);
+                       this.factory.parseMessage(bMsg);
                        fail("Exception should have occured.");
                } catch (final IllegalArgumentException e) {
                        assertEquals("BGP Error code 2 and subcode 170 not recognized.", e.getMessage());
@@ -287,7 +288,7 @@ public class ParserTest {
                final Open open = new OpenBuilder().setMyAsNumber(72).setHoldTimer(180).setBgpIdentifier(new Ipv4Address("172.20.160.170")).setVersion(
                                new ProtocolVersion((short) 4)).setBgpParameters(tlvs).build();
 
-               final byte[] result = this.factory.put(open);
+               final byte[] result = this.factory.serializeMessage(open);
 
                // the capabilities can be swapped.
                assertTrue(Arrays.equals(openWithCpblt1, result) || Arrays.equals(openWithCpblt2, result));
index 517903a16f2380f668cb099708a3f62e084f5af3..a132d49ccf9a6428ece7b3a4116f1de920afa5d9 100644 (file)
@@ -18,6 +18,7 @@ import javax.annotation.concurrent.ThreadSafe;
 import org.opendaylight.protocol.bgp.parser.BGPError;
 import org.opendaylight.protocol.bgp.parser.BGPSessionListener;
 import org.opendaylight.protocol.bgp.parser.impl.BGPMessageFactoryImpl;
+import org.opendaylight.protocol.bgp.parser.impl.SingletonProviderContext;
 import org.opendaylight.protocol.bgp.rib.impl.BGP;
 import org.opendaylight.protocol.concepts.ListenerRegistration;
 import org.opendaylight.protocol.framework.DeserializerException;
@@ -55,7 +56,8 @@ public final class BGPMock implements BGP, Closeable {
 
        private List<Notification> parsePrevious(final List<byte[]> msgs) {
                final List<Notification> messages = Lists.newArrayList();
-               final ProtocolMessageFactory<Notification> parser = BGPMessageFactoryImpl.getInstance();
+               final ProtocolMessageFactory<Notification> parser = new BGPMessageFactoryImpl(
+                               SingletonProviderContext.getInstance().getMessageRegistry());
                try {
                        for (final byte[] b : msgs) {
 
index 9f9e73cecc8adfb75ca66264b155d3db65d0467d..fbdb408cd079d96f0740c11b2923ff936be8ca06 100644 (file)
@@ -15,6 +15,7 @@ import java.net.InetSocketAddress;
 
 import org.opendaylight.protocol.bgp.parser.BGPSessionListener;
 import org.opendaylight.protocol.bgp.parser.impl.BGPMessageFactoryImpl;
+import org.opendaylight.protocol.bgp.parser.impl.SingletonProviderContext;
 import org.opendaylight.protocol.bgp.rib.impl.BGPDispatcherImpl;
 import org.opendaylight.protocol.bgp.rib.impl.BGPSessionProposalImpl;
 import org.opendaylight.protocol.bgp.rib.impl.spi.BGPSessionPreferences;
@@ -49,7 +50,7 @@ public class Main {
        BGPDispatcherImpl dispatcher;
 
        public Main() throws IOException {
-               this.dispatcher = new BGPDispatcherImpl(BGPMessageFactoryImpl.getInstance());
+               this.dispatcher = new BGPDispatcherImpl(new BGPMessageFactoryImpl(SingletonProviderContext.getInstance().getMessageRegistry()));
        }
 
        public static void main(final String[] args) throws NumberFormatException, IOException {
index bc97576179b65cf9db62741f5fd215bd407ff508..42f135441da038a1eb4de31df29b985fc67da117 100644 (file)
@@ -18,6 +18,7 @@ import java.net.InetSocketAddress;
 
 import org.opendaylight.protocol.bgp.parser.BGPSessionListener;
 import org.opendaylight.protocol.bgp.parser.impl.BGPMessageFactoryImpl;
+import org.opendaylight.protocol.bgp.parser.impl.SingletonProviderContext;
 import org.opendaylight.protocol.bgp.rib.impl.BGPHandlerFactory;
 import org.opendaylight.protocol.bgp.rib.impl.BGPSessionImpl;
 import org.opendaylight.protocol.bgp.rib.impl.BGPSessionNegotiatorFactory;
@@ -72,7 +73,7 @@ public class BGPSpeakerMock<M, S extends ProtocolSession<M>, L extends SessionLi
                final SessionNegotiatorFactory<Notification, BGPSessionImpl, BGPSessionListener> snf = new BGPSessionNegotiatorFactory(new HashedWheelTimer(), prefs);
 
                final BGPSpeakerMock<Notification, BGPSessionImpl, BGPSessionListener> mock = new BGPSpeakerMock<>(snf,
-                               new BGPHandlerFactory(BGPMessageFactoryImpl.getInstance()),
+                               new BGPHandlerFactory(new BGPMessageFactoryImpl(SingletonProviderContext.getInstance().getMessageRegistry())),
                                new DefaultPromise<BGPSessionImpl>(GlobalEventExecutor.INSTANCE));
 
                mock.createServer(new InetSocketAddress("127.0.0.2", 12345), f);