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);
         }