2 * Copyright (c) 2014 Cisco Systems, Inc. and others. All rights reserved.
4 * This program and the accompanying materials are made available under the
5 * terms of the Eclipse Public License v1.0 which accompanies this distribution,
6 * and is available at http://www.eclipse.org/legal/epl-v10.html
8 package org.opendaylight.controller.netconf.client.conf;
10 import com.google.common.base.Objects;
11 import com.google.common.base.Preconditions;
12 import org.opendaylight.controller.netconf.client.NetconfClientSessionListener;
13 import org.opendaylight.controller.netconf.util.handler.ssh.authentication.AuthenticationHandler;
14 import org.opendaylight.controller.netconf.util.messages.NetconfHelloMessageAdditionalHeader;
15 import org.opendaylight.protocol.framework.ReconnectStrategy;
16 import org.opendaylight.protocol.framework.ReconnectStrategyFactory;
18 import java.net.InetSocketAddress;
20 public final class NetconfReconnectingClientConfiguration extends NetconfClientConfiguration {
22 private final ReconnectStrategyFactory connectStrategyFactory;
24 NetconfReconnectingClientConfiguration(final NetconfClientProtocol clientProtocol, final InetSocketAddress address,
25 final Long connectionTimeoutMillis, final NetconfHelloMessageAdditionalHeader additionalHeader,
26 final NetconfClientSessionListener sessionListener, final ReconnectStrategy reconnectStrategy,
27 final ReconnectStrategyFactory connectStrategyFactory, final AuthenticationHandler authHandler) {
28 super(clientProtocol, address, connectionTimeoutMillis, additionalHeader, sessionListener, reconnectStrategy,
30 this.connectStrategyFactory = connectStrategyFactory;
31 validateReconnectConfiguration();
34 public ReconnectStrategyFactory getConnectStrategyFactory() {
35 return connectStrategyFactory;
38 private void validateReconnectConfiguration() {
39 Preconditions.checkNotNull(connectStrategyFactory);
43 protected Objects.ToStringHelper buildToStringHelper() {
44 return super.buildToStringHelper().add("connectStrategyFactory", connectStrategyFactory);