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/08/26 14:05:08 UTC
svn commit: r1377424 - in /camel/trunk:
camel-core/src/main/java/org/apache/camel/management/
camel-core/src/main/java/org/apache/camel/spi/
components/camel-core-xml/src/main/java/org/apache/camel/core/xml/
Author: davsclaus
Date: Sun Aug 26 12:05:08 2012
New Revision: 1377424
URL: http://svn.apache.org/viewvc?rev=1377424&view=rev
Log:
CAMEL-5446: Added option loadStatisticsEnabled on Camel JMX to allow to disable load statistics if not needed (avoids a background thread being in use, to calculate the load stats).
Modified:
camel/trunk/camel-core/src/main/java/org/apache/camel/management/DefaultManagementLifecycleStrategy.java
camel/trunk/camel-core/src/main/java/org/apache/camel/management/DefaultManagementStrategy.java
camel/trunk/camel-core/src/main/java/org/apache/camel/spi/ManagementStrategy.java
camel/trunk/components/camel-core-xml/src/main/java/org/apache/camel/core/xml/AbstractCamelContextFactoryBean.java
camel/trunk/components/camel-core-xml/src/main/java/org/apache/camel/core/xml/CamelJMXAgentDefinition.java
Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/management/DefaultManagementLifecycleStrategy.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/management/DefaultManagementLifecycleStrategy.java?rev=1377424&r1=1377423&r2=1377424&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/management/DefaultManagementLifecycleStrategy.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/management/DefaultManagementLifecycleStrategy.java Sun Aug 26 12:05:08 2012
@@ -854,10 +854,13 @@ public class DefaultManagementLifecycleS
@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 are disabled either if configured explicit, or if level is off
+ boolean disabled = camelContext.getManagementStrategy().isLoadStatisticsEnabled() == false
+ || camelContext.getManagementStrategy().getStatisticsLevel() == ManagementStatisticsLevel.Off;
+ if (!disabled) {
+ LOG.info("Load performance statistics enabled.");
// we have to defer creating this until CamelContext has been started
+ // (the thread pool will be shutdown automatic by CamelContext when its stopped)
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
Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/management/DefaultManagementStrategy.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/management/DefaultManagementStrategy.java?rev=1377424&r1=1377423&r2=1377424&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/management/DefaultManagementStrategy.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/management/DefaultManagementStrategy.java Sun Aug 26 12:05:08 2012
@@ -57,6 +57,7 @@ public class DefaultManagementStrategy i
private boolean onlyManageProcessorWithCustomId;
private ManagementAgent managementAgent;
private ManagementStatisticsLevel statisticsLevel = ManagementStatisticsLevel.All;
+ private boolean loadStatisticsEnabled = true;
private CamelContext camelContext;
public DefaultManagementStrategy() {
@@ -189,6 +190,14 @@ public class DefaultManagementStrategy i
return statisticsLevel;
}
+ public boolean isLoadStatisticsEnabled() {
+ return loadStatisticsEnabled;
+ }
+
+ public void setLoadStatisticsEnabled(boolean loadStatisticsEnabled) {
+ this.loadStatisticsEnabled = loadStatisticsEnabled;
+ }
+
public void start() throws Exception {
ObjectHelper.notNull(camelContext, "CamelContext");
Modified: camel/trunk/camel-core/src/main/java/org/apache/camel/spi/ManagementStrategy.java
URL: http://svn.apache.org/viewvc/camel/trunk/camel-core/src/main/java/org/apache/camel/spi/ManagementStrategy.java?rev=1377424&r1=1377423&r2=1377424&view=diff
==============================================================================
--- camel/trunk/camel-core/src/main/java/org/apache/camel/spi/ManagementStrategy.java (original)
+++ camel/trunk/camel-core/src/main/java/org/apache/camel/spi/ManagementStrategy.java Sun Aug 26 12:05:08 2012
@@ -218,6 +218,20 @@ public interface ManagementStrategy exte
boolean isOnlyManageProcessorWithCustomId();
/**
+ * Sets whether load statistics is enabled.
+ *
+ * @param flag <tt>true</tt> to enable load statistics
+ */
+ void setLoadStatisticsEnabled(boolean flag);
+
+ /**
+ * Gets whether load statistics is enabled
+ *
+ * @return <tt>true</tt> if enabled
+ */
+ boolean isLoadStatisticsEnabled();
+
+ /**
* Sets the statistics level
* <p/>
* Default is {@link org.apache.camel.ManagementStatisticsLevel#All}
Modified: camel/trunk/components/camel-core-xml/src/main/java/org/apache/camel/core/xml/AbstractCamelContextFactoryBean.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-core-xml/src/main/java/org/apache/camel/core/xml/AbstractCamelContextFactoryBean.java?rev=1377424&r1=1377423&r2=1377424&view=diff
==============================================================================
--- camel/trunk/components/camel-core-xml/src/main/java/org/apache/camel/core/xml/AbstractCamelContextFactoryBean.java (original)
+++ camel/trunk/components/camel-core-xml/src/main/java/org/apache/camel/core/xml/AbstractCamelContextFactoryBean.java Sun Aug 26 12:05:08 2012
@@ -353,6 +353,11 @@ public abstract class AbstractCamelConte
boolean onlyId = agent.getOnlyRegisterProcessorWithCustomId() != null && agent.getOnlyRegisterProcessorWithCustomId();
getContext().getManagementStrategy().onlyManageProcessorWithCustomId(onlyId);
getContext().getManagementStrategy().setStatisticsLevel(camelJMXAgent.getStatisticsLevel());
+
+ Boolean loadStatisticsEnabled = CamelContextHelper.parseBoolean(getContext(), camelJMXAgent.getLoadStatisticsEnabled());
+ if (loadStatisticsEnabled != null) {
+ getContext().getManagementStrategy().setLoadStatisticsEnabled(loadStatisticsEnabled);
+ }
}
}
Modified: camel/trunk/components/camel-core-xml/src/main/java/org/apache/camel/core/xml/CamelJMXAgentDefinition.java
URL: http://svn.apache.org/viewvc/camel/trunk/components/camel-core-xml/src/main/java/org/apache/camel/core/xml/CamelJMXAgentDefinition.java?rev=1377424&r1=1377423&r2=1377424&view=diff
==============================================================================
--- camel/trunk/components/camel-core-xml/src/main/java/org/apache/camel/core/xml/CamelJMXAgentDefinition.java (original)
+++ camel/trunk/components/camel-core-xml/src/main/java/org/apache/camel/core/xml/CamelJMXAgentDefinition.java Sun Aug 26 12:05:08 2012
@@ -105,6 +105,12 @@ public class CamelJMXAgentDefinition ext
@XmlAttribute(required = false)
private ManagementStatisticsLevel statisticsLevel = ManagementStatisticsLevel.All;
+ /**
+ * A flag that indicates whether Load statistics is enabled
+ */
+ @XmlAttribute(required = false)
+ private String loadStatisticsEnabled;
+
public String getDisabled() {
return disabled;
}
@@ -201,6 +207,14 @@ public class CamelJMXAgentDefinition ext
this.registerNewRoutes = registerNewRoutes;
}
+ public String getLoadStatisticsEnabled() {
+ return loadStatisticsEnabled;
+ }
+
+ public void setLoadStatisticsEnabled(String loadStatisticsEnabled) {
+ this.loadStatisticsEnabled = loadStatisticsEnabled;
+ }
+
@Override
public String toString() {
StringBuilder sb = new StringBuilder();
@@ -227,6 +241,9 @@ public class CamelJMXAgentDefinition ext
if (statisticsLevel != null) {
sb.append(", statisticsLevel=").append(statisticsLevel);
}
+ if (loadStatisticsEnabled != null) {
+ sb.append(", loadStatisticsEnabled=").append(loadStatisticsEnabled);
+ }
if (registerAlways != null) {
sb.append(", registerAlways=").append(registerAlways);
}