[Release] GroupDocs.Assembly for Java 26.9

Dear GroupDocs users, we’re pleased to announce GroupDocs.Assembly for Java 26.9. This release brings the bundled Aspose engines up to the versions GroupDocs.Assembly for .NET is built against and fixes several defects that came with the old ones, the evaluation watermark Aspose.Cells used to write among them. The public API is unchanged, nothing was removed or renamed and the Java 8 baseline stays as it is, so no code changes are required — the one thing to plan for is that assembled documents now differ byte for byte from the ones 26.8 produced, as described below.

Update — the bundled Aspose components are current again

The Aspose components merged into the library are licensed at run time with a venture license whose subscription had run out, so every component released after it refused the license. That is what kept the product on components of 2020. With the license renewed, all five are now at the versions the .NET product uses:

Component 26.8 26.9
Aspose.Words 23.10 26.3
Aspose.Cells 20.7 26.3
Aspose.Slides 20.2 26.2
Aspose.Email 20.7 26.1
Aspose.BarCode 20.4 26.6

Maven coordinates did not change:

<dependency>
    <groupId>com.groupdocs</groupId>
    <artifactId>groupdocs-assembly</artifactId>
    <version>26.9</version>
</dependency>

Scope.

  • The public API is unchanged: same packages, same classes, same signatures. No migration is needed.
  • Assembled documents are equivalent but not identical to the ones 26.8 produced. Newer engines write their own markup details — w14:paraId and w14:textId on every Word paragraph, more default attributes on the shape and paragraph properties of presentations, a different set of parts in workbooks. If your tests compare results against stored reference documents byte for byte, regenerate those references.
  • Rendering, font handling and format support follow the new component versions.
  • Java 8 or later is still required at runtime, and the published jar is still compiled for Java 8 (class file version 52). (ASSEMBLYJAVA)

Fix — Aspose.Cells no longer writes the evaluation watermark

Aspose.Cells 20.7 ignored a current license without reporting anything and kept stamping the evaluation watermark into every spreadsheet it wrote. Where the other components threw on the expired venture license, Cells stayed silent, so a correctly licensed application produced watermarked XLSX files.

Scope.

  • Spreadsheets assembled by 26.9 carry no evaluation watermark.
  • Affects every release up to and including 26.8. There is no workaround in the earlier versions — the fix is the update. (ASSEMBLYJAVA)

Fix — templates that measure text failed on the font fallback settings

Resources of the repackaged Aspose.Foundation were placed where the resource lookup could not reach them, so anything that needs the font fallback settings failed in a static initializer:

Aspose.Words native libs cannot be loaded. ...
java.lang.ExceptionInInitializerError
Caused by: java.lang.IllegalStateException:
    Resurce not found Aspose.Resources.MsOfficeFallbackSetting.xml.

A DataMatrix barcode tag such as <<barcode [value] -dm>> is the shortest way to reproduce it.

Scope.

  • Affects the released 26.7 and 26.8 jars.
  • Fixed in 26.9; no configuration on your side is involved. (ASSEMBLYJAVA)

Fix — barcode defects

Several barcode fixes that were made in GroupDocs.Assembly for .NET had never reached Java, and two more are specific to this platform.

Scope.

  • The code text of Pdf417 is placed correctly.
  • A transparent barcode colour counts as undefined, with black and white as the defaults, instead of being taken literally.
  • Codabar and MaxiCode are given the minimum dimension they need; MaxiCode used to fail at the dimension the documented templates produce.
  • An image too small for its barcode no longer throws.
  • The code text of a valid ITF6 is five digits, not six. (ASSEMBLYJAVA)

Fix — thread local leak in licensing

Clearing the license verification state stored null in a thread local instead of removing the entry, which kept it alive for as long as the thread lived. In containers that reuse pooled threads this accumulated.

Scope.

  • Applications running on a thread pool — application servers, long-lived services — no longer retain an entry per worker thread.
  • Behaviour of the licensing API is unchanged. (ASSEMBLYJAVA)

Fix — packaging of the published jar

Three things about the package itself, none of which touches the code you write against it.

Scope.

  • The jar declares Automatic-Module-Name: com.groupdocs.assembly, so requires com.groupdocs.assembly; in a module-info.java is stable. Until now the module name was derived from the file name.
  • META-INF carries the third party notices of all five bundled Aspose components — Words, Cells and BarCode were missing from the jar and present only in the zip distribution — next to a notice naming the product, its license and what it embeds.
  • The license link in the POM, and in the EULA pages of the zip, pointed at company.groupdocs.com, which no longer resolves. It points at https://about.groupdocs.com/legal/eula now. (ASSEMBLYJAVA)

Resources