import javax.annotation.concurrent.ThreadSafe;
import org.opendaylight.protocol.bgp.parser.BGPError;
-import org.opendaylight.protocol.bgp.parser.BGPMessage;
import org.opendaylight.protocol.bgp.parser.BGPSessionListener;
-import org.opendaylight.protocol.bgp.parser.impl.BGPMessageFactory;
-import org.opendaylight.protocol.bgp.parser.message.BGPNotificationMessage;
+import org.opendaylight.protocol.bgp.parser.impl.BGPMessageFactoryImpl;
+import org.opendaylight.protocol.bgp.parser.spi.MessageRegistry;
import org.opendaylight.protocol.bgp.rib.impl.BGP;
import org.opendaylight.protocol.concepts.ListenerRegistration;
import org.opendaylight.protocol.framework.DeserializerException;
import org.opendaylight.protocol.framework.ProtocolMessageFactory;
import org.opendaylight.protocol.framework.ReconnectStrategy;
import org.opendaylight.protocol.util.ByteArray;
+import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.bgp.message.rev130918.NotifyBuilder;
+import org.opendaylight.yangtools.yang.binding.Notification;
import com.google.common.collect.Lists;
import com.google.common.eventbus.EventBus;
*/
@ThreadSafe
public final class BGPMock implements BGP, Closeable {
- static final BGPMessage connectionLostMagicMessage = new BGPNotificationMessage(BGPError.CEASE);
+ static final Notification connectionLostMagicMessage = new NotifyBuilder().setErrorCode(BGPError.CEASE.getCode()).build();
@GuardedBy("this")
private final List<byte[]> allPreviousByteMessages;
- private final List<BGPMessage> allPreviousBGPMessages;
+ private final List<Notification> allPreviousBGPMessages;
private final EventBus eventBus;
+
@GuardedBy("this")
private final List<EventBusRegistration> openRegistrations = Lists.newLinkedList();
- public BGPMock(final EventBus eventBus, final List<byte[]> bgpMessages) {
+ public BGPMock(final EventBus eventBus, final MessageRegistry registry, final List<byte[]> bgpMessages) {
this.allPreviousByteMessages = Lists.newLinkedList(bgpMessages);
this.eventBus = eventBus;
- this.allPreviousBGPMessages = this.parsePrevious(this.allPreviousByteMessages);
+ this.allPreviousBGPMessages = this.parsePrevious(registry, this.allPreviousByteMessages);
}
- private List<BGPMessage> parsePrevious(final List<byte[]> msgs) {
- final List<BGPMessage> messages = Lists.newArrayList();
- final ProtocolMessageFactory<BGPMessage> parser = new BGPMessageFactory();
+ private List<Notification> parsePrevious(final MessageRegistry registry, final List<byte[]> msgs) {
+ final List<Notification> messages = Lists.newArrayList();
+ final ProtocolMessageFactory<Notification> parser = new BGPMessageFactoryImpl(registry);
try {
for (final byte[] b : msgs) {
final byte[] body = ByteArray.cutBytes(b, 1);
- messages.addAll(parser.parse(body));
+ messages.add(parser.parse(body));
}
} catch (final DeserializerException e) {
e.printStackTrace();
* @return ListenerRegistration
*/
@Override
- public synchronized ListenerRegistration<BGPSessionListener> registerUpdateListener(final BGPSessionListener listener, final ReconnectStrategy strategy) {
+ public synchronized ListenerRegistration<BGPSessionListener> registerUpdateListener(final BGPSessionListener listener,
+ final ReconnectStrategy strategy) {
return EventBusRegistration.createAndRegister(this.eventBus, listener, this.allPreviousBGPMessages);
}
this.insertMessage(connectionLostMagicMessage);
}
- public synchronized void insertMessages(final List<BGPMessage> messages) {
- for (final BGPMessage message : messages) {
+ public synchronized void insertMessages(final List<Notification> messages) {
+ for (final Notification message : messages) {
this.insertMessage(message);
}
}
- private synchronized void insertMessage(final BGPMessage message) {
+ private synchronized void insertMessage(final Notification message) {
this.allPreviousBGPMessages.add(message);
this.eventBus.post(message);
}