import org.opendaylight.yangtools.yang.parser.stmt.reactor.CrossSourceStatementReactor;
import org.opendaylight.yangtools.yang.parser.stmt.rfc6020.YangInferencePipeline;
import com.google.common.annotations.VisibleForTesting;
+import com.google.common.base.Throwables;
import com.google.common.collect.Maps;
import java.io.Closeable;
import java.io.File;
}
if (allFiles.isEmpty()) {
- LOG.info("{} No input files found", LOG_PREFIX);
+ LOG.info("{} No input files found", LOG_PREFIX);
return null;
}
return null;
}
- final List<InputStream> yangsInProject = new ArrayList<>();
+ final List<NamedFileInputStream> yangsInProject = new ArrayList<>();
for (final File f : yangFilesInProject) {
// FIXME: This is hack - normal path should be reported.
yangsInProject.add(new NamedFileInputStream(f, META_INF_YANG_STRING + File.separator + f.getName()));
}
- List<InputStream> all = new ArrayList<>(yangsInProject);
+ List<InputStream> all = new ArrayList<>();
+ all.addAll(yangsInProject);
closeables.addAll(yangsInProject);
/**
Set<Module> parsedAllYangModules = resolveSchemaContext.getModules();
projectYangModules = new HashSet<>();
for (Module module : parsedAllYangModules) {
- if(module.getModuleSourcePath()!=null) {
- projectYangModules.add(module);
+ final String path = module.getModuleSourcePath();
+ if (path != null) {
+ LOG.debug("Looking for source {}", path);
+ for (NamedFileInputStream is : yangsInProject) {
+ LOG.debug("In project destination {}", is.getFileDestination());
+ if (path.equals(is.getFileDestination())) {
+ LOG.debug("Module {} belongs to current project", module);
+ projectYangModules.add(module);
+ break;
+ }
+ }
}
}
} finally {
// MojoExecutionException is thrown since execution cannot continue
} catch (Exception e) {
LOG.error("{} Unable to parse {} files from {}", LOG_PREFIX, Util.YANG_SUFFIX, yangFilesRootDir, e);
+ Throwable rootCause = Throwables.getRootCause(e);
throw new MojoExecutionException(LOG_PREFIX + " Unable to parse " + Util.YANG_SUFFIX + " files from " +
- yangFilesRootDir, e);
+ yangFilesRootDir, rootCause);
}
}
File actualGeneratedYangDir = new File(project.getBuild().getDirectory(),
CodeGeneratorArg.YANG_GENERATED_DIR.replace("target" + File.separator, ""));
- if(!actualGeneratedYangDir.equals(generatedYangDir)) {
+ if (!actualGeneratedYangDir.equals(generatedYangDir)) {
addYangsToMetaInf(project, yangFilesRootDir, excludedFiles, actualGeneratedYangDir);
}
}