- @Override
- public void onSessionInitiated(final BindingAwareBroker.ProviderContext providerContext) {
- this.dataBroker = providerContext.getSALService(DataBroker.class);
+ public void init() {
+ if (Strings.isNullOrEmpty(yanglibConfig.getCacheFolder())) {
+ LOG.info("No cache-folder set in yanglib-config - yang library services will not be available");
+ return;
+ }
+
+ final File cacheFolderFile = new File(yanglibConfig.getCacheFolder());
+ Preconditions.checkArgument(cacheFolderFile.exists(), "cache-folder %s does not exist", cacheFolderFile);
+ Preconditions.checkArgument(cacheFolderFile.isDirectory(), "cache-folder %s is not a directory",
+ cacheFolderFile);
+
+ schemaRepository = new SharedSchemaRepository("yang-library");
+ final FilesystemSchemaSourceCache<YangTextSchemaSource> cache =
+ new FilesystemSchemaSourceCache<>(schemaRepository, YangTextSchemaSource.class, cacheFolderFile);
+ schemaRepository.registerSchemaSourceListener(cache);
+