You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@geronimo.apache.org by Rory O'Donnell <ro...@oracle.com> on 2015/07/02 10:43:24 UTC
Geronimo dependencies on JDK-Internal APIs
Hi ,
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 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
Re: Geronimo dependencies on JDK-Internal APIs
Posted by Mark Struberg <st...@yahoo.de>.
I did the check for
* specs - all OK
* xbean - some problems did show up:
~/develop/java/apache/geronimo/xbean/trunk$>find . -name *.jar | xargs /Library/Java/JavaVirtualMachines/jdk1.8.0_45.jdk/Contents/Home/bin/jdeps -P -jdkinternals
Warning: Invalid classname or pathname not exist: ./xbean-finder/target/target/folder
xbean-classpath-4.4-SNAPSHOT.jar -> /Library/Java/JavaVirtualMachines/jdk1.8.0_45.jdk/Contents/Home/jre/lib/rt.jar (compact1)
org.apache.xbean.classpath.SunURLClassPath (xbean-classpath-4.4-SNAPSHOT.jar)
-> sun.misc.URLClassPath JDK internal API (rt.jar)
org.apache.xbean.classpath.SystemClassPath (xbean-classpath-4.4-SNAPSHOT.jar)
-> sun.misc.URLClassPath JDK internal API (rt.jar)
org.apache.xbean.classpath.TomcatClassPath (xbean-classpath-4.4-SNAPSHOT.jar)
-> sun.misc.URLClassPath JDK internal API (rt.jar)
We need to tackle those.
txs and LieGrue,
strub
> Am 08.07.2015 um 16:22 schrieb Rory O'Donnell <ro...@oracle.com>:
>
> Just wondering if anyone had a chance to look at this ?
>
> Rgds,Rory
>
> On 02/07/2015 09:43, Rory O'Donnell wrote:
>>
>> Hi ,
>>
>> 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). You do not need to actually test or run your application on JDK8. JDeps(Docs) 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 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
>>
>
> --
> Rgds,Rory O'Donnell
> Quality Engineering Manager
> Oracle EMEA , Dublin, Ireland
>
Re: Geronimo dependencies on JDK-Internal APIs
Posted by Rory O'Donnell <ro...@oracle.com>.
Just wondering if anyone had a chance to look at this ?
Rgds,Rory
On 02/07/2015 09:43, Rory O'Donnell wrote:
>
> Hi ,
>
> 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 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
--
Rgds,Rory O'Donnell
Quality Engineering Manager
Oracle EMEA , Dublin, Ireland