[ONOS-4799],[ONOS-4351] Augment inter file linker and Generated Code refactored.
Change-Id: Id1f3ac9c90a632373f51cc75d499c3110216be17
diff --git a/utils/yangutils/plugin/src/main/java/org/onosproject/yangutils/plugin/manager/YangPluginUtils.java b/utils/yangutils/plugin/src/main/java/org/onosproject/yangutils/plugin/manager/YangPluginUtils.java
index ccb43e3..148dd0e 100644
--- a/utils/yangutils/plugin/src/main/java/org/onosproject/yangutils/plugin/manager/YangPluginUtils.java
+++ b/utils/yangutils/plugin/src/main/java/org/onosproject/yangutils/plugin/manager/YangPluginUtils.java
@@ -17,11 +17,9 @@
package org.onosproject.yangutils.plugin.manager;
import java.io.File;
-import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
-import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.nio.file.Files;
import java.nio.file.StandardCopyOption;
@@ -41,6 +39,7 @@
import org.slf4j.Logger;
import org.sonatype.plexus.build.incremental.BuildContext;
+import static org.onosproject.yangutils.datamodel.utils.DataModelUtils.deSerializeDataModel;
import static org.onosproject.yangutils.utils.UtilConstants.HYPHEN;
import static org.onosproject.yangutils.utils.UtilConstants.JAR;
import static org.onosproject.yangutils.utils.UtilConstants.PERIOD;
@@ -155,32 +154,6 @@
}
/**
- * Returns de-serializes YANG data-model nodes.
- *
- * @param serailizedfileInfoSet YANG file info set
- * @return de-serializes YANG data-model nodes
- * @throws IOException when fails do IO operations
- */
- public static List<YangNode> deSerializeDataModel(List<String> serailizedfileInfoSet) throws IOException {
-
- List<YangNode> nodes = new ArrayList<>();
- for (String fileInfo : serailizedfileInfoSet) {
- YangNode node = null;
- try {
- FileInputStream fileInputStream = new FileInputStream(fileInfo);
- ObjectInputStream objectInputStream = new ObjectInputStream(fileInputStream);
- node = (YangNode) objectInputStream.readObject();
- nodes.add(node);
- objectInputStream.close();
- fileInputStream.close();
- } catch (IOException | ClassNotFoundException e) {
- throw new IOException(fileInfo + " not found.");
- }
- }
- return nodes;
- }
-
- /**
* Returns list of jar path.
*
* @param project maven project
@@ -188,8 +161,8 @@
* @param remoteRepos remote repository
* @return list of jar paths
*/
- private static List<String> resolveDependecyJarPath(MavenProject project, ArtifactRepository localRepository,
- List<ArtifactRepository> remoteRepos) {
+ private static List<String> resolveDependencyJarPath(MavenProject project, ArtifactRepository localRepository,
+ List<ArtifactRepository> remoteRepos) {
StringBuilder path = new StringBuilder();
List<String> jarPaths = new ArrayList<>();
@@ -232,7 +205,7 @@
List<ArtifactRepository> remoteRepos, String directory)
throws IOException {
- List<String> dependeciesJarPaths = resolveDependecyJarPath(project, localRepository, remoteRepos);
+ List<String> dependeciesJarPaths = resolveDependencyJarPath(project, localRepository, remoteRepos);
List<YangNode> resolvedDataModelNodes = new ArrayList<>();
for (String dependecy : dependeciesJarPaths) {
resolvedDataModelNodes.addAll(deSerializeDataModel(parseJarFile(dependecy, directory)));
diff --git a/utils/yangutils/plugin/src/main/java/org/onosproject/yangutils/plugin/manager/YangUtilManager.java b/utils/yangutils/plugin/src/main/java/org/onosproject/yangutils/plugin/manager/YangUtilManager.java
index 7240725..7a894e6 100644
--- a/utils/yangutils/plugin/src/main/java/org/onosproject/yangutils/plugin/manager/YangUtilManager.java
+++ b/utils/yangutils/plugin/src/main/java/org/onosproject/yangutils/plugin/manager/YangUtilManager.java
@@ -87,8 +87,14 @@
/**
* Source directory for generated files.
*/
- @Parameter(property = "genFilesDir", defaultValue = "src/main/java")
- private String genFilesDir;
+ @Parameter(property = "classFileDir", defaultValue = "target/generated-sources")
+ private String classFileDir;
+
+ /**
+ * Source directory for manager's generated files.
+ */
+ @Parameter(property = "managerFileDir", defaultValue = "src/main/java")
+ private String managerFileDir;
/**
* Base directory for project.
@@ -153,11 +159,12 @@
/*
* For deleting the generated code in previous build.
*/
- deleteDirectory(getDirectory(baseDir, genFilesDir) + DEFAULT_PKG);
+ deleteDirectory(getDirectory(baseDir, classFileDir) + DEFAULT_PKG);
deleteDirectory(getDirectory(baseDir, outputDirectory));
String searchDir = getDirectory(baseDir, yangFilesDir);
- String codeGenDir = getDirectory(baseDir, genFilesDir) + SLASH;
+ String codeGenDir = getDirectory(baseDir, classFileDir) + SLASH;
+ String managerCodeGenDir = getDirectory(baseDir, managerFileDir) + SLASH;
// Creates conflict resolver and set values to it.
YangToJavaNamingConflictUtil conflictResolver = new YangToJavaNamingConflictUtil();
@@ -167,6 +174,7 @@
conflictResolver.setPrefixForIdentifier(prefixForIdentifier);
YangPluginConfig yangPlugin = new YangPluginConfig();
yangPlugin.setCodeGenDir(codeGenDir);
+ yangPlugin.setManagerCodeGenDir(managerCodeGenDir);
yangPlugin.setConflictResolver(conflictResolver);
/*
@@ -195,18 +203,18 @@
// Serialize data model.
serializeDataModel(getDirectory(baseDir, outputDirectory), getYangFileInfoSet(), project, true);
- addToCompilationRoot(getDirectory(baseDir, genFilesDir), project, context);
+ addToCompilationRoot(codeGenDir, project, context);
+ addToCompilationRoot(managerCodeGenDir, project, context);
copyYangFilesToTarget(getYangFileInfoSet(), getDirectory(baseDir, outputDirectory), project);
} catch (IOException | ParserException e) {
- getLog().info(e);
String fileName = "";
if (getCurYangFileInfo() != null) {
fileName = getCurYangFileInfo().getYangFileName();
}
try {
translatorErrorHandler(getRootNode());
- deleteDirectory(getDirectory(baseDir, genFilesDir) + DEFAULT_PKG);
+ deleteDirectory(getDirectory(baseDir, classFileDir) + DEFAULT_PKG);
} catch (IOException ex) {
throw new MojoExecutionException(
"Error handler failed to delete files for data model node.");
@@ -255,14 +263,12 @@
public void resolveDependenciesUsingLinker()
throws MojoExecutionException {
createYangNodeSet();
- for (YangFileInfo yangFileInfo : getYangFileInfoSet()) {
- setCurYangFileInfo(yangFileInfo);
- try {
- yangLinker.resolveDependencies(getYangNodeSet());
- } catch (LinkerException e) {
- throw new MojoExecutionException(e.getMessage());
- }
+ try {
+ yangLinker.resolveDependencies(getYangNodeSet());
+ } catch (LinkerException e) {
+ throw new MojoExecutionException(e.getMessage());
}
+
}
/**