You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2019/12/30 08:56:37 UTC

[camel] branch master updated: CAMEL-14339: JMX - ManagedProducer - should have routeId

This is an automated email from the ASF dual-hosted git repository.

davsclaus pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/camel.git


The following commit(s) were added to refs/heads/master by this push:
     new db45477  CAMEL-14339: JMX - ManagedProducer - should have routeId
db45477 is described below

commit db45477ada2aa03865df84dd7d78a85990197b16
Author: Claus Ibsen <cl...@gmail.com>
AuthorDate: Mon Dec 30 09:56:13 2019 +0100

    CAMEL-14339: JMX - ManagedProducer - should have routeId
---
 .../org/apache/camel/impl/engine/AbstractCamelContext.java  | 13 ++++++++++---
 .../camel/management/ManagedUnregisterProducerTest.java     |  6 +++---
 2 files changed, 13 insertions(+), 6 deletions(-)

diff --git a/core/camel-base/src/main/java/org/apache/camel/impl/engine/AbstractCamelContext.java b/core/camel-base/src/main/java/org/apache/camel/impl/engine/AbstractCamelContext.java
index d309ada..17a3f2e 100644
--- a/core/camel-base/src/main/java/org/apache/camel/impl/engine/AbstractCamelContext.java
+++ b/core/camel-base/src/main/java/org/apache/camel/impl/engine/AbstractCamelContext.java
@@ -190,6 +190,7 @@ public abstract class AbstractCamelContext extends ServiceSupport implements Ext
     private volatile boolean firstStartDone;
     private volatile boolean doNotStartRoutesOnFirstStart;
     private final ThreadLocal<Boolean> isStartingRoutes = new ThreadLocal<>();
+    private final ThreadLocal<Route> setupRoute = new ThreadLocal<>();
     private final ThreadLocal<Boolean> isSetupRoutes = new ThreadLocal<>();
     private Initialization initialization = Initialization.Default;
     private Boolean autoStartup = Boolean.TRUE;
@@ -1372,7 +1373,8 @@ public abstract class AbstractCamelContext extends ServiceSupport implements Ext
                     // use specialized endpoint add
                     strategy.onEndpointAdd((Endpoint)service);
                 } else {
-                    strategy.onServiceAdd(this, service, null);
+                    Route route = setupRoute.get();
+                    strategy.onServiceAdd(this, service, route);
                 }
             }
 
@@ -3140,8 +3142,13 @@ public abstract class AbstractCamelContext extends ServiceSupport implements Ext
             // will then be prepared in time before we start inputs which will
             // consume messages to be routed
             BaseRouteService routeService = entry.getValue().getRouteService();
-            log.debug("Warming up route id: {} having autoStartup={}", routeService.getId(), autoStartup);
-            routeService.warmUp();
+            try {
+                log.debug("Warming up route id: {} having autoStartup={}", routeService.getId(), autoStartup);
+                setupRoute.set(routeService.getRoute());
+                routeService.warmUp();
+            } finally {
+                setupRoute.remove();
+            }
         }
     }
 
diff --git a/core/camel-management/src/test/java/org/apache/camel/management/ManagedUnregisterProducerTest.java b/core/camel-management/src/test/java/org/apache/camel/management/ManagedUnregisterProducerTest.java
index afa4c6d..df372e2 100644
--- a/core/camel-management/src/test/java/org/apache/camel/management/ManagedUnregisterProducerTest.java
+++ b/core/camel-management/src/test/java/org/apache/camel/management/ManagedUnregisterProducerTest.java
@@ -48,9 +48,9 @@ public class ManagedUnregisterProducerTest extends ManagementTestSupport {
         String uri = (String) mbeanServer.getAttribute(on, "EndpointUri");
         assertEquals("mock://result", uri);
 
-        // TODO: populating route id on producers is not implemented yet
-        //String routeId = (String) mbeanServer.getAttribute(on, "RouteId");
-        //assertEquals("route1", routeId);
+        // the producer should have route id
+        String routeId = (String) mbeanServer.getAttribute(on, "RouteId");
+        assertEquals("route1", routeId);
 
         Boolean singleton = (Boolean) mbeanServer.getAttribute(on, "Singleton");
         assertEquals(Boolean.TRUE, singleton);