Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

check SPI registration order on Java7 and scan for available SPIs #79

Closed
dromagnoli opened this issue Aug 11, 2014 · 0 comments
Closed
Milestone

Comments

@dromagnoli
Copy link
Member

The order the SPI are registered in the classpath seems changed with Java7.
There are cases now where the sun TIFFreader/writers take priority with respect to our imageio-ext implementation. This sometime results in issues since our implementation has double/float support whilst the standard one doesn't.

We should revisit the method which scans the available registered SPI since it only looks for JDK SPIs whilst the TIFF one is from jai-imageio, not the standard JDK.

@simboss simboss modified the milestone: 1.1.13 Aug 11, 2015
dromagnoli added a commit that referenced this issue Apr 9, 2018
#79: SPI registration and plugins ordering
lveci pushed a commit to senbox-org/imageio-ext that referenced this issue Apr 3, 2020
marpet added a commit to senbox-org/imageio-ext that referenced this issue Apr 6, 2020
* [Issue93] Add GDAL Raster Mask band support

# Conflicts:
#	plugin/tiff/src/main/java/it/geosolutions/imageioimpl/plugins/tiff/TIFFImageReader.java
#	plugin/tiff/src/test/java/it/geosolutions/imageio/tiff/TIFFReadTest.java

* geosolutions-it#107 Dispose image compressors/decompressors along with the reader

# Conflicts:
#	plugin/tiff/src/main/java/it/geosolutions/imageio/plugins/tiff/TIFFDecompressor.java
#	plugin/tiff/src/main/java/it/geosolutions/imageioimpl/plugins/tiff/TIFFImageReader.java

* adding travis support for this branch

# Conflicts:
#	.travis.yml

* JDK6 build out, no longer supported, JDK8 build in

* Release early tiff metadata and friends, the reader can get into the finalizer queue when imageio deferred loading is used, if that happens we don't want to carry around baggage

* Issue#113: Supporting emptyTiles and noData fill

# Conflicts:
#	plugin/tiff/src/main/java/it/geosolutions/imageio/plugins/tiff/PrivateTIFFTagSet.java
#	plugin/tiff/src/main/java/it/geosolutions/imageio/plugins/tiff/TIFFDecompressor.java
#	plugin/tiff/src/test/java/it/geosolutions/imageio/tiff/TIFFReadTest.java

* Removing auto-close of stream on reader.dispose which makes ImageIO.read Unhappy

* Issue117: TIFF LZW/DEFLATE Decompressor doesn't support 16 bits for Horizontal differencing Predictor (geosolutions-it#119) (geosolutions-it#120)

* TIFF/LZW decoder, predictor for 16-bit samples
Horizontal differencing Predictor supports decoding of 16-bit samples if
all channels are 16-bit wide.
* Issue#117: Fixing TIFF LZW/Deflate decompressor supporting 16 bit horizontal diff predictor + Tests

* geosolutions-it#121-Add bands support to EnhancedImageReadParam

* pass in sourceBands

* Release early tiff metadata and friends, the reader can get into the finalizer queue when imageio deferred loading is used, if that happens we don't want to carry around baggage

# Conflicts:
#	plugin/tiff/src/main/java/it/geosolutions/imageioimpl/plugins/tiff/TIFFImageReader.java

* Issue#113: Supporting emptyTiles and noData fill

# Conflicts:
#	plugin/tiff/src/main/java/it/geosolutions/imageio/plugins/tiff/TIFFDecompressor.java
#	plugin/tiff/src/test/java/it/geosolutions/imageio/tiff/TIFFReadTest.java

* Removing auto-close of stream on reader.dispose which makes ImageIO.read Unhappy

* Issue117: TIFF LZW/DEFLATE Decompressor doesn't support 16 bits for Horizontal differencing Predictor (geosolutions-it#119) (geosolutions-it#120)

* TIFF/LZW decoder, predictor for 16-bit samples
Horizontal differencing Predictor supports decoding of 16-bit samples if
all channels are 16-bit wide.
* Issue#117: Fixing TIFF LZW/Deflate decompressor supporting 16 bit horizontal diff predictor + Tests

* 123 Adding VRT support and JUnit tests (geosolutions-it#126) (geosolutions-it#128)

# Conflicts:
#	plugin/gdal/pom.xml

* Improvements to Ant release.xml

Improve Ant release script to support SSH key and custom SSH port

# Conflicts:
#	release.xml

* Removing the Oracle JDK 7 build

Travis no longer supports it

* Removing matlab5 related modules (geosolutions-it#142)

# Conflicts:
#	library/pom.xml
#	plugin/pom.xml

* Dereference EnhancedRandomAccessFiles and memory buffers on imageinputstream geosolutions-it#139

* Fixing compiler version

# Conflicts:
#	pom.xml

* Tentative fix of the test failures

* Expose nodata value as part of the core common metadata geosolutions-it#136

# Conflicts:
#	.gitignore

* ASRP/USRP format support

* Adding headless flag in build

# Conflicts:
#	pom.xml

* Ignoring ECW tests, see geosolutions-it#148

* Adding GEN suffix to supported extensions

* Excluding ECW-JP2K tests the hard way (@ignore would not work). See geosolutions-it#148

* Switching URLs to https

# Conflicts:
#	pom.xml

* SecurityClassification not properly set

* geosolutions-it#131: gdalgeotiff as a test dependency in VRT

* geosolutions-it#149: Supporting tEXt chunk

* geosolutions-it#79: SPI registration and plugins ordering

* geosolutions-it#152: allows TurboJPEG writer exclusion

* Kakadu stream metadata XMLBoxMetadataNode fails to return the actual XML geosolutions-it#155

* geosolutions-it#116: Fixing ABGR + GrayAlpha encoding after bandSelect

# Conflicts:
#	plugin/png/src/test/java/it/geosolutions/imageioimpl/plugins/png/GrayAlpha8bitTest.java

* createInputStreamInstance(...) method in URLImageInputStreamSpi needs to handle null from ImageIOUtilities.urlToFile(sourceURL), fixes geosolutions-it#162

* Remove parent-snapshot version from standalone turbojpeg wrapper jar

# Conflicts:
#	library/libjpegturbo/pom.xml

* Updating the turbojpeg wrapper pom

* geosolutions-it#164 TIFF ExtraSample management

* geosolutions-it#168: TIFFJpegDecompressor sending the whole stream to TurboJPEG decoder

* Optimize scalability and performance of decimation op

* Reading images with the turbojpeg extension can clog up the finalizer queue geosolutions-it#212

* geosolutions-it#158 Support renamed GDAL 2.3.0 'gdalalljni' binding - backport to 1.1.x

# Conflicts:
#	library/gdalframework/src/main/java/it/geosolutions/imageio/gdalframework/GDALUtilities.java

* Cleanup obsolete poms

# Conflicts:
#	library/jmatio/pom.xml
#	plugin/matlab/pom.xml

* Make imageio-ext build on java11

# Conflicts:
#	library/geocore/pom.xml
#	pom.xml

* Upgrading JAXB to remove illegal reflective access issues (aligns it with geotools/geoserver

# Conflicts:
#	pom.xml

* JDK11 - fix jaxb version number

* Remove codehaus repo

# Conflicts:
#	pom.xml

* Do not use a JDK internal class

* Removing illegal access from image input streams

* Cleaning up repositories

# Conflicts:
#	pom.xml

* Fixing wrong className for imageOutputStream

* geosolutions-it#177: RasterByte skipping bytes provider

* ClientStreamAbortedException logged at SEVERE level, should be at lower level
geosolutions-it#181

* issue-185: FileImageInputStream improvements: fileChecks remove and fileChannel flag restore

* issue-190: Skip external files lookup

* geosolutions-it#58 Support for floating point predictor (type 3) in TIFF Deflate decompressor.

* Update to GDAL 2.x bindings geosolutions-it#198

# Conflicts:
#	library/gdalframework/src/main/java/it/geosolutions/imageio/gdalframework/GDALUtilities.java
#	pom.xml

* AsciiGridsImageReader closes the image input stream on reset, breaks GeoTools image mosaic geosolutions-it#195

* Moving skip lookup flag to utility class

* Restoring vecmath version being changed by jenkins as part of sed replace

# Conflicts:
#	plugin/unidata-netcdf/netcdfconverters/pom.xml

* Restoring vecmath version being changed by jenkins as part of sed replace: 2nd part

# Conflicts:
#	library/netcdf-core/pom.xml
#	pom.xml

* Fix off-by-one errors in ascii grid pixel sampling

Out of order tile cache look ups could ended up being off-by-one and losing
their first digit.  It is now more careful with handling whitespace when
marking indexes

Thanks to Andrea Aime for assistance with the JAI library

* Adding support for GDAL scale/offset metadata

* Upgrade junit to 4.12

# Conflicts:
#	pom.xml

* Check JNI and Native library versions when loading Kakadu

Add utility methods to KakaduUtilities to return the
version strings returned by both the JNI and the native
libraries and issue a warning if there's a version mismatch
when loading the native library.

* Enable running with Kakadu 7.x and lower versions of the library

Due to a binary incompatibility in kdu_jni.jar between
versions 7.x and lower, JP2KKakaduImageWriter delegates
to KakaduUtilities.initializeRGBChannels()
when it gets an IndexColorModel to set up the Jp2_channels,
which uses reflection to invoke Jp2_channels.Set_colour_mapping()
with the correct number of arguments depending on the
Kakadu JNI library version.

JP2KKakaduWriteTest is updated to use org.junit.Assume to
skip tests based on the availability of kakadu's native
library, and also to skip those tests that

* Re-enable failing JP2KKakaduWriteTest tests with Kakady 7.x

kdu_jni.Siz_params.Parse_string("Qstep=0.0000152588") fails
on 7.x. The tests that reached that call (by means of
JP2KKakaduImageWriter.initializeCodestream(...)) were ignored.

This patch implements a work around given that by Kakadu 7.10
release notes (http://kakadusoftware.com/version-notes/version-7-10/)
omiting this parameters seems safe.

* Test KakaduUtilities.initializeRGBChannels()

Add KakaduUtilitiesTest to verify the correct calls
to kdu_jni.Jp2_channels.Set_colour_mapping() are
performed depending on the kdu_jni.jar version
available.

The tests don't require the native library to be
present, so they can be run with different JNI
library versions.

e.g.:

mvn test -Dkakadu.version=5.2.6
mvn test -Dkakadu.version=7.10.6

regardless of which/if the native library is installed

# Conflicts:
#	pom.xml

* Renamed pom version 1.3.2

# Conflicts:
#	library/gdalframework/pom.xml
#	library/geocore/pom.xml
#	library/imagereadmt/pom.xml
#	library/pom.xml
#	library/streams/pom.xml
#	library/test-data/pom.xml
#	library/utilities/pom.xml
#	plugin/arcgrid/pom.xml
#	plugin/gdal/gdalarcbinarygrid/pom.xml
#	plugin/gdal/gdalarcgrid/pom.xml
#	plugin/gdal/gdalbsb/pom.xml
#	plugin/gdal/gdaldoq1/pom.xml
#	plugin/gdal/gdaldoq2/pom.xml
#	plugin/gdal/gdaldted/pom.xml
#	plugin/gdal/gdalecw/pom.xml
#	plugin/gdal/gdalecwjp2/pom.xml
#	plugin/gdal/gdalehdr/pom.xml
#	plugin/gdal/gdalenvihdr/pom.xml
#	plugin/gdal/gdalenvisat/pom.xml
#	plugin/gdal/gdalerdasimg/pom.xml
#	plugin/gdal/gdalgeotiff/pom.xml
#	plugin/gdal/gdalhdf4/pom.xml
#	plugin/gdal/gdalidrisi/pom.xml
#	plugin/gdal/gdaljpeg/pom.xml
#	plugin/gdal/gdalkakadujp2/pom.xml
#	plugin/gdal/gdalmrsid/pom.xml
#	plugin/gdal/gdalmrsidjp2/pom.xml
#	plugin/gdal/gdalnitf/pom.xml
#	plugin/gdal/gdalrpftoc/pom.xml
#	plugin/gdal/gdalsrp/pom.xml
#	plugin/gdal/gdalvrt/pom.xml
#	plugin/gdal/gdalwcs/pom.xml
#	plugin/gdal/gdalwms/pom.xml
#	plugin/gdal/pom.xml
#	plugin/jmagickjpeg/pom.xml
#	plugin/kakadujp2/pom.xml
#	plugin/nitronitf/pom.xml
#	plugin/png/pom.xml
#	plugin/pnm/pom.xml
#	plugin/pom.xml
#	plugin/tiff/pom.xml
#	plugin/turbojpeg/pom.xml
#	plugin/unidata-netcdf/grib1/pom.xml
#	plugin/unidata-netcdf/hdf4/pom.xml
#	plugin/unidata-netcdf/netcdf/pom.xml
#	plugin/unidata-netcdf/netcdfconverters/pom.xml
#	plugin/unidata-netcdf/pom.xml
#	pom.xml
#	release/pom.xml

* remove dupe gdal version

* update versions to 1.3.2-SNAP

* Update and rename readme.txt to README.md
# Conflicts:
#	README.md

* broke code up into separate modules

* removed ds_store files

* converted http range reader to use okhttp; working azure reader

* implemented CogUri source

* fixed refactoring bugs

* added cache test

* added maven build profiles

* updated docs; added ability to read reagion for s3 from url param

* updated profile names

* removed test class

* final cleanup

* removed .DS_Store files; replaced print statements with logging

* modifications per @aaime peer review

* removed azure support due to unstable library support

* PR 211 - final updates

* moved header length source from CogTileInfo to CogImageReadParam

* added canDecodeInput method to image reader spi

* added anonymous s3 support; added online profile for tests

* fixing Oracle JDK8 Failure, by adding ubuntu trusty as dist

* support requestPayer

* allow Float64

* update versions to 1.3.3-SNAP

* added profile to be able to deploy to snap repository (deploysnap)

* removed test scope from imageio-ext-streams dependency
ImageOutputStreamAdapter is used in PNGImageWriterSPI

* added snap repository for plugins

Co-authored-by: n-lagomarsini <[email protected]>
Co-authored-by: Andrea Aime <[email protected]>
Co-authored-by: Daniele Romagnoli <[email protected]>
Co-authored-by: ugomos <[email protected]>
Co-authored-by: Alessandro Parma <[email protected]>
Co-authored-by: Johannes Weskamm <[email protected]>
Co-authored-by: Tiago Vieira <[email protected]>
Co-authored-by: Krzysztof Szafrański <[email protected]>
Co-authored-by: Nick Griffiths <[email protected]>
Co-authored-by: Gabriel Roldan <[email protected]>
Co-authored-by: Hudson <[email protected]>
Co-authored-by: Josh Fix <[email protected]>
Co-authored-by: Marco Peters <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants