List of removed/internalized classes for Java 9
Mandy Chung
mandy.chung at oracle.com
Wed Oct 19 05:27:12 UTC 2016
> On Oct 18, 2016, at 9:03 AM, Alan Bateman <alan.bateman at oracle.com> wrote:
>
> On 18/10/2016 15:52, Andrew Guibert wrote:
>
>> :
>>
>> So my question is:
>> Is there a list of removed/internalized classes for java 9 anywhere? I
>> would like to use this list to grep my codebase for soft references.
>>
>>
> I don't think there is a list anywhere. Also it would be a moving target because there are classes added/removed/renamed in sun.** and jdk.** every week.
>
Exactly and so you will have to look at the latest build.
> One thing that might help is to get a list of the JDK-internal packages in your current build. Here's one way to create this:
>
> ModuleFinder.ofSystem()
> .findAll()
> .stream()
> .map(ModuleReference::descriptor)
> .map(md -> {
> Set<String> packages = new HashSet<>(md.packages());
> md.exports()
> .stream()
> .filter(e -> !e.isQualified())
> .map(Exports::source).forEach(pn -> packages.remove(pn));
> return packages;
> })
> .flatMap(Set::stream)
> .sorted()
> .forEach(System.out::println);
>
> Alternatively you can specify all modules to `java --list-modules` and filter out the unqualified exports.
>
I have a build tool that finds the list of JDK internal packages in an older release:
http://hg.openjdk.java.net/jdk9/dev/langtools/file/tip/make/src/classes/build/tools/listjdkinternals/ListJDKInternals.java
Mandy
More information about the jigsaw-dev
mailing list