BUG-2179: split logging out of CodeGenerator
authorRobert Varga <rovarga@cisco.com>
Mon, 16 Feb 2015 22:10:12 +0000 (23:10 +0100)
committerRobert Varga <rovarga@cisco.com>
Tue, 17 Feb 2015 15:13:59 +0000 (16:13 +0100)
Currently SPI requires downstream users to import maven infrastructure
even if they are not using it. Split the two maven-related injection
methods into dedicated interfaces.

MavenLogAware is automatically deprecated, as maven 3.1+ works with
slf4j out of the box, hence Log injection is no longer needed.

Change-Id: Ibedc158d9bdbcf66c2df94fd578929729fa26821
Signed-off-by: Robert Varga <rovarga@cisco.com>
code-generator/maven-sal-api-gen-plugin/src/main/java/org/opendaylight/yangtools/maven/sal/api/gen/plugin/CodeGeneratorImpl.java
code-generator/maven-sal-api-gen-plugin/src/main/java/org/opendaylight/yangtools/yang/unified/doc/generator/maven/DocumentationGeneratorImpl.java
code-generator/maven-sal-api-gen-plugin/src/main/java/org/opendaylight/yangtools/yang/wadl/generator/maven/WadlGenerator.java
code-generator/maven-sal-api-gen-plugin/src/test/java/org/opendaylight/yangtools/yang/unified/doc/generator/maven/DocGenTest.java
code-generator/maven-sal-api-gen-plugin/src/test/java/org/opendaylight/yangtools/yang/wadl/generator/maven/WadlGenTest.java

index 99f426dcc68c888492f3f730cbab95e8e7e9469d..867aca948f383f42f50c4e83fcee9bd5fc35d681 100644 (file)
@@ -23,7 +23,6 @@ import java.util.List;
 import java.util.Map;
 import java.util.Set;
 
-import org.apache.maven.plugin.logging.Log;
 import org.apache.maven.project.MavenProject;
 import org.opendaylight.yangtools.binding.generator.util.BindingGeneratorUtil;
 import org.opendaylight.yangtools.sal.binding.generator.api.BindingGenerator;
@@ -35,19 +34,19 @@ import org.opendaylight.yangtools.yang.binding.BindingMapping;
 import org.opendaylight.yangtools.yang.binding.YangModelBindingProvider;
 import org.opendaylight.yangtools.yang.model.api.Module;
 import org.opendaylight.yangtools.yang.model.api.SchemaContext;
+import org.opendaylight.yangtools.yang2sources.spi.BasicCodeGenerator;
 import org.opendaylight.yangtools.yang2sources.spi.BuildContextAware;
-import org.opendaylight.yangtools.yang2sources.spi.CodeGenerator;
+import org.opendaylight.yangtools.yang2sources.spi.MavenProjectAware;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.sonatype.plexus.build.incremental.BuildContext;
 
-public final class CodeGeneratorImpl implements CodeGenerator, BuildContextAware {
+public final class CodeGeneratorImpl implements BasicCodeGenerator, BuildContextAware, MavenProjectAware {
+    private static final Logger logger = LoggerFactory.getLogger(CodeGeneratorImpl.class);
     private static final String FS = File.separator;
     private BuildContext buildContext;
     private File projectBaseDir;
     private Map<String, String> additionalConfig;
-
-    private static final Logger logger = LoggerFactory.getLogger(CodeGeneratorImpl.class);
     private MavenProject mavenProject;
     private File resourceBaseDir;
 
@@ -124,10 +123,6 @@ public final class CodeGeneratorImpl implements CodeGenerator, BuildContextAware
         mavenProject.addCompileSourceRoot(outputBaseDir.getPath());
     }
 
-    @Override
-    public void setLog(final Log log) {
-    }
-
     @Override
     public void setAdditionalConfig(final Map<String, String> additionalConfiguration) {
         this.additionalConfig = additionalConfiguration;
index c3e7d3038236aab0c224c7f3d51c6be00e6233bb..fafb85970837291654a352f817c5f9a05ed3d296 100644 (file)
@@ -13,14 +13,12 @@ import java.util.Collection;
 import java.util.Map;
 import java.util.Set;
 
-import org.apache.maven.plugin.logging.Log;
-import org.apache.maven.project.MavenProject;
 import org.opendaylight.yangtools.yang.model.api.Module;
 import org.opendaylight.yangtools.yang.model.api.SchemaContext;
 import org.opendaylight.yangtools.yang.unified.doc.generator.GeneratorImpl;
-import org.opendaylight.yangtools.yang2sources.spi.CodeGenerator;
+import org.opendaylight.yangtools.yang2sources.spi.BasicCodeGenerator;
 
-public class DocumentationGeneratorImpl extends GeneratorImpl implements CodeGenerator {
+public class DocumentationGeneratorImpl extends GeneratorImpl implements BasicCodeGenerator {
 
     @Override
     public Collection<File> generateSources(SchemaContext arg0, File arg1, Set<Module> arg2) throws IOException {
@@ -28,12 +26,6 @@ public class DocumentationGeneratorImpl extends GeneratorImpl implements CodeGen
          return generate(arg0, arg1, arg2);
     }
 
-    @Override
-    public void setLog(Log log) {
-        // use maven logging if necessary
-
-    }
-
     @Override
     public void setAdditionalConfig(Map<String, String> additionalConfiguration) {
         // no additional config utilized
@@ -43,9 +35,4 @@ public class DocumentationGeneratorImpl extends GeneratorImpl implements CodeGen
     public void setResourceBaseDir(File resourceBaseDir) {
         // no resource processing necessary
     }
-
-    @Override
-    public void setMavenProject(MavenProject project) {
-        // no additional information needed
-    }
 }
index 35fac762257ffd7a7de52730f59b3a49f67a482b..6a05f7577bc53d2b7583eada4840ce9882ccd14f 100644 (file)
@@ -13,14 +13,12 @@ import java.util.Collection;
 import java.util.Map;
 import java.util.Set;
 
-import org.apache.maven.plugin.logging.Log;
-import org.apache.maven.project.MavenProject;
 import org.opendaylight.yangtools.yang.model.api.Module;
 import org.opendaylight.yangtools.yang.model.api.SchemaContext;
 import org.opendaylight.yangtools.yang.wadl.generator.WadlRestconfGenerator;
-import org.opendaylight.yangtools.yang2sources.spi.CodeGenerator;
+import org.opendaylight.yangtools.yang2sources.spi.BasicCodeGenerator;
 
-public class WadlGenerator implements CodeGenerator {
+public class WadlGenerator implements BasicCodeGenerator {
     
     @Override
     public Collection<File> generateSources(SchemaContext context, File outputDir, Set<Module> currentModules)
@@ -28,6 +26,7 @@ public class WadlGenerator implements CodeGenerator {
         
         final File outputBaseDir;
         if (outputDir == null) {
+            // FIXME: this hard-codes the destination
             outputBaseDir = new File("target" + File.separator + "generated-sources" + File.separator
                     + "maven-sal-api-gen" + File.separator + "wadl");
         } else {
@@ -38,12 +37,6 @@ public class WadlGenerator implements CodeGenerator {
         return generator.generate(context, currentModules);
     }
 
-    @Override
-    public void setLog(Log log) {
-        // TODO Auto-generated method stub
-        
-    }
-
     @Override
     public void setAdditionalConfig(Map<String, String> additionalConfiguration) {
         // TODO Auto-generated method stub
@@ -55,11 +48,4 @@ public class WadlGenerator implements CodeGenerator {
         // TODO Auto-generated method stub
         
     }
-
-    @Override
-    public void setMavenProject(MavenProject project) {
-        // TODO Auto-generated method stub
-        
-    }
-
 }
index 1335450395acf9c3929204d8c266dadf46821f72..4e0e2541104256c6ab91f2cde0177bad9b310b11 100644 (file)
@@ -25,7 +25,7 @@ import org.junit.Test;
 import org.opendaylight.yangtools.yang.model.api.Module;
 import org.opendaylight.yangtools.yang.model.api.SchemaContext;
 import org.opendaylight.yangtools.yang.parser.impl.YangParserImpl;
-import org.opendaylight.yangtools.yang2sources.spi.CodeGenerator;
+import org.opendaylight.yangtools.yang2sources.spi.BasicCodeGenerator;
 
 public class DocGenTest {
     public static final String FS = File.separator;
@@ -54,7 +54,7 @@ public class DocGenTest {
         final List<File> sourceFiles = getSourceFiles("/doc-gen");
         final Set<Module> modulesToBuild = parser.parseYangModels(sourceFiles);
         final SchemaContext context = parser.resolveSchemaContext(modulesToBuild);
-        final CodeGenerator generator = new DocumentationGeneratorImpl();
+        final BasicCodeGenerator generator = new DocumentationGeneratorImpl();
         Collection<File> generatedFiles = generator.generateSources(context, GENERATOR_OUTPUT_DIR, modulesToBuild);
         assertEquals(4, generatedFiles.size());
     }
index 756ba674ac8ba9f28be2ba4000d7566f41cfe589..4485b429a67a2b0eb1a1d387cd0f4e79e6912ecb 100644 (file)
@@ -25,7 +25,7 @@ import org.junit.Test;
 import org.opendaylight.yangtools.yang.model.api.Module;
 import org.opendaylight.yangtools.yang.model.api.SchemaContext;
 import org.opendaylight.yangtools.yang.parser.impl.YangParserImpl;
-import org.opendaylight.yangtools.yang2sources.spi.CodeGenerator;
+import org.opendaylight.yangtools.yang2sources.spi.BasicCodeGenerator;
 
 public class WadlGenTest {
     public static final String FS = File.separator;
@@ -54,7 +54,7 @@ public class WadlGenTest {
         final List<File> sourceFiles = getSourceFiles("/wadl-gen");
         final Set<Module> modulesToBuild = parser.parseYangModels(sourceFiles);
         final SchemaContext context = parser.resolveSchemaContext(modulesToBuild);
-        final CodeGenerator generator = new WadlGenerator();
+        final BasicCodeGenerator generator = new WadlGenerator();
         Collection<File> generatedWadlFiles = generator.generateSources(context, GENERATOR_OUTPUT_DIR, modulesToBuild);
         assertEquals(3, generatedWadlFiles.size());
     }