Review request: 8003562: Provide a command-line tool to find static dependencies

Jonathan Gibbons jonathan.gibbons at oracle.com
Thu Dec 13 16:06:57 PST 2012


Mandy,

Mostly good -- and nice to see Dependencies getting the full tool treatment.

-- Jon


Archive.java:128
non-localized text: "not found"

ClassFileReader.java:74, ditto similar code in JarFileReader
Will not work for inner classes.

ClassFileReader.java:various
Langtools is (for a while longer) still using -source 6. This is to 
allow NetBeans to build and use langtools. I guess the code here is OK 
as long as NB don't try and build all of langtools.

JDepsTask:111
Did you mean --summary?
If you're wanting to emulate the GNU-style --options, these options 
normally use =, as in --name=value, so you might want to update 
handleOption.

PlatformClassPath
The API you are looking for is now available in the profiles forest, in 
langtools/src/classes/com/sun/tools/javac/sym

-- Jon

On 12/10/2012 02:30 AM, Erik Joelsson wrote:
> Looks good.
>
> /Erik
>
> On 2012-12-07 22:55, Mandy Chung wrote:
>> This is the updated webrev. It includes Erik's makefile changes and
>> small change - be consistent with javap, jdeps can take classnames as
>> the input argument or wildcard "*" to analyze all class files that
>> replaces the "-all" option.
>>
>> Webrev:
>> http://cr.openjdk.java.net/~mchung/jdk8/webrevs/jdeps/webrev.03/
>>
>> Mandy
>>
>> On 12/5/12 5:36 PM, Mandy Chung wrote:
>>> This review request (add a new jdeps tool in the JDK) include 
>>> changes in
>>> langtools and the jdk build.  I would need reviewers from the langtools
>>> and the build-infra team.
>>>
>>> Webrev for review:
>>> http://cr.openjdk.java.net/~mchung/jdk8/webrevs/jdeps/langtools-webrev.02/
>>> http://cr.openjdk.java.net/~mchung/jdk8/webrevs/jdeps/jdk-webrev.02/
>>>
>>> The jdeps source is in the langtools repo.  The change in the jdk 
>>> repo is
>>> to add the new jdeps executable.  I made change in the old and new 
>>> build
>>> for the addition of this new jdeps tool.  I discussed with Jon 
>>> whether I
>>> should modify langtools/make/build.xml to add a new jdeps target. Since
>>> the old build will be replaced by the new build soon, I simply add
>>> com/sun/tools/jdeps as part of javap.includes.
>>>
>>> Alan,
>>>
>>> The -d option is kept as a hidden option and use as implementation. We
>>> can remove it when it's determined not useful in the future. I also
>>> rename -v:summary to -summary.
>>>
>>> Thanks
>>> Mandy
>>>
>>> ----------------------------
>>>
>>> $ jdep -h
>>> Usage: jdeps <options> <files....>
>>> where possible options include:
>>>   -version                 Version information
>>>   -classpath <path>        Specify where to find class files
>>>   -summary                 Print dependency summary only
>>>   -v:class                 Print class-level dependencies
>>>   -v:package               Print package-level dependencies
>>>   -p <package name>        Restrict analysis to classes in this package
>>>                            (may be given multiple times)
>>>   -e <regex>               Restrict analysis to packages matching 
>>> pattern
>>>                            (-p and -e are exclusive)
>>>   -P  --profile            Show profile or the file containing a 
>>> package
>>>   -R  --recursive          Traverse all dependencies recursively
>>>   -all                     Process all classes specified in -classpath
>>>
>>> $ jdep Notepad.jar Ensemble.jar
>>> Notepad.jar -> D:\tools\devtools\jdk8\windows-i586\jre\lib\rt.jar
>>> <unnamed> (Notepad.jar)
>>>       -> java.awt
>>>       -> java.awt.event
>>>       -> java.beans
>>>       -> java.io
>>>       -> java.lang
>>>       -> java.net
>>>       -> java.util
>>>       -> java.util.logging
>>>       -> javax.swing
>>>       -> javax.swing.border
>>>       -> javax.swing.event
>>>       -> javax.swing.text
>>>       -> javax.swing.tree
>>>       -> javax.swing.undo
>>>
>>> Ensemble.jar -> D:\tools\devtools\jdk8\windows-i586\jre\lib\jfxrt.jar
>>> Ensemble.jar -> D:\tools\devtools\jdk8\windows-i586\jre\lib\rt.jar
>>>    com.javafx.main (Ensemble.jar)
>>>       -> java.applet
>>>       -> java.awt
>>>       -> java.awt.event
>>>       -> java.io
>>>       -> java.lang
>>>       -> java.lang.reflect
>>>       -> java.net
>>>       -> java.security
>>>       -> java.util
>>>       -> java.util.jar
>>>       -> javax.swing
>>>       -> sun.misc                                 JDK internal API 
>>> (rt.jar)
>>




More information about the compiler-dev mailing list