OpenSlide Java 0.13.0 released

Benjamin Gilbert bgilbert+openslide at cs.cmu.edu
Sun May 5 12:16:22 EDT 2024


I'm pleased to announce the release of OpenSlide Java 0.13.0.
OpenSlide Java is the official Java-language binding to OpenSlide, but
does not yet have a stable API.

Starting with this release, OpenSlide Java loads OpenSlide via Java's
new Foreign Function and Memory API instead of the legacy Java Native
Interface.  This eliminates the need for a platform-specific glue
library, allowing OpenSlide Java to be shipped as a single
platform-independent JAR.  With this change, OpenSlide Java uses any
copy of OpenSlide already loaded into the JVM with System.load() or
System.loadLibrary(), and otherwise loads OpenSlide from the operating
system's library search path.

This release also adds support for OpenSlide 4.0.0's cache management
and ICC color profile APIs.  In addition, it removes the Autotools+Ant
and Meson build systems in favor of Maven.

OpenSlide Java 0.13.0 requires Java ≥ 22 and OpenSlide ≥ 4.0.0.  Users
with older versions of these dependencies should continue using
OpenSlide Java 0.12.4 until they can upgrade.

Alongside this release, OpenSlide binary build 4.0.0.3 removes
OpenSlide Java, since platform-specific Java builds are no longer
necessary.  A prebuilt JAR is available as part of the OpenSlide Java
release.

The new releases are available at:

    https://openslide.org/download/

The full changelog is below.

Thanks,
--Benjamin Gilbert


## Breaking changes

* Require Java ≥ 22
* Require OpenSlide ≥ 4.0.0
* Switch from JNI to FFM, making OpenSlide Java builds platform-independent
* Build with Maven
* Remove Autotools+Ant and Meson build systems
* Stop shipping source tarball, in favor of GitHub source archive
* Rename JAR to openslide-java-$version.jar

## New features

* Support OpenSlide cache management API
* Support reading ICC color profiles from slides and associated images
* Add OpenSlide.readRegion() method returning a BufferedImage
* Add OpenSlide.PROPERTY_NAME_ICC_SIZE
* Automatically close unreferenced OpenSlide and OpenSlideCache objects
* Add one-argument OpenSlideDisposedException constructor
* Ship JAR as release artifact

## Deprecations

* Deprecate OpenSlide.dispose() in favor of OpenSlide.close()
* Deprecate zero-argument OpenSlideDisposedException constructor


More information about the openslide-users mailing list