jmeter-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Rory O'Donnell" <rory.odonn...@oracle.com>
Subject Re: Apache-jmeter dependencies on JDK-Internal APIs
Date Mon, 08 Jun 2015 08:21:41 GMT
Hi Phillipe/Sebb,

Thank you both for the feedback.
I suggest to open a discussion on 
http://mail.openjdk.java.net/pipermail/jigsaw-dev/

Rgds,Rory

On 06/06/2015 15:24, Philippe Mouawad wrote:
> Hi,
> After further analysis:
>
>   * JODD : It may be an issue if Unsafe is really removed at some
>     point, but implementor seem to be ready to make change, very reactive.
>   * XSteam : Unsafe is used to newInstance any class, when Unsafe is
>     missing Library  defaults to PureJavaReflectionProvider class but
>     with following limitations:
>       o  Cannot newInstance: classes without public visibility,
>         non-static inner classes, classes without default constructors.
>       o @Rory is there some way to do what is needed here without
>         using Unsafe ?
>
> Thanks
>
> Regards
>
>
> On Fri, Jun 5, 2015 at 11:32 PM, Philippe Mouawad 
> <philippe.mouawad@gmail.com <mailto:philippe.mouawad@gmail.com>> wrote:
>
>     Hi,
>     I opened:
>     - https://github.com/oblac/jodd/issues/220
>     - https://github.com/x-stream/xstream/issues/11
>
>     For other projects not sure they are still maintained. Maybe time
>     to think about dropping them.
>
>     Regards
>     Philippe M.
>     @philmdot
>
>     On Fri, Jun 5, 2015 at 5:05 PM, sebb <sebbaz@gmail.com
>     <mailto:sebbaz@gmail.com>> wrote:
>
>         On 5 June 2015 at 15:33, Rory O'Donnell
>         <rory.odonnell@oracle.com <mailto: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 <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.
>         >
>         >
>         > [0]
>         https://wiki.openjdk.java.net/display/JDK8/Java+Dependency+Analysis+Tool
>         >
>         > --
>         > Rgds,Rory O'Donnell
>         > Quality Engineering Manager
>         > Oracle EMEA , Dublin, Ireland
>         >
>
>
>
>
>     -- 
>     Cordialement.
>     Philippe Mouawad.
>
>
>
>
>
> -- 
> Cordialement.
> Philippe Mouawad.
>
>

-- 
Rgds,Rory O'Donnell
Quality Engineering Manager
Oracle EMEA , Dublin, Ireland


Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message