CAMEL-9015: JMX Agent should always let JVM system properties take precedence. Also aling that all the options is configured on the agent and not a mix of strategty/agent.
Project: http://git-wip-us.apache.org/repos/asf/camel/repo Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/9b047c8c Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/9b047c8c Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/9b047c8c Branch: refs/heads/master Commit: 9b047c8c0da2a2ec903a584949be387efd1b534f Parents: 488f391 Author: Claus Ibsen <davscl...@apache.org> Authored: Sun Jul 26 09:52:18 2015 +0200 Committer: Claus Ibsen <davscl...@apache.org> Committed: Sun Jul 26 13:34:12 2015 +0200 ---------------------------------------------------------------------- .../org/apache/camel/impl/ProducerCache.java | 8 ++++++- .../management/DefaultManagementStrategy.java | 25 ++++++++++++++++---- .../management/mbean/ManagedCamelContext.java | 2 +- .../camel/management/mbean/ManagedRoute.java | 2 +- .../ManagedRedeliverRouteOnlyTest.java | 2 +- .../ManagedStatisticsLevelOffTest.java | 4 ++-- .../ManagedStatisticsLevelRoutesOnlyTest.java | 2 +- 7 files changed, 34 insertions(+), 11 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/camel/blob/9b047c8c/camel-core/src/main/java/org/apache/camel/impl/ProducerCache.java ---------------------------------------------------------------------- diff --git a/camel-core/src/main/java/org/apache/camel/impl/ProducerCache.java b/camel-core/src/main/java/org/apache/camel/impl/ProducerCache.java index a78f4dd..7b2cd37 100644 --- a/camel-core/src/main/java/org/apache/camel/impl/ProducerCache.java +++ b/camel-core/src/main/java/org/apache/camel/impl/ProducerCache.java @@ -81,7 +81,13 @@ public class ProducerCache extends ServiceSupport { this.camelContext = camelContext; this.pool = producerServicePool; this.producers = cache; - this.extendedStatistics = camelContext.getManagementStrategy().getManagementAgent().getStatisticsLevel().isExtended(); + + // only if JMX is enabled + if (camelContext.getManagementStrategy().getManagementAgent() != null) { + this.extendedStatistics = camelContext.getManagementStrategy().getManagementAgent().getStatisticsLevel().isExtended(); + } else { + this.extendedStatistics = false; + } } public boolean isEventNotifierEnabled() { http://git-wip-us.apache.org/repos/asf/camel/blob/9b047c8c/camel-core/src/main/java/org/apache/camel/management/DefaultManagementStrategy.java ---------------------------------------------------------------------- diff --git a/camel-core/src/main/java/org/apache/camel/management/DefaultManagementStrategy.java b/camel-core/src/main/java/org/apache/camel/management/DefaultManagementStrategy.java index b918186..7a20ea2 100644 --- a/camel-core/src/main/java/org/apache/camel/management/DefaultManagementStrategy.java +++ b/camel-core/src/main/java/org/apache/camel/management/DefaultManagementStrategy.java @@ -187,19 +187,36 @@ public class DefaultManagementStrategy extends ServiceSupport implements Managem } public void setStatisticsLevel(ManagementStatisticsLevel level) { - this.statisticsLevel = level; + if (managementAgent != null) { + getManagementAgent().setStatisticsLevel(level); + } else { + throw new IllegalStateException("Not started"); + } } public ManagementStatisticsLevel getStatisticsLevel() { - return statisticsLevel; + if (managementAgent != null) { + return getManagementAgent().getStatisticsLevel(); + } else { + throw new IllegalStateException("Not started"); + } } public boolean isLoadStatisticsEnabled() { - return loadStatisticsEnabled; + if (managementAgent != null) { + boolean load = getManagementAgent().getLoadStatisticsEnabled() != null && getManagementAgent().getLoadStatisticsEnabled(); + return load; + } else { + throw new IllegalStateException("Not started"); + } } public void setLoadStatisticsEnabled(boolean loadStatisticsEnabled) { - this.loadStatisticsEnabled = loadStatisticsEnabled; + if (managementAgent != null) { + getManagementAgent().setLoadStatisticsEnabled(loadStatisticsEnabled); + } else { + throw new IllegalStateException("Not started"); + } } protected void doStart() throws Exception { http://git-wip-us.apache.org/repos/asf/camel/blob/9b047c8c/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedCamelContext.java ---------------------------------------------------------------------- diff --git a/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedCamelContext.java b/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedCamelContext.java index 8d49fd8..7584cbb 100644 --- a/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedCamelContext.java +++ b/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedCamelContext.java @@ -73,7 +73,7 @@ public class ManagedCamelContext extends ManagedPerformanceCounter implements Ti public ManagedCamelContext(ModelCamelContext context) { this.context = context; - boolean enabled = context.getManagementStrategy().getStatisticsLevel() != ManagementStatisticsLevel.Off; + boolean enabled = context.getManagementStrategy().getManagementAgent().getStatisticsLevel() != ManagementStatisticsLevel.Off; setStatisticsEnabled(enabled); } http://git-wip-us.apache.org/repos/asf/camel/blob/9b047c8c/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedRoute.java ---------------------------------------------------------------------- diff --git a/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedRoute.java b/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedRoute.java index cd979ce..43ad47e 100644 --- a/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedRoute.java +++ b/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedRoute.java @@ -64,7 +64,7 @@ public class ManagedRoute extends ManagedPerformanceCounter implements TimerList this.route = route; this.context = context; this.description = route.getDescription(); - boolean enabled = context.getManagementStrategy().getStatisticsLevel() != ManagementStatisticsLevel.Off; + boolean enabled = context.getManagementStrategy().getManagementAgent().getStatisticsLevel() != ManagementStatisticsLevel.Off; setStatisticsEnabled(enabled); } http://git-wip-us.apache.org/repos/asf/camel/blob/9b047c8c/camel-core/src/test/java/org/apache/camel/management/ManagedRedeliverRouteOnlyTest.java ---------------------------------------------------------------------- diff --git a/camel-core/src/test/java/org/apache/camel/management/ManagedRedeliverRouteOnlyTest.java b/camel-core/src/test/java/org/apache/camel/management/ManagedRedeliverRouteOnlyTest.java index 054681a..1a63926 100644 --- a/camel-core/src/test/java/org/apache/camel/management/ManagedRedeliverRouteOnlyTest.java +++ b/camel-core/src/test/java/org/apache/camel/management/ManagedRedeliverRouteOnlyTest.java @@ -61,7 +61,7 @@ public class ManagedRedeliverRouteOnlyTest extends ManagementTestSupport { return new RouteBuilder() { @Override public void configure() throws Exception { - context.getManagementStrategy().setStatisticsLevel(ManagementStatisticsLevel.RoutesOnly); + context.getManagementStrategy().getManagementAgent().setStatisticsLevel(ManagementStatisticsLevel.RoutesOnly); onException(Exception.class).handled(true) .maximumRedeliveries(4).logStackTrace(false) http://git-wip-us.apache.org/repos/asf/camel/blob/9b047c8c/camel-core/src/test/java/org/apache/camel/management/ManagedStatisticsLevelOffTest.java ---------------------------------------------------------------------- diff --git a/camel-core/src/test/java/org/apache/camel/management/ManagedStatisticsLevelOffTest.java b/camel-core/src/test/java/org/apache/camel/management/ManagedStatisticsLevelOffTest.java index 365eed3..630b044 100644 --- a/camel-core/src/test/java/org/apache/camel/management/ManagedStatisticsLevelOffTest.java +++ b/camel-core/src/test/java/org/apache/camel/management/ManagedStatisticsLevelOffTest.java @@ -34,7 +34,7 @@ public class ManagedStatisticsLevelOffTest extends ManagementTestSupport { protected CamelContext createCamelContext() throws Exception { CamelContext context = super.createCamelContext(); // disable it by default - context.getManagementStrategy().setStatisticsLevel(ManagementStatisticsLevel.Off); + context.getManagementStrategy().getManagementAgent().setStatisticsLevel(ManagementStatisticsLevel.Off); return context; } @@ -59,7 +59,7 @@ public class ManagedStatisticsLevelOffTest extends ManagementTestSupport { Long completed = (Long) mbeanServer.getAttribute(on, "ExchangesCompleted"); assertEquals(0, completed.longValue()); - // disable statistics + // enable statistics mbeanServer.setAttribute(on, new Attribute("StatisticsEnabled", true)); // send in another message http://git-wip-us.apache.org/repos/asf/camel/blob/9b047c8c/camel-core/src/test/java/org/apache/camel/management/ManagedStatisticsLevelRoutesOnlyTest.java ---------------------------------------------------------------------- diff --git a/camel-core/src/test/java/org/apache/camel/management/ManagedStatisticsLevelRoutesOnlyTest.java b/camel-core/src/test/java/org/apache/camel/management/ManagedStatisticsLevelRoutesOnlyTest.java index f2bb52f..a97a754 100644 --- a/camel-core/src/test/java/org/apache/camel/management/ManagedStatisticsLevelRoutesOnlyTest.java +++ b/camel-core/src/test/java/org/apache/camel/management/ManagedStatisticsLevelRoutesOnlyTest.java @@ -34,7 +34,7 @@ public class ManagedStatisticsLevelRoutesOnlyTest extends ManagementTestSupport CamelContext context = super.createCamelContext(); // only routes - context.getManagementStrategy().setStatisticsLevel(ManagementStatisticsLevel.RoutesOnly); + context.getManagementStrategy().getManagementAgent().setStatisticsLevel(ManagementStatisticsLevel.RoutesOnly); return context; }