RFR: 8080608: Missing archive name from jdeps -v -e output if no dependency on other JAR (original) (raw)

Mandy Chung mandy.chung at oracle.com
Tue May 19 23:44:24 UTC 2015


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

Hi,

Please find below a patch for jdeps: http://cr.openjdk.java.net/~dfuchs/webrev8080608/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 to handle the empty and non-empty case to avoid duplicate code line 148-149: final ArchiveDeps result = results.get(source); Stream 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



More information about the core-libs-dev mailing list