- private static Optional<YangModuleCapability> moduleToCapability(final Module module) {
- final String source = module.getSource();
+ private static Optional<YangModuleCapability> moduleToCapability(
+ final Module module, final SchemaSourceProvider<YangTextSchemaSource> rootSchemaSourceProviderDependency) {
+
+ final SourceIdentifier moduleSourceIdentifier = SourceIdentifier.create(module.getName(),
+ (SimpleDateFormatUtil.DEFAULT_DATE_REV == module.getRevision() ? Optional.<String>absent() :
+ Optional.of(SimpleDateFormatUtil.getRevisionFormat().format(module.getRevision()))));
+
+ InputStream sourceStream = null;
+ String source;
+ try {
+ sourceStream = rootSchemaSourceProviderDependency.getSource(moduleSourceIdentifier).checkedGet().openStream();
+ source = CharStreams.toString(new InputStreamReader(sourceStream, Charsets.UTF_8));
+ } catch (IOException | SchemaSourceException e) {
+ LOG.warn("Ignoring source for module {}. Unable to read content", moduleSourceIdentifier, e);
+ source = null;
+ }
+
+ try {
+ if (sourceStream != null) {
+ sourceStream.close();
+ }
+ } catch (IOException e) {
+ LOG.warn("Error closing yang source stream {}. Ignoring", moduleSourceIdentifier, e);
+ }
+