Add timing information 48/68848/4
authorRobert Varga <robert.varga@pantheon.tech>
Tue, 27 Feb 2018 23:54:51 +0000 (00:54 +0100)
committerRobert Varga <robert.varga@pantheon.tech>
Wed, 28 Feb 2018 00:33:12 +0000 (01:33 +0100)
This adds timing information around code generation. It also exposes
the number of YANG modules processed, so we have some guidance
to interpret the time taken. Also lowers verbosity of dependency
scanning.

Change-Id: I7b202a388405e755964fe76d6b81bc42fd92b73b
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
yang/yang-maven-plugin/src/main/java/org/opendaylight/yangtools/yang2sources/plugin/ScannedDependency.java
yang/yang-maven-plugin/src/main/java/org/opendaylight/yangtools/yang2sources/plugin/YangToSourcesProcessor.java

index 4bbfeef3eb993ce749dff33d511a29a2c256263e..cab0d2695891536d3b96786cf44d9124faa5f8fd 100644 (file)
@@ -81,12 +81,11 @@ abstract class ScannedDependency {
 
     static Collection<ScannedDependency> scanDependencies(final MavenProject project) throws IOException {
         final Collection<File> filesOnCp = Util.getClassPath(project);
-        LOG.info("{} Searching for YANG files in following dependencies: {}", YangToSourcesProcessor.LOG_PREFIX,
-            filesOnCp);
+        LOG.debug("{} Searching for YANG files in dependencies: {}", YangToSourcesProcessor.LOG_PREFIX, filesOnCp);
+        LOG.debug("{} Searching for YANG files in {} dependencies", YangToSourcesProcessor.LOG_PREFIX,
+            filesOnCp.size());
 
         final List<ScannedDependency> result = new ArrayList<>();
-
-
         for (File file : filesOnCp) {
             // is it jar file or directory?
             if (file.isDirectory()) {
index f99a043df5236b73b2f0f89ef09b939fd9fd7b90..3501c7b65727fb043529a3e612376c651a92512c 100644 (file)
@@ -152,7 +152,7 @@ class YangToSourcesProcessor {
                 throw new MojoExecutionException("Failed to read reactor " + reactor, e);
             }
 
-            LOG.info("{} YANG models processed in {}", LOG_PREFIX, watch);
+            LOG.info("{} {} YANG models processed in {}", LOG_PREFIX, holder.getContext().getModules().size(), watch);
             generateSources(holder, codeGenerators);
         } else {
             LOG.info("{} Skipping YANG code generation because property yang.skip is true", LOG_PREFIX);
@@ -364,8 +364,8 @@ class YangToSourcesProcessor {
             ((MavenProjectAware)codeGenerator).setMavenProject(project);
         }
         codeGenerator.setAdditionalConfig(codeGeneratorCfg.getAdditionalConfiguration());
-        File resourceBaseDir = codeGeneratorCfg.getResourceBaseDir(project);
 
+        File resourceBaseDir = codeGeneratorCfg.getResourceBaseDir(project);
         YangProvider.setResource(resourceBaseDir, project);
         codeGenerator.setResourceBaseDir(resourceBaseDir);
         LOG.debug("{} Folder: {} marked as resources for generator: {}", LOG_PREFIX, resourceBaseDir,
@@ -375,12 +375,13 @@ class YangToSourcesProcessor {
             Files.walk(outputDir.toPath()).sorted(Comparator.reverseOrder()).map(Path::toFile).forEach(File::delete);
             LOG.info("{} Succesfully deleted output directory {}", LOG_PREFIX, outputDir);
         }
+        final Stopwatch watch = Stopwatch.createStarted();
         Collection<File> generated = codeGenerator.generateSources(context.getContext(), outputDir,
             context.getYangModules(), context::moduleToResourcePath);
 
         LOG.debug("{} Sources generated by {}: {}", LOG_PREFIX, codeGeneratorCfg.getCodeGeneratorClass(), generated);
-        LOG.info("{} Sources generated by {}: {}", LOG_PREFIX, codeGeneratorCfg.getCodeGeneratorClass(),
-                generated == null ? 0 : generated.size());
+        LOG.info("{} Sources generated by {}: {} in {}", LOG_PREFIX, codeGeneratorCfg.getCodeGeneratorClass(),
+                generated == null ? 0 : generated.size(), watch);
     }
 
     /**