[
https://issues.apache.org/jira/browse/CAMEL-15917?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17243919#comment-17243919
]
Alex Liroyd commented on CAMEL-15917:
-------------------------------------
Could you please assist, when can I expect to get these changes from maven
repository for 3.4.x branch?
> Resilience4j Property Component doesn't work for configurationRef
> -----------------------------------------------------------------
>
> Key: CAMEL-15917
> URL: https://issues.apache.org/jira/browse/CAMEL-15917
> Project: Camel
> Issue Type: Improvement
> Components: camel-core, camel-core-engine, eip
> Affects Versions: 3.4.4
> Reporter: Alex Liroyd
> Priority: Minor
> Fix For: 3.4.5, 3.7.0
>
> Attachments: stackTraceCamel.txt
>
>
> I'm using camel-resilien4j library:
> {code:xml}
> <groupId>org.apache.camel.springboot</groupId>
> <artifactId>camel-spring-boot-dependencies</artifactId>
> <version>3.4.4</version>
> <groupId>org.apache.camel</groupId>
> <artifactId>camel-resilience4j</artifactId>
> {code}
> I want to use
> [https://camel.apache.org/components/latest/properties-component.html]
> functionality for circuit breaker configuration in camel routes definitions.
> It's needed to be able to add some specific route to some specific group. So
> I'm trying to do following.
> {code:xml}
> <circuitBreaker configurationRef="{{myName}}">
> <to uri="direct:someUri"/>
> </circuitBreaker>
> {code}
> But it doesn't work. {{myName}} is not resolved using property file. I can't
> hardcode names.
> As I can see - ResilienceReifier doesn't even try to resolve it using config.
> ResilienceReifier#buildResilience4jConfiguration
> {code:java}
> if (definition.getConfigurationRef() != null) {
> final String ref = definition.getConfigurationRef();
> loadProperties(properties, Suppliers.firstNotNull(
> () ->
> camelContext.getExtension(Model.class).getResilience4jConfiguration(ref),
> () -> mandatoryLookup(ref,
> Resilience4jConfigurationDefinition.class)),
> configurer);
> }
> {code}
> so definition (ref) is transferred as is. And it cause an issue, because
> there is no such config as myName.
> What I would expect to see, is:
> {code:java}
> if (definition.getConfigurationRef() != null) {
> /// here is modified code
> Optional<String> configuredValue =
> camelContext.getPropertiesComponent().resolveProperty(definition.getConfigurationRef();
> final String ref = configuredValue.isPresent() ?
> configuredValue.get() : definition.getConfigurationRef();
> /// end of modified code
> loadProperties(properties, Suppliers.firstNotNull(
> () ->
> camelContext.getExtension(Model.class).getResilience4jConfiguration(ref),
> () -> mandatoryLookup(ref,
> Resilience4jConfigurationDefinition.class)),
> configurer);
> }
> {code}
>
> It's simple lookup for configuration value, but it provides a huge
> flexibility for entire framework.
>
> Also, is there anyway, how I can temporary hotfix this issue, in order to
> proceed with development?
>
>
--
This message was sent by Atlassian Jira
(v8.3.4#803005)