[
https://issues.apache.org/jira/browse/CAMEL-18689?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Claus Ibsen resolved CAMEL-18689.
---------------------------------
Resolution: Fixed
Thanks for reporting and with a sample route
> Context reload doesn't update properties when using EndpointDSL
> ---------------------------------------------------------------
>
> Key: CAMEL-18689
> URL: https://issues.apache.org/jira/browse/CAMEL-18689
> Project: Camel
> Issue Type: Bug
> Components: camel-endpointdsl
> Affects Versions: 3.19.0
> Reporter: Marco Bergsma
> Assignee: Claus Ibsen
> Priority: Minor
> Fix For: 3.20.0
>
>
> My project is using the {*}DefaultContextReloadStrategy{*}.
> On a property change a method is called that triggers the *onReload* method
> as described in the documentation
> {code:java}
> ContextReloadStrategy reload =
> this.camelContext.hasService(ContextReloadStrategy.class);
> if (reload != null) {
> // trigger reload
> reload.onReload(this);
> } {code}
>
> I currently have two routes running with endpoints that use a property:
> {code:java}
> from(timer("testTimer").period(property("timer.delay")))
> .routeId("test-timer-route")
> .log("Timer delay: {{timer.delay}}");
> from("timer://testTimer2?period={{timer.delay}}")
> .routeId("test2-timer-route")
> .log("Timer delay: {{timer.delay}}"); {code}
> After the reload only the second route now uses the updated *timer.delay*
> property value in its endpoint.
> In both routes the log statement does use the updated property value.
>
> Logs of the reload:
> {code:java}
> 2022-11-04 14:41:02.770 INFO 992 --- [TaskScheduler-1]
> o.a.c.s.DefaultContextReloadStrategy : Reloading CamelContext (camel-1)
> triggered by:
> org.company.software.integration.impl.SoftwareIntegrationAutoConfiguration$$EnhancerBySpringCGLIB$$2bbdb778@7abe9dda
> 2022-11-04 14:41:02.771 DEBUG 992 --- [TaskScheduler-1]
> o.a.c.i.engine.DefaultShutdownStrategy : Starting to graceful shutdown 1
> routes (timeout 45 seconds)
> 2022-11-04 14:41:02.773 DEBUG 992 --- [TaskScheduler-1]
> o.a.c.i.e.BaseExecutorServiceManager : Created new ThreadPool for source:
> org.apache.camel.impl.engine.DefaultShutdownStrategy@7e0c88e3 with name:
> ShutdownTask. ->
> org.apache.camel.util.concurrent.RejectableThreadPoolExecutor@6bf850e7[Running,
> pool size = 0, active threads = 0, queued tasks = 0, completed tasks =
> 0][ShutdownTask]
> 2022-11-04 14:41:02.774 DEBUG 992 --- [ - ShutdownTask]
> o.a.c.i.engine.DefaultShutdownStrategy : There are 1 routes to shutdown
> 2022-11-04 14:41:02.776 DEBUG 992 --- [ - ShutdownTask]
> o.a.c.i.engine.DefaultShutdownStrategy : Route: test2-timer-route suspended
> and shutdown deferred, was consuming from: timer://testTimer2
> 2022-11-04 14:41:02.776 DEBUG 992 --- [ - ShutdownTask]
> o.apache.camel.support.DefaultConsumer : Stopping consumer:
> Consumer[timer://testTimer2?period=10000]
> 2022-11-04 14:41:02.777 DEBUG 992 --- [ - ShutdownTask]
> o.a.c.i.engine.DefaultShutdownStrategy : Route: test2-timer-route shutdown
> complete, was consuming from: timer://testTimer2
> 2022-11-04 14:41:02.777 DEBUG 992 --- [TaskScheduler-1]
> o.a.c.i.engine.DefaultShutdownStrategy : Graceful shutdown of 1 routes
> completed in 6ms
> 2022-11-04 14:41:02.778 DEBUG 992 --- [TaskScheduler-1]
> o.a.c.management.DefaultManagementAgent : Unregistered MBean with
> ObjectName:
> org.apache.camel:context=camel-1,type=consumers,name=TimerConsumer(0x238d27ef)
> 2022-11-04 14:41:02.778 DEBUG 992 --- [TaskScheduler-1]
> o.a.c.management.DefaultManagementAgent : Unregistered MBean with
> ObjectName: org.apache.camel:context=camel-1,type=processors,name="log2"
> 2022-11-04 14:41:02.779 DEBUG 992 --- [TaskScheduler-1]
> o.a.c.impl.engine.AbstractCamelContext : Stopped test2-timer-route
> (timer://testTimer2)
> 2022-11-04 14:41:02.779 DEBUG 992 --- [TaskScheduler-1]
> o.a.c.i.engine.DefaultShutdownStrategy : Starting to graceful shutdown 1
> routes (timeout 45 seconds)
> 2022-11-04 14:41:02.779 DEBUG 992 --- [ - ShutdownTask]
> o.a.c.i.engine.DefaultShutdownStrategy : There are 1 routes to shutdown
> 2022-11-04 14:41:02.780 DEBUG 992 --- [ - ShutdownTask]
> o.a.c.i.engine.DefaultShutdownStrategy : Route: test-timer-route suspended
> and shutdown deferred, was consuming from: timer://testTimer
> 2022-11-04 14:41:02.780 DEBUG 992 --- [ - ShutdownTask]
> o.apache.camel.support.DefaultConsumer : Stopping consumer:
> Consumer[timer://testTimer?period=10000]
> 2022-11-04 14:41:02.781 DEBUG 992 --- [ - ShutdownTask]
> o.a.c.i.engine.DefaultShutdownStrategy : Route: test-timer-route shutdown
> complete, was consuming from: timer://testTimer
> 2022-11-04 14:41:02.781 DEBUG 992 --- [TaskScheduler-1]
> o.a.c.i.engine.DefaultShutdownStrategy : Graceful shutdown of 1 routes
> completed in 1ms
> 2022-11-04 14:41:02.781 DEBUG 992 --- [TaskScheduler-1]
> o.a.c.management.DefaultManagementAgent : Unregistered MBean with
> ObjectName:
> org.apache.camel:context=camel-1,type=consumers,name=TimerConsumer(0x3514df8d)
> 2022-11-04 14:41:02.781 DEBUG 992 --- [TaskScheduler-1]
> o.a.c.management.DefaultManagementAgent : Unregistered MBean with
> ObjectName: org.apache.camel:context=camel-1,type=processors,name="log1"
> 2022-11-04 14:41:02.781 DEBUG 992 --- [TaskScheduler-1]
> o.a.c.impl.engine.AbstractCamelContext : Stopped test-timer-route
> (timer://testTimer)
> 2022-11-04 14:41:02.782 DEBUG 992 --- [TaskScheduler-1]
> o.a.c.impl.engine.AbstractCamelContext : Routes stopped (stopped:2)
> 2022-11-04 14:41:02.782 DEBUG 992 --- [TaskScheduler-1]
> o.a.c.impl.engine.AbstractCamelContext : Stopped test2-timer-route
> (timer://testTimer2)
> 2022-11-04 14:41:02.782 DEBUG 992 --- [TaskScheduler-1]
> o.a.c.impl.engine.AbstractCamelContext : Stopped test-timer-route
> (timer://testTimer)
> 2022-11-04 14:41:02.782 DEBUG 992 --- [TaskScheduler-1]
> o.apache.camel.support.DefaultConsumer : Shutting down consumer:
> Consumer[timer://testTimer?period=10000]
> 2022-11-04 14:41:02.783 DEBUG 992 --- [TaskScheduler-1]
> o.a.camel.support.TimerListenerManager : Removed TimerListener:
> org.apache.camel.management.mbean.ManagedSuspendableRoute@6768dc74
> 2022-11-04 14:41:02.784 DEBUG 992 --- [TaskScheduler-1]
> o.a.c.management.DefaultManagementAgent : Unregistered MBean with
> ObjectName:
> org.apache.camel:context=camel-1,type=routes,name="test-timer-route"
> 2022-11-04 14:41:02.784 DEBUG 992 --- [TaskScheduler-1]
> o.a.c.impl.engine.AbstractCamelContext : Shutdown test-timer-route
> (timer://testTimer)
> 2022-11-04 14:41:02.784 DEBUG 992 --- [TaskScheduler-1]
> o.a.c.impl.engine.AbstractCamelContext : Removing:
> timer://testTimer?period=10000 which was only in use by route:
> test-timer-route
> 2022-11-04 14:41:02.784 DEBUG 992 --- [TaskScheduler-1]
> o.a.c.management.DefaultManagementAgent : Unregistered MBean with
> ObjectName:
> org.apache.camel:context=camel-1,type=endpoints,name="timer://testTimer\?period=10000"
> 2022-11-04 14:41:02.784 DEBUG 992 --- [TaskScheduler-1]
> o.apache.camel.support.DefaultConsumer : Shutting down consumer:
> Consumer[timer://testTimer2?period=10000]
> 2022-11-04 14:41:02.785 DEBUG 992 --- [TaskScheduler-1]
> o.a.camel.support.TimerListenerManager : Removed TimerListener:
> org.apache.camel.management.mbean.ManagedSuspendableRoute@31dbca5d
> 2022-11-04 14:41:02.785 DEBUG 992 --- [TaskScheduler-1]
> o.a.c.management.DefaultManagementAgent : Unregistered MBean with
> ObjectName:
> org.apache.camel:context=camel-1,type=routes,name="test2-timer-route"
> 2022-11-04 14:41:02.785 DEBUG 992 --- [TaskScheduler-1]
> o.a.c.impl.engine.AbstractCamelContext : Shutdown test2-timer-route
> (timer://testTimer2)
> 2022-11-04 14:41:02.785 DEBUG 992 --- [TaskScheduler-1]
> o.a.c.impl.engine.AbstractCamelContext : Removing:
> timer://testTimer2?period=10000 which was only in use by route:
> test2-timer-route
> 2022-11-04 14:41:02.785 DEBUG 992 --- [TaskScheduler-1]
> o.a.c.management.DefaultManagementAgent : Unregistered MBean with
> ObjectName:
> org.apache.camel:context=camel-1,type=endpoints,name="timer://testTimer2\?period=10000"
> 2022-11-04 14:41:02.786 DEBUG 992 --- [TaskScheduler-1]
> org.apache.camel.support.ResolverHelper : Found ProcessorFactory:
> org.apache.camel.processor.DefaultProcessorFactory via:
> META-INF/services/org/apache/camel/processor-factory
> 2022-11-04 14:41:02.786 DEBUG 992 --- [TaskScheduler-1]
> org.apache.camel.support.ResolverHelper : Detected and using
> ProcessorFactory: org.apache.camel.processor.DefaultProcessorFactory@46806dcc
> 2022-11-04 14:41:02.787 DEBUG 992 --- [TaskScheduler-1]
> o.a.c.impl.engine.AbstractCamelContext : Resolved text: Timer delay:
> {{timer.delay}} -> Timer delay: 5000
> 2022-11-04 14:41:02.787 DEBUG 992 --- [TaskScheduler-1]
> org.apache.camel.reifier.LogReifier : LogName is not configured, using
> route id as logName: test-timer-route
> 2022-11-04 14:41:02.787 DEBUG 992 --- [TaskScheduler-1]
> o.a.c.i.e.InternalRouteStartupManager : Warming up route id:
> test-timer-route having autoStartup=true
> 2022-11-04 14:41:02.789 DEBUG 992 --- [TaskScheduler-1]
> o.a.c.management.DefaultManagementAgent : Registered MBean with ObjectName:
> org.apache.camel:context=camel-1,type=processors,name="log1"
> 2022-11-04 14:41:02.790 DEBUG 992 --- [TaskScheduler-1]
> o.a.c.management.DefaultManagementAgent : Registered MBean with ObjectName:
> org.apache.camel:context=camel-1,type=routes,name="test-timer-route"
> 2022-11-04 14:41:02.791 DEBUG 992 --- [TaskScheduler-1]
> o.a.camel.support.TimerListenerManager : Added TimerListener:
> org.apache.camel.management.mbean.ManagedSuspendableRoute@6cb632c8
> 2022-11-04 14:41:02.791 DEBUG 992 --- [TaskScheduler-1]
> o.a.c.m.JmxManagementLifecycleStrategy : Load performance statistics
> disabled
> 2022-11-04 14:41:02.791 DEBUG 992 --- [TaskScheduler-1]
> o.a.c.i.e.InternalRouteStartupManager : Route: test-timer-route >>>
> Route[timer://testTimer?period=10000 -> null]
> 2022-11-04 14:41:02.791 DEBUG 992 --- [TaskScheduler-1]
> o.a.c.i.e.InternalRouteStartupManager : Starting consumer (order: 1002) on
> route: test-timer-route
> 2022-11-04 14:41:02.792 DEBUG 992 --- [TaskScheduler-1]
> o.a.c.management.DefaultManagementAgent : Registered MBean with ObjectName:
> org.apache.camel:context=camel-1,type=consumers,name=TimerConsumer(0x1826e547)
> 2022-11-04 14:41:02.792 DEBUG 992 --- [TaskScheduler-1]
> o.apache.camel.support.DefaultConsumer : Build consumer:
> Consumer[timer://testTimer?period=10000]
> 2022-11-04 14:41:02.793 DEBUG 992 --- [TaskScheduler-1]
> o.apache.camel.support.DefaultConsumer : Starting consumer:
> Consumer[timer://testTimer?period=10000]
> 2022-11-04 14:41:02.793 DEBUG 992 --- [TaskScheduler-1]
> o.a.c.i.e.InternalRouteStartupManager : Route: test-timer-route started
> and consuming from: timer://testTimer
> 2022-11-04 14:41:02.793 DEBUG 992 --- [TaskScheduler-1]
> o.a.c.impl.engine.AbstractCamelContext : Resolved text:
> timer://testTimer2?period={{timer.delay}} -> timer://testTimer2?period=5000
> 2022-11-04 14:41:02.794 DEBUG 992 --- [TaskScheduler-1]
> o.apache.camel.support.DefaultComponent : Creating endpoint
> uri=[timer://testTimer2?period=5000], path=[testTimer2]
> 2022-11-04 14:41:02.794 DEBUG 992 --- [TaskScheduler-1]
> o.a.c.impl.engine.AbstractCamelContext : timer://testTimer2?period=5000
> converted to endpoint: timer://testTimer2?period=5000 by component:
> org.apache.camel.component.timer.TimerComponent@28d1b2f
> 2022-11-04 14:41:02.795 DEBUG 992 --- [TaskScheduler-1]
> o.a.c.management.DefaultManagementAgent : Registered MBean with ObjectName:
> org.apache.camel:context=camel-1,type=endpoints,name="timer://testTimer2\?period=5000"
> 2022-11-04 14:41:02.796 DEBUG 992 --- [TaskScheduler-1]
> o.a.c.impl.engine.AbstractCamelContext : Resolved text: Timer delay:
> {{timer.delay}} -> Timer delay: 5000
> 2022-11-04 14:41:02.796 DEBUG 992 --- [TaskScheduler-1]
> org.apache.camel.reifier.LogReifier : LogName is not configured, using
> route id as logName: test2-timer-route
> 2022-11-04 14:41:02.797 DEBUG 992 --- [TaskScheduler-1]
> o.a.c.i.e.InternalRouteStartupManager : Warming up route id:
> test2-timer-route having autoStartup=true
> 2022-11-04 14:41:02.798 DEBUG 992 --- [TaskScheduler-1]
> o.a.c.management.DefaultManagementAgent : Registered MBean with ObjectName:
> org.apache.camel:context=camel-1,type=processors,name="log2"
> 2022-11-04 14:41:02.800 DEBUG 992 --- [TaskScheduler-1]
> o.a.c.management.DefaultManagementAgent : Registered MBean with ObjectName:
> org.apache.camel:context=camel-1,type=routes,name="test2-timer-route"
> 2022-11-04 14:41:02.800 DEBUG 992 --- [TaskScheduler-1]
> o.a.camel.support.TimerListenerManager : Added TimerListener:
> org.apache.camel.management.mbean.ManagedSuspendableRoute@7fe67e41
> 2022-11-04 14:41:02.800 DEBUG 992 --- [TaskScheduler-1]
> o.a.c.m.JmxManagementLifecycleStrategy : Load performance statistics
> disabled
> 2022-11-04 14:41:02.800 DEBUG 992 --- [TaskScheduler-1]
> o.a.c.i.e.InternalRouteStartupManager : Route: test2-timer-route >>>
> Route[timer://testTimer2?period=5000 -> null]
> 2022-11-04 14:41:02.800 DEBUG 992 --- [TaskScheduler-1]
> o.a.c.i.e.InternalRouteStartupManager : Starting consumer (order: 1003) on
> route: test2-timer-route
> 2022-11-04 14:41:02.801 DEBUG 992 --- [TaskScheduler-1]
> o.a.c.management.DefaultManagementAgent : Registered MBean with ObjectName:
> org.apache.camel:context=camel-1,type=consumers,name=TimerConsumer(0x1b5dd42a)
> 2022-11-04 14:41:02.801 DEBUG 992 --- [TaskScheduler-1]
> o.apache.camel.support.DefaultConsumer : Build consumer:
> Consumer[timer://testTimer2?period=5000]
> 2022-11-04 14:41:02.801 DEBUG 992 --- [TaskScheduler-1]
> o.apache.camel.support.DefaultConsumer : Starting consumer:
> Consumer[timer://testTimer2?period=5000]
> 2022-11-04 14:41:02.801 DEBUG 992 --- [TaskScheduler-1]
> o.a.c.i.e.InternalRouteStartupManager : Route: test2-timer-route started
> and consuming from: timer://testTimer2 {code}
>
>
>
>
--
This message was sent by Atlassian Jira
(v8.20.10#820010)