Child pages
  • API Changes in Structure 2.0

This documentation relates to an older version 2.4 of the Structure Plugin for JIRA. View the current documentation home.

Skip to end of metadata
Go to start of metadata

1. Minor API Release

Although this is a major Structure release, the API changes are backward-compatible. All plugins compiled against previous 7.x version of the API (6.x for JIRA 4.4) should work without recompilation.

The new API version contains interfaces to some of the new functionality and accompanying data classes.

JIRA Version

New API Version

5.0 – 5.2

7.2.0

4.4.x

6.2.0

See Structure API Versions for full version information and downloads.

2. REST API: New /structure Resource

An entirely new REST resource, /structure, has been added to provide you with the ability to manage structures remotely. You can create, update, delete and query structures.

For details, see Structure Resource in the API Reference.

3. Java API: Backwards-Compatible Changes

3.1. StructureViewManager and com.almworks.jira.structure.api.view package

The new manager is responsible for Views, a new type of entity introduced in Structure 2.0. You can create, retrieve, search and update views.

Related documentation: Managing Views, Views Menu

3.2. StructureFavoriteManager interface

This manager is responsible for keeping track of favorite structures.

Related documentation: Favorite Structures

3.3. StructureListener contract revised

After careful examination we discovered that StructureListener, provided in the earlier versions of the API, may have an undocumented behavior – namely, the order of notifications is not guaranteed to be the same as the order of mutations. If you have changes A and then B, you might be notified about B first, and then about A.

For some listeners this might break things, so we have a) documented this behavior, and b) introduced another type of listener, SequentialStructureListener, which can be used to ensure that you get notifications in the right order. However, it comes with a price of increased complexity – see the description of the listener interface.

3.4. Other Changes

  • StructureJobManager.execute() method added to execute a job, bypassing the common single-thread queue.
  • SyncLogger utility class added to make it simple for synchronizer authors to provide many details in the log messages from synchronizers.
  • Additional features in La class and other minor changes.