Skip to content

2026.10.2 — 2026-10-01 ​

Breaking ​

  • Raise the plugin contract to 8 for the stream hub's constructor (2e201742)

    The replica bus (2026.10.0) gave the plugin API class SseHub a new constructor (it takes the StudioBus and an ObjectMapper) and removed the no-argument one. japicmp flags that as a break of the plugin API, and no release raised the contract for it, so the plugin API of that release was never published to Maven Central.

Added ​

  • Let a plugin require a license that administrators upload (e665fdd9)

    A plugin can now say it needs a license, and Studio gives administrators a place to put it. Studio stores the file and shows the verdict the plugin reports; it never reads the file and knows no license scheme, so a plugin author can use their own.

    What you will notice:

    • A plugin's descriptor may state "requiresLicense": true. The install review says so, and the plugin list shows a License column and a badge (No license, Not checked yet, Licensed, License expiring, License expired, Over its license limit, License not accepted). A plugin that needs none shows nothing.
    • The plugin drawer has a License tab to upload, replace and remove the file. Both changes need a plugin installer who signed in within the last five minutes, and are audited with the plugin, the file's SHA-256 and its size, never its content. The API is PUT and DELETE /api/v1/admin/plugins/{id}/license (raw bytes, at most 64 KiB; 400 when empty, 413 when larger, 415 for another content type).
    • /actuator/health/studio gains pluginLicenses, DEGRADED while a running plugin that needs a license has none, has one its plugin did not accept (or has not looked at for five minutes), or has one that ends within 30 days. It is not part of readiness.
    • Database: new table plugin_license (changeset kernel-plugin-0010), kept when a plugin is uninstalled and deleted when it is purged.

    For plugin authors (new @PluginApi types):

    • PluginLicense, injected like PluginSecrets: file() returns the plugin's own file, report(sha256, verdict) says what the plugin made of it. A report for a file that was replaced in the meantime is ignored.
    • PluginLicenseChanged, delivered to the plugins on every Studio instance when the file is uploaded, replaced or removed.
    • StudioInfo.brokerInstances(), the number of broker nodes the installation manages, a count with no names, for a license sized by it.

Fixed ​

  • Raise the plugin contract to 8 for the stream hub's constructor (2e201742)

    The replica bus (2026.10.0) gave the plugin API class SseHub a new constructor (it takes the StudioBus and an ObjectMapper) and removed the no-argument one. japicmp flags that as a break of the plugin API, and no release raised the contract for it, so the plugin API of that release was never published to Maven Central.

Apache-2.0. Apache ActiveMQ and Apache ActiveMQ Artemis are trademarks of the Apache Software Foundation. Artemis Studio is an independent project, not produced by, endorsed by, or affiliated with the ASF.