Hi,
I am looking at internal API usage that we (likely) have to remove during
the JDK 11 upgrade effort.
The jdeps tool can scan jars and find internal API usage, so I used it.
I've already run it on jai-ext (no complaints)
and imageio-ext (see results at
https://github.com/geosolutions-it/imageio-ext/issues/172 ).

Here are the results running it onto GeoTools (I've collected the GeoTools
jars, release style, went into target/binaries, and run jdeps):

jdeps --jdk-internals -R *.jar
ehcache-2.10.3.jar -> jdk.unsupported
   net.sf.ehcache.pool.sizeof.UnsafeSizeOf            -> sun.misc.Unsafe
                                JDK internal API (jdk.unsupported)
gt-arcsde-21-SNAPSHOT.jar -> java.desktop
   org.geotools.arcsde.raster.info.RasterUtils        ->
com.sun.imageio.plugins.common.BogusColorSpace     JDK internal API
(java.desktop)
gt-coverage-api-21-SNAPSHOT.jar -> java.desktop
   org.geotools.coverage.io.util.Utilities            -> sun.awt.OSInfo
                                 JDK internal API (java.desktop)
   org.geotools.coverage.io.util.Utilities            ->
sun.awt.OSInfo$OSType                              JDK internal API
(java.desktop)
imageio-ext-streams-1.1.25.jar -> java.desktop
   it.geosolutions.imageio.stream.input.spi.FileImageInputStreamExtImplSpi
-> com.sun.imageio.spi.FileImageInputStreamSpi        JDK internal API
(java.desktop)

 it.geosolutions.imageio.stream.output.spi.FileImageOutputStreamExtImplSpi
-> com.sun.imageio.spi.FileImageOutputStreamSpi       JDK internal API
(java.desktop)
imageio-ext-utilities-1.1.25.jar -> java.desktop
   it.geosolutions.imageio.utilities.ImageIOUtilities ->
com.sun.imageio.plugins.common.BogusColorSpace     JDK internal API
(java.desktop)
jai_codec-1.1.3.jar -> JDK removed internal API
jai_codec-1.1.3.jar -> java.base
   com.sun.media.jai.codecimpl.JPEGImage              ->
com.sun.image.codec.jpeg.ImageFormatException      JDK internal API (JDK
removed internal API)
   com.sun.media.jai.codecimpl.JPEGImage              ->
com.sun.image.codec.jpeg.JPEGCodec                 JDK internal API (JDK
removed internal API)
   com.sun.media.jai.codecimpl.JPEGImage              ->
com.sun.image.codec.jpeg.JPEGImageDecoder          JDK internal API (JDK
removed internal API)
   com.sun.media.jai.codecimpl.JPEGImageEncoder       ->
com.sun.image.codec.jpeg.JPEGCodec                 JDK internal API (JDK
removed internal API)
   com.sun.media.jai.codecimpl.JPEGImageEncoder       ->
com.sun.image.codec.jpeg.JPEGEncodeParam           JDK internal API (JDK
removed internal API)
   com.sun.media.jai.codecimpl.JPEGImageEncoder       ->
com.sun.image.codec.jpeg.JPEGImageEncoder          JDK internal API (JDK
removed internal API)
   com.sun.media.jai.codecimpl.JPEGImageEncoder       ->
com.sun.image.codec.jpeg.JPEGQTable                JDK internal API (JDK
removed internal API)
   com.sun.media.jai.codecimpl.PNMImage               ->
sun.security.action.GetPropertyAction              JDK internal API
(java.base)
   com.sun.media.jai.codecimpl.PNMImageEncoder        ->
sun.security.action.GetPropertyAction              JDK internal API
(java.base)
   com.sun.media.jai.codecimpl.TIFFImage              ->
com.sun.image.codec.jpeg.JPEGCodec                 JDK internal API (JDK
removed internal API)
   com.sun.media.jai.codecimpl.TIFFImage              ->
com.sun.image.codec.jpeg.JPEGDecodeParam           JDK internal API (JDK
removed internal API)
   com.sun.media.jai.codecimpl.TIFFImage              ->
com.sun.image.codec.jpeg.JPEGImageDecoder          JDK internal API (JDK
removed internal API)
   com.sun.media.jai.codecimpl.TIFFImageEncoder       ->
com.sun.image.codec.jpeg.JPEGCodec                 JDK internal API (JDK
removed internal API)
   com.sun.media.jai.codecimpl.TIFFImageEncoder       ->
com.sun.image.codec.jpeg.JPEGEncodeParam           JDK internal API (JDK
removed internal API)
   com.sun.media.jai.codecimpl.TIFFImageEncoder       ->
com.sun.image.codec.jpeg.JPEGImageEncoder          JDK internal API (JDK
removed internal API)
   com.sun.media.jai.codecimpl.fpx.FPXImage           ->
com.sun.image.codec.jpeg.JPEGCodec                 JDK internal API (JDK
removed internal API)
   com.sun.media.jai.codecimpl.fpx.FPXImage           ->
com.sun.image.codec.jpeg.JPEGDecodeParam           JDK internal API (JDK
removed internal API)
   com.sun.media.jai.codecimpl.fpx.FPXImage           ->
com.sun.image.codec.jpeg.JPEGImageDecoder          JDK internal API (JDK
removed internal API)
jai_core-1.1.3.jar -> JDK removed internal API
jai_core-1.1.3.jar -> java.desktop
   com.sun.media.jai.opimage.IIPResolutionOpImage     ->
com.sun.image.codec.jpeg.JPEGCodec                 JDK internal API (JDK
removed internal API)
   com.sun.media.jai.opimage.IIPResolutionOpImage     ->
com.sun.image.codec.jpeg.JPEGDecodeParam           JDK internal API (JDK
removed internal API)
   com.sun.media.jai.opimage.IIPResolutionOpImage     ->
com.sun.image.codec.jpeg.JPEGImageDecoder          JDK internal API (JDK
removed internal API)
   com.sun.media.jai.tilecodec.JPEGTileDecoder        ->
com.sun.image.codec.jpeg.JPEGCodec                 JDK internal API (JDK
removed internal API)
   com.sun.media.jai.tilecodec.JPEGTileDecoder        ->
com.sun.image.codec.jpeg.JPEGDecodeParam           JDK internal API (JDK
removed internal API)
   com.sun.media.jai.tilecodec.JPEGTileDecoder        ->
com.sun.image.codec.jpeg.JPEGImageDecoder          JDK internal API (JDK
removed internal API)
   com.sun.media.jai.tilecodec.JPEGTileDecoder        ->
com.sun.image.codec.jpeg.JPEGQTable                JDK internal API (JDK
removed internal API)
   com.sun.media.jai.tilecodec.JPEGTileEncoder        ->
com.sun.image.codec.jpeg.JPEGCodec                 JDK internal API (JDK
removed internal API)
   com.sun.media.jai.tilecodec.JPEGTileEncoder        ->
com.sun.image.codec.jpeg.JPEGEncodeParam           JDK internal API (JDK
removed internal API)
   com.sun.media.jai.tilecodec.JPEGTileEncoder        ->
com.sun.image.codec.jpeg.JPEGImageEncoder          JDK internal API (JDK
removed internal API)
   com.sun.media.jai.tilecodec.JPEGTileEncoder        ->
com.sun.image.codec.jpeg.JPEGQTable                JDK internal API (JDK
removed internal API)
   com.sun.media.jai.tilecodec.JPEGTileEncoder        ->
sun.awt.image.codec.JPEGParam                      JDK internal API (JDK
removed internal API)
   javax.media.jai.RasterAccessor                     ->
sun.awt.image.BytePackedRaster                     JDK internal API
(java.desktop)
jai_imageio-1.1.jar -> java.base
   com.sun.media.imageioimpl.plugins.pnm.PNMImageReader ->
sun.security.action.GetPropertyAction              JDK internal API
(java.base)
   com.sun.media.imageioimpl.plugins.pnm.PNMImageWriter ->
sun.security.action.GetPropertyAction              JDK internal API
(java.base)
protobuf-java-3.4.0.jar -> jdk.unsupported
   com.google.protobuf.UnsafeUtil                     -> sun.misc.Unsafe
                                JDK internal API (jdk.unsupported)
   com.google.protobuf.UnsafeUtil$1                   -> sun.misc.Unsafe
                                JDK internal API (jdk.unsupported)
   com.google.protobuf.UnsafeUtil$JvmMemoryAccessor   -> sun.misc.Unsafe
                                JDK internal API (jdk.unsupported)
   com.google.protobuf.UnsafeUtil$MemoryAccessor      -> sun.misc.Unsafe
                                JDK internal API (jdk.unsupported)
swt.win32.win32.x86_64-3.6.1.v3655c.jar -> java.desktop
   org.eclipse.swt.awt.SWT_AWT$1                      ->
java.awt.peer.ComponentPeer                        JDK internal API
(java.desktop)

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 dependence 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.ImageFormatException Use javax.imageio @since 1.4
com.sun.image.codec.jpeg.JPEGCodec       Use javax.imageio @since 1.4
com.sun.image.codec.jpeg.JPEGDecodeParam Use javax.imageio @since 1.4
com.sun.image.codec.jpeg.JPEGEncodeParam Use javax.imageio @since 1.4
com.sun.image.codec.jpeg.JPEGImageDecoder Use javax.imageio @since 1.4
com.sun.image.codec.jpeg.JPEGImageEncoder Use javax.imageio @since 1.4
com.sun.image.codec.jpeg.JPEGQTable      Use javax.imageio @since 1.4
java.awt.peer.ComponentPeer              Should not use. See
https://bugs.openjdk.java.net/browse/JDK-8037739
sun.awt.image.codec.JPEGParam            Use javax.imageio @since 1.4
sun.misc.Unsafe                          See
http://openjdk.java.net/jeps/260
sun.security.action.GetPropertyAction    Use java.security.PrivilegedAction
@since 1.1

As you can see part of the report is due to imageoi-ext jars in the
collection (I've made it light gray), but the rest seems legit and
points to both GeoTools sources and some dependencies.

Cheers
Andrea

== GeoServer Professional Services from the experts! Visit
http://goo.gl/it488V for more information. == Ing. Andrea Aime @geowolf
Technical Lead GeoSolutions S.A.S. Via di Montramito 3/A 55054 Massarosa
(LU) phone: +39 0584 962313 fax: +39 0584 1660272 mob: +39 339 8844549
http://www.geo-solutions.it http://twitter.com/geosolutions_it
------------------------------------------------------- *Con riferimento
alla normativa sul trattamento dei dati personali (Reg. UE 2016/679 -
Regolamento generale sulla protezione dei dati “GDPR”), si precisa che ogni
circostanza inerente alla presente email (il suo contenuto, gli eventuali
allegati, etc.) è un dato la cui conoscenza è riservata al/i solo/i
destinatario/i indicati dallo scrivente. Se il messaggio Le è giunto per
errore, è tenuta/o a cancellarlo, ogni altra operazione è illecita. Le
sarei comunque grato se potesse darmene notizia. This email is intended
only for the person or entity to which it is addressed and may contain
information that is privileged, confidential or otherwise protected from
disclosure. We remind that - as provided by European Regulation 2016/679
“GDPR” - copying, dissemination or use of this e-mail or the information
herein by anyone other than the intended recipient is prohibited. If you
have received this email by mistake, please notify us immediately by
telephone or e-mail.*
_______________________________________________
GeoTools-Devel mailing list
GeoTools-Devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/geotools-devel

Reply via email to