I'll second the recommendation to run jdeps on your apps. I note that it
doesn't currently flag internal FX packages as internal. I filed the
following RFE to address this:
https://bugs.openjdk.java.net/browse/JDK-8077349
-- Kevin
Chris Newland wrote:
I just asked about this on the adoption-disc...@openjdk.java.net list and
the answer from Martijn Verburg is:
---
Hi Chris,
I think the strong advice for those using private APIs is to run the jdeps
tool to see where they are using APIs that will go away / be moved. I'd
then get them to post that list to jigsaw-dev, I guess the root cause of
some of these issues should also be logged in JBS and fixed :-).
Cheers,
Martijn
---
If you run $JAVA_HOME/bin/jdeps -jdkinternals <class dir or jar> then it
will show all uses of JDK private APIs that will go away in JDK9.
An example from one of my own projects:
chris@chris:~$ /home/chris/jdk1.8.0_40/bin/jdeps -jdkinternals
/home/chris/jitwatch/target/jitwatch-1.0.0-SNAPSHOT.jar
jitwatch-1.0.0-SNAPSHOT.jar -> /home/chris/jdk1.8.0_40/lib/tools.jar
org.adoptopenjdk.jitwatch.loader.BytecodeLoader
(jitwatch-1.0.0-SNAPSHOT.jar)
-> com.sun.tools.javap.JavapTask JDK internal
API (tools.jar)
-> com.sun.tools.javap.JavapTask$BadArgs JDK internal
API (tools.jar)
Warning: JDK internal APIs are unsupported and private to JDK
implementation that are
subject to be removed or changed incompatibly and could break your
application.
Please modify your code to eliminate dependency on any JDK internal APIs.
For the most recent update on JDK internal API replacements, please check:
https://wiki.openjdk.java.net/display/JDK8/Java+Dependency+Analysis+Tool
I think sending these reports to jigsaw-...@openjdk.java.net is a
worthwhile effort to help them direct resources for bug fixing and new
public APIs.
Cheers,
Chris