Claus Ibsen created CAMEL-25090:
-----------------------------------
Summary: camel-core - Event notifiers and vault configuration: fix
bugs found in a deep review
Key: CAMEL-25090
URL: https://issues.apache.org/jira/browse/CAMEL-25090
Project: Camel
Issue Type: Bug
Components: camel-core
Reporter: Claus Ibsen
A review of the event notifiers and the vault configuration found these bugs:
# An exception thrown from EventNotifier.isEnabled is not caught (only
exceptions from notify are), so it breaks routing: a route fails to start
(RouteStarted/RouteAdded), the CamelContext fails to start or stop, sending
fails (ExchangeSending/ExchangeSent), and with StepStarted the exchange never
completes.
# The ExchangeSentEvent is only emitted when some event notifier accepted the
ExchangeSendingEvent. A notifier with ignoreExchangeSendingEvents=true (such as
the sql-trace dev console), or whose isEnabled only accepts ExchangeSentEvent,
never receives any sent events.
# The ExchangeRedeliveryEvent is filtered by ignoreExchangeFailedEvents instead
of ignoreExchangeRedeliveryEvents, so ignoreExchangeRedeliveryEvents has no
effect, and a notifier that ignores failed events (such as the camel-event
ExchangeRedelivery consumer) gets no redelivery events.
# When more than one vault is configured with camel.vault.* properties (such as
camel.vault.aws.* and camel.vault.hashicorp.*), only the first is configured,
the others are set on a nested configuration and are lost (without any warning).
# With camel-main, VaultConfiguration.getAwsVaultConfiguration() (and the other
getters) return null even when the vault is configured with camel.vault.aws.*,
as VaultConfigurationProperties keeps its own vault configurations and only
overrides the fluent aws()/gcp()/... methods.
# An event notifier added to the ManagementStrategy after CamelContext has been
started receives events but is never started (and it is not stopped when
removed).
Not changed:
* A vault configuration bean from the registry (such as AwsVaultConfiguration)
is not used by the fluent aws() method of the camel-main vault configuration
when camel.vault.aws.* is also used.
* The camel-event component still enables ExchangeSending events for an
ExchangeSent consumer (no longer needed, but harmless).
_Claude Code on behalf of Claus Ibsen_
--
This message was sent by Atlassian Jira
(v8.20.10#820010)