SIS 1.4 Release notes

This release contains the upgrade from Java 8 to Java 11, including the migration to Java Platform Module System (JPMS). This release also contains various bug fixes improving the stability. Cloud Optimized GeoTIFF (COG) support has been completed with the automatic use of HTTP Range requests.

In this release, the source code of Apache SIS project has been restructured with a new directory layout. The new layout uses Module Source Hierarchy and is described in annex of this release notes. This change can be ignored when only the pre-compiled JAR files are used.

Incompatible changes

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

  • In the org.apache.sis.storage.aggregate package, two classes got an incompatible change: JoinFeatureSet and ConcatenatedFeatureSet. In those two classes, the StoreListeners argument given to the constructor is replaced by a Resource argument.
  • The constant value defined by PlanarImage.SAMPLE_RESOLUTIONS_KEY has been modified from singular to plural (i.e., a “s” has been added to the String value). It was done for consistency with SAMPLE_DIMENSIONS_KEY. Projects do not need to modify their code, only to recompile.
  • In the method signatures of the Filter and Expression interfaces, parameterized type <? super R> become <R>.
  • org.apache.sis.util.ResourceInternationalString become an abstract class. Furthermore the constructor method signature changed. Those changes were needed for JPMS.

Noticeable changes

New Features

  • SIS-574 — Grid coverage dimensionality reduction
  • SIS-575 — Aggregation of bands of different grid coveragess
  • SIS-571 — Add a DataStores.openWritable(String, Object) method

Improvements

  • SIS-561 — Upgrade to Java 11
  • SIS-563 — Upgrade from GeoAPI 3.0.1 to 3.0.2 and JSR-363 to JSR-385
  • SIS-560 — Remove the boolean return value in WritableFeatureSet.removeIf(Predicate)
  • SIS-573 — Allow data stores to be closed asynchronously
  • SIS-569 — Replace Path by URI for datum shift grid files
  • SIS-577 — Replace ColorModel argument by a Colorizer interface
  • SIS-568 — Simplify matrix internal and double-double arithmetic
  • SIS-136 — Fused multiply-add in org.apache.sis.referencing.operation
  • SIS-86 — Refactor @Configuration annotation into a real Configuration class

Bug fixes

  • SIS-572 — Assign GeoTIFF projection 15 to Polar Stereographic variant B instead of A

Tasks

  • INFRA-24907 — Rename SIS “master” branch to “main”
  • SIS-582 — Migrate build system from Maven to Gradle
  • SIS-581 — Replace java.xml.bind dependencies by jakarta.xml.bind
  • SIS-526 — Replace org.apache.sis.storage.geotiff.Tags by javax.imageio.plugins.tiff
  • SIS-500 — Deprecate (for removal) InterpolatedMolodenskyTransform
  • SIS-562 — Deprecate and remove NullArgumentException
  • SIS-193 — Remove the workaround for ServiceLoader bug
  • SIS-469 — Remove support for JAXB internal implementation (JDK 8)
  • SIS-565 — Remove @module and @preformat taglets
  • SIS-585 — Remove deprecated dimension attributes from OperationMethod
  • SIS-578 — Remove contravariance in filters and expressions
  • SIS-580 — Remove TestSuite classes
  • SIS-566 — Remove instantiation of primitive wrappers
  • SIS-586 — Abandon NilObject support of primitive wrappers
  • SIS-567 — Resolve serialization compiler warnings
  • SIS-570 — Assign loggers to static final fields
  • SIS-584 — Stable selection of default factories
  • SIS-579 — Do not extend JUnit Assert class
  • SIS-587 — Rename internal packages