Claus Ibsen created CAMEL-25117:
-----------------------------------
Summary: camel-spring-xml - XML camelContext configuration and
JAXB dumper: fix bugs found in a deep review
Key: CAMEL-25117
URL: https://issues.apache.org/jira/browse/CAMEL-25117
Project: Camel
Issue Type: Bug
Components: camel-spring-xml, camel-core
Reporter: Claus Ibsen
The Spring XML <camelContext> factory bean (camel-core-xml / camel-spring-xml)
and the JAXB based XML route dumper (camel-xml-jaxb) have a number of small
bugs:
# {{<routeController supervising="false"/>}} still enables the supervising
route controller (any value of the attribute did).
# The context-level {{<resilience4jConfiguration>}},
{{<faultToleranceConfiguration>}}, {{<defaultResilience4jConfiguration>}} and
{{<defaultFaultToleranceConfiguration>}} elements are not passed on by the
Spring namespace handler, so they are never applied. In addition
{{faultToleranceConfiguration}} is declared with the Resilience4j type, so the
generated camel-spring.xsd rejects the fault tolerance options.
# {{<streamCaching enabled="false"/>}} does not turn off stream caching, and
the stream caching strategy is always forced enabled. The {{enabled}} option
now maps to the context stream caching (unless the {{streamCache}} attribute is
set), and the context enables the strategy when stream caching is in use.
# The {{bufferSize}} option of {{<streamCaching>}} and the
{{mbeanServerDefaultDomain}} option of {{<jmxAgent>}} are ignored.
# The {{<propertyPlaceholder>}} is set up after the type converter and health
check options, so property placeholders in those {{<camelContext>}} attributes
(e.g. {{typeConverterStatisticsEnabled="{{stats}}"}}) cannot be resolved.
# A {{spoolRules}} reference that does not exist in the registry is silently
ignored; it now fails.
# A {{BacklogTracer}} bean is added as a service only, and not as a context
plugin (as camel-main does), so it is not the backlog tracer the context uses.
# The {{retriesExhaustedLogLevel}} and {{retryAttemptedLogLevel}} options of
{{<redeliveryPolicyProfile>}} do not support property placeholders.
# {{GlobalSSLContextParametersSupplier}} and {{CamelContextCustomizer}} beans
are not picked up (camel-main does).
# JAXB XML dumper: when dumping with {{sourceLocation=true}} the source line
numbers and locations are only included when debugging is enabled, also on the
re-dump after resolving property placeholders, and that re-dump goes to the
dumper looked up from the context instead of the JAXB dumper itself.
Not changed:
* The local properties of the properties component used while resolving
placeholders in the JAXB dumper: {{setLocalProperties(null)}} pops the
properties that were pushed, so it is already paired correctly.
* Vault configurations, StartupStepRecorder, CliConnectorFactory,
VariableRepositoryFactory, BacklogDebugger and ExchangeFactory beans are
configured by camel-main but not by the Spring XML {{<camelContext>}}; this can
be added separately if needed.
_Claude Code on behalf of Claus Ibsen_
--
This message was sent by Atlassian Jira
(v8.20.10#820010)