Fixed handling of submodules in yang-maven-plugin. 97/7897/1
authorMartin Vitez <mvitez@cisco.com>
Wed, 11 Jun 2014 11:10:37 +0000 (13:10 +0200)
committerMartin Vitez <mvitez@cisco.com>
Wed, 11 Jun 2014 11:11:14 +0000 (13:11 +0200)
Signed-off-by: Martin Vitez <mvitez@cisco.com>
yang/yang-maven-plugin/src/main/java/org/opendaylight/yangtools/yang2sources/plugin/YangToSourcesProcessor.java

index f2b67f46eb40f0236b56b4dc437cd1b8b70def61..7a49d58e09df3810fee9c951e0f389529d3dcc54 100644 (file)
@@ -9,6 +9,17 @@ package org.opendaylight.yangtools.yang2sources.plugin;
 
 import com.google.common.annotations.VisibleForTesting;
 import com.google.common.collect.Maps;
+import java.io.Closeable;
+import java.io.File;
+import java.io.IOException;
+import java.io.InputStream;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.HashSet;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
 import org.apache.maven.model.Resource;
 import org.apache.maven.plugin.MojoExecutionException;
 import org.apache.maven.plugin.MojoFailureException;
@@ -26,20 +37,6 @@ import org.opendaylight.yangtools.yang2sources.spi.CodeGenerator;
 import org.sonatype.plexus.build.incremental.BuildContext;
 import org.sonatype.plexus.build.incremental.DefaultBuildContext;
 
-import java.io.Closeable;
-import java.io.File;
-import java.io.IOException;
-import java.io.InputStream;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Collections;
-import java.util.HashSet;
-import java.util.List;
-import java.util.Map;
-import java.util.Set;
-
-import static com.google.common.base.Preconditions.checkNotNull;
-
 class YangToSourcesProcessor {
     static final String LOG_PREFIX = "yang-to-sources:";
     static final String META_INF_YANG_STRING = "META-INF" + File.separator + "yang";
@@ -124,7 +121,7 @@ class YangToSourcesProcessor {
             }
 
             if (noChange) {
-               log.info(Util.message("None of %s input files changed", LOG_PREFIX, allFiles.size()));
+                log.info(Util.message("None of %s input files changed", LOG_PREFIX, allFiles.size()));
                 return null;
             }
 
@@ -136,6 +133,13 @@ class YangToSourcesProcessor {
             List<InputStream> all = new ArrayList<>(yangsInProject);
             closeables.addAll(yangsInProject);
             Map<InputStream, Module> allYangModules;
+
+            /**
+             * Set contains all modules generated from input sources. Number of
+             * modules may differ from number of sources due to submodules
+             * (parsed submodule's data are added to its parent module). Set
+             * cannot contains null values.
+             */
             Set<Module> projectYangModules;
             try {
                 if (inspectDependencies) {
@@ -149,8 +153,10 @@ class YangToSourcesProcessor {
 
                 projectYangModules = new HashSet<>();
                 for (InputStream inProject : yangsInProject) {
-                    Module module = checkNotNull(allYangModules.get(inProject), "Cannot find module by %s", inProject);
-                    projectYangModules.add(module);
+                    Module module = allYangModules.get(inProject);
+                    if (module != null) {
+                        projectYangModules.add(module);
+                    }
                 }
 
             } finally {