On 05/19/2015 10:02 AM, Daniel Fuchs wrote:
Hi,

Please find below a patch for jdeps:

http://cr.openjdk.java.net/~dfuchs/webrev_8080608/webrev.00/
https://bugs.openjdk.java.net/browse/JDK-8080608

:

The fix will make sure that jdeps prints instead:

indirect2.jar -> dist/unsafe.jar
use.indirect2.UseUnsafeIndirectly2 -> use.unsafe.UseUnsafeClass unsafe.jar
unsafe.jar -> dist/unsafe.jar
   use.unsafe.UseClassWithUnsafe -> use.unsafe.UseUnsafeClass unsafe.jar

A dependency from unsafe.jar to itself is redundant and thus was excluded from the returned value of the requires method. Maybe better just to output without any dependence like this:

unsafe.jar
   use.unsafe.UseClassWithUnsafe -> use.unsafe.UseUnsafeClass unsafe.jar

Analyzer.java

 147 if (result.requires.isEmpty() && type == Type.VERBOSE && 
hasDependences(source)) {
   Is type == Type.VERBOSE necessary?  If hasDependences(source)  returns true,
   "unsafe.jar" is missing for non-verbose mode I assume.

 This long line should be broken into multiple lines.

Maybe good to initialize Stream<Archive> to handle the empty and
non-empty case to avoid duplicate code line 148-149:
   final ArchiveDeps result = results.get(source);
   Stream<Archive> reqs = result.requires().stream();
   if (result.requires().isEmpty()&& hasDependences(source)) {
       reqs = Stream.of(source);
   }
   reqs.sorted(.....


I haven't reviewed the tests. They are named as closure. Are these tests for the new jdeps enhancement that you are thinking?

Thanks
Mandy

Reply via email to