From e8c736d30bc80ba229a1b6d35802e05c2ffe3a78 Mon Sep 17 00:00:00 2001 From: Martin Vitez Date: Tue, 14 May 2013 13:05:16 +0200 Subject: [PATCH] Fixed relative/absolute yang files directory resolving. Signed-off-by: Martin Vitez --- .../controller/yang2sources/plugin/Util.java | 9 +++++++-- .../yang2sources/plugin/YangToSourcesMojo.java | 16 +++++++++++++++- .../controller/yang2sources/plugin/UtilTest.java | 5 +++-- 3 files changed, 25 insertions(+), 5 deletions(-) diff --git a/opendaylight/sal/yang-prototype/code-generator/maven-yang-plugin/src/main/java/org/opendaylight/controller/yang2sources/plugin/Util.java b/opendaylight/sal/yang-prototype/code-generator/maven-yang-plugin/src/main/java/org/opendaylight/controller/yang2sources/plugin/Util.java index 3739a1d659..5676530afe 100644 --- a/opendaylight/sal/yang-prototype/code-generator/maven-yang-plugin/src/main/java/org/opendaylight/controller/yang2sources/plugin/Util.java +++ b/opendaylight/sal/yang-prototype/code-generator/maven-yang-plugin/src/main/java/org/opendaylight/controller/yang2sources/plugin/Util.java @@ -45,10 +45,15 @@ final class Util { * List files recursively and return as array of String paths. Use cache of * size 1. */ - static Collection listFiles(String rootDir) { + static Collection listFiles(String rootDir) throws FileNotFoundException { if (cache.get(rootDir) != null) return cache.get(rootDir); + File file = new File(rootDir); + if(!file.exists()) { + throw new FileNotFoundException(); + } + Collection yangFiles = FileUtils.listFiles(new File(rootDir), new String[] { YANG_SUFFIX }, true); @@ -67,7 +72,7 @@ final class Util { return is; } - static String[] listFilesAsArrayOfPaths(String rootDir) { + static String[] listFilesAsArrayOfPaths(String rootDir) throws FileNotFoundException { String[] filesArray = new String[] {}; Collection yangFiles = listFiles(rootDir); diff --git a/opendaylight/sal/yang-prototype/code-generator/maven-yang-plugin/src/main/java/org/opendaylight/controller/yang2sources/plugin/YangToSourcesMojo.java b/opendaylight/sal/yang-prototype/code-generator/maven-yang-plugin/src/main/java/org/opendaylight/controller/yang2sources/plugin/YangToSourcesMojo.java index 6a11042cb9..cfaa8a0874 100644 --- a/opendaylight/sal/yang-prototype/code-generator/maven-yang-plugin/src/main/java/org/opendaylight/controller/yang2sources/plugin/YangToSourcesMojo.java +++ b/opendaylight/sal/yang-prototype/code-generator/maven-yang-plugin/src/main/java/org/opendaylight/controller/yang2sources/plugin/YangToSourcesMojo.java @@ -10,6 +10,7 @@ package org.opendaylight.controller.yang2sources.plugin; import java.io.Closeable; import java.io.File; import java.io.FileInputStream; +import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; @@ -206,7 +207,20 @@ public final class YangToSourcesMojo extends AbstractMojo { } private Collection getFilesFromYangRoot() { - Collection yangFilesLoaded = Util.listFiles(yangFilesRootDir); + Collection yangFilesLoaded = null; + + File rootDir = new File(yangFilesRootDir); + try { + if(!rootDir.isAbsolute()) { + yangFilesLoaded = Util.listFiles(project.getBasedir().getAbsolutePath() + yangFilesRootDir); + } else { + yangFilesLoaded = Util.listFiles(yangFilesRootDir); + } + + } catch(FileNotFoundException e) { + getLog().warn("Directory '" + yangFilesRootDir + "' does not exists."); + yangFilesLoaded = new ArrayList(); + } Collection yangFiles = new ArrayList(yangFilesLoaded); try { diff --git a/opendaylight/sal/yang-prototype/code-generator/maven-yang-plugin/src/test/java/org/opendaylight/controller/yang2sources/plugin/UtilTest.java b/opendaylight/sal/yang-prototype/code-generator/maven-yang-plugin/src/test/java/org/opendaylight/controller/yang2sources/plugin/UtilTest.java index 0a17d9f13d..75e50f0261 100644 --- a/opendaylight/sal/yang-prototype/code-generator/maven-yang-plugin/src/test/java/org/opendaylight/controller/yang2sources/plugin/UtilTest.java +++ b/opendaylight/sal/yang-prototype/code-generator/maven-yang-plugin/src/test/java/org/opendaylight/controller/yang2sources/plugin/UtilTest.java @@ -7,9 +7,10 @@ */ package org.opendaylight.controller.yang2sources.plugin; -import static org.junit.Assert.*; +import static org.junit.Assert.assertTrue; import java.io.File; +import java.io.FileNotFoundException; import java.util.Collection; import org.junit.Test; @@ -17,7 +18,7 @@ import org.junit.Test; public class UtilTest { @Test - public void testCache() { + public void testCache() throws FileNotFoundException { String yang = new File(getClass().getResource("/mock.yang").getFile()) .getParent(); Collection files = Util.listFiles(yang); -- 2.36.6