SIS 1.5 Release notes

This release contains the upgrade of EPSG geodetic dataset from version 9 to version 12, which implies an upgrade from ISO 19111:2007 to ISO 19111:2019. This release also contains various bug fixes improving the stability. A GeoTIFF writer and a binding to GDAL for two-dimensional rasters have been added.

Incompatible changes

The following changes in Apache SIS 1.5 are incompatibles with the previous release (SIS 1.4):

  • In org.apache.sis.util.collection.IntegerList, the removeLast() return type changed from int to Integer for compatibility with the java.util.SequencedCollection interface introduced in Java 21.
  • In org.apache.sis.coverage.grid.GridDerivation, the getSubsampling() and getSubsamplingOffsets() return type changed from int[] to long[] (SIS-605)
  • In org.apache.sis.feature.AbstractIdentifiedType, the getDesignation() and getDescription() methods now return Optional<InternationalString>.
  • In org.apache.sis.referencing.operation.AbstractCoordinateOperation, the getInterpolationCRS() method now returns an Optional.
  • In org.apache.sis.referencing.operation.DefaultConversion, the specialize(…) method has its Class argument removed.
  • In org.apache.sis.metadata.iso.distribution.DefaultDigitalTransferOptions, the type of transferFrequency property changed from PeriodDuration to java.time.temporal.TemporalAmount.
  • In org.apache.sis.referencing.datum.TimeDependentBWP, the return type of getTimeReference() changed from java.util.Date to java.time.temporal.Temporal.
  • In org.apache.sis.referencing.datum.BursaWolfParameters, the argument of getPositionVectorTransformation(Date) changed to java.time.temporal.Temporal. There is no method overloading for avoiding ambiguity in the common case where argument is null.
  • In org.apache.sis.setup.OptionKey, the parameterized type of the TIMEZONE value changed from java.util.TimeZone to java.time.ZoneId.
  • In org.apache.sis.xml.XML, values associated to the TIMEZONE property are now of type java.time.ZoneId. However, the (un)marshaller continue to accept also java.util.TimeZone when user sets the value.
  • The org.opengis.referencing.datum.PixelInCell code list has been replaced by the org.apache.sis.coverage.grid.PixelInCell enumeration, except in the now deprecated DefaultImageDatum. This is in preparation for the PixelInCell code list removal from ISO 19111:2019.
  • org.apache.sis.storage.sql.SQLStore became abstract. The concrete class is now org.apache.sis.storage.sql.SimpleFeatureStore (SIS-603).

Noticeable changes

Deprecations

Among the deprecated methods, the following one is worth a notice because of its wide use:

  • In org.apache.sis.geometry.GeneralDirectPosition, the setCoordinate(double...) method has been deprecated. The replacement is setCoordinates (plural form).

New Features

  • SIS-589 — Add a GeoTIFF writer
  • SIS-604 — GDAL data store for reading rasters
  • SIS-583 — Implementation of OGC Symbology Encoding
  • SIS-233 — Equidistant Cylindrical (EPSG:1028)
  • SIS-599 — Robinson projection

Improvements

  • SIS-518 — Update EPSG geodetic dataset to version 10.x
  • SIS-592 — Upgrade from ISO 19111:2007 to 19111:2019
  • SIS-612 — Upgrade from ISO 19162:2015 to ISO 19162:2019
  • SIS-490 — Compound CRS creation through codes: OGC/Time
  • SIS-302 — Implement the spherical case of EllipsoidToCentric
  • SIS-384 — (Affine → Passthrough → Affine) should be simplified as (Affine → Passthrough) or (Passthrough → Affine)
  • SIS-593 — Resolve auxiliary files relatively to GML or WKT file providing parameter values
  • SIS-594 — Accept transform steps with swapped (source, target) CRS
  • SIS-595 — AbstractMathTransform.tryConcatenate(…) needs more context
  • SIS-608 — Improve robutness of SQLStore
  • SIS-609 — SQLStore should accept “sis:identifier” in queries
  • SIS-387 — Automatically resolve links in metadata document
  • SIS-470 — MD_ReferenceSystemTypeCode at XML marshalling time
  • SIS-596 — Better encapsulation of modules internal

Bug fixes

  • SIS-619 — Wrong parameter names in Affine parametric transformation
  • SIS-606 — SQLStore fails if a table contains 2 foreigner keys referencing the same table
  • SIS-607 — CoverageAggregator does not handle image mosaic correctly

Tasks

  • SIS-457 — Migrate tests to JUnit 5
  • SIS-602 — Fix compatiblity with Java 22
  • SIS-597 — Remove usages of Projection sub-interfaces
  • SIS-562 — Deprecate and remove NullArgumentException
  • SIS-500 — Deprecate (for removal) InterpolatedMolodenskyTransform
  • SIS-611 — Drop $SIS_DATA/Databases/ExternalSources directory
  • SIS-603 — Make SQLStore abstract for allowing more customization
  • SIS-605 — Express subsamplings as long integers