Skip to content

ARTEMIS-6068 Broker plugins do not receive updated properties on broker.xml reload#6455

Draft
mbengtsson wants to merge 1 commit into
apache:mainfrom
mbengtsson:main
Draft

ARTEMIS-6068 Broker plugins do not receive updated properties on broker.xml reload#6455
mbengtsson wants to merge 1 commit into
apache:mainfrom
mbengtsson:main

Conversation

@mbengtsson

Copy link
Copy Markdown
Contributor

Jira: https://issues.apache.org/jira/browse/ARTEMIS-6068

This closes a gap in the existing broker.xml reload model. Artemis already reloads several broker-managed configuration areas, but broker plugin properties are only delivered during plugin initialization.

Without a dedicated reload callback, plugins that need to react to changed configuration must implement their own file watching and parsing logic outside the broker.

This change adds propertiesReloaded(Map<String, String>) as a callback on ActiveMQServerBasePlugin and invokes it for matching already-running plugin instances during broker.xml reload.

The existing broker-plugin XML format is preserved. Matching is by class name because broker-plugin entries currently have no name/id attribute.

Tests: BrokerPluginReloadTest

…er.xml reload

Broker plugins have no way to learn that their configured properties
changed when broker.xml is reloaded. Store parsed class names and
properties during reload. Notify matching running plugin instances via
a new propertiesReloaded(Map<String, String>) callback on
ActiveMQServerBasePlugin.
@jbertram

Copy link
Copy Markdown
Contributor

I'm concerned that there's a fundamental disconnect between the current methods used to manage broker plugins and the new methods you've added. Consider the following for a user managing an embedded broker:

  1. They might call Configuration#setBrokerPluginConfigurations and then expect those plugins to be deployed when they start their broker when, in fact, they won't.
  2. They might call Configuration#registerBrokerPlugin and then expect to get this plugin's configuration when they invoke Configuration#getBrokerPluginConfigurations later, but they won't.

Additionally, these new methods store & manage broker plugin configuration data in different data structures from the existing methods so it's likely that things will get out of sync.

Ultimately, I think this functionality must be implemented within the confines of the existing API. If this is not possible then we'll have to break the API in order to support this functionality which can only happen in a major release (e.g., 3.0).

@jbertram jbertram marked this pull request as draft June 25, 2026 17:41
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants