YANG Translator optimization
Change-Id: Ie6a6b9d371a4fc5fd973cf56d6f3c7b44a3146ba
diff --git a/utils/yangutils/src/main/java/org/onosproject/yangutils/plugin/manager/YangUtilManager.java b/utils/yangutils/src/main/java/org/onosproject/yangutils/plugin/manager/YangUtilManager.java
index a2478d9..efbb939 100644
--- a/utils/yangutils/src/main/java/org/onosproject/yangutils/plugin/manager/YangUtilManager.java
+++ b/utils/yangutils/src/main/java/org/onosproject/yangutils/plugin/manager/YangUtilManager.java
@@ -33,13 +33,16 @@
import org.onosproject.yangutils.parser.YangUtilsParser;
import org.onosproject.yangutils.parser.exceptions.ParserException;
import org.onosproject.yangutils.parser.impl.YangUtilsParserManager;
-import org.onosproject.yangutils.translator.tojava.JavaCodeGenerator;
import org.onosproject.yangutils.utils.UtilConstants;
-import org.onosproject.yangutils.utils.io.impl.CopyrightHeader;
import org.onosproject.yangutils.utils.io.impl.YangFileScanner;
-import org.onosproject.yangutils.utils.io.impl.YangIoUtils;
import org.sonatype.plexus.build.incremental.BuildContext;
+import static org.onosproject.yangutils.translator.tojava.JavaCodeGeneratorUtil.generateJavaCode;
+import static org.onosproject.yangutils.utils.io.impl.YangIoUtils.addToSource;
+import static org.onosproject.yangutils.utils.io.impl.YangIoUtils.clean;
+import static org.onosproject.yangutils.utils.io.impl.YangIoUtils.copyYangFilesToTarget;
+import static org.onosproject.yangutils.utils.io.impl.YangIoUtils.getDirectory;
+
/**
* ONOS YANG utility maven plugin. Goal of plugin is yang2java Execution phase
* in generate-sources requiresDependencyResolution at compile time.
@@ -70,7 +73,7 @@
* Output directory.
*/
@Parameter(property = "project.build.outputDirectory", required = true, defaultValue = "target/classes")
- private File outputDirectory;
+ private String outputDirectory;
/**
* Current maven project.
@@ -84,6 +87,9 @@
@Component
private BuildContext context;
+ private static final String DEFAULT_PKG = File.separator
+ + UtilConstants.DEFAULT_BASE_PKG.replace(UtilConstants.PERIOD, UtilConstants.SLASH);
+
private YangUtilsParser yangUtilsParser = new YangUtilsParserManager();
private String searchDir;
private String codeGenDir;
@@ -94,6 +100,7 @@
* @param curProject maven project
*/
public void setCurrentProject(final MavenProject curProject) {
+
project = curProject;
}
@@ -102,15 +109,14 @@
try {
- CopyrightHeader.parseCopyrightHeader();
-
/**
* For deleting the generated code in previous build.
*/
- YangIoUtils.clean(baseDir);
+ clean(getDirectory(baseDir, genFilesDir) + DEFAULT_PKG);
+ clean(getDirectory(baseDir, outputDirectory));
- searchDir = baseDir + File.separator + yangFilesDir;
- codeGenDir = baseDir + File.separator + genFilesDir + File.separator;
+ searchDir = getDirectory(baseDir, yangFilesDir);
+ codeGenDir = getDirectory(baseDir, genFilesDir) + File.separator;
List<String> yangFiles = YangFileScanner.getYangFiles(searchDir);
Iterator<String> yangFileIterator = yangFiles.iterator();
@@ -118,7 +124,7 @@
String yangFile = yangFileIterator.next();
try {
YangNode yangNode = yangUtilsParser.getDataModel(yangFile);
- JavaCodeGenerator.generateJavaCode(yangNode, codeGenDir);
+ generateJavaCode(yangNode, codeGenDir);
} catch (ParserException e) {
String logInfo = "Error in file: " + e.getFileName();
if (e.getLineNumber() != 0) {
@@ -127,16 +133,17 @@
}
if (e.getMessage() != null) {
- logInfo = logInfo + "\n" + e.getMessage();
+ logInfo = logInfo + UtilConstants.NEW_LINE + e.getMessage();
}
getLog().info(logInfo);
}
}
- YangIoUtils.addToSource(baseDir + File.separator + UtilConstants.YANG_GEN_DIR, project, context);
+ addToSource(getDirectory(baseDir, genFilesDir) + DEFAULT_PKG, project, context);
+ copyYangFilesToTarget(yangFiles, getDirectory(baseDir, outputDirectory), project);
} catch (Exception e) {
getLog().info(e);
+ //throw new MojoExecutionException("Exception occured due to " + e.getLocalizedMessage());
}
}
-
-}
\ No newline at end of file
+}