import org.opendaylight.netconf.api.NetconfDocumentedException;
import org.opendaylight.netconf.api.NetconfMessage;
import org.opendaylight.netconf.api.NetconfSessionListener;
-import org.opendaylight.netconf.api.messages.NetconfHelloMessage;
+import org.opendaylight.netconf.api.messages.HelloMessage;
import org.opendaylight.netconf.api.xml.XmlNetconfConstants;
import org.opendaylight.netconf.nettyutil.handler.FramingMechanismHandlerFactory;
import org.opendaylight.netconf.nettyutil.handler.NetconfChunkAggregator;
LOG.debug("Default maximum incoming NETCONF chunk size is {} bytes", DEFAULT_MAXIMUM_INCOMING_CHUNK_SIZE);
}
- private final @NonNull NetconfHelloMessage localHello;
+ private final @NonNull HelloMessage localHello;
protected final Channel channel;
private final @NonNegative int maximumIncomingChunkSize;
@GuardedBy("this")
private State state = State.IDLE;
- protected AbstractNetconfSessionNegotiator(final NetconfHelloMessage hello, final Promise<S> promise,
+ protected AbstractNetconfSessionNegotiator(final HelloMessage hello, final Promise<S> promise,
final Channel channel, final Timer timer, final L sessionListener,
final long connectionTimeoutMillis,
final @NonNegative int maximumIncomingChunkSize) {
- this.localHello = requireNonNull(hello);
+ localHello = requireNonNull(hello);
this.promise = requireNonNull(promise);
this.channel = requireNonNull(channel);
this.timer = timer;
}
@Deprecated(since = "4.0.1", forRemoval = true)
- protected AbstractNetconfSessionNegotiator(final NetconfHelloMessage hello, final Promise<S> promise,
+ protected AbstractNetconfSessionNegotiator(final HelloMessage hello, final Promise<S> promise,
final Channel channel, final Timer timer,
final L sessionListener, final long connectionTimeoutMillis) {
this(hello, promise, channel, timer, sessionListener, connectionTimeoutMillis,
DEFAULT_MAXIMUM_INCOMING_CHUNK_SIZE);
}
- protected final @NonNull NetconfHelloMessage localHello() {
+ protected final @NonNull HelloMessage localHello() {
return localHello;
}
}
}
- protected final S getSessionForHelloMessage(final NetconfHelloMessage netconfMessage)
+ protected final S getSessionForHelloMessage(final HelloMessage netconfMessage)
throws NetconfDocumentedException {
final Document doc = netconfMessage.getDocument();
return getSession(sessionListener, channel, netconfMessage);
}
- protected abstract S getSession(L sessionListener, Channel channel, NetconfHelloMessage message)
+ protected abstract S getSession(L sessionListener, Channel channel, HelloMessage message)
throws NetconfDocumentedException;
/**
LOG.debug("Changing state from : {} to : {} for channel: {}", state, newState, channel);
checkState(isStateChangePermitted(state, newState),
"Cannot change state from %s to %s for channel %s", state, newState, channel);
- this.state = newState;
+ state = newState;
}
private static boolean containsBase11Capability(final Document doc) {
LOG.debug("Negotiation read invoked on channel {}", channel);
try {
- handleMessage((NetconfHelloMessage) msg);
+ handleMessage((HelloMessage) msg);
} catch (final Exception e) {
LOG.debug("Unexpected error while handling negotiation message {} on channel {}", msg, channel, e);
negotiationFailed(e);
negotiationFailed(cause);
}
- protected abstract void handleMessage(NetconfHelloMessage msg) throws Exception;
+ protected abstract void handleMessage(HelloMessage msg) throws Exception;
}
import java.util.Optional;
import javax.xml.transform.TransformerException;
import org.opendaylight.netconf.api.NetconfMessage;
-import org.opendaylight.netconf.api.messages.NetconfHelloMessage;
+import org.opendaylight.netconf.api.messages.HelloMessage;
import org.opendaylight.netconf.api.messages.NetconfHelloMessageAdditionalHeader;
/**
* Customized NetconfMessageToXMLEncoder that serializes additional header with
* session metadata along with
- * {@link NetconfHelloMessage}
+ * {@link HelloMessage}
* . Used by netconf clients to send information about the user, ip address,
* protocol etc.
*
public final class NetconfHelloMessageToXMLEncoder extends NetconfMessageToXMLEncoder {
@Override
@VisibleForTesting
- public void encode(ChannelHandlerContext ctx, NetconfMessage msg, ByteBuf out)
+ public void encode(final ChannelHandlerContext ctx, final NetconfMessage msg, final ByteBuf out)
throws IOException, TransformerException {
- Preconditions.checkState(msg instanceof NetconfHelloMessage, "Netconf message of type %s expected, was %s",
- NetconfHelloMessage.class, msg.getClass());
- Optional<NetconfHelloMessageAdditionalHeader> headerOptional = ((NetconfHelloMessage) msg)
- .getAdditionalHeader();
+ Preconditions.checkState(msg instanceof HelloMessage, "Netconf message of type %s expected, was %s",
+ HelloMessage.class, msg.getClass());
+ Optional<NetconfHelloMessageAdditionalHeader> headerOptional = ((HelloMessage) msg).getAdditionalHeader();
// If additional header present, serialize it along with netconf hello message
if (headerOptional.isPresent()) {
import java.util.Arrays;
import java.util.List;
import org.opendaylight.netconf.api.NetconfMessage;
-import org.opendaylight.netconf.api.messages.NetconfHelloMessage;
+import org.opendaylight.netconf.api.messages.HelloMessage;
import org.opendaylight.netconf.api.messages.NetconfHelloMessageAdditionalHeader;
import org.opendaylight.netconf.api.xml.XmlUtil;
import org.slf4j.Logger;
/**
* Customized NetconfXMLToMessageDecoder that reads additional header with
* session metadata from
- * {@link NetconfHelloMessage}*
+ * {@link HelloMessage}*
* This handler should be replaced in pipeline by regular message handler as last step of negotiation.
* It serves as a message barrier and halts all non-hello netconf messages.
* Netconf messages after hello should be processed once the negotiation succeeded.
Document doc = XmlUtil.readXmlToDocument(new ByteArrayInputStream(bytes));
final NetconfMessage message = getNetconfMessage(additionalHeader, doc);
- if (message instanceof NetconfHelloMessage) {
+ if (message instanceof HelloMessage) {
Preconditions.checkState(!helloReceived,
"Multiple hello messages received, unexpected hello: %s", message);
out.add(message);
private static NetconfMessage getNetconfMessage(final String additionalHeader, final Document doc) {
NetconfMessage msg = new NetconfMessage(doc);
- if (NetconfHelloMessage.isHelloMessage(msg)) {
+ if (HelloMessage.isHelloMessage(msg)) {
if (additionalHeader != null) {
- return new NetconfHelloMessage(doc, NetconfHelloMessageAdditionalHeader.fromString(additionalHeader));
+ return new HelloMessage(doc, NetconfHelloMessageAdditionalHeader.fromString(additionalHeader));
} else {
- return new NetconfHelloMessage(doc);
+ return new HelloMessage(doc);
}
}
import org.mockito.Mock;
import org.mockito.junit.MockitoJUnitRunner;
import org.opendaylight.netconf.api.NetconfSessionListener;
-import org.opendaylight.netconf.api.messages.NetconfHelloMessage;
+import org.opendaylight.netconf.api.messages.HelloMessage;
import org.opendaylight.netconf.api.xml.XmlNetconfConstants;
import org.opendaylight.netconf.api.xml.XmlUtil;
import org.opendaylight.netconf.nettyutil.handler.ChunkedFramingMechanismEncoder;
private Timeout timeout;
private EmbeddedChannel channel;
private TestSessionNegotiator negotiator;
- private NetconfHelloMessage hello;
- private NetconfHelloMessage helloBase11;
+ private HelloMessage hello;
+ private HelloMessage helloBase11;
private NetconfXMLToHelloMessageDecoder xmlToHello;
@Before
channel.pipeline().addLast(NETCONF_MESSAGE_FRAME_ENCODER,
FramingMechanismHandlerFactory.createHandler(FramingMechanism.EOM));
channel.pipeline().addLast(NETCONF_MESSAGE_AGGREGATOR, new NetconfEOMAggregator());
- hello = NetconfHelloMessage.createClientHello(Set.of(), Optional.empty());
- helloBase11 = NetconfHelloMessage.createClientHello(
- Set.of(XmlNetconfConstants.URN_IETF_PARAMS_NETCONF_BASE_1_1), Optional.empty());
+ hello = HelloMessage.createClientHello(Set.of(), Optional.empty());
+ helloBase11 = HelloMessage.createClientHello(Set.of(XmlNetconfConstants.URN_IETF_PARAMS_NETCONF_BASE_1_1),
+ Optional.empty());
doReturn(promise).when(promise).setFailure(any());
negotiator = new TestSessionNegotiator(helloBase11, promise, channel, timer, listener, 100L);
}
import io.netty.handler.codec.ByteToMessageDecoder;
import io.netty.handler.codec.MessageToByteEncoder;
import java.io.EOFException;
-import java.util.Collections;
import java.util.Optional;
+import java.util.Set;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.opendaylight.netconf.api.NetconfMessage;
import org.opendaylight.netconf.api.NetconfSessionListener;
import org.opendaylight.netconf.api.NetconfTerminationReason;
-import org.opendaylight.netconf.api.messages.NetconfHelloMessage;
+import org.opendaylight.netconf.api.messages.HelloMessage;
import org.opendaylight.netconf.nettyutil.handler.exi.EXIParameters;
import org.opendaylight.netconf.nettyutil.handler.exi.NetconfStartExiMessage;
@Mock
private ChannelPromise writeFuture;
- private NetconfHelloMessage clientHello;
+ private HelloMessage clientHello;
@Before
public void setUp() throws Exception {
return null;
}).when(eventLoop).execute(any(Runnable.class));
- clientHello = NetconfHelloMessage.createClientHello(Collections.emptySet(), Optional.empty());
+ clientHello = HelloMessage.createClientHello(Set.of(), Optional.empty());
}
@Test
@Test
public void testSendMessage() throws Exception {
final TestingNetconfSession testingNetconfSession = new TestingNetconfSession(listener, channel, 1L);
- final NetconfHelloMessage hello = NetconfHelloMessage.createClientHello(Collections.emptySet(),
- Optional.empty());
+ final HelloMessage hello = HelloMessage.createClientHello(Set.of(), Optional.empty());
testingNetconfSession.sendMessage(hello);
verify(channel).writeAndFlush(hello, writeFuture);
}
import org.mockito.Mock;
import org.mockito.junit.MockitoJUnitRunner;
import org.opendaylight.netconf.api.NetconfSessionListener;
-import org.opendaylight.netconf.api.messages.NetconfHelloMessage;
+import org.opendaylight.netconf.api.messages.HelloMessage;
import org.opendaylight.netconf.api.xml.XmlNetconfConstants;
import org.opendaylight.netconf.nettyutil.handler.ChunkedFramingMechanismEncoder;
import org.opendaylight.netconf.nettyutil.handler.FramingMechanismHandlerFactory;
channel.pipeline().addLast(NETCONF_MESSAGE_FRAME_ENCODER,
FramingMechanismHandlerFactory.createHandler(FramingMechanism.EOM));
channel.pipeline().addLast(NETCONF_MESSAGE_AGGREGATOR, new NetconfEOMAggregator());
- final NetconfHelloMessage serverHello = NetconfHelloMessage.createClientHello(
+ final HelloMessage serverHello = HelloMessage.createClientHello(
Set.of(XmlNetconfConstants.URN_IETF_PARAMS_NETCONF_BASE_1_1), Optional.empty());
negotiator = new TestSessionNegotiator(serverHello, promise, channel, new HashedWheelTimer(), listener, 100L);
}
private void testGetSessionForHelloMessage(final String fileName) throws Exception {
final Document helloDocument = XmlFileLoader.xmlFileToDocument(fileName);
negotiator.startNegotiation();
- final NetconfHelloMessage helloMessage = new NetconfHelloMessage(helloDocument);
+ final HelloMessage helloMessage = new HelloMessage(helloDocument);
final TestingNetconfSession session = negotiator.getSessionForHelloMessage(helloMessage);
assertNotNull(session);
assertTrue("NetconfChunkAggregator was not installed in the Netconf pipeline",
import io.netty.util.Timer;
import io.netty.util.concurrent.Promise;
import org.opendaylight.netconf.api.NetconfSessionListener;
-import org.opendaylight.netconf.api.messages.NetconfHelloMessage;
+import org.opendaylight.netconf.api.messages.HelloMessage;
final class TestSessionNegotiator
extends AbstractNetconfSessionNegotiator<TestingNetconfSession, NetconfSessionListener<TestingNetconfSession>> {
- TestSessionNegotiator(final NetconfHelloMessage hello, final Promise<TestingNetconfSession> promise,
+ TestSessionNegotiator(final HelloMessage hello, final Promise<TestingNetconfSession> promise,
final Channel channel, final Timer timer,
final NetconfSessionListener<TestingNetconfSession> sessionListener, final long connectionTimeoutMillis) {
super(hello, promise, channel, timer, sessionListener, connectionTimeoutMillis, 16384);
@Override
protected TestingNetconfSession getSession(final NetconfSessionListener<TestingNetconfSession> sessionListener,
- final Channel channel, final NetconfHelloMessage message) {
+ final Channel channel, final HelloMessage message) {
return new TestingNetconfSession(sessionListener, channel, 0L);
}
@Override
- protected void handleMessage(final NetconfHelloMessage netconfHelloMessage) {
+ protected void handleMessage(final HelloMessage netconfHelloMessage) {
// No-op
}
}
\ No newline at end of file
import static org.hamcrest.CoreMatchers.containsString;
import static org.hamcrest.CoreMatchers.not;
import static org.hamcrest.MatcherAssert.assertThat;
+import static org.junit.jupiter.api.Assertions.assertThrows;
import io.netty.buffer.ByteBuf;
import io.netty.buffer.Unpooled;
import org.mockito.Mock;
import org.mockito.junit.MockitoJUnitRunner;
import org.opendaylight.netconf.api.NetconfMessage;
-import org.opendaylight.netconf.api.messages.NetconfHelloMessage;
+import org.opendaylight.netconf.api.messages.HelloMessage;
import org.opendaylight.netconf.api.messages.NetconfHelloMessageAdditionalHeader;
import org.opendaylight.netconf.api.xml.XmlUtil;
@Test
public void testEncode() throws Exception {
- final NetconfMessage msg = new NetconfHelloMessage(XmlUtil.readXmlToDocument(
+ final NetconfMessage msg = new HelloMessage(XmlUtil.readXmlToDocument(
"<hello xmlns=\"urn:ietf:params:xml:ns:netconf:base:1.0\"/>"),
NetconfHelloMessageAdditionalHeader.fromString("[tomas;10.0.0.0:10000;tcp;client;]"));
final ByteBuf destination = Unpooled.buffer();
@Test
public void testEncodeNoHeader() throws Exception {
- final NetconfMessage msg = new NetconfHelloMessage(XmlUtil.readXmlToDocument(
+ final NetconfMessage msg = new HelloMessage(XmlUtil.readXmlToDocument(
"<hello xmlns=\"urn:ietf:params:xml:ns:netconf:base:1.0\"/>"));
final ByteBuf destination = Unpooled.buffer();
new NetconfHelloMessageToXMLEncoder().encode(ctx, msg, destination);
assertThat(encoded, containsString("<hello xmlns=\"urn:ietf:params:xml:ns:netconf:base:1.0\"/>"));
}
- @Test(expected = IllegalStateException.class)
+ @Test
public void testEncodeNotHello() throws Exception {
final NetconfMessage msg = new NetconfMessage(XmlUtil.readXmlToDocument(
"<hello xmlns=\"urn:ietf:params:xml:ns:netconf:base:1.0\"/>"));
- new NetconfHelloMessageToXMLEncoder().encode(ctx, msg, null);
+ assertThrows(IllegalStateException.class, () -> new NetconfHelloMessageToXMLEncoder().encode(ctx, msg, null));
}
}
import java.util.List;
import org.hamcrest.CoreMatchers;
import org.junit.Test;
-import org.opendaylight.netconf.api.messages.NetconfHelloMessage;
+import org.opendaylight.netconf.api.messages.HelloMessage;
import org.opendaylight.netconf.api.xml.XmlUtil;
public class NetconfXMLToHelloMessageDecoderTest {
new NetconfXMLToHelloMessageDecoder().decode(null, src, out);
assertEquals(1, out.size());
- assertThat(out.get(0), CoreMatchers.instanceOf(NetconfHelloMessage.class));
- final NetconfHelloMessage hello = (NetconfHelloMessage) out.get(0);
+ assertThat(out.get(0), CoreMatchers.instanceOf(HelloMessage.class));
+ final HelloMessage hello = (HelloMessage) out.get(0);
assertTrue(hello.getAdditionalHeader().isPresent());
assertEquals("[tomas;10.0.0.0:10000;tcp;client;]" + System.lineSeparator(),
hello.getAdditionalHeader().orElseThrow().toFormattedString());
new NetconfXMLToHelloMessageDecoder().decode(null, src, out);
assertEquals(1, out.size());
- assertThat(out.get(0), CoreMatchers.instanceOf(NetconfHelloMessage.class));
- final NetconfHelloMessage hello = (NetconfHelloMessage) out.get(0);
+ assertThat(out.get(0), CoreMatchers.instanceOf(HelloMessage.class));
+ final HelloMessage hello = (HelloMessage) out.get(0);
assertFalse(hello.getAdditionalHeader().isPresent());
}
*
* @see NetconfHelloMessageAdditionalHeader
*/
-public final class NetconfHelloMessage extends NetconfMessage {
+public final class HelloMessage extends NetconfMessage {
private static final String HELLO_TAG = "hello";
private final NetconfHelloMessageAdditionalHeader additionalHeader;
- public NetconfHelloMessage(final Document doc, final NetconfHelloMessageAdditionalHeader additionalHeader) {
+ public HelloMessage(final Document doc, final NetconfHelloMessageAdditionalHeader additionalHeader) {
super(doc);
checkHelloMessage(doc);
this.additionalHeader = additionalHeader;
}
- public NetconfHelloMessage(final Document doc) {
+ public HelloMessage(final Document doc) {
this(doc, null);
}
}
}
- public static NetconfHelloMessage createClientHello(final Iterable<String> capabilities,
+ public static HelloMessage createClientHello(final Iterable<String> capabilities,
final Optional<NetconfHelloMessageAdditionalHeader> additionalHeaderOptional) {
- return new NetconfHelloMessage(createHelloMessageDoc(capabilities), additionalHeaderOptional.orElse(null));
+ return new HelloMessage(createHelloMessageDoc(capabilities), additionalHeaderOptional.orElse(null));
}
private static Document createHelloMessageDoc(final Iterable<String> capabilities) {
return doc;
}
- public static NetconfHelloMessage createServerHello(final Set<String> capabilities, final long sessionId) {
+ public static HelloMessage createServerHello(final Set<String> capabilities, final long sessionId) {
Document doc = createHelloMessageDoc(capabilities);
Element sessionIdElement = doc.createElementNS(XmlNetconfConstants.URN_IETF_PARAMS_XML_NS_NETCONF_BASE_1_0,
XmlNetconfConstants.SESSION_ID);
sessionIdElement.setTextContent(Long.toString(sessionId));
doc.getDocumentElement().appendChild(sessionIdElement);
- return new NetconfHelloMessage(doc);
+ return new HelloMessage(doc);
}
public static boolean isHelloMessage(final NetconfMessage msg) {
import org.junit.Test;
import org.opendaylight.netconf.api.NetconfDocumentedException;
-public class NetconfHelloMessageTest {
- private final Set<String> caps = Set.of("cap1");
-
+public class HelloMessageTest {
@Test
public void testConstructor() throws NetconfDocumentedException {
+ var caps = Set.of("cap1");
var additionalHeader = new NetconfHelloMessageAdditionalHeader("name", "host", "1", "transp", "id");
- var message = NetconfHelloMessage.createClientHello(caps, Optional.of(additionalHeader));
- assertTrue(NetconfHelloMessage.isHelloMessage(message));
+ var message = HelloMessage.createClientHello(caps, Optional.of(additionalHeader));
+ assertTrue(HelloMessage.isHelloMessage(message));
assertEquals(Optional.of(additionalHeader), message.getAdditionalHeader());
- var serverMessage = NetconfHelloMessage.createServerHello(caps, 100L);
- assertTrue(NetconfHelloMessage.isHelloMessage(serverMessage));
+ var serverMessage = HelloMessage.createServerHello(caps, 100L);
+ assertTrue(HelloMessage.isHelloMessage(serverMessage));
}
}
import org.checkerframework.checker.index.qual.NonNegative;
import org.opendaylight.netconf.api.NetconfDocumentedException;
import org.opendaylight.netconf.api.NetconfMessage;
-import org.opendaylight.netconf.api.messages.NetconfHelloMessage;
+import org.opendaylight.netconf.api.messages.HelloMessage;
import org.opendaylight.netconf.api.xml.XmlNetconfConstants;
import org.opendaylight.netconf.api.xml.XmlUtil;
import org.opendaylight.netconf.nettyutil.AbstractChannelInitializer;
private final NetconfStartExiMessage startExi;
- NetconfClientSessionNegotiator(final NetconfHelloMessage hello, final NetconfStartExiMessage startExi,
+ NetconfClientSessionNegotiator(final HelloMessage hello, final NetconfStartExiMessage startExi,
final Promise<NetconfClientSession> promise, final Channel channel, final Timer timer,
final NetconfClientSessionListener sessionListener, final long connectionTimeoutMillis,
final @NonNegative int maximumIncomingChunkSize) {
@SuppressWarnings("checkstyle:IllegalCatch")
@Override
- protected void handleMessage(final NetconfHelloMessage netconfMessage) throws NetconfDocumentedException {
+ protected void handleMessage(final HelloMessage netconfMessage) throws NetconfDocumentedException {
if (!ifNegotiatedAlready()) {
LOG.debug("Server hello message received, starting negotiation on channel {}", channel);
try {
});
}
- private boolean shouldUseExi(final NetconfHelloMessage helloMsg) {
+ private boolean shouldUseExi(final HelloMessage helloMsg) {
return containsExi10Capability(helloMsg.getDocument()) && containsExi10Capability(localHello().getDocument());
}
@Override
protected NetconfClientSession getSession(final NetconfClientSessionListener sessionListener, final Channel channel,
- final NetconfHelloMessage message) {
+ final HelloMessage message) {
final long sessionId = extractSessionId(message.getDocument());
// Copy here is important: it disconnects the strings from the document
import java.util.Set;
import org.checkerframework.checker.index.qual.NonNegative;
import org.opendaylight.netconf.api.NetconfSessionListenerFactory;
-import org.opendaylight.netconf.api.messages.NetconfHelloMessage;
+import org.opendaylight.netconf.api.messages.HelloMessage;
import org.opendaylight.netconf.api.messages.NetconfHelloMessageAdditionalHeader;
import org.opendaylight.netconf.api.xml.XmlNetconfConstants;
import org.opendaylight.netconf.nettyutil.AbstractNetconfSessionNegotiator;
final NetconfSessionListenerFactory<NetconfClientSessionListener> sessionListenerFactory,
final Channel channel, final Promise<NetconfClientSession> promise) {
return new NetconfClientSessionNegotiator(
- NetconfHelloMessage.createClientHello(clientCapabilities, additionalHeader),
+ HelloMessage.createClientHello(clientCapabilities, additionalHeader),
NetconfStartExiMessage.create(options, START_EXI_MESSAGE_ID), promise, channel, timer,
sessionListenerFactory.getSessionListener(), connectionTimeoutMillis, maximumIncomingChunkSize);
}
import org.junit.Before;
import org.junit.Test;
import org.opendaylight.netconf.api.NetconfMessage;
-import org.opendaylight.netconf.api.messages.NetconfHelloMessage;
+import org.opendaylight.netconf.api.messages.HelloMessage;
import org.opendaylight.netconf.api.xml.XmlUtil;
import org.opendaylight.netconf.nettyutil.handler.ChunkedFramingMechanismEncoder;
import org.opendaylight.netconf.nettyutil.handler.NetconfEXIToMessageDecoder;
import org.w3c.dom.Document;
public class NetconfClientSessionNegotiatorTest {
- private NetconfHelloMessage helloMessage;
+ private HelloMessage helloMessage;
private ChannelPipeline pipeline;
private ChannelPromise future;
private Channel channel;
@Before
public void setUp() {
- helloMessage = NetconfHelloMessage.createClientHello(Set.of("exi:1.0"), Optional.empty());
+ helloMessage = HelloMessage.createClientHello(Set.of("exi:1.0"), Optional.empty());
pipeline = mockChannelPipeline();
future = mockChannelFuture();
channel = mockChannel();
timeout, 16384);
}
- private static NetconfHelloMessage createHelloMsg(final String name) throws Exception {
+ private static HelloMessage createHelloMsg(final String name) throws Exception {
final InputStream stream = NetconfClientSessionNegotiatorTest.class.getResourceAsStream(name);
- final Document doc = XmlUtil.readXmlToDocument(stream);
-
- return new NetconfHelloMessage(doc);
+ return new HelloMessage(XmlUtil.readXmlToDocument(stream));
}
private static Set<String> createCapabilities(final String name) throws Exception {
- NetconfHelloMessage hello = createHelloMsg(name);
-
- return ImmutableSet.copyOf(NetconfMessageUtil.extractCapabilitiesFromHello(hello.getDocument()));
+ return ImmutableSet.copyOf(NetconfMessageUtil.extractCapabilitiesFromHello(createHelloMsg(name).getDocument()));
}
@Test
negotiator.channelActive(null);
doReturn(null).when(future).cause();
- negotiator.handleMessage(NetconfHelloMessage.createServerHello(Set.of("a", "b"), 10));
+ negotiator.handleMessage(HelloMessage.createServerHello(Set.of("a", "b"), 10));
verify(promise).setSuccess(any());
}
NetconfClientSessionNegotiator negotiator = createNetconfClientSessionNegotiator(promise, null);
doReturn(null).when(future).cause();
- negotiator.handleMessage(NetconfHelloMessage.createServerHello(Set.of("a", "b"), 10));
+ negotiator.handleMessage(HelloMessage.createServerHello(Set.of("a", "b"), 10));
negotiator.channelActive(null);
verify(promise).setSuccess(any());
}
ChannelHandlerContext handlerContext = mock(ChannelHandlerContext.class);
doReturn(pipeline).when(handlerContext).pipeline();
- negotiator.handleMessage(NetconfHelloMessage.createServerHello(Set.of("exi:1.0"), 10));
+ negotiator.handleMessage(HelloMessage.createServerHello(Set.of("exi:1.0"), 10));
Document expectedResult = XmlFileLoader.xmlFileToDocument("netconfMessages/rpc-reply_ok.xml");
channelInboundHandlerAdapter.channelRead(handlerContext, new NetconfMessage(expectedResult));
import org.junit.Before;
import org.junit.Test;
import org.opendaylight.netconf.api.NetconfMessage;
-import org.opendaylight.netconf.api.messages.NetconfHelloMessage;
+import org.opendaylight.netconf.api.messages.HelloMessage;
public class SimpleNetconfClientSessionListenerTest {
private Channel channel;
private ChannelPromise channelFuture;
- private NetconfHelloMessage helloMessage;
+ private HelloMessage helloMessage;
private NetconfMessage message;
private NetconfClientSessionListener sessionListener;
private NetconfClientSession clientSession;
doReturn(channelFuture).when(channel).writeAndFlush(any(), any(ChannelPromise.class));
doReturn(channelFuture).when(channelFuture).addListener(any(GenericFutureListener.class));
final var caps = Set.of("a", "b");
- helloMessage = NetconfHelloMessage.createServerHello(caps, 10);
+ helloMessage = HelloMessage.createServerHello(caps, 10);
message = new NetconfMessage(helloMessage.getDocument());
sessionListener = mock(NetconfClientSessionListener.class);
clientSession = new NetconfClientSession(sessionListener, channel, 20L, caps);
import java.util.Map;
import org.checkerframework.checker.index.qual.NonNegative;
import org.opendaylight.netconf.api.NetconfDocumentedException;
-import org.opendaylight.netconf.api.messages.NetconfHelloMessage;
+import org.opendaylight.netconf.api.messages.HelloMessage;
import org.opendaylight.netconf.api.messages.NetconfHelloMessageAdditionalHeader;
import org.opendaylight.netconf.nettyutil.AbstractNetconfSessionNegotiator;
import org.slf4j.Logger;
private final long sessionId;
- NetconfServerSessionNegotiator(final NetconfHelloMessage hello, final long sessionId,
+ NetconfServerSessionNegotiator(final HelloMessage hello, final long sessionId,
final Promise<NetconfServerSession> promise, final Channel channel, final Timer timer,
final NetconfServerSessionListener sessionListener, final long connectionTimeoutMillis,
final @NonNegative int maximumIncomingChunkSize) {
}
@Override
- protected void handleMessage(final NetconfHelloMessage netconfMessage) throws NetconfDocumentedException {
+ protected void handleMessage(final HelloMessage netconfMessage) throws NetconfDocumentedException {
NetconfServerSession session = getSessionForHelloMessage(netconfMessage);
replaceHelloMessageInboundHandler(session);
// Negotiation successful after all non hello messages were processed
@Override
protected NetconfServerSession getSession(final NetconfServerSessionListener sessionListener, final Channel channel,
- final NetconfHelloMessage message) {
+ final HelloMessage message) {
final var additionalHeader = message.getAdditionalHeader();
final var parsedHeader = additionalHeader.orElseGet(() -> {
final var hostName = getHostName(channel.localAddress());
return new SimpleImmutableEntry<>(Integer.toString(inetSocketAddress.getPort()),
inetSocketAddress.getHostString());
} else if (socketAddress instanceof LocalAddress localAddress) {
- return new SimpleImmutableEntry<>(UNKNOWN, localAddress.id());
+ return Map.entry(UNKNOWN, localAddress.id());
} else {
- return new SimpleImmutableEntry<>(UNKNOWN, UNKNOWN);
+ return Map.entry(UNKNOWN, UNKNOWN);
}
}
}
import java.util.Set;
import org.checkerframework.checker.index.qual.NonNegative;
import org.opendaylight.netconf.api.NetconfSessionListenerFactory;
-import org.opendaylight.netconf.api.messages.NetconfHelloMessage;
+import org.opendaylight.netconf.api.messages.HelloMessage;
import org.opendaylight.netconf.api.monitoring.NetconfMonitoringService;
import org.opendaylight.netconf.api.xml.XmlNetconfConstants;
import org.opendaylight.netconf.mapping.api.NetconfOperationService;
return aggregatedOpService;
}
- private NetconfHelloMessage createHelloMessage(
- final long sessionId, final NetconfMonitoringService capabilityProvider) {
- return NetconfHelloMessage.createServerHello(Sets.union(transformCapabilities(capabilityProvider
- .getCapabilities()), baseCapabilities), sessionId);
+ private HelloMessage createHelloMessage(final long sessionId, final NetconfMonitoringService capabilityProvider) {
+ return HelloMessage.createServerHello(Sets.union(
+ transformCapabilities(capabilityProvider.getCapabilities()), baseCapabilities),
+ sessionId);
}
public static Set<String> transformCapabilities(final Capabilities capabilities) {