-Dspring.main.allow-bean-definition-overriding=true works fine with fuse 7.2 but not work with Fuse 7.11.1

Solution Verified - Updated -

Issue

By using following options, part of src/main/resources/application.properties can be override with a config map, application.yml.

java -Dspring.main.allow-bean-definition-overriding=true -Dspring.config.location=application.yml -jar demo-1.0-SNAPSHOT.jar

It works with Fuse 7.2, but not does not work with Fuse 7.11.1.

camel route

<route id="generate-order-route">
 <from id="route-timer" uri="timer:order?repeatCount=1"/>
 <transform>
  <simple>message-${header.CamelTimerCounter}</simple>
 </transform>
 <log id="route-log-message" message="Generating message ${body}, sending to the recipient list"/>
 <log id="route-log-message" message="DEBUG log: {{cee.greeting}}"/>
 <log id="route-log-message" message="DEBUG log: My name is {{cee.introducing}}"/>
</route>

demo/src/main/resources/application.yml

cee:
    greeting:  hello world
    introducing: Bob

application.yml which will be passed with "-Dspring.config.location" option.

kind: ConfigMap
apiVersion: v1
metadata:
  name: demo-setting
  namespace: fuse
cee:
  greeting:  hello world again

log

15:21:28.529 [main] ERROR o.s.boot.SpringApplication - Application run failed
org.apache.camel.RuntimeCamelException: org.apache.camel.FailedToCreateRouteException: Failed to create route generate-order-route at: >>> Log[DEBUG log: My name is {{cee.introducing}}] <<< in route: Route(generate-order-route)[[From[timer:order?repeatCount=1]... because of Property with key [cee.introducing] not found in properties from text: DEBUG log: My name is {{cee.introducing}}
at org.apache.camel.util.ObjectHelper.wrapRuntimeCamelException(ObjectHelper.java:1826)
at org.apache.camel.spring.SpringCamelContext.start(SpringCamelContext.java:136)
at org.apache.camel.spring.CamelContextFactoryBean.start(CamelContextFactoryBean.java:370)
at org.apache.camel.spring.CamelContextFactoryBean.onApplicationEvent(CamelContextFactoryBean.java:425)
at org.apache.camel.spring.CamelContextFactoryBean.onApplicationEvent(CamelContextFactoryBean.java:95)
at org.springframework.context.event.SimpleApplicationEventMulticaster.doInvokeListener(SimpleApplicationEventMulticaster.java:176)
at org.springframework.context.event.SimpleApplicationEventMulticaster.invokeListener(SimpleApplicationEventMulticaster.java:169)
at org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:143)
at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:421)
at org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:378)
at org.springframework.context.support.AbstractApplicationContext.finishRefresh(AbstractApplicationContext.java:938)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:586)
at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:145)
at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:775)
at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:448)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:339)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1365)
at org.springframework.boot.SpringApplication.run(SpringApplication.java:1354)
at sample.Application.main(Application.java:30)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.springframework.boot.loader.MainMethodRunner.run(MainMethodRunner.java:49)
at org.springframework.boot.loader.Launcher.launch(Launcher.java:107)
at org.springframework.boot.loader.Launcher.launch(Launcher.java:58)
at org.springframework.boot.loader.JarLauncher.main(JarLauncher.java:88)
Caused by: org.apache.camel.FailedToCreateRouteException: Failed to create route generate-order-route at: >>> Log[DEBUG log: My name is {{cee.introducing}}] <<< in route: Route(generate-order-route)[[From[timer:order?repeatCount=1]... because of Property with key [cee.introducing] not found in properties from text: DEBUG log: My name is {{cee.introducing}}
at org.apache.camel.model.RouteDefinition.addRoutes(RouteDefinition.java:1352)
at org.apache.camel.model.RouteDefinition.addRoutes(RouteDefinition.java:212)
at org.apache.camel.impl.DefaultCamelContext.startRoute(DefaultCamelContext.java:1140)
at org.apache.camel.impl.DefaultCamelContext.startRouteDefinitions(DefaultCamelContext.java:3747)
at org.apache.camel.impl.DefaultCamelContext.doStartCamel(DefaultCamelContext.java:3452)
at org.apache.camel.impl.DefaultCamelContext$4.call(DefaultCamelContext.java:3260)
at org.apache.camel.impl.DefaultCamelContext$4.call(DefaultCamelContext.java:3256)
at org.apache.camel.impl.DefaultCamelContext.doWithDefinedClassLoader(DefaultCamelContext.java:3279)
at org.apache.camel.impl.DefaultCamelContext.doStart(DefaultCamelContext.java:3256)
at org.apache.camel.support.ServiceSupport.start(ServiceSupport.java:72)
at org.apache.camel.impl.DefaultCamelContext.start(DefaultCamelContext.java:3172)
at org.apache.camel.spring.SpringCamelContext.start(SpringCamelContext.java:133)
... 25 common frames omitted
Caused by: java.lang.IllegalArgumentException: Property with key [cee.introducing] not found in properties from text: DEBUG log: My name is {{cee.introducing}}
at org.apache.camel.component.properties.DefaultPropertiesParser$ParsingContext.getPropertyValue(DefaultPropertiesParser.java:271)
at org.apache.camel.component.properties.DefaultPropertiesParser$ParsingContext.readProperty(DefaultPropertiesParser.java:157)
at org.apache.camel.component.properties.DefaultPropertiesParser$ParsingContext.doParse(DefaultPropertiesParser.java:116)
at org.apache.camel.component.properties.DefaultPropertiesParser$ParsingContext.parse(DefaultPropertiesParser.java:100)
at org.apache.camel.component.properties.DefaultPropertiesParser.parseUri(DefaultPropertiesParser.java:63)
at org.apache.camel.component.properties.PropertiesComponent.parseUri(PropertiesComponent.java:235)
at org.apache.camel.component.properties.PropertiesComponent.parseUri(PropertiesComponent.java:178)
at org.apache.camel.impl.DefaultCamelContext.resolvePropertyPlaceholders(DefaultCamelContext.java:2547)
at org.apache.camel.model.ProcessorDefinitionHelper.resolvePropertyPlaceholders(ProcessorDefinitionHelper.java:737)
at org.apache.camel.model.ProcessorDefinition.makeProcessorImpl(ProcessorDefinition.java:544)
at org.apache.camel.model.ProcessorDefinition.makeProcessor(ProcessorDefinition.java:530)
at org.apache.camel.model.ProcessorDefinition.addRoutes(ProcessorDefinition.java:240)
at org.apache.camel.model.RouteDefinition.addRoutes(RouteDefinition.java:1349)
... 36 common frames omitted

Environment

  • Red Hat Fuse
    • 7.11.1

Subscriber exclusive content

A Red Hat subscription provides unlimited access to our knowledgebase, tools, and much more.

Current Customers and Partners

Log in for full access

Log In

New to Red Hat?

Learn more about Red Hat subscriptions

Using a Red Hat product through a public cloud?

How to access this content