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 2017/05/31 07:59:45 UTC

[2/4] camel git commit: CAMEL-11368: Optimise - Runtime endpoint registry - Turn off by default

CAMEL-11368: Optimise - Runtime endpoint registry - Turn off by default


Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/4a99a1bc
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/4a99a1bc
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/4a99a1bc

Branch: refs/heads/master
Commit: 4a99a1bc2843a2b576c13ec995cffcf217926cea
Parents: a229f53
Author: Claus Ibsen <da...@apache.org>
Authored: Tue May 30 20:09:30 2017 +0200
Committer: Claus Ibsen <da...@apache.org>
Committed: Wed May 31 09:59:31 2017 +0200

----------------------------------------------------------------------
 .../org/apache/camel/impl/DefaultCamelContext.java     | 13 +++++++++++--
 .../camel/impl/DefaultRuntimeEndpointRegistry.java     |  2 ++
 .../camel/management/DefaultManagementAgent.java       |  2 +-
 .../java/org/apache/camel/spi/ManagementAgent.java     |  4 ++--
 .../camel/impl/MultipleLifecycleStrategyTest.java      |  2 +-
 .../apache/camel/impl/RuntimeEndpointRegistryTest.java | 10 ++++++++++
 .../ManagedEndpointUtilizationStatisticsTest.java      |  2 +-
 .../camel/management/ManagedNonManagedServiceTest.java |  4 ++--
 ...anagedProducerRouteAddRemoveRegisterAlwaysTest.java |  2 +-
 .../camel/management/ManagedRouteAddRemoveTest.java    |  2 +-
 .../apache/camel/processor/SimpleMockSampleTest.java   |  9 ---------
 .../camel/spring/boot/CamelAutoConfiguration.java      |  1 +
 .../spring/boot/CamelConfigurationProperties.java      |  4 ++--
 13 files changed, 35 insertions(+), 22 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/4a99a1bc/camel-core/src/main/java/org/apache/camel/impl/DefaultCamelContext.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/impl/DefaultCamelContext.java b/camel-core/src/main/java/org/apache/camel/impl/DefaultCamelContext.java
index b2d7146..ea34a75 100644
--- a/camel-core/src/main/java/org/apache/camel/impl/DefaultCamelContext.java
+++ b/camel-core/src/main/java/org/apache/camel/impl/DefaultCamelContext.java
@@ -284,7 +284,7 @@ public class DefaultCamelContext extends ServiceSupport implements ModelCamelCon
     private InterceptStrategy defaultBacklogDebugger;
     private InflightRepository inflightRepository = new DefaultInflightRepository();
     private AsyncProcessorAwaitManager asyncProcessorAwaitManager = new DefaultAsyncProcessorAwaitManager();
-    private RuntimeEndpointRegistry runtimeEndpointRegistry = new DefaultRuntimeEndpointRegistry();
+    private RuntimeEndpointRegistry runtimeEndpointRegistry;
     private final List<RouteStartupOrder> routeStartupOrder = new ArrayList<RouteStartupOrder>();
     // start auto assigning route ids using numbering 1000 and upwards
     private int defaultRouteStartupOrder = 1000;
@@ -3260,6 +3260,16 @@ public class DefaultCamelContext extends ServiceSupport implements ModelCamelCon
         validatorRegistry = new DefaultValidatorRegistry(this, validators);
         addService(validatorRegistry, true, true);
 
+        // optimised to not include runtimeEndpointRegistry unless its enabled or JMX statis is in extended mode
+        if (runtimeEndpointRegistry == null && getManagementStrategy() != null && getManagementStrategy().getManagementAgent() != null) {
+            Boolean isEnabled = getManagementStrategy().getManagementAgent().getEndpointRuntimeStatisticsEnabled();
+            boolean isExtended = getManagementStrategy().getManagementAgent().getStatisticsLevel().isExtended();
+            // extended mode is either if we use Extended statistics level or the option is explicit enabled
+            boolean extended = isExtended || isEnabled != null && isEnabled;
+            if (extended) {
+                runtimeEndpointRegistry = new DefaultRuntimeEndpointRegistry();
+            }
+        }
         if (runtimeEndpointRegistry != null) {
             if (runtimeEndpointRegistry instanceof EventNotifier) {
                 getManagementStrategy().addEventNotifier((EventNotifier) runtimeEndpointRegistry);
@@ -3912,7 +3922,6 @@ public class DefaultCamelContext extends ServiceSupport implements ModelCamelCon
         getLanguageResolver();
         getTypeConverterRegistry();
         getTypeConverter();
-        getRuntimeEndpointRegistry();
 
         if (isTypeConverterStatisticsEnabled() != null) {
             getTypeConverterRegistry().getStatistics().setStatisticsEnabled(isTypeConverterStatisticsEnabled());

http://git-wip-us.apache.org/repos/asf/camel/blob/4a99a1bc/camel-core/src/main/java/org/apache/camel/impl/DefaultRuntimeEndpointRegistry.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/impl/DefaultRuntimeEndpointRegistry.java b/camel-core/src/main/java/org/apache/camel/impl/DefaultRuntimeEndpointRegistry.java
index 0008c66..706424f 100644
--- a/camel-core/src/main/java/org/apache/camel/impl/DefaultRuntimeEndpointRegistry.java
+++ b/camel-core/src/main/java/org/apache/camel/impl/DefaultRuntimeEndpointRegistry.java
@@ -198,6 +198,8 @@ public class DefaultRuntimeEndpointRegistry extends EventNotifierSupport impleme
         }
         if (extended) {
             log.info("Runtime endpoint registry is in extended mode gathering usage statistics of all incoming and outgoing endpoints (cache limit: {})", limit);
+        } else {
+            log.info("Runtime endpoint registry is in normal mode gathering information of all incoming and outgoing endpoints (cache limit: {})", limit);
         }
         ServiceHelper.startServices(inputUtilization, outputUtilization);
     }

http://git-wip-us.apache.org/repos/asf/camel/blob/4a99a1bc/camel-core/src/main/java/org/apache/camel/management/DefaultManagementAgent.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/management/DefaultManagementAgent.java b/camel-core/src/main/java/org/apache/camel/management/DefaultManagementAgent.java
index 3e8d64c..7f6449b 100644
--- a/camel-core/src/main/java/org/apache/camel/management/DefaultManagementAgent.java
+++ b/camel-core/src/main/java/org/apache/camel/management/DefaultManagementAgent.java
@@ -80,7 +80,7 @@ public class DefaultManagementAgent extends ServiceSupport implements Management
     private Boolean createConnector = false;
     private Boolean onlyRegisterProcessorWithCustomId = false;
     private Boolean loadStatisticsEnabled = false;
-    private Boolean endpointRuntimeStatisticsEnabled = true;
+    private Boolean endpointRuntimeStatisticsEnabled;
     private Boolean registerAlways = false;
     private Boolean registerNewRoutes = true;
     private Boolean mask = true;

http://git-wip-us.apache.org/repos/asf/camel/blob/4a99a1bc/camel-core/src/main/java/org/apache/camel/spi/ManagementAgent.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/spi/ManagementAgent.java b/camel-core/src/main/java/org/apache/camel/spi/ManagementAgent.java
index 36eec1e..7c7ee07 100644
--- a/camel-core/src/main/java/org/apache/camel/spi/ManagementAgent.java
+++ b/camel-core/src/main/java/org/apache/camel/spi/ManagementAgent.java
@@ -321,9 +321,9 @@ public interface ManagementAgent extends Service {
     /**
      * Sets whether endpoint runtime statistics is enabled (gathers runtime usage of each incoming and outgoing endpoints).
      * <p/>
-     * The default value is <tt>true</tt>
+     * The default value is <tt>false</tt>
      *
-     * @param flag <tt>false</tt> to disable endpoint runtime statistics
+     * @param flag <tt>true</tt> to enable endpoint runtime statistics
      */
     void setEndpointRuntimeStatisticsEnabled(Boolean flag);
 

http://git-wip-us.apache.org/repos/asf/camel/blob/4a99a1bc/camel-core/src/test/java/org/apache/camel/impl/MultipleLifecycleStrategyTest.java
----------------------------------------------------------------------
diff --git a/camel-core/src/test/java/org/apache/camel/impl/MultipleLifecycleStrategyTest.java b/camel-core/src/test/java/org/apache/camel/impl/MultipleLifecycleStrategyTest.java
index fd77a36..c222a3e 100644
--- a/camel-core/src/test/java/org/apache/camel/impl/MultipleLifecycleStrategyTest.java
+++ b/camel-core/src/test/java/org/apache/camel/impl/MultipleLifecycleStrategyTest.java
@@ -52,7 +52,7 @@ public class MultipleLifecycleStrategyTest extends TestSupport {
 
         List<String> expectedEvents = Arrays.asList("onContextStart",
             "onServiceAdd", "onServiceAdd", "onServiceAdd", "onServiceAdd", "onServiceAdd", "onServiceAdd", "onServiceAdd",
-            "onServiceAdd", "onServiceAdd", "onServiceAdd", "onServiceAdd", "onServiceAdd", "onServiceAdd", "onServiceAdd",
+            "onServiceAdd", "onServiceAdd", "onServiceAdd", "onServiceAdd", "onServiceAdd", "onServiceAdd", 
             "onComponentAdd", "onEndpointAdd", "onComponentRemove", "onContextStop");
         
         assertEquals(expectedEvents, dummy1.getEvents());

http://git-wip-us.apache.org/repos/asf/camel/blob/4a99a1bc/camel-core/src/test/java/org/apache/camel/impl/RuntimeEndpointRegistryTest.java
----------------------------------------------------------------------
diff --git a/camel-core/src/test/java/org/apache/camel/impl/RuntimeEndpointRegistryTest.java b/camel-core/src/test/java/org/apache/camel/impl/RuntimeEndpointRegistryTest.java
index abb381f..d563a9a 100644
--- a/camel-core/src/test/java/org/apache/camel/impl/RuntimeEndpointRegistryTest.java
+++ b/camel-core/src/test/java/org/apache/camel/impl/RuntimeEndpointRegistryTest.java
@@ -16,15 +16,25 @@
  */
 package org.apache.camel.impl;
 
+import org.apache.camel.CamelContext;
 import org.apache.camel.ContextTestSupport;
+import org.apache.camel.ManagementStatisticsLevel;
 import org.apache.camel.builder.RouteBuilder;
 import org.apache.camel.component.mock.MockEndpoint;
 import org.apache.camel.spi.RuntimeEndpointRegistry;
 
 public class RuntimeEndpointRegistryTest extends ContextTestSupport {
 
+    @Override
+    protected CamelContext createCamelContext() throws Exception {
+        CamelContext camelContext = super.createCamelContext();
+        camelContext.setRuntimeEndpointRegistry(new DefaultRuntimeEndpointRegistry());
+        return camelContext;
+    }
+
     public void testRuntimeEndpointRegistry() throws Exception {
         RuntimeEndpointRegistry registry = context.getRuntimeEndpointRegistry();
+
         assertEquals(0, registry.getAllEndpoints(false).size());
         // we have 2 at the start as we have all endpoints for the route consumers
         assertEquals(2, registry.getAllEndpoints(true).size());

http://git-wip-us.apache.org/repos/asf/camel/blob/4a99a1bc/camel-core/src/test/java/org/apache/camel/management/ManagedEndpointUtilizationStatisticsTest.java
----------------------------------------------------------------------
diff --git a/camel-core/src/test/java/org/apache/camel/management/ManagedEndpointUtilizationStatisticsTest.java b/camel-core/src/test/java/org/apache/camel/management/ManagedEndpointUtilizationStatisticsTest.java
index ea68d91..2755ced 100644
--- a/camel-core/src/test/java/org/apache/camel/management/ManagedEndpointUtilizationStatisticsTest.java
+++ b/camel-core/src/test/java/org/apache/camel/management/ManagedEndpointUtilizationStatisticsTest.java
@@ -31,7 +31,7 @@ public class ManagedEndpointUtilizationStatisticsTest extends ManagementTestSupp
     @Override
     protected CamelContext createCamelContext() throws Exception {
         CamelContext camelContext = super.createCamelContext();
-        // turn on extended mode
+        // turn on runtime statistics in extended mode
         camelContext.getManagementStrategy().getManagementAgent().setStatisticsLevel(ManagementStatisticsLevel.Extended);
         return camelContext;
     }

http://git-wip-us.apache.org/repos/asf/camel/blob/4a99a1bc/camel-core/src/test/java/org/apache/camel/management/ManagedNonManagedServiceTest.java
----------------------------------------------------------------------
diff --git a/camel-core/src/test/java/org/apache/camel/management/ManagedNonManagedServiceTest.java b/camel-core/src/test/java/org/apache/camel/management/ManagedNonManagedServiceTest.java
index 34c9cce..b24957b 100644
--- a/camel-core/src/test/java/org/apache/camel/management/ManagedNonManagedServiceTest.java
+++ b/camel-core/src/test/java/org/apache/camel/management/ManagedNonManagedServiceTest.java
@@ -48,7 +48,7 @@ public class ManagedNonManagedServiceTest extends ManagementTestSupport {
         MBeanServer mbeanServer = getMBeanServer();
 
         Set<ObjectName> set = mbeanServer.queryNames(new ObjectName("*:type=services,*"), null);
-        assertEquals(12, set.size());
+        assertEquals(11, set.size());
     }
 
     public void testNonManagedService() throws Exception {
@@ -69,7 +69,7 @@ public class ManagedNonManagedServiceTest extends ManagementTestSupport {
         MBeanServer mbeanServer = getMBeanServer();
 
         Set<ObjectName> set = mbeanServer.queryNames(new ObjectName("*:type=services,*"), null);
-        assertEquals(11, set.size());
+        assertEquals(10, set.size());
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/camel/blob/4a99a1bc/camel-core/src/test/java/org/apache/camel/management/ManagedProducerRouteAddRemoveRegisterAlwaysTest.java
----------------------------------------------------------------------
diff --git a/camel-core/src/test/java/org/apache/camel/management/ManagedProducerRouteAddRemoveRegisterAlwaysTest.java b/camel-core/src/test/java/org/apache/camel/management/ManagedProducerRouteAddRemoveRegisterAlwaysTest.java
index 1b57d5a..b2b58e5 100644
--- a/camel-core/src/test/java/org/apache/camel/management/ManagedProducerRouteAddRemoveRegisterAlwaysTest.java
+++ b/camel-core/src/test/java/org/apache/camel/management/ManagedProducerRouteAddRemoveRegisterAlwaysTest.java
@@ -29,7 +29,7 @@ import org.apache.camel.component.mock.MockEndpoint;
  */
 public class ManagedProducerRouteAddRemoveRegisterAlwaysTest extends ManagementTestSupport {
 
-    private int services = 11;
+    private int services = 10;
 
     @Override
     protected CamelContext createCamelContext() throws Exception {

http://git-wip-us.apache.org/repos/asf/camel/blob/4a99a1bc/camel-core/src/test/java/org/apache/camel/management/ManagedRouteAddRemoveTest.java
----------------------------------------------------------------------
diff --git a/camel-core/src/test/java/org/apache/camel/management/ManagedRouteAddRemoveTest.java b/camel-core/src/test/java/org/apache/camel/management/ManagedRouteAddRemoveTest.java
index 5429a1e..f4804a6 100644
--- a/camel-core/src/test/java/org/apache/camel/management/ManagedRouteAddRemoveTest.java
+++ b/camel-core/src/test/java/org/apache/camel/management/ManagedRouteAddRemoveTest.java
@@ -33,7 +33,7 @@ import org.apache.camel.component.mock.MockEndpoint;
  */
 public class ManagedRouteAddRemoveTest extends ManagementTestSupport {
     
-    private int services = 11;
+    private int services = 10;
 
     @Override
     protected RouteBuilder createRouteBuilder() throws Exception {

http://git-wip-us.apache.org/repos/asf/camel/blob/4a99a1bc/camel-core/src/test/java/org/apache/camel/processor/SimpleMockSampleTest.java
----------------------------------------------------------------------
diff --git a/camel-core/src/test/java/org/apache/camel/processor/SimpleMockSampleTest.java b/camel-core/src/test/java/org/apache/camel/processor/SimpleMockSampleTest.java
index e90c347..2a084ce 100644
--- a/camel-core/src/test/java/org/apache/camel/processor/SimpleMockSampleTest.java
+++ b/camel-core/src/test/java/org/apache/camel/processor/SimpleMockSampleTest.java
@@ -28,15 +28,6 @@ import org.apache.camel.impl.SimpleRegistry;
  */
 public class SimpleMockSampleTest extends ContextTestSupport {
 
-    @Override
-    protected CamelContext createCamelContext() throws Exception {
-        // use simple register which is faster than jndi
-        CamelContext context = new DefaultCamelContext(new SimpleRegistry());
-        // can be used to optimise camel
-        context.getRuntimeEndpointRegistry().setEnabled(false);
-        return context;
-    }
-
     public void testSimpleThousandMessages() throws Exception {
         int count = 1000;
         MockEndpoint mock = getMockEndpoint("mock:result");

http://git-wip-us.apache.org/repos/asf/camel/blob/4a99a1bc/components/camel-spring-boot/src/main/java/org/apache/camel/spring/boot/CamelAutoConfiguration.java
----------------------------------------------------------------------
diff --git a/components/camel-spring-boot/src/main/java/org/apache/camel/spring/boot/CamelAutoConfiguration.java b/components/camel-spring-boot/src/main/java/org/apache/camel/spring/boot/CamelAutoConfiguration.java
index 4a8fcbb..c05b66d 100644
--- a/components/camel-spring-boot/src/main/java/org/apache/camel/spring/boot/CamelAutoConfiguration.java
+++ b/components/camel-spring-boot/src/main/java/org/apache/camel/spring/boot/CamelAutoConfiguration.java
@@ -29,6 +29,7 @@ import org.apache.camel.ProducerTemplate;
 import org.apache.camel.TypeConverters;
 import org.apache.camel.component.properties.PropertiesComponent;
 import org.apache.camel.component.properties.PropertiesParser;
+import org.apache.camel.impl.DefaultRuntimeEndpointRegistry;
 import org.apache.camel.impl.FileWatcherReloadStrategy;
 import org.apache.camel.processor.interceptor.BacklogTracer;
 import org.apache.camel.processor.interceptor.DefaultTraceFormatter;

http://git-wip-us.apache.org/repos/asf/camel/blob/4a99a1bc/components/camel-spring-boot/src/main/java/org/apache/camel/spring/boot/CamelConfigurationProperties.java
----------------------------------------------------------------------
diff --git a/components/camel-spring-boot/src/main/java/org/apache/camel/spring/boot/CamelConfigurationProperties.java b/components/camel-spring-boot/src/main/java/org/apache/camel/spring/boot/CamelConfigurationProperties.java
index f66fa61..6d6aa29 100644
--- a/components/camel-spring-boot/src/main/java/org/apache/camel/spring/boot/CamelConfigurationProperties.java
+++ b/components/camel-spring-boot/src/main/java/org/apache/camel/spring/boot/CamelConfigurationProperties.java
@@ -296,9 +296,9 @@ public class CamelConfigurationProperties {
     /**
      * Sets whether endpoint runtime statistics is enabled (gathers runtime usage of each incoming and outgoing endpoints).
      *
-     * The default value is true.
+     * The default value is false.
      */
-    private boolean endpointRuntimeStatisticsEnabled = true;
+    private boolean endpointRuntimeStatisticsEnabled;
 
     /**
      * Sets the JMX statistics level