- String message = Util.message("Unable to parse %s files from %s", LOG_PREFIX, Util.YANG_SUFFIX,
- yangFilesRootDir);
- log.error(message, e);
- throw new MojoExecutionException(message, e);
+ LOG.error("{} Unable to parse {} files from {}", LOG_PREFIX, Util.YANG_SUFFIX, yangFilesRootDir, e);
+ Throwable rootCause = Throwables.getRootCause(e);
+ throw new MojoExecutionException(LOG_PREFIX + " Unable to parse " + Util.YANG_SUFFIX + " files from " +
+ yangFilesRootDir, rootCause);
+ }
+ }
+
+ private List<InputStream> toStreamsWithoutDuplicates(List<YangSourceFromDependency> list) throws IOException {
+ ConcurrentMap<String, YangSourceFromDependency> byContent = Maps.newConcurrentMap();
+
+ for (YangSourceFromDependency yangFromDependency : list) {
+ try (InputStream dataStream = yangFromDependency.openStream()) {
+ String contents = IOUtils.toString(dataStream);
+ byContent.putIfAbsent(contents, yangFromDependency);
+ }
+
+ }
+ List<InputStream> inputs = new ArrayList<>(byContent.size());
+ for (YangSourceFromDependency entry : byContent.values()) {
+ inputs.add(entry.openStream());