-
- getDomRegistryDependency();
- NetconfDevice device = new NetconfDevice(getIdentifier().getInstanceName());
- String addressValue = getAddress();
-
-
- int attemptMsTimeout = 60*1000;
- int connectionAttempts = 5;
- /*
- * Uncomment after Switch to IP Address
- if(getAddress().getIpv4Address() != null) {
- addressValue = getAddress().getIpv4Address().getValue();
- } else {
- addressValue = getAddress().getIpv6Address().getValue();
+ final RemoteDeviceId id = new RemoteDeviceId(getIdentifier());
+
+ final ExecutorService globalProcessingExecutor = getProcessingExecutorDependency().getExecutor();
+
+ final Broker domBroker = getDomRegistryDependency();
+ final BindingAwareBroker bindingBroker = getBindingRegistryDependency();
+
+ final RemoteDeviceHandler salFacade = new NetconfDeviceSalFacade(id, domBroker, bindingBroker, bundleContext, globalProcessingExecutor);
+ final NetconfDevice device =
+ NetconfDevice.createNetconfDevice(id, getGlobalNetconfSchemaProvider(), globalProcessingExecutor, salFacade);
+ final NetconfDeviceCommunicator listener = new NetconfDeviceCommunicator(id, device);
+ final NetconfReconnectingClientConfiguration clientConfig = getClientConfig(listener);
+
+ final NetconfClientDispatcher dispatcher = getClientDispatcherDependency();
+ listener.initializeRemoteConnection(dispatcher, clientConfig);
+
+ return new AutoCloseable() {
+ @Override
+ public void close() throws Exception {
+ listener.close();
+ salFacade.close();
+ }
+ };
+ }
+
+ private synchronized AbstractCachingSchemaSourceProvider<String, InputStream> getGlobalNetconfSchemaProvider() {
+ if(GLOBAL_NETCONF_SOURCE_PROVIDER == null) {
+ final String storageFile = "cache/schema";
+ // File directory = bundleContext.getDataFile(storageFile);
+ final File directory = new File(storageFile);
+ final SchemaSourceProvider<String> defaultProvider = SchemaSourceProviders.noopProvider();
+ GLOBAL_NETCONF_SOURCE_PROVIDER = FilesystemSchemaCachingProvider.createFromStringSourceProvider(defaultProvider, directory);