Review request for JDK-8156575: Add jdeps -addmods, -system, -inverse options
Mandy Chung
mandy.chung at oracle.com
Thu May 12 17:38:11 UTC 2016
I think I know where the issue is. Can you send me your test and I can modify and include it in this patch?
Mandy
> On May 12, 2016, at 10:31 AM, Daniel Fuchs <daniel.fuchs at oracle.com> wrote:
>
> Hi Mandy,
>
> I am a bit surprised that the verbose option doesn't seem
> to have any effect on the output of jdeps -I
>
> I have built 4 jars:
>
> unsafe.jar has some class that depend directly on
> sun.misc.Unsafe, and some that don't.
> indirect.jar has some classes that depends indirectly
> on sun.misc.Unsafe: they depend on classes
> from unsafe.jar that depend on sun.misc.Unsafe.
> It also has classes that don't depend on sun.misc.Unsafe,
> either directly or indirectly.
> indirect2.jar also has some classes that depends indirectly
> on sun.misc.Unsafe: they depend on classes
> from unsafe.jar that depend on sun.misc.Unsafe.
> It also has classes that don't depend on sun.misc.Unsafe,
> either directly or indirectly.
> safe.jar has classes that depends on other classes in
> unsafe.jar, indirect.jar, and indirect2.jar
> However the classes it depends on do not depend on
> sun.misc.Unsafe, either directly or indirectly.
>
> If I run:
> $ ./bin/jdeps -I -e sun.misc.Usafe -modulepath ~/test/JdepsTest/dist -addmods unsafe,safe,indirect,indirect2
>
> Inverse transitive dependences matching sun.misc.Usafe
> indirect <- safe
> indirect2 <- safe
> unsafe <- indirect <- safe
> unsafe <- indirect2 <- safe
> unsafe <- safe
>
> So it looks like the granurality of the analysis is performed
> at module level. Is there anyway to make the analysis at class
> level, so that 'safe' isn't reported to depend on sun.misc.Unsafe?
>
> I tried passing -verbose:class or -v but it doesn't appear to have any
> effect, the result is always the same.
>
> best regards,
>
> -- daniel
>
> On 12/05/16 18:45, Mandy Chung wrote:
>> This patch applies on the top of the jdeps refresh patch [1]..
>>
>> Webrev at:
>> http://cr.openjdk.java.net/~mchung/jdk9/webrevs/8156575/webrev.01/
>>
>> The -addmods option is the same as what the runtime supports so that we
>> can run jdeps in the same command-line options as runtime. -system is
>> to specify an alternative java.home.
>>
>> -inverse option will find the modules that depend on a given root module
>> directly and indirectly. It’s useful to use with the -requires option
>> or -package, -regex options:
>>
>> Example output:
>> $ jdeps -I -mp mods -addmods m4,m5 -requires java.logging
>> java.sql
>> [jrt:/java.sql]
>> requires mandated java.base
>> requires public java.logging
>> requires public java.xml
>> java.sql -> java.logging
>> java.sql ->
>> java.util.logging java.logging
>> javax.sql ->
>> java.util.logging java.logging
>> m5
>> [file:///scratch/mchung/ws/jdk9/jdk9-jdeps/JTwork/scratch/mods/m5/]
>> requires mandated java.base
>> requires public java.compiler
>> requires public java.logging
>> requires java.sql
>> requires public m4
>> m5 -> java.logging
>> p5 ->
>> java.util.logging java.logging
>>
>> Inverse transitive dependences on [java.logging]
>> java.logging <- java.sql <- m5
>> java.logging <- m4 <- m5
>> java.logging <- m5
>>
>> $ jdeps -I -mp mods -requires jdk.unsupported -m java.se <http://java.se>
>> java.desktop
>> [jrt:/java.desktop]
>> requires mandated java.base
>> requires public java.datatransfer
>> requires java.prefs
>> requires public java.xml
>> requires jdk.unsupported
>> java.desktop -> jdk.unsupported
>> sun.awt -> sun.misc
>> jdk.unsupported (internal)
>> sun.awt.image -> sun.misc
>> jdk.unsupported (internal)
>>
>> Inverse transitive dependences on [jdk.unsupported]
>> jdk.unsupported <- java.desktop <- java.se <http://java.se>
>>
>>
>> [1] http://cr.openjdk.java.net/~mchung/jdk9/webrevs/8156680/webrev.01/
>>
>
More information about the core-libs-dev
mailing list