You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@camel.apache.org by "Claus Ibsen (Jira)" <ji...@apache.org> on 2022/11/06 19:28:00 UTC

[jira] [Commented] (CAMEL-18689) Context reload doesn't update properties when using EndpointDSL

    [ https://issues.apache.org/jira/browse/CAMEL-18689?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17629537#comment-17629537 ] 

Claus Ibsen commented on CAMEL-18689:
-------------------------------------

Can you try as I suspect its property("xxx") that needs some special code to support this reloading 

{code}
from(timer("testTimer").period("{{timer.delay}}"))
        .routeId("test-timer-route")
        .log("Timer delay: {{timer.delay}}");
{code}

> 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
>            Priority: Minor
>
> 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)