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 2012/07/16 13:26:50 UTC
svn commit: r1361975 - in /camel/branches/camel-2.10.x: ./
camel-core/src/main/java/org/apache/camel/management/DefaultManagementLifecycleStrategy.java
Author: davsclaus
Date: Mon Jul 16 11:26:49 2012
New Revision: 1361975
URL: http://svn.apache.org/viewvc?rev=1361975&view=rev
Log:
CAMEL-5445: TimerManagerLoadTask thread name is now using the same name pattern as all the other threads. Have to defer starting it until CamelContext fully started.
Modified:
camel/branches/camel-2.10.x/ (props changed)
camel/branches/camel-2.10.x/camel-core/src/main/java/org/apache/camel/management/DefaultManagementLifecycleStrategy.java
Propchange: camel/branches/camel-2.10.x/
------------------------------------------------------------------------------
Merged /camel/trunk:r1361973
Propchange: camel/branches/camel-2.10.x/
------------------------------------------------------------------------------
--- svnmerge-integrated (original)
+++ svnmerge-integrated Mon Jul 16 11:26:49 2012
@@ -1 +1 @@
-/camel/trunk:1-1358964,1359013,1359197,1359226,1359265,1359341,1359383,1360031,1360241,1360339,1360525-1360527,1360581,1360583,1360719,1361116-1361117,1361477,1361919
+/camel/trunk:1-1358964,1359013,1359197,1359226,1359265,1359341,1359383,1360031,1360241,1360339,1360525-1360527,1360581,1360583,1360719,1361116-1361117,1361477,1361919,1361973
Modified: camel/branches/camel-2.10.x/camel-core/src/main/java/org/apache/camel/management/DefaultManagementLifecycleStrategy.java
URL: http://svn.apache.org/viewvc/camel/branches/camel-2.10.x/camel-core/src/main/java/org/apache/camel/management/DefaultManagementLifecycleStrategy.java?rev=1361975&r1=1361974&r2=1361975&view=diff
==============================================================================
--- camel/branches/camel-2.10.x/camel-core/src/main/java/org/apache/camel/management/DefaultManagementLifecycleStrategy.java (original)
+++ camel/branches/camel-2.10.x/camel-core/src/main/java/org/apache/camel/management/DefaultManagementLifecycleStrategy.java Mon Jul 16 11:26:49 2012
@@ -42,6 +42,7 @@ import org.apache.camel.Processor;
import org.apache.camel.Producer;
import org.apache.camel.Route;
import org.apache.camel.Service;
+import org.apache.camel.StartupListener;
import org.apache.camel.TimerListener;
import org.apache.camel.VetoCamelContextStartException;
import org.apache.camel.api.management.PerformanceCounter;
@@ -105,6 +106,7 @@ public class DefaultManagementLifecycleS
new HashMap<Processor, KeyValueHolder<ProcessorDefinition<?>, InstrumentationProcessor>>();
private final List<PreRegisterService> preServices = new ArrayList<PreRegisterService>();
private final TimerListenerManager timerListenerManager = new TimerListenerManager();
+ private final TimerListenerManagerStartupListener timerManagerStartupListener = new TimerListenerManagerStartupListener();
private volatile CamelContext camelContext;
private volatile ManagedCamelContext camelContextMBean;
private volatile boolean initialized;
@@ -844,14 +846,24 @@ public class DefaultManagementLifecycleS
protected void doStart() throws Exception {
ObjectHelper.notNull(camelContext, "CamelContext");
- boolean enabled = camelContext.getManagementStrategy().getStatisticsLevel() != ManagementStatisticsLevel.Off;
- if (enabled) {
- LOG.info("StatisticsLevel at {} so enabling load performance statistics", camelContext.getManagementStrategy().getStatisticsLevel());
- ScheduledExecutorService executorService = camelContext.getExecutorServiceManager().newSingleThreadScheduledExecutor(this, "ManagementLoadTask");
- timerListenerManager.setExecutorService(executorService);
- // must use 1 sec interval as the load statistics is based on 1 sec calculations
- timerListenerManager.setInterval(1000);
- ServiceHelper.startService(timerListenerManager);
+ // defer starting the timer manager until CamelContext has been fully started
+ camelContext.addStartupListener(timerManagerStartupListener);
+ }
+
+ private final class TimerListenerManagerStartupListener implements StartupListener {
+
+ @Override
+ public void onCamelContextStarted(CamelContext context, boolean alreadyStarted) throws Exception {
+ boolean enabled = camelContext.getManagementStrategy().getStatisticsLevel() != ManagementStatisticsLevel.Off;
+ if (enabled) {
+ LOG.info("StatisticsLevel at {} so enabling load performance statistics", camelContext.getManagementStrategy().getStatisticsLevel());
+ // we have to defer creating this until CamelContext has been started
+ ScheduledExecutorService executorService = camelContext.getExecutorServiceManager().newSingleThreadScheduledExecutor(this, "ManagementLoadTask");
+ timerListenerManager.setExecutorService(executorService);
+ // must use 1 sec interval as the load statistics is based on 1 sec calculations
+ timerListenerManager.setInterval(1000);
+ ServiceHelper.startService(timerListenerManager);
+ }
}
}