Thanks Andrea that is great, I thought there was going to continue to be a way to use “unsafe”? Found it - there is a jdk.unsupported module for popular internal packages (see https://www.azul.com/javas-magic-sauce/).
I am not sure if the results of jdeps represent a blocker for jars on the classpath, or just modules? I do note that unsafe changed a bit so we may have forced updates regardless. On Sun, Sep 30, 2018 at 2:07 AM Andrea Aime <andrea.a...@geo-solutions.it> wrote: > 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 > -- -- Jody Garnett
_______________________________________________ GeoTools-Devel mailing list GeoTools-Devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/geotools-devel