X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=blobdiff_plain;ds=sidebyside;f=opendaylight%2Fsal%2Fyang-prototype%2Fcode-generator%2Fmaven-yang-plugin%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fyang2sources%2Fplugin%2FYangToSourcesMojo.java;h=6e43b306cd44d82b1cdcaa32b5b54c976fc41a71;hb=e2dff6dc15408745a6f5988e6874be2a768c6c97;hp=7dbd8568240b802d0c105a309eaca270ab5d1eae;hpb=fad07e38e57f1c0d8d687e3bae01532196d6e99d;p=controller.git 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 7dbd856824..6e43b306cd 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 @@ -64,41 +64,58 @@ public final class YangToSourcesMojo extends AbstractMojo { @Parameter(property = "inspectDependencies", required = true, readonly = true) private boolean inspectDependencies; + private YangToSourcesProcessor yangToSourcesProcessor; + public YangToSourcesMojo() { } @VisibleForTesting - YangToSourcesMojo(CodeGeneratorArg[] codeGeneratorArgs, - String yangFilesRootDir) { - this.codeGenerators = codeGeneratorArgs; - this.yangFilesRootDir = yangFilesRootDir; + YangToSourcesMojo(YangToSourcesProcessor processor) { + this.yangToSourcesProcessor = processor; } @Override public void execute() throws MojoExecutionException, MojoFailureException { + if (yangToSourcesProcessor == null) { + List codeGeneratorArgs = processCodeGenerators(codeGenerators); + + // defaults to ${basedir}/src/main/yang + File yangFilesRootFile = processYangFilesRootDir(yangFilesRootDir, + project.getBasedir()); + + yangToSourcesProcessor = new YangToSourcesProcessor(getLog(), + yangFilesRootFile, codeGeneratorArgs, project, + inspectDependencies); + } + yangToSourcesProcessor.execute(); + } + + private static List processCodeGenerators( + CodeGeneratorArg[] codeGenerators) { List codeGeneratorArgs; if (codeGenerators == null) { codeGeneratorArgs = Collections.emptyList(); } else { codeGeneratorArgs = Arrays.asList(codeGenerators); } + return codeGeneratorArgs; + } - // defaults to ${basedir}/src/main/yang + private static File processYangFilesRootDir(String yangFilesRootDir, + File baseDir) { File yangFilesRootFile; if (yangFilesRootDir == null) { - yangFilesRootFile = new File(project.getBasedir(), "src" - + File.separator + "main" + File.separator + "yang"); + yangFilesRootFile = new File(baseDir, "src" + File.separator + + "main" + File.separator + "yang"); } else { File file = new File(yangFilesRootDir); if (file.isAbsolute()) { yangFilesRootFile = file; } else { - yangFilesRootFile = new File(project.getBasedir(), - file.getPath()); + yangFilesRootFile = new File(baseDir, file.getPath()); } } - new YangToSourcesProcessor(getLog(), yangFilesRootFile, - codeGeneratorArgs, project, inspectDependencies).execute(); + return yangFilesRootFile; } }