1. Minor Java API Release

There are a few API additions coming with this release. The changes are backwards-compatible, so any code using API 16.x should work fine.

Jira Version

New API Version

7.2+

16.8.0

See Structure API Versions for full version information and downloads.

2. Compatible Changes in the Java API

2.1. Generic items

Generic items are simple items managed by Structure. They are much like Structure's folders, but they can also contain an icon and a description. Generic items are meant to be used by other ALM Works products and third-party apps that integrate with Structure. Server-side APIs for generic items were introduced in Structure 4.4, and with the current release we are shipping client-side and UI code, making it possible to use generic item types in third-party apps.

Documentation: Declaring a New Generic Item Type

2.2. GenerationContext changes

We have added a few methods to the GenerationContext interface.

  • itemsUpdate(DataVersion) returns an item version update since the given version. It can be used to invalidate item value caches kept in the generated forest.
  • putTempObject() and getTempObject() allow the developer to associate arbitrary data with the current generation context. Unlike putObject(), putTempObject() does not keep the passed objects in memory after the current generation task completes.

2.3. ArrayForest changes

A new method named addForestMutuallyExclusive() was added to ArrayForest. It is a faster alternative to addForest() and mergeForest() that can be used when the added forest is guaranteed to be mutually exclusive with the forest it's added to.

We have also optimized the implementation of another similar method, replaceSubtreesMutuallyExclusive(), which now performs fewer memory allocations when called frequently.

2.4. Miscellaneous

  • Added StructureUtil.nonBlank(), which is used throughout the code to protect against null, empty and blank strings.
  • Added a copying constructor to ProcessDisplayParameters.