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/9ad56023 Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/9ad56023 Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/9ad56023 Branch: refs/heads/master Commit: 9ad5602354f45541c3420a93f76eafa3a42a3851 Parents: c4c5ab3 Author: Claus Ibsen <davscl...@apache.org> Authored: Sun Jul 26 12:17:12 2015 +0200 Committer: Claus Ibsen <davscl...@apache.org> Committed: Sun Jul 26 13:34:13 2015 +0200 ---------------------------------------------------------------------- .../management/DefaultManagementStrategy.java | 33 ++++++++++++-------- .../management/mbean/ManagedCamelContext.java | 8 ++++- .../management/mbean/ManagedProcessor.java | 5 +++ .../camel/management/mbean/ManagedRoute.java | 16 +++++----- .../org/apache/camel/util/EventHelperTest.java | 27 +++++++--------- 5 files changed, 52 insertions(+), 37 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/camel/blob/9ad56023/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 7a20ea2..6a46c61 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 @@ -58,10 +58,7 @@ public class DefaultManagementStrategy extends ServiceSupport implements Managem private EventFactory eventFactory = new DefaultEventFactory(); private ManagementNamingStrategy managementNamingStrategy; private ManagementObjectStrategy managementObjectStrategy; - private Boolean onlyManageProcessorWithCustomId; private ManagementAgent managementAgent; - private ManagementStatisticsLevel statisticsLevel; - private Boolean loadStatisticsEnabled; private CamelContext camelContext; public DefaultManagementStrategy() { @@ -125,12 +122,24 @@ public class DefaultManagementStrategy extends ServiceSupport implements Managem this.managementAgent = managementAgent; } + @Deprecated public void onlyManageProcessorWithCustomId(boolean flag) { - onlyManageProcessorWithCustomId = flag; + LOG.warn("Using @deprecated option onlyManageProcessorWithCustomId on ManagementStrategy. Configure this on ManagementAgent instead."); + if (managementAgent != null) { + getManagementAgent().setOnlyRegisterProcessorWithCustomId(flag); + } else { + throw new IllegalStateException("Not started"); + } } + @Deprecated public boolean isOnlyManageProcessorWithCustomId() { - return onlyManageProcessorWithCustomId != null && onlyManageProcessorWithCustomId; + if (managementAgent != null) { + boolean only = getManagementAgent().getOnlyRegisterProcessorWithCustomId() != null && getManagementAgent().getOnlyRegisterProcessorWithCustomId(); + return only; + } else { + throw new IllegalStateException("Not started"); + } } public boolean manageProcessor(ProcessorDefinition<?> definition) { @@ -186,7 +195,9 @@ public class DefaultManagementStrategy extends ServiceSupport implements Managem return null; } + @Deprecated public void setStatisticsLevel(ManagementStatisticsLevel level) { + LOG.warn("Using @deprecated option statisticsLevel on ManagementStrategy. Configure this on ManagementAgent instead."); if (managementAgent != null) { getManagementAgent().setStatisticsLevel(level); } else { @@ -194,6 +205,7 @@ public class DefaultManagementStrategy extends ServiceSupport implements Managem } } + @Deprecated public ManagementStatisticsLevel getStatisticsLevel() { if (managementAgent != null) { return getManagementAgent().getStatisticsLevel(); @@ -202,6 +214,7 @@ public class DefaultManagementStrategy extends ServiceSupport implements Managem } } + @Deprecated public boolean isLoadStatisticsEnabled() { if (managementAgent != null) { boolean load = getManagementAgent().getLoadStatisticsEnabled() != null && getManagementAgent().getLoadStatisticsEnabled(); @@ -211,7 +224,9 @@ public class DefaultManagementStrategy extends ServiceSupport implements Managem } } + @Deprecated public void setLoadStatisticsEnabled(boolean loadStatisticsEnabled) { + LOG.warn("Using @deprecated option loadStatisticsEnabled on ManagementStrategy. Configure this on ManagementAgent instead."); if (managementAgent != null) { getManagementAgent().setLoadStatisticsEnabled(loadStatisticsEnabled); } else { @@ -246,14 +261,6 @@ public class DefaultManagementStrategy extends ServiceSupport implements Managem if (managementNamingStrategy == null) { setManagementNamingStrategy(new DefaultManagementNamingStrategy(managementAgent.getMBeanObjectDomainName())); } - if (statisticsLevel != null) { - LOG.warn("Using @deprecated option statisticsLevel on ManagementStrategy. Configure this on ManagementAgent instead."); - managementAgent.setStatisticsLevel(statisticsLevel); - } - if (onlyManageProcessorWithCustomId != null) { - LOG.warn("Using @deprecated option onlyManageProcessorWithCustomId on ManagementStrategy. Configure this on ManagementAgent instead."); - managementAgent.setOnlyRegisterProcessorWithCustomId(onlyManageProcessorWithCustomId); - } } if (managementNamingStrategy instanceof CamelContextAware) { ((CamelContextAware) managementNamingStrategy).setCamelContext(getCamelContext()); http://git-wip-us.apache.org/repos/asf/camel/blob/9ad56023/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 7584cbb..1cb56a1 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 @@ -37,6 +37,7 @@ import javax.management.openmbean.CompositeType; import javax.management.openmbean.TabularData; import javax.management.openmbean.TabularDataSupport; +import org.apache.camel.spi.ManagementStrategy; import org.w3c.dom.Document; import org.apache.camel.CamelContext; @@ -73,7 +74,12 @@ public class ManagedCamelContext extends ManagedPerformanceCounter implements Ti public ManagedCamelContext(ModelCamelContext context) { this.context = context; - boolean enabled = context.getManagementStrategy().getManagementAgent().getStatisticsLevel() != ManagementStatisticsLevel.Off; + } + + @Override + public void init(ManagementStrategy strategy) { + super.init(strategy); + boolean enabled = context.getManagementStrategy().getManagementAgent() != null && context.getManagementStrategy().getManagementAgent().getStatisticsLevel() != ManagementStatisticsLevel.Off; setStatisticsEnabled(enabled); } http://git-wip-us.apache.org/repos/asf/camel/blob/9ad56023/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedProcessor.java ---------------------------------------------------------------------- diff --git a/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedProcessor.java b/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedProcessor.java index 8fb61be..4106dc0 100644 --- a/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedProcessor.java +++ b/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedProcessor.java @@ -35,6 +35,7 @@ import org.apache.camel.api.management.mbean.CamelOpenMBeanTypes; import org.apache.camel.api.management.mbean.ManagedProcessorMBean; import org.apache.camel.model.ModelHelper; import org.apache.camel.model.ProcessorDefinition; +import org.apache.camel.spi.ManagementStrategy; import org.apache.camel.util.JsonSchemaHelper; import org.apache.camel.util.ObjectHelper; import org.apache.camel.util.ServiceHelper; @@ -56,7 +57,11 @@ public class ManagedProcessor extends ManagedPerformanceCounter implements Manag this.processor = processor; this.definition = definition; this.id = definition.idOrCreate(context.getNodeIdFactory()); + } + @Override + public void init(ManagementStrategy strategy) { + super.init(strategy); boolean enabled = context.getManagementStrategy().getManagementAgent().getStatisticsLevel().isDefaultOrExtended(); setStatisticsEnabled(enabled); } http://git-wip-us.apache.org/repos/asf/camel/blob/9ad56023/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 43ad47e..50d041c 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 @@ -28,7 +28,6 @@ import java.util.concurrent.ConcurrentSkipListMap; import java.util.concurrent.TimeUnit; import javax.management.AttributeValueExp; import javax.management.MBeanServer; -import javax.management.MBeanServerInvocationHandler; import javax.management.ObjectName; import javax.management.Query; import javax.management.QueryExp; @@ -64,8 +63,16 @@ public class ManagedRoute extends ManagedPerformanceCounter implements TimerList this.route = route; this.context = context; this.description = route.getDescription(); + } + + @Override + public void init(ManagementStrategy strategy) { + super.init(strategy); boolean enabled = context.getManagementStrategy().getManagementAgent().getStatisticsLevel() != ManagementStatisticsLevel.Off; setStatisticsEnabled(enabled); + + exchangesInFlightKeys.clear(); + exchangesInFlightStartTimestamps.clear(); } public Route getRoute() { @@ -416,13 +423,6 @@ public class ManagedRoute extends ManagedPerformanceCounter implements TimerList } @Override - public void init(ManagementStrategy strategy) { - exchangesInFlightKeys.clear(); - exchangesInFlightStartTimestamps.clear(); - super.init(strategy); - } - - @Override public synchronized void processExchange(Exchange exchange) { InFlightKey key = new InFlightKey(System.currentTimeMillis(), exchange.getExchangeId()); InFlightKey oldKey = exchangesInFlightKeys.putIfAbsent(exchange.getExchangeId(), key); http://git-wip-us.apache.org/repos/asf/camel/blob/9ad56023/camel-core/src/test/java/org/apache/camel/util/EventHelperTest.java ---------------------------------------------------------------------- diff --git a/camel-core/src/test/java/org/apache/camel/util/EventHelperTest.java b/camel-core/src/test/java/org/apache/camel/util/EventHelperTest.java index f97ff02..881512c 100644 --- a/camel-core/src/test/java/org/apache/camel/util/EventHelperTest.java +++ b/camel-core/src/test/java/org/apache/camel/util/EventHelperTest.java @@ -47,11 +47,10 @@ public class EventHelperTest { } }); - ManagementStrategy managementStrategy = new DefaultManagementStrategy(); - managementStrategy.addEventNotifier(en1); - managementStrategy.addEventNotifier(en2); - camelContext.setManagementStrategy(managementStrategy); - + + camelContext.getManagementStrategy().addEventNotifier(en1); + camelContext.getManagementStrategy().addEventNotifier(en2); + camelContext.start(); camelContext.stop(); @@ -79,11 +78,10 @@ public class EventHelperTest { } }); - ManagementStrategy managementStrategy = new DefaultManagementStrategy(); - managementStrategy.addEventNotifier(en1); - managementStrategy.addEventNotifier(en2); - camelContext.setManagementStrategy(managementStrategy); - + + camelContext.getManagementStrategy().addEventNotifier(en1); + camelContext.getManagementStrategy().addEventNotifier(en2); + camelContext.start(); camelContext.stop(); @@ -111,11 +109,10 @@ public class EventHelperTest { } }); - ManagementStrategy managementStrategy = new DefaultManagementStrategy(); - managementStrategy.addEventNotifier(en1); - managementStrategy.addEventNotifier(en2); - camelContext.setManagementStrategy(managementStrategy); - + + camelContext.getManagementStrategy().addEventNotifier(en1); + camelContext.getManagementStrategy().addEventNotifier(en2); + camelContext.start(); camelContext.stop();