registerAfiSafi(context, regs);
registerNlri(context, regs);
registerAttributesHandler(context, regs);
- NlriActivator.registerNlriParsers(regs);
return regs;
}
}
+++ /dev/null
-/*
- * Copyright (c) 2018 AT&T Intellectual Property. All rights reserved.
- *
- * This program and the accompanying materials are made available under the
- * terms of the Eclipse Public License v1.0 which accompanies this distribution,
- * and is available at http://www.eclipse.org/legal/epl-v10.html
- */
-package org.opendaylight.protocol.bgp.mvpn.impl;
-
-import java.util.List;
-import org.opendaylight.protocol.bgp.mvpn.impl.nlri.InterASIPmsiADHandler;
-import org.opendaylight.protocol.bgp.mvpn.impl.nlri.IntraAsIPmsiADHandler;
-import org.opendaylight.protocol.bgp.mvpn.impl.nlri.LeafADHandler;
-import org.opendaylight.protocol.bgp.mvpn.impl.nlri.SPmsiADHandler;
-import org.opendaylight.protocol.bgp.mvpn.impl.nlri.SharedTreeJoinHandler;
-import org.opendaylight.protocol.bgp.mvpn.impl.nlri.SourceActiveADHandler;
-import org.opendaylight.protocol.bgp.mvpn.impl.nlri.SourceTreeJoinHandler;
-import org.opendaylight.protocol.bgp.mvpn.spi.pojo.nlri.SimpleMvpnNlriRegistry;
-import org.opendaylight.yangtools.concepts.Registration;
-
-/**
- * Nlri Registry activator.
- *
- * @author Claudio D. Gasparini
- */
-public final class NlriActivator {
- private NlriActivator() {
- // Hidden on purpose
- }
-
- public static void registerNlriParsers(final List<Registration> regs) {
- final SimpleMvpnNlriRegistry nlriRegistry = SimpleMvpnNlriRegistry.getInstance();
-
- final IntraAsIPmsiADHandler intra = new IntraAsIPmsiADHandler();
- regs.add(nlriRegistry.registerNlriParser(intra));
- regs.add(nlriRegistry.registerNlriSerializer(intra));
-
- final InterASIPmsiADHandler inter = new InterASIPmsiADHandler();
- regs.add(nlriRegistry.registerNlriParser(inter));
- regs.add(nlriRegistry.registerNlriSerializer(inter));
-
- final SPmsiADHandler sPmsiADHandler = new SPmsiADHandler();
- regs.add(nlriRegistry.registerNlriParser(sPmsiADHandler));
- regs.add(nlriRegistry.registerNlriSerializer(sPmsiADHandler));
-
- final LeafADHandler leafHandler = new LeafADHandler();
- regs.add(nlriRegistry.registerNlriParser(leafHandler));
- regs.add(nlriRegistry.registerNlriSerializer(leafHandler));
-
- final SourceActiveADHandler activeADHandler = new SourceActiveADHandler();
- regs.add(nlriRegistry.registerNlriParser(activeADHandler));
- regs.add(nlriRegistry.registerNlriSerializer(activeADHandler));
-
- final SharedTreeJoinHandler sharedTreeJoinHandler = new SharedTreeJoinHandler();
- regs.add(nlriRegistry.registerNlriParser(sharedTreeJoinHandler));
- regs.add(nlriRegistry.registerNlriSerializer(sharedTreeJoinHandler));
-
- final SourceTreeJoinHandler sourceTreeJoinHandler = new SourceTreeJoinHandler();
- regs.add(nlriRegistry.registerNlriParser(sourceTreeJoinHandler));
- regs.add(nlriRegistry.registerNlriSerializer(sourceTreeJoinHandler));
- }
-}
import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
import io.netty.buffer.ByteBuf;
import io.netty.buffer.Unpooled;
+import org.eclipse.jdt.annotation.NonNull;
+import org.opendaylight.protocol.bgp.mvpn.impl.nlri.InterASIPmsiADHandler;
+import org.opendaylight.protocol.bgp.mvpn.impl.nlri.IntraAsIPmsiADHandler;
+import org.opendaylight.protocol.bgp.mvpn.impl.nlri.LeafADHandler;
+import org.opendaylight.protocol.bgp.mvpn.impl.nlri.SPmsiADHandler;
+import org.opendaylight.protocol.bgp.mvpn.impl.nlri.SharedTreeJoinHandler;
+import org.opendaylight.protocol.bgp.mvpn.impl.nlri.SourceActiveADHandler;
+import org.opendaylight.protocol.bgp.mvpn.impl.nlri.SourceTreeJoinHandler;
import org.opendaylight.protocol.bgp.mvpn.spi.nlri.MvpnParser;
import org.opendaylight.protocol.bgp.mvpn.spi.nlri.MvpnRegistry;
import org.opendaylight.protocol.bgp.mvpn.spi.nlri.MvpnSerializer;
import org.opendaylight.protocol.concepts.HandlerRegistry;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.mvpn.rev200120.NlriType;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.mvpn.rev200120.mvpn.MvpnChoice;
-import org.opendaylight.yangtools.concepts.Registration;
import org.opendaylight.yangtools.yang.binding.DataContainer;
/**
* @author Claudio D. Gasparini
*/
public final class SimpleMvpnNlriRegistry implements MvpnRegistry {
- private static final SimpleMvpnNlriRegistry SINGLETON = new SimpleMvpnNlriRegistry();
+ private static final @NonNull SimpleMvpnNlriRegistry INSTANCE = new SimpleMvpnNlriRegistry();
+
private final HandlerRegistry<DataContainer, MvpnParser, MvpnSerializer> handlers = new HandlerRegistry<>();
private SimpleMvpnNlriRegistry() {
+ final IntraAsIPmsiADHandler intra = new IntraAsIPmsiADHandler();
+ registerNlriParser(intra);
+ registerNlriSerializer(intra);
+
+ final InterASIPmsiADHandler inter = new InterASIPmsiADHandler();
+ registerNlriParser(inter);
+ registerNlriSerializer(inter);
+
+ final SPmsiADHandler sPmsiADHandler = new SPmsiADHandler();
+ registerNlriParser(sPmsiADHandler);
+ registerNlriSerializer(sPmsiADHandler);
+
+ final LeafADHandler leafHandler = new LeafADHandler();
+ registerNlriParser(leafHandler);
+ registerNlriSerializer(leafHandler);
+
+ final SourceActiveADHandler activeADHandler = new SourceActiveADHandler();
+ registerNlriParser(activeADHandler);
+ registerNlriSerializer(activeADHandler);
+
+ final SharedTreeJoinHandler sharedTreeJoinHandler = new SharedTreeJoinHandler();
+ registerNlriParser(sharedTreeJoinHandler);
+ registerNlriSerializer(sharedTreeJoinHandler);
+
+ final SourceTreeJoinHandler sourceTreeJoinHandler = new SourceTreeJoinHandler();
+ registerNlriParser(sourceTreeJoinHandler);
+ registerNlriSerializer(sourceTreeJoinHandler);
}
- public static SimpleMvpnNlriRegistry getInstance() {
- return SINGLETON;
+ public static @NonNull SimpleMvpnNlriRegistry getInstance() {
+ return INSTANCE;
}
- public <T extends MvpnChoice> Registration registerNlriParser(final MvpnParser<T> parser) {
- return this.handlers.registerParser(parser.getType(), parser);
+ private <T extends MvpnChoice> void registerNlriParser(final MvpnParser<T> parser) {
+ handlers.registerParser(parser.getType(), parser);
}
- public <T extends MvpnChoice> Registration registerNlriSerializer(
- final MvpnSerializer<T> serializer) {
- return this.handlers.registerSerializer(serializer.getClazz(), serializer);
+ private <T extends MvpnChoice> void registerNlriSerializer(final MvpnSerializer<T> serializer) {
+ handlers.registerSerializer(serializer.getClazz(), serializer);
}
@Override
@SuppressFBWarnings(value = "NP_NONNULL_RETURN_VIOLATION", justification = "SB does not grok TYPE_USE")
public MvpnChoice parseMvpn(final NlriType type, final ByteBuf nlriBuf) {
checkArgument(nlriBuf != null && nlriBuf.isReadable(), "Array of bytes is mandatory. Can't be null or empty.");
- final MvpnParser<MvpnChoice> parser = this.handlers.getParser(type.getIntValue());
+ final MvpnParser<MvpnChoice> parser = handlers.getParser(type.getIntValue());
return parser == null ? null : parser.parseMvpn(nlriBuf);
}
@Override
public ByteBuf serializeMvpn(final MvpnChoice mvpn) {
- final MvpnSerializer<MvpnChoice> serializer = this.handlers.getSerializer(mvpn.implementedInterface());
+ final MvpnSerializer<MvpnChoice> serializer = handlers.getSerializer(mvpn.implementedInterface());
return serializer == null ? Unpooled.EMPTY_BUFFER : serializer.serializeMvpn(mvpn);
}
}
import static org.junit.Assert.assertTrue;
import com.google.common.collect.ImmutableSet;
-import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.Map;
super.setUp();
this.ribSupport = new MvpnIpv4RIBSupport(this.adapter.currentSerializer());
setUpTestCustomizer(this.ribSupport);
- NlriActivator.registerNlriParsers(new ArrayList<>());
}
@Test
import static org.junit.Assert.assertTrue;
import com.google.common.collect.ImmutableSet;
-import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.Map;
super.setUp();
this.ribSupport = new MvpnIpv6RIBSupport(this.adapter.currentSerializer());
setUpTestCustomizer(this.ribSupport);
- NlriActivator.registerNlriParsers(new ArrayList<>());
}
@Test
import static org.junit.Assert.assertEquals;
import io.netty.buffer.Unpooled;
-import java.util.ArrayList;
-import org.junit.Before;
import org.junit.Test;
-import org.opendaylight.protocol.bgp.mvpn.impl.NlriActivator;
import org.opendaylight.protocol.util.ByteArray;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.AsNumber;
import org.opendaylight.yang.gen.v1.urn.ietf.params.xml.ns.yang.ietf.inet.types.rev130715.IpAddressNoZone;
.build();
private final LeafADHandler handler = new LeafADHandler();
- @Before
- public void setUp() {
- NlriActivator.registerNlriParsers(new ArrayList<>());
- }
-
@Test
public void testParser() {
assertEquals(this.expected, this.handler.parseMvpn(Unpooled.copiedBuffer(LEAF_AD)));
* terms of the Eclipse Public License v1.0 which accompanies this distribution,
* and is available at http://www.eclipse.org/legal/epl-v10.html
*/
-
package org.opendaylight.protocol.bgp.mvpn.spi.pojo.nlri;
import static org.junit.Assert.assertEquals;
import io.netty.buffer.ByteBuf;
import io.netty.buffer.Unpooled;
-import java.util.ArrayList;
-import org.junit.Before;
import org.junit.Test;
-import org.opendaylight.protocol.bgp.mvpn.impl.NlriActivator;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.mvpn.rev200120.NlriType;
import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.mvpn.rev200120.mvpn.MvpnChoice;
public final class SimpleMvpnNlriRegistryTest {
- @Before
- public void setUp() {
- NlriActivator.registerNlriParsers(new ArrayList<>());
- }
-
@Test(expected = IllegalArgumentException.class)
public void registryParseTest() {
SimpleMvpnNlriRegistry.getInstance().parseMvpn(NlriType.InterAsIPmsiAD, null);