jmeter-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From sebb <seb...@gmail.com>
Subject Re: Apache-jmeter dependencies on JDK-Internal APIs
Date Fri, 05 Jun 2015 15:05:57 GMT
On 5 June 2015 at 15:33, Rory O'Donnell <rory.odonnell@oracle.com> wrote:
> Hi Philippe,
>
> I believe we checked an older version of Apache jmeter for dependencies on
> JDK-Internal APIs.
> Below are instructions on how to check for yourself.

Thanks!

Just ran a check on the current build and there is no output from the
JMeter jars (including jorphan.jar).

However, some of the 3rd party dependencies do produce output, as follows:

bsh-2.0b5.jar ->
/Library/Java/JavaVirtualMachines/jdk1.8.0_45.jdk/Contents/Home/jre/lib/rt.jar
(Full JRE)
   bsh.util.AWTConsole (bsh-2.0b5.jar)
      -> java.awt.peer.ComponentPeer                        JDK
internal API (rt.jar)
      -> java.awt.peer.TextComponentPeer                    JDK
internal API (rt.jar)

dnsjava-2.1.7.jar ->
/Library/Java/JavaVirtualMachines/jdk1.8.0_45.jdk/Contents/Home/jre/lib/rt.jar
(compact1)
   org.xbill.DNS.spi.DNSJavaNameServiceDescriptor (dnsjava-2.1.7.jar)
      -> sun.net.spi.nameservice.NameService                JDK
internal API (rt.jar)
      -> sun.net.spi.nameservice.NameServiceDescriptor      JDK
internal API (rt.jar)

jcharts-0.7.5.jar ->
/Library/Java/JavaVirtualMachines/jdk1.8.0_45.jdk/Contents/Home/jre/lib/rt.jar
(Full JRE)
   org.jCharts.encoders.JPEGEncoder13 (jcharts-0.7.5.jar)
      -> com.sun.image.codec.jpeg.JPEGCodec                 JDK
internal API (rt.jar)
      -> com.sun.image.codec.jpeg.JPEGEncodeParam           JDK
internal API (rt.jar)
      -> com.sun.image.codec.jpeg.JPEGImageEncoder          JDK
internal API (rt.jar)

jodd-core-3.6.4.jar ->
/Library/Java/JavaVirtualMachines/jdk1.8.0_45.jdk/Contents/Home/jre/lib/rt.jar
(Full JRE)
   jodd.util.UnsafeUtil (jodd-core-3.6.4.jar)
      -> sun.misc.Unsafe                                    JDK
internal API (rt.jar)

soap-2.3.1.jar ->
/Library/Java/JavaVirtualMachines/jdk1.8.0_45.jdk/Contents/Home/jre/lib/rt.jar
(Full JRE)
   org.apache.soap.util.net.SSLUtils (soap-2.3.1.jar)
      -> sun.net.www.protocol.http.HttpURLConnection        JDK
internal API (rt.jar)

xstream-1.4.8.jar ->
/Library/Java/JavaVirtualMachines/jdk1.8.0_45.jdk/Contents/Home/jre/lib/rt.jar
(Full JRE)
   com.thoughtworks.xstream.converters.reflection.SunLimitedUnsafeReflectionProvider
(xstream-1.4.8.jar)
      -> sun.misc.Unsafe                                    JDK
internal API (rt.jar)
   com.thoughtworks.xstream.converters.reflection.SunUnsafeReflectionProvider
(xstream-1.4.8.jar)
      -> sun.misc.Unsafe                                    JDK
internal API (rt.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

JDK Internal API                         Suggested Replacement
----------------                         ---------------------
com.sun.image.codec.jpeg.JPEGCodec       Use javax.imageio @since 1.4
com.sun.image.codec.jpeg.JPEGEncodeParam Use javax.imageio @since 1.4
com.sun.image.codec.jpeg.JPEGImageEncoder Use javax.imageio @since 1.4


> Rgds,Rory
>
> ------------------------------------------------------------------------
> 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.
>
>
> [0] https://wiki.openjdk.java.net/display/JDK8/Java+Dependency+Analysis+Tool
>
> --
> Rgds,Rory O'Donnell
> Quality Engineering Manager
> Oracle EMEA , Dublin, Ireland
>

Mime
View raw message