X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=controller.git;a=blobdiff_plain;f=opendaylight%2Fsal%2Fyang-prototype%2Fcode-generator%2Fmaven-yang-plugin%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fyang2sources%2Fplugin%2FYangToSourcesMojo.java;fp=opendaylight%2Fsal%2Fyang-prototype%2Fcode-generator%2Fmaven-yang-plugin%2Fsrc%2Fmain%2Fjava%2Forg%2Fopendaylight%2Fcontroller%2Fyang2sources%2Fplugin%2FYangToSourcesMojo.java;h=e124c56c47f8c7ddae2163f2c584af370f2fa8ae;hp=18e7b4cca74c67e5653809e86be6b767a82d86de;hb=80a0c36174fc0c494ccda1893d81936a2d1ba598;hpb=071db48e47fa3dd83da3933f1b35c3ca0d42f550 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 18e7b4cca7..e124c56c47 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 @@ -19,6 +19,8 @@ import org.apache.maven.plugin.MojoFailureException; import org.apache.maven.plugins.annotations.LifecyclePhase; import org.apache.maven.plugins.annotations.Mojo; import org.apache.maven.plugins.annotations.Parameter; +import org.apache.maven.plugins.annotations.ResolutionScope; +import org.apache.maven.project.MavenProject; import org.opendaylight.controller.yang.model.api.Module; import org.opendaylight.controller.yang.model.api.SchemaContext; import org.opendaylight.controller.yang.model.parser.api.YangModelParser; @@ -42,7 +44,7 @@ import com.google.common.collect.Maps; * * */ -@Mojo(name = "generate-sources", defaultPhase = LifecyclePhase.GENERATE_SOURCES) +@Mojo(name = "generate-sources", defaultPhase = LifecyclePhase.GENERATE_SOURCES,requiresDependencyResolution=ResolutionScope.COMPILE,requiresProject=true) public final class YangToSourcesMojo extends AbstractMojo { private static final String LOG_PREFIX = "yang-to-sources:"; @@ -63,7 +65,12 @@ public final class YangToSourcesMojo extends AbstractMojo { @Parameter(required = true) private String yangFilesRootDir; - private final YangModelParser parser; + + @Parameter(property = "project", required = true, readonly = true) + protected MavenProject project; + + + private transient final YangModelParser parser; @VisibleForTesting YangToSourcesMojo(CodeGeneratorArg[] codeGeneratorArgs, @@ -160,22 +167,24 @@ public final class YangToSourcesMojo extends AbstractMojo { * Instantiate generator from class and call required method */ private void generateSourcesWithOneGenerator(SchemaContext context, - CodeGeneratorArg codeGenerator) throws ClassNotFoundException, + CodeGeneratorArg codeGeneratorCfg) throws ClassNotFoundException, InstantiationException, IllegalAccessException { - codeGenerator.check(); + codeGeneratorCfg.check(); CodeGenerator g = Util.getInstance( - codeGenerator.getCodeGeneratorClass(), CodeGenerator.class); + codeGeneratorCfg.getCodeGeneratorClass(), CodeGenerator.class); getLog().info( Util.message("Code generator instantiated from %s", LOG_PREFIX, - codeGenerator.getCodeGeneratorClass())); + codeGeneratorCfg.getCodeGeneratorClass())); + File outputDir = codeGeneratorCfg.getOutputBaseDir(); + project.addCompileSourceRoot(outputDir.getPath()); Collection generated = g.generateSources(context, - codeGenerator.getOutputBaseDir()); + outputDir); getLog().info( Util.message("Sources generated by %s: %s", LOG_PREFIX, - codeGenerator.getCodeGeneratorClass(), generated)); + codeGeneratorCfg.getCodeGeneratorClass(), generated)); } }