< prev index next >

src/jdk.jdeps/share/classes/com/sun/tools/jdeps/DepsAnalyzer.java

Print this page

        

*** 48,58 **** /** * Dependency Analyzer. * * Type of filters: * source filter: -include <pattern> ! * target filter: -package, -regex, -requires * * The initial archive set for analysis includes * 1. archives specified in the command line arguments * 2. observable modules matching the source filter * 3. classpath archives matching the source filter or target filter --- 48,58 ---- /** * Dependency Analyzer. * * Type of filters: * source filter: -include <pattern> ! * target filter: -package, -regex, --require * * The initial archive set for analysis includes * 1. archives specified in the command line arguments * 2. observable modules matching the source filter * 3. classpath archives matching the source filter or target filter
*** 144,173 **** Set<Archive> archives = archives(); // analyze the dependencies collected analyzer.run(archives, finder.locationToArchive()); writer.generateOutput(archives, analyzer); } finally { finder.shutdown(); } return true; } /** * Returns the archives for reporting that has matching dependences. * ! * If -requires is set, they should be excluded. */ Set<Archive> archives() { if (filter.requiresFilter().isEmpty()) { return archives.stream() .filter(filter::include) .filter(Archive::hasDependences) .collect(Collectors.toSet()); } else { ! // use the archives that have dependences and not specified in -requires return archives.stream() .filter(filter::include) .filter(source -> !filter.requiresFilter().contains(source)) .filter(source -> source.getDependencies() --- 144,175 ---- Set<Archive> archives = archives(); // analyze the dependencies collected analyzer.run(archives, finder.locationToArchive()); + if (writer != null) { writer.generateOutput(archives, analyzer); + } } finally { finder.shutdown(); } return true; } /** * Returns the archives for reporting that has matching dependences. * ! * If --require is set, they should be excluded. */ Set<Archive> archives() { if (filter.requiresFilter().isEmpty()) { return archives.stream() .filter(filter::include) .filter(Archive::hasDependences) .collect(Collectors.toSet()); } else { ! // use the archives that have dependences and not specified in --require return archives.stream() .filter(filter::include) .filter(source -> !filter.requiresFilter().contains(source)) .filter(source -> source.getDependencies()
*** 358,377 **** private void addEdge(Graph.Builder<Node> builder, Analyzer.Dep dep) { Archive source = dep.originArchive(); Archive target = dep.targetArchive(); String pn = dep.target(); ! if ((verbose == CLASS || verbose == VERBOSE)) { int i = dep.target().lastIndexOf('.'); pn = i > 0 ? dep.target().substring(0, i) : ""; } final Info info; if (source == target) { info = Info.MODULE_PRIVATE; ! } else if (!target.getModule().isNamed()) { info = Info.EXPORTED_API; ! } else if (target.getModule().isExported(pn)) { info = Info.EXPORTED_API; } else { Module module = target.getModule(); if (module == Analyzer.REMOVED_JDK_INTERNALS) { info = Info.JDK_REMOVED_INTERNAL_API; --- 360,380 ---- private void addEdge(Graph.Builder<Node> builder, Analyzer.Dep dep) { Archive source = dep.originArchive(); Archive target = dep.targetArchive(); String pn = dep.target(); ! if (verbose == CLASS || verbose == VERBOSE) { int i = dep.target().lastIndexOf('.'); pn = i > 0 ? dep.target().substring(0, i) : ""; } final Info info; + Module targetModule = target.getModule(); if (source == target) { info = Info.MODULE_PRIVATE; ! } else if (!targetModule.isNamed()) { info = Info.EXPORTED_API; ! } else if (targetModule.isExported(pn) && !targetModule.isJDKUnsupported()) { info = Info.EXPORTED_API; } else { Module module = target.getModule(); if (module == Analyzer.REMOVED_JDK_INTERNALS) { info = Info.JDK_REMOVED_INTERNAL_API;
< prev index next >