* 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.netconf.client;
import com.google.common.base.Strings;
final Timer timer,
final NetconfClientSessionListener sessionListener,
final long connectionTimeoutMillis) {
- super(sessionPreferences, promise, channel, timer, sessionListener, connectionTimeoutMillis);
+ super(sessionPreferences, promise, channel, timer, sessionListener, connectionTimeoutMillis,
+ DEFAULT_MAXIMUM_INCOMING_CHUNK_SIZE);
}
@SuppressWarnings("checkstyle:IllegalCatch")
private static final String UNKNOWN = "unknown";
protected NetconfServerSessionNegotiator(
- NetconfServerSessionPreferences sessionPreferences,
- Promise<NetconfServerSession> promise, Channel channel,
- Timer timer, NetconfServerSessionListener sessionListener,
- long connectionTimeoutMillis) {
- super(sessionPreferences, promise, channel, timer, sessionListener,
- connectionTimeoutMillis);
+ final NetconfServerSessionPreferences sessionPreferences,
+ final Promise<NetconfServerSession> promise, final Channel channel,
+ final Timer timer, final NetconfServerSessionListener sessionListener,
+ final long connectionTimeoutMillis) {
+ super(sessionPreferences, promise, channel, timer, sessionListener, connectionTimeoutMillis,
+ DEFAULT_MAXIMUM_INCOMING_CHUNK_SIZE);
}
@Override
- protected void handleMessage(NetconfHelloMessage netconfMessage)
+ protected void handleMessage(final NetconfHelloMessage netconfMessage)
throws NetconfDocumentedException {
NetconfServerSession session = getSessionForHelloMessage(netconfMessage);
replaceHelloMessageInboundHandler(session);
@Override
@SuppressFBWarnings("BC_UNCONFIRMED_CAST_OF_RETURN_VALUE")
protected NetconfServerSession getSession(
- NetconfServerSessionListener sessionListener, Channel channel,
- NetconfHelloMessage message) {
+ final NetconfServerSessionListener sessionListener, final Channel channel,
+ final NetconfHelloMessage message) {
Optional<NetconfHelloMessageAdditionalHeader> additionalHeader = message
.getAdditionalHeader();
* @return Two values - port and host of socket address
*/
protected static Map.Entry<String, String> getHostName(
- SocketAddress socketAddress) {
+ final SocketAddress socketAddress) {
if (socketAddress instanceof InetSocketAddress) {
*/
package org.opendaylight.netconf.nettyutil;
+import static com.google.common.base.Preconditions.checkArgument;
import static com.google.common.base.Preconditions.checkState;
import static java.util.Objects.requireNonNull;
protected final P sessionPreferences;
protected final Channel channel;
+ private final @NonNegative int maximumIncomingChunkSize;
private final long connectionTimeoutMillis;
private final Promise<S> promise;
private final L sessionListener;
protected AbstractNetconfSessionNegotiator(final P sessionPreferences, final Promise<S> promise,
final Channel channel, final Timer timer,
- final L sessionListener, final long connectionTimeoutMillis) {
+ final L sessionListener, final long connectionTimeoutMillis,
+ final @NonNegative int maximumIncomingChunkSize) {
this.channel = requireNonNull(channel);
this.promise = requireNonNull(promise);
this.sessionPreferences = sessionPreferences;
this.timer = timer;
this.sessionListener = sessionListener;
this.connectionTimeoutMillis = connectionTimeoutMillis;
+ this.maximumIncomingChunkSize = maximumIncomingChunkSize;
+ checkArgument(maximumIncomingChunkSize > 0, "Invalid maximum incoming chunk size %s", maximumIncomingChunkSize);
+ }
+
+ @Deprecated(since = "4.0.1", forRemoval = true)
+ protected AbstractNetconfSessionNegotiator(final P sessionPreferences, final Promise<S> promise,
+ final Channel channel, final Timer timer,
+ final L sessionListener, final long connectionTimeoutMillis) {
+ this(sessionPreferences, promise, channel, timer, sessionListener, connectionTimeoutMillis,
+ DEFAULT_MAXIMUM_INCOMING_CHUNK_SIZE);
}
protected final void startNegotiation() {
replaceChannelHandler(channel, AbstractChannelInitializer.NETCONF_MESSAGE_FRAME_ENCODER,
FramingMechanismHandlerFactory.createHandler(FramingMechanism.CHUNK));
replaceChannelHandler(channel, AbstractChannelInitializer.NETCONF_MESSAGE_AGGREGATOR,
- new NetconfChunkAggregator(DEFAULT_MAXIMUM_INCOMING_CHUNK_SIZE));
+ new NetconfChunkAggregator(maximumIncomingChunkSize));
}
private boolean shouldUseChunkFraming(final Document doc) {
* 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.netconf.nettyutil;
import io.netty.channel.Channel;
final class TestSessionNegotiator extends
AbstractNetconfSessionNegotiator<NetconfSessionPreferences,
TestingNetconfSession, NetconfSessionListener<TestingNetconfSession>> {
-
-
TestSessionNegotiator(final NetconfSessionPreferences sessionPreferences,
final Promise<TestingNetconfSession> promise, final Channel channel,
final Timer timer,
final NetconfSessionListener<TestingNetconfSession> sessionListener,
final long connectionTimeoutMillis) {
- super(sessionPreferences, promise, channel, timer, sessionListener, connectionTimeoutMillis);
+ super(sessionPreferences, promise, channel, timer, sessionListener, connectionTimeoutMillis, 16384);
}
@Override