On 5/19/15 8:49 AM, Myrna van Lunteren wrote:
Hi folks,
I just got this message, probably because I'm still listed as the PMC
chair. I currently have no time to look into this, can anyone else
free up any time?
Myrna
---------- Forwarded message ----------
From: *Rory O'Donnell* <[email protected]
<mailto:[email protected]>>
Date: Tue, May 19, 2015 at 1:50 AM
Subject: Derby dependencies on JDK-Internal APIs
To: [email protected] <mailto:[email protected]>
Cc: [email protected] <mailto:[email protected]>,
Dalibor Topic <[email protected]
<mailto:[email protected]>>, Balchandra Vaidya
<[email protected] <mailto:[email protected]>>
Hi Myrna,
My name is Rory O'Donnell, I am the OpenJDK Quality Group Lead.
I'm contacting you because your open source project seems to be a very
popular dependency for other open source projects.
As part of the preparations for JDK 9, Oracle’s engineers have been
analyzing open source projects like yours to understand usage. One
area of concern involves identifying compatibility problems, such as
reliance on JDK-internal APIs.
Our engineers have already prepared guidance on migrating some of the
more common usage patterns of JDK-internal APIs to supported public
interfaces. The list is on the OpenJDK wiki [0].
As part of the ongoing development of JDK 9, I would like to inquire
about your usage of JDK-internal APIs and to encourage migration
towards supported Java APIs if necessary.
The first step is to identify if your application(s) is leveraging
internal APIs.
/Step 1: Download JDeps. /
Just download a preview release of JDK8(JDeps Download
<https://jdk8.java.net/download.html>). You do not need to
actually test or run your application on JDK8. JDeps(Docs
<http://docs.oracle.com/javase/8/docs/technotes/tools/unix/jdeps.html>)
looks through JAR files and identifies which JAR files use
internal APIs and then lists those APIs.
/Step 2: To run JDeps against an application/. The command looks like:
jdk8/bin/jdeps -P -jdkinternals *.jar > your-application.jdeps.txt
The output inside your-application.jdeps.txt will look like:
your.package (Filename.jar)
-> com.sun.corba.se <http://com.sun.corba.se> JDK
internal API (rt.jar)
_3rd party library using Internal APIs:_
If your analysis uncovers a third-party component that you rely on,
you can contact the provider and let them know of the upcoming
changes. You can then either work with the provider to get an updated
library that won't rely on Internal APIs, or you can find an
alternative provider for the capabilities that the offending library
provides.
_Dynamic use of Internal APIs:_
JDeps can not detect dynamic use of internal APIs, for example through
reflection, service loaders and similar mechanisms.
Rgds,Rory
[0]
https://wiki.openjdk.java.net/display/JDK8/Java+Dependency+Analysis+Tool
--
Rgds,Rory O'Donnell
Quality Engineering Manager
Oracle EMEA , Dublin, Ireland
Hi Rory, Dalibor, and Balchandra,
I downloaded the preview jdku60 and ran its jdeps against the library of
Derby 10.11.1.1 jar files, per the instructions above. No dependencies
were listed.
I did find dependencies on classes in the org.w3c.dom.xpath package when
I ran jdeps on the previous Derby feature release (10.10.1.1). But the
current 10.11.1.1 release looks clean.
Best regards,
-Rick