--- old/src/jdk.jdeps/share/classes/com/sun/tools/jdeps/JdepsFilter.java 2018-11-14 16:47:47.000000000 -0800 +++ new/src/jdk.jdeps/share/classes/com/sun/tools/jdeps/JdepsFilter.java 2018-11-14 16:47:46.000000000 -0800 @@ -55,6 +55,7 @@ private final boolean filterSamePackage; private final boolean filterSameArchive; private final boolean findJDKInternals; + private final boolean findMissingDeps; private final Pattern includePattern; private final Set requires; @@ -64,6 +65,7 @@ boolean filterSamePackage, boolean filterSameArchive, boolean findJDKInternals, + boolean findMissingDeps, Pattern includePattern, Set requires) { this.filter = filter; @@ -71,6 +73,7 @@ this.filterSamePackage = filterSamePackage; this.filterSameArchive = filterSameArchive; this.findJDKInternals = findJDKInternals; + this.findMissingDeps = findMissingDeps; this.includePattern = includePattern; this.requires = requires; } @@ -153,6 +156,8 @@ Module module = targetArchive.getModule(); return originArchive != targetArchive && isJDKInternalPackage(module, target.getPackageName()); + } else if (findMissingDeps) { + return Analyzer.notFound(targetArchive); } else if (filterSameArchive) { // accepts origin and target that from different archive return originArchive != targetArchive; @@ -188,6 +193,7 @@ boolean filterSamePackage; boolean filterSameArchive; boolean findJDKInterals; + boolean findMissingDeps; // source filters Pattern includePattern; Set requires = new HashSet<>(); @@ -221,6 +227,10 @@ this.findJDKInterals = value; return this; } + public Builder findMissingDeps(boolean value) { + this.findMissingDeps = value; + return this; + } public Builder includePattern(Pattern regex) { this.includePattern = regex; return this; @@ -238,6 +248,7 @@ filterSamePackage, filterSameArchive, findJDKInterals, + findMissingDeps, includePattern, requires); }