- */
- double sleepFactor = 1.0;
- int minSleep = 1000;
- Long maxSleep = null;
- Long deadline = null;
- ReconnectStrategy strategy = new TimedReconnectStrategy(GlobalEventExecutor.INSTANCE, getBetweenAttemptsTimeoutMillis(),
- minSleep, sleepFactor, maxSleep, connectionAttempts, deadline);
-
- device.setReconnectStrategy(strategy);
-
- InetAddress addr = InetAddresses.forString(addressValue);
- InetSocketAddress socketAddress = new InetSocketAddress(addr , getPort().intValue());
-
-
- device.setProcessingExecutor(getGlobalProcessingExecutor());
-
- device.setSocketAddress(socketAddress);
- device.setEventExecutor(getEventExecutorDependency());
- device.setDispatcher(createDispatcher(clientConnectionTimeoutMillis));
- device.setSchemaSourceProvider(getGlobalNetconfSchemaProvider(bundleContext));
-
- getDomRegistryDependency().registerProvider(device, bundleContext);
- device.start();
- return device;
+
+ final NetconfSessionPreferences parsedOverrideCapabilities = NetconfSessionPreferences.fromStrings(capabilities);
+ JmxAttributeValidationException.checkCondition(
+ parsedOverrideCapabilities.getNonModuleCaps().isEmpty(),
+ "Capabilities to override can only contain module based capabilities, non-module capabilities will be retrieved from the device," +
+ " configured non-module capabilities: " + parsedOverrideCapabilities.getNonModuleCaps(),
+ yangModuleCapabilitiesJmxAttribute);
+
+ return Optional.of(parsedOverrideCapabilities);
+ }
+
+ public void setBundleContext(final BundleContext bundleContext) {
+ this.bundleContext = bundleContext;
+ }
+
+ public NetconfReconnectingClientConfiguration getClientConfig(final NetconfDeviceCommunicator listener) {
+ final InetSocketAddress socketAddress = getSocketAddress();
+ final long clientConnectionTimeoutMillis = getConnectionTimeoutMillis();
+
+ final ReconnectStrategyFactory sf = new MyReconnectStrategyFactory(
+ getEventExecutorDependency(), getMaxConnectionAttempts(), getBetweenAttemptsTimeoutMillis(), getSleepFactor());
+ final ReconnectStrategy strategy = sf.createReconnectStrategy();
+
+ return NetconfReconnectingClientConfigurationBuilder.create()
+ .withAddress(socketAddress)
+ .withConnectionTimeoutMillis(clientConnectionTimeoutMillis)
+ .withReconnectStrategy(strategy)
+ .withSessionListener(listener)
+ .withAuthHandler(new LoginPassword(getUsername(),getPassword()))
+ .withProtocol(getTcpOnly() ?
+ NetconfClientConfiguration.NetconfClientProtocol.TCP :
+ NetconfClientConfiguration.NetconfClientProtocol.SSH)
+ .withConnectStrategyFactory(sf)
+ .build();