Marco Bergsma created CAMEL-18689:
-------------------------------------

             Summary: 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


My project is using the {*}DefaultContextReloadStrategy{*}.

On a property change a method is called that triggers the *onReload* method as 
described in the 
[documentation|[https://camel.apache.org/manual/context-reload.html]:]
{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)

Reply via email to