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)

Reply via email to