- if (!(artifact.getVersion().equals(d.getVersion()))) {
- log.warn(message("Dependency resolution conflict:", YangToSourcesProcessor.LOG_PREFIX));
- log.warn(message("'%s' dependency [%s] has different version than one "
- + "declared in current project [%s]. It is recommended to fix this problem "
- + "because it may cause compilation errors.", YangToSourcesProcessor.LOG_PREFIX,
- YangToSourcesMojo.PLUGIN_NAME, artifact, d));
- }
- }
- }
- }
-
- private static final String JAR_SUFFIX = ".jar";
-
- private static boolean isJar(File element) {
- return (element.isFile() && element.getName().endsWith(JAR_SUFFIX)) ? true : false;
- }
-
- static <T> T checkNotNull(T obj, String paramName) {
- return Preconditions.checkNotNull(obj, "Parameter " + paramName + " is null");
- }
-
- static final class YangsInZipsResult implements Closeable {
- private final List<InputStream> yangStreams;
- private final List<Closeable> zipInputStreams;
-
- private YangsInZipsResult(List<InputStream> yangStreams, List<Closeable> zipInputStreams) {
- this.yangStreams = yangStreams;
- this.zipInputStreams = zipInputStreams;
- }
-
- @Override
- public void close() throws IOException {
- for (InputStream is : yangStreams) {
- is.close();
- }
- for (Closeable is : zipInputStreams) {
- is.close();
- }
- }
-
- public List<InputStream> getYangStreams() {
- return this.yangStreams;
- }
- }
-
- static YangsInZipsResult findYangFilesInDependenciesAsStream(Log log, MavenProject project)
- throws MojoFailureException {
- List<InputStream> yangsFromDependencies = new ArrayList<>();
- List<Closeable> zips = new ArrayList<>();
- try {
- List<File> filesOnCp = Util.getClassPath(project);
- log.info(Util.message("Searching for yang files in following dependencies: %s",
- YangToSourcesProcessor.LOG_PREFIX, filesOnCp));
-
- for (File file : filesOnCp) {
- List<String> foundFilesForReporting = new ArrayList<>();
- // is it jar file or directory?
- if (file.isDirectory()) {
- //FIXME: code duplicate
- File yangDir = new File(file, YangToSourcesProcessor.META_INF_YANG_STRING);
- if (yangDir.exists() && yangDir.isDirectory()) {
- File[] yangFiles = yangDir.listFiles(new FilenameFilter() {
- @Override
- public boolean accept(File dir, String name) {
- return name.endsWith(".yang") && new File(dir, name).isFile();
- }
- });
- for (File yangFile : yangFiles) {
- yangsFromDependencies.add(new NamedFileInputStream(yangFile, YangToSourcesProcessor.META_INF_YANG_STRING + File.separator + yangFile.getName()));
- }
- }
-
- } else {
- ZipFile zip = new ZipFile(file);
- zips.add(zip);
-
- Enumeration<? extends ZipEntry> entries = zip.entries();
- while (entries.hasMoreElements()) {
- ZipEntry entry = entries.nextElement();
- String entryName = entry.getName();
-
- if (entryName.startsWith(YangToSourcesProcessor.META_INF_YANG_STRING_JAR)
- && !entry.isDirectory() && entryName.endsWith(".yang")) {
- foundFilesForReporting.add(entryName);
- // This will be closed after all streams are
- // parsed.
- InputStream entryStream = zip.getInputStream(entry);
- yangsFromDependencies.add(entryStream);
- }
- }