[ 
https://issues.apache.org/jira/browse/CAMEL-23897?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Claus Ibsen resolved CAMEL-23897.
---------------------------------
    Resolution: Fixed

> PropertiesDevConsole should show application properties from all runtimes 
> (Spring Boot, Quarkus)
> ------------------------------------------------------------------------------------------------
>
>                 Key: CAMEL-23897
>                 URL: https://issues.apache.org/jira/browse/CAMEL-23897
>             Project: Camel
>          Issue Type: Improvement
>          Components: camel-spring-boot
>            Reporter: Claus Ibsen
>            Priority: Major
>             Fix For: 4.22.0
>
>
> The PropertiesDevConsole (Configuration tab in camel-tui) is empty for Spring 
> Boot and Quarkus apps because PropertiesComponent.loadProperties() only 
> returns properties from Camel own sources (initialProperties, .properties 
> files, overrideProperties). Application properties live in Spring Environment 
> / SmallRye Config and are not enumerable through Camel PropertiesComponent.
> For JBang/standalone Camel, all properties go through Camel 
> PropertiesComponent so the dev console works fine.
> h3. Constraints
> *Cannot register a LoadablePropertiesSource wrapping the runtime 
> environment:* DefaultPropertiesLookup iterates all sources for placeholder 
> resolution, so it would conflict with SpringPropertiesParser / SmallRye and 
> cause double-resolution or precedence issues.
> *Cannot override the dev console:* DefaultDevConsoleRegistry.register() 
> rejects duplicates (returns false if a console with the same ID exists).
> *Unregister+register per runtime is messy:* Would need the same dance in both 
> camel-spring-boot and camel-quarkus auto configuration.
> h3. Recommended approach
> Add an SPI in camel-api, e.g. PropertiesEnumerator, that runtimes can 
> implement to contribute additional properties for display purposes only. 
> PropertiesDevConsole would query all PropertiesEnumerator instances from the 
> CamelContext registry alongside loadProperties(). Each runtime just registers 
> one bean:
> * camel-spring-boot: enumerates EnumerablePropertySource entries from 
> ConfigurableEnvironment
> * camel-quarkus: enumerates SmallRye Config properties
> No console replacement or override needed. The SPI is read-only and does not 
> affect placeholder resolution.
> The console should show ALL application properties (not just camel.*), 
> matching what the standalone Camel dev console already does.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to