From 9bc8fd1a65b8667ea70939be730f909e789147fa Mon Sep 17 00:00:00 2001 From: David Date: Fri, 10 Jun 2016 23:05:59 +0200 Subject: [PATCH] Add property "yang.skip" This property allows the plugin to be configured so to skip the generation of java sources out of yang files. The purpose is to save the time spent genereting java code that is already in place, and the user knows that haven't changed since the last compilation. Usage: mvn install -Dyang.skip=true Change-Id: I39d3da20864f7655cae68dfa9f4b67ec96137d9f Signed-off-by: David --- .../yangtools/yang2sources/plugin/YangToSourcesMojo.java | 5 ++++- .../yang2sources/plugin/YangToSourcesProcessor.java | 8 ++++++++ .../yang2sources/plugin/YangToSourcesMojoTest.java | 2 +- 3 files changed, 13 insertions(+), 2 deletions(-) diff --git a/yang/yang-maven-plugin/src/main/java/org/opendaylight/yangtools/yang2sources/plugin/YangToSourcesMojo.java b/yang/yang-maven-plugin/src/main/java/org/opendaylight/yangtools/yang2sources/plugin/YangToSourcesMojo.java index 0d3f970e1e..a6752b167b 100644 --- a/yang/yang-maven-plugin/src/main/java/org/opendaylight/yangtools/yang2sources/plugin/YangToSourcesMojo.java +++ b/yang/yang-maven-plugin/src/main/java/org/opendaylight/yangtools/yang2sources/plugin/YangToSourcesMojo.java @@ -86,6 +86,9 @@ public final class YangToSourcesMojo extends AbstractMojo { @Parameter( readonly = true, defaultValue = "${project.remoteArtifactRepositories}" ) private List remoteRepos; + // When set to "true", then the execution of the plugin is disabled + @Parameter( property = "yang.skip" ) + private String yang_skip; public YangToSourcesMojo() { } @@ -113,7 +116,7 @@ public final class YangToSourcesMojo extends AbstractMojo { yangToSourcesProcessor = new YangToSourcesProcessor(buildContext, yangFilesRootFile, excludedFiles, codeGeneratorArgs, project, inspectDependencies); } - yangToSourcesProcessor.execute(); + yangToSourcesProcessor.conditionalExecute("true".equals(yang_skip)); } private static List processCodeGenerators(final CodeGeneratorArg[] codeGenerators) { diff --git a/yang/yang-maven-plugin/src/main/java/org/opendaylight/yangtools/yang2sources/plugin/YangToSourcesProcessor.java b/yang/yang-maven-plugin/src/main/java/org/opendaylight/yangtools/yang2sources/plugin/YangToSourcesProcessor.java index 4140e01173..c1a1cbea98 100644 --- a/yang/yang-maven-plugin/src/main/java/org/opendaylight/yangtools/yang2sources/plugin/YangToSourcesProcessor.java +++ b/yang/yang-maven-plugin/src/main/java/org/opendaylight/yangtools/yang2sources/plugin/YangToSourcesProcessor.java @@ -97,6 +97,14 @@ class YangToSourcesProcessor { } } + void conditionalExecute(boolean skip) throws MojoExecutionException, MojoFailureException { + if (skip) { + LOG.info("Skipping YANG code generation because property yang.skip is true"); + } else { + execute(); + } + } + private ContextHolder processYang() throws MojoExecutionException { final CrossSourceStatementReactor.BuildAction reactor = YangInferencePipeline.RFC6020_REACTOR.newBuild(); SchemaContext resolveSchemaContext; diff --git a/yang/yang-maven-plugin/src/test/java/org/opendaylight/yangtools/yang2sources/plugin/YangToSourcesMojoTest.java b/yang/yang-maven-plugin/src/test/java/org/opendaylight/yangtools/yang2sources/plugin/YangToSourcesMojoTest.java index 9e31f25a29..c3571e058e 100644 --- a/yang/yang-maven-plugin/src/test/java/org/opendaylight/yangtools/yang2sources/plugin/YangToSourcesMojoTest.java +++ b/yang/yang-maven-plugin/src/test/java/org/opendaylight/yangtools/yang2sources/plugin/YangToSourcesMojoTest.java @@ -49,7 +49,7 @@ public class YangToSourcesMojoTest { this.mojo = new YangToSourcesMojo(processor); this.mojo.setProject(this.project); this.mojo.execute(); - Mockito.verify(processor).execute(); + Mockito.verify(processor).conditionalExecute(false); } @Test -- 2.36.6