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