We should be binding the factory at configuration time, not when it is
actually needed.
JIRA: NETCONF-1243
Change-Id: I36854bfab82a9d240cc641b5eb525b396215901a
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
builder.withProtocol(NetconfClientProtocol.SSH);
setSshParametersFromCredentials(builder, node.getCredentials());
} else if (protocol.getName() == Name.TLS) {
builder.withProtocol(NetconfClientProtocol.SSH);
setSshParametersFromCredentials(builder, node.getCredentials());
} else if (protocol.getName() == Name.TLS) {
- builder.withProtocol(NetconfClientProtocol.TLS).withSslHandlerFactory(
- channel -> sslHandlerFactoryProvider.getSslHandlerFactory(protocol.getSpecification())
- .createSslHandler());
+ final var handlerFactory = sslHandlerFactoryProvider.getSslHandlerFactory(protocol.getSpecification());
+ builder.withProtocol(NetconfClientProtocol.TLS)
+ .withSslHandlerFactory(channel -> handlerFactory.createSslHandler());
} else {
throw new IllegalArgumentException("Unsupported protocol type: " + protocol.getName());
}
} else {
throw new IllegalArgumentException("Unsupported protocol type: " + protocol.getName());
}
import static org.junit.jupiter.api.Assertions.assertNotNull;
import static org.junit.jupiter.api.Assertions.assertSame;
import static org.junit.jupiter.api.Assertions.assertThrows;
import static org.junit.jupiter.api.Assertions.assertNotNull;
import static org.junit.jupiter.api.Assertions.assertSame;
import static org.junit.jupiter.api.Assertions.assertThrows;
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.Mockito.doReturn;
import java.util.NoSuchElementException;
import org.junit.jupiter.api.BeforeEach;
import java.util.NoSuchElementException;
import org.junit.jupiter.api.BeforeEach;
import org.mockito.junit.jupiter.MockitoExtension;
import org.opendaylight.aaa.encrypt.AAAEncryptionService;
import org.opendaylight.netconf.client.NetconfClientSessionListener;
import org.mockito.junit.jupiter.MockitoExtension;
import org.opendaylight.aaa.encrypt.AAAEncryptionService;
import org.opendaylight.netconf.client.NetconfClientSessionListener;
+import org.opendaylight.netconf.client.SslHandlerFactory;
import org.opendaylight.netconf.client.conf.NetconfClientConfiguration;
import org.opendaylight.netconf.client.conf.NetconfClientConfiguration.NetconfClientProtocol;
import org.opendaylight.netconf.client.mdsal.api.CredentialProvider;
import org.opendaylight.netconf.client.conf.NetconfClientConfiguration;
import org.opendaylight.netconf.client.conf.NetconfClientConfiguration.NetconfClientProtocol;
import org.opendaylight.netconf.client.mdsal.api.CredentialProvider;
private CredentialProvider credentialProvider;
@Mock
private SslHandlerFactoryProvider sslHandlerFactoryProvider;
private CredentialProvider credentialProvider;
@Mock
private SslHandlerFactoryProvider sslHandlerFactoryProvider;
+ @Mock
+ private SslHandlerFactory sslHandlerFactory;
private NetconfNodeBuilder nodeBuilder;
private NetconfClientConfigurationBuilderFactoryImpl factory;
private NetconfNodeBuilder nodeBuilder;
private NetconfClientConfigurationBuilderFactoryImpl factory;
sslHandlerFactoryProvider);
}
sslHandlerFactoryProvider);
}
- private void assertConfig(NetconfClientConfiguration config) {
+ private void assertConfig(final NetconfClientConfiguration config) {
assertNotNull(config);
assertNotNull(config.getTcpParameters());
assertEquals(HOST, config.getTcpParameters().getRemoteAddress());
assertNotNull(config);
assertNotNull(config.getTcpParameters());
assertEquals(HOST, config.getTcpParameters().getRemoteAddress());
+ doReturn(sslHandlerFactory).when(sslHandlerFactoryProvider).getSslHandlerFactory(any());
final var config = createConfig(
nodeBuilder.setTcpOnly(false).setProtocol(new ProtocolBuilder().setName(Name.TLS).build()).build());
assertConfig(config);
final var config = createConfig(
nodeBuilder.setTcpOnly(false).setProtocol(new ProtocolBuilder().setName(Name.TLS).build()).build());
assertConfig(config);