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/488f3912 Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/488f3912 Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/488f3912 Branch: refs/heads/master Commit: 488f39126a6ba0ab238e53361bce0880f39b3b88 Parents: c483de7 Author: Claus Ibsen <davscl...@apache.org> Authored: Sun Jul 26 09:37:35 2015 +0200 Committer: Claus Ibsen <davscl...@apache.org> Committed: Sun Jul 26 13:34:12 2015 +0200 ---------------------------------------------------------------------- .../apache/camel/ManagementStatisticsLevel.java | 10 +- .../impl/DefaultManagementNameStrategy.java | 4 +- .../org/apache/camel/impl/ProducerCache.java | 2 +- .../management/DefaultManagementAgent.java | 109 +++++++++++++++---- .../DefaultManagementLifecycleStrategy.java | 11 +- .../management/DefaultManagementStrategy.java | 25 ++--- .../camel/management/JmxSystemPropertyKeys.java | 6 + .../management/mbean/ManagedProcessor.java | 3 +- .../org/apache/camel/spi/ManagementAgent.java | 49 +++++++++ .../apache/camel/spi/ManagementStrategy.java | 28 +++-- ...onOnlyRegisterProcessorWithCustomIdTest.java | 2 +- .../management/ManagedDynamicRouterTest.java | 3 +- .../camel/management/ManagedEnricherTest.java | 3 +- .../management/ManagedRecipientListTest.java | 3 +- .../ManagedRouteLoadstatisticsTest.java | 6 +- .../management/ManagedRoutingSlipTest.java | 3 +- .../ManagedSendDynamicProcessorTest.java | 3 +- .../camel/management/ManagedWireTapTest.java | 3 +- 18 files changed, 202 insertions(+), 71 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/camel/blob/488f3912/camel-core/src/main/java/org/apache/camel/ManagementStatisticsLevel.java ---------------------------------------------------------------------- diff --git a/camel-core/src/main/java/org/apache/camel/ManagementStatisticsLevel.java b/camel-core/src/main/java/org/apache/camel/ManagementStatisticsLevel.java index 730f433..cc02bbe 100644 --- a/camel-core/src/main/java/org/apache/camel/ManagementStatisticsLevel.java +++ b/camel-core/src/main/java/org/apache/camel/ManagementStatisticsLevel.java @@ -26,6 +26,14 @@ import javax.xml.bind.annotation.XmlEnum; @XmlEnum public enum ManagementStatisticsLevel { - All, RoutesOnly, Off + Extended, Default, RoutesOnly, Off; + + public boolean isDefaultOrExtended() { + return ordinal() == Default.ordinal() || ordinal() == Extended.ordinal(); + } + + public boolean isExtended() { + return ordinal() == Extended.ordinal(); + } } http://git-wip-us.apache.org/repos/asf/camel/blob/488f3912/camel-core/src/main/java/org/apache/camel/impl/DefaultManagementNameStrategy.java ---------------------------------------------------------------------- diff --git a/camel-core/src/main/java/org/apache/camel/impl/DefaultManagementNameStrategy.java b/camel-core/src/main/java/org/apache/camel/impl/DefaultManagementNameStrategy.java index 85df49c..87817af 100644 --- a/camel-core/src/main/java/org/apache/camel/impl/DefaultManagementNameStrategy.java +++ b/camel-core/src/main/java/org/apache/camel/impl/DefaultManagementNameStrategy.java @@ -43,7 +43,7 @@ public class DefaultManagementNameStrategy implements ManagementNameStrategy { private String namePattern; public DefaultManagementNameStrategy(CamelContext camelContext) { - this(camelContext, System.getProperty(JmxSystemPropertyKeys.MANAGEMENT_NAME_PATTERN, "#name#"), "#name#-#counter#"); + this(camelContext, null, "#name#-#counter#"); } public DefaultManagementNameStrategy(CamelContext camelContext, String defaultPattern, String nextPattern) { @@ -68,7 +68,7 @@ public class DefaultManagementNameStrategy implements ManagementNameStrategy { String pattern = getNamePattern(); if (pattern == null) { // fallback and use the default pattern which is the same name as the CamelContext has been given - pattern = defaultPattern; + pattern = defaultPattern != null ? defaultPattern : camelContext.getManagementStrategy().getManagementAgent().getManagementNamePattern(); } name = resolveManagementName(pattern, camelContext.getName(), true); } http://git-wip-us.apache.org/repos/asf/camel/blob/488f3912/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 b321df2..a78f4dd 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,7 @@ public class ProducerCache extends ServiceSupport { this.camelContext = camelContext; this.pool = producerServicePool; this.producers = cache; - this.extendedStatistics = camelContext.getManagementStrategy().isExtendedStatisticsEnabled(); + this.extendedStatistics = camelContext.getManagementStrategy().getManagementAgent().getStatisticsLevel().isExtended(); } public boolean isEventNotifierEnabled() { http://git-wip-us.apache.org/repos/asf/camel/blob/488f3912/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 433dd21..f6c76a6 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 @@ -25,7 +25,9 @@ import java.rmi.RemoteException; import java.rmi.registry.LocateRegistry; import java.rmi.registry.Registry; import java.rmi.server.UnicastRemoteObject; +import java.util.LinkedHashMap; import java.util.List; +import java.util.Map; import java.util.concurrent.ConcurrentHashMap; import java.util.concurrent.ConcurrentMap; import javax.management.JMException; @@ -41,6 +43,7 @@ import javax.management.remote.JMXServiceURL; import org.apache.camel.CamelContext; import org.apache.camel.CamelContextAware; +import org.apache.camel.ManagementStatisticsLevel; import org.apache.camel.spi.ManagementAgent; import org.apache.camel.spi.ManagementMBeanAssembler; import org.apache.camel.support.ServiceSupport; @@ -67,18 +70,21 @@ public class DefaultManagementAgent extends ServiceSupport implements Management private JMXConnectorServer cs; private Registry registry; - private Integer registryPort; - private Integer connectorPort; - private String mBeanServerDefaultDomain; - private String mBeanObjectDomainName; - private String serviceUrlPath; + private Integer registryPort = DEFAULT_REGISTRY_PORT; + private Integer connectorPort = DEFAULT_CONNECTION_PORT; + private String mBeanServerDefaultDomain = DEFAULT_DOMAIN; + private String mBeanObjectDomainName = DEFAULT_DOMAIN; + private String serviceUrlPath = DEFAULT_SERVICE_URL_PATH; private Boolean usePlatformMBeanServer = true; - private Boolean createConnector; - private Boolean onlyRegisterProcessorWithCustomId; - private Boolean registerAlways; + private Boolean createConnector = false; + private Boolean onlyRegisterProcessorWithCustomId = false; + private Boolean loadStatisticsEnabled = false; + private Boolean registerAlways = false; private Boolean registerNewRoutes = true; - private Boolean mask; - private Boolean includeHostName; + private Boolean mask = true; + private Boolean includeHostName = false; + private String managementNamePattern = "#name#"; + private ManagementStatisticsLevel statisticsLevel = ManagementStatisticsLevel.Default; public DefaultManagementAgent() { } @@ -87,46 +93,77 @@ public class DefaultManagementAgent extends ServiceSupport implements Management this.camelContext = camelContext; } - protected void finalizeSettings() { - if (registryPort == null) { - registryPort = Integer.getInteger(JmxSystemPropertyKeys.REGISTRY_PORT, DEFAULT_REGISTRY_PORT); + protected void finalizeSettings() throws Exception { + // JVM system properties take precedence over any configuration + Map<String, Object> values = new LinkedHashMap<String, Object>(); + + if (System.getProperty(JmxSystemPropertyKeys.REGISTRY_PORT) != null) { + registryPort = Integer.getInteger(JmxSystemPropertyKeys.REGISTRY_PORT); + values.put(JmxSystemPropertyKeys.REGISTRY_PORT, registryPort); } - if (connectorPort == null) { - connectorPort = Integer.getInteger(JmxSystemPropertyKeys.CONNECTOR_PORT, DEFAULT_CONNECTION_PORT); + if (System.getProperty(JmxSystemPropertyKeys.CONNECTOR_PORT) != null) { + connectorPort = Integer.getInteger(JmxSystemPropertyKeys.CONNECTOR_PORT); + values.put(JmxSystemPropertyKeys.CONNECTOR_PORT, connectorPort); } - if (mBeanServerDefaultDomain == null) { - mBeanServerDefaultDomain = System.getProperty(JmxSystemPropertyKeys.DOMAIN, DEFAULT_DOMAIN); + if (System.getProperty(JmxSystemPropertyKeys.DOMAIN) != null) { + mBeanServerDefaultDomain = System.getProperty(JmxSystemPropertyKeys.DOMAIN); + values.put(JmxSystemPropertyKeys.DOMAIN, mBeanServerDefaultDomain); } - if (mBeanObjectDomainName == null) { - mBeanObjectDomainName = System.getProperty(JmxSystemPropertyKeys.MBEAN_DOMAIN, DEFAULT_DOMAIN); + if (System.getProperty(JmxSystemPropertyKeys.MBEAN_DOMAIN) != null) { + mBeanObjectDomainName = System.getProperty(JmxSystemPropertyKeys.MBEAN_DOMAIN); + values.put(JmxSystemPropertyKeys.MBEAN_DOMAIN, mBeanObjectDomainName); } - if (serviceUrlPath == null) { - serviceUrlPath = System.getProperty(JmxSystemPropertyKeys.SERVICE_URL_PATH, DEFAULT_SERVICE_URL_PATH); + if (System.getProperty(JmxSystemPropertyKeys.SERVICE_URL_PATH) != null) { + serviceUrlPath = System.getProperty(JmxSystemPropertyKeys.SERVICE_URL_PATH); + values.put(JmxSystemPropertyKeys.SERVICE_URL_PATH, serviceUrlPath); } - if (createConnector == null) { + if (System.getProperty(JmxSystemPropertyKeys.CREATE_CONNECTOR) != null) { createConnector = Boolean.getBoolean(JmxSystemPropertyKeys.CREATE_CONNECTOR); + values.put(JmxSystemPropertyKeys.CREATE_CONNECTOR, createConnector); } - if (onlyRegisterProcessorWithCustomId == null) { + if (System.getProperty(JmxSystemPropertyKeys.ONLY_REGISTER_PROCESSOR_WITH_CUSTOM_ID) != null) { onlyRegisterProcessorWithCustomId = Boolean.getBoolean(JmxSystemPropertyKeys.ONLY_REGISTER_PROCESSOR_WITH_CUSTOM_ID); + values.put(JmxSystemPropertyKeys.ONLY_REGISTER_PROCESSOR_WITH_CUSTOM_ID, onlyRegisterProcessorWithCustomId); } - // "Use platform mbean server" is true by default if (System.getProperty(JmxSystemPropertyKeys.USE_PLATFORM_MBS) != null) { usePlatformMBeanServer = Boolean.getBoolean(JmxSystemPropertyKeys.USE_PLATFORM_MBS); + values.put(JmxSystemPropertyKeys.USE_PLATFORM_MBS, usePlatformMBeanServer); } if (System.getProperty(JmxSystemPropertyKeys.REGISTER_ALWAYS) != null) { registerAlways = Boolean.getBoolean(JmxSystemPropertyKeys.REGISTER_ALWAYS); + values.put(JmxSystemPropertyKeys.REGISTER_ALWAYS, registerAlways); } if (System.getProperty(JmxSystemPropertyKeys.REGISTER_NEW_ROUTES) != null) { registerNewRoutes = Boolean.getBoolean(JmxSystemPropertyKeys.REGISTER_NEW_ROUTES); + values.put(JmxSystemPropertyKeys.REGISTER_NEW_ROUTES, registerNewRoutes); } if (System.getProperty(JmxSystemPropertyKeys.MASK) != null) { mask = Boolean.getBoolean(JmxSystemPropertyKeys.MASK); + values.put(JmxSystemPropertyKeys.MASK, mask); } if (System.getProperty(JmxSystemPropertyKeys.INCLUDE_HOST_NAME) != null) { includeHostName = Boolean.getBoolean(JmxSystemPropertyKeys.INCLUDE_HOST_NAME); + values.put(JmxSystemPropertyKeys.INCLUDE_HOST_NAME, includeHostName); } if (System.getProperty(JmxSystemPropertyKeys.CREATE_CONNECTOR) != null) { createConnector = Boolean.getBoolean(JmxSystemPropertyKeys.CREATE_CONNECTOR); + values.put(JmxSystemPropertyKeys.CREATE_CONNECTOR, createConnector); + } + if (System.getProperty(JmxSystemPropertyKeys.LOAD_STATISTICS_ENABLED) != null) { + loadStatisticsEnabled = Boolean.getBoolean(JmxSystemPropertyKeys.LOAD_STATISTICS_ENABLED); + values.put(JmxSystemPropertyKeys.LOAD_STATISTICS_ENABLED, loadStatisticsEnabled); + } + if (System.getProperty(JmxSystemPropertyKeys.STATISTICS_LEVEL) != null) { + statisticsLevel = camelContext.getTypeConverter().mandatoryConvertTo(ManagementStatisticsLevel.class, System.getProperty(JmxSystemPropertyKeys.STATISTICS_LEVEL)); + values.put(JmxSystemPropertyKeys.STATISTICS_LEVEL, statisticsLevel); + } + if (System.getProperty(JmxSystemPropertyKeys.MANAGEMENT_NAME_PATTERN) != null) { + managementNamePattern = System.getProperty(JmxSystemPropertyKeys.MANAGEMENT_NAME_PATTERN); + values.put(JmxSystemPropertyKeys.MANAGEMENT_NAME_PATTERN, managementNamePattern); + } + + if (!values.isEmpty()) { + LOG.info("ManagementAgent detected JVM system properties: {}", values); } } @@ -234,6 +271,30 @@ public class DefaultManagementAgent extends ServiceSupport implements Management this.includeHostName = includeHostName; } + public String getManagementNamePattern() { + return managementNamePattern; + } + + public void setManagementNamePattern(String managementNamePattern) { + this.managementNamePattern = managementNamePattern; + } + + public Boolean getLoadStatisticsEnabled() { + return loadStatisticsEnabled; + } + + public void setLoadStatisticsEnabled(Boolean loadStatisticsEnabled) { + this.loadStatisticsEnabled = loadStatisticsEnabled; + } + + public ManagementStatisticsLevel getStatisticsLevel() { + return statisticsLevel; + } + + public void setStatisticsLevel(ManagementStatisticsLevel statisticsLevel) { + this.statisticsLevel = statisticsLevel; + } + public CamelContext getCamelContext() { return camelContext; } http://git-wip-us.apache.org/repos/asf/camel/blob/488f3912/camel-core/src/main/java/org/apache/camel/management/DefaultManagementLifecycleStrategy.java ---------------------------------------------------------------------- diff --git a/camel-core/src/main/java/org/apache/camel/management/DefaultManagementLifecycleStrategy.java b/camel-core/src/main/java/org/apache/camel/management/DefaultManagementLifecycleStrategy.java index 33d713b..7d0f922 100644 --- a/camel-core/src/main/java/org/apache/camel/management/DefaultManagementLifecycleStrategy.java +++ b/camel-core/src/main/java/org/apache/camel/management/DefaultManagementLifecycleStrategy.java @@ -758,7 +758,7 @@ public class DefaultManagementLifecycleStrategy extends ServiceSupport implement // that then delegates to the real mbean which we register later in the onServiceAdd method DelegatePerformanceCounter pc = new DelegatePerformanceCounter(); // set statistics enabled depending on the option - boolean enabled = camelContext.getManagementStrategy().getStatisticsLevel() == ManagementStatisticsLevel.All; + boolean enabled = camelContext.getManagementStrategy().getManagementAgent().getStatisticsLevel().isDefaultOrExtended(); pc.setStatisticsEnabled(enabled); // and add it as a a registered counter that will be used lazy when Camel @@ -793,7 +793,9 @@ public class DefaultManagementLifecycleStrategy extends ServiceSupport implement } // only if custom id assigned - if (getManagementStrategy().isOnlyManageProcessorWithCustomId()) { + boolean only = getManagementStrategy().getManagementAgent().getOnlyRegisterProcessorWithCustomId() != null + && getManagementStrategy().getManagementAgent().getOnlyRegisterProcessorWithCustomId(); + if (only) { return processor.hasCustomIdAssigned(); } @@ -908,8 +910,9 @@ public class DefaultManagementLifecycleStrategy extends ServiceSupport implement @Override public void onCamelContextStarted(CamelContext context, boolean alreadyStarted) throws Exception { // we are disabled either if configured explicit, or if level is off - boolean disabled = !camelContext.getManagementStrategy().isLoadStatisticsEnabled() - || camelContext.getManagementStrategy().getStatisticsLevel() == ManagementStatisticsLevel.Off; + boolean load = camelContext.getManagementStrategy().getManagementAgent().getLoadStatisticsEnabled() != null + && camelContext.getManagementStrategy().getManagementAgent().getLoadStatisticsEnabled(); + boolean disabled = !load || camelContext.getManagementStrategy().getStatisticsLevel() == ManagementStatisticsLevel.Off; LOG.debug("Load performance statistics {}", disabled ? "disabled" : "enabled"); if (!disabled) { http://git-wip-us.apache.org/repos/asf/camel/blob/488f3912/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 07fb638..b918186 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,11 +58,10 @@ public class DefaultManagementStrategy extends ServiceSupport implements Managem private EventFactory eventFactory = new DefaultEventFactory(); private ManagementNamingStrategy managementNamingStrategy; private ManagementObjectStrategy managementObjectStrategy; - private boolean onlyManageProcessorWithCustomId; + private Boolean onlyManageProcessorWithCustomId; private ManagementAgent managementAgent; - private ManagementStatisticsLevel statisticsLevel = ManagementStatisticsLevel.All; - private boolean loadStatisticsEnabled; - private boolean extendedStatisticsEnabled; + private ManagementStatisticsLevel statisticsLevel; + private Boolean loadStatisticsEnabled; private CamelContext camelContext; public DefaultManagementStrategy() { @@ -131,7 +130,7 @@ public class DefaultManagementStrategy extends ServiceSupport implements Managem } public boolean isOnlyManageProcessorWithCustomId() { - return onlyManageProcessorWithCustomId; + return onlyManageProcessorWithCustomId != null && onlyManageProcessorWithCustomId; } public boolean manageProcessor(ProcessorDefinition<?> definition) { @@ -203,14 +202,6 @@ public class DefaultManagementStrategy extends ServiceSupport implements Managem this.loadStatisticsEnabled = loadStatisticsEnabled; } - public boolean isExtendedStatisticsEnabled() { - return extendedStatisticsEnabled; - } - - public void setExtendedStatisticsEnabled(boolean extendedStatisticsEnabled) { - this.extendedStatisticsEnabled = extendedStatisticsEnabled; - } - protected void doStart() throws Exception { LOG.info("JMX is disabled"); doStartManagementStrategy(); @@ -238,6 +229,14 @@ 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/488f3912/camel-core/src/main/java/org/apache/camel/management/JmxSystemPropertyKeys.java ---------------------------------------------------------------------- diff --git a/camel-core/src/main/java/org/apache/camel/management/JmxSystemPropertyKeys.java b/camel-core/src/main/java/org/apache/camel/management/JmxSystemPropertyKeys.java index 14e64ec..fdde84c 100644 --- a/camel-core/src/main/java/org/apache/camel/management/JmxSystemPropertyKeys.java +++ b/camel-core/src/main/java/org/apache/camel/management/JmxSystemPropertyKeys.java @@ -50,6 +50,12 @@ public final class JmxSystemPropertyKeys { // whether all processors or only processors with a custom id given should be registered public static final String ONLY_REGISTER_PROCESSOR_WITH_CUSTOM_ID = "org.apache.camel.jmx.onlyRegisterProcessorWithCustomId"; + // whether to enable gathering load statistics in the background + public static final String LOAD_STATISTICS_ENABLED = "org.apache.camel.jmx.loadStatisticsEnabled"; + + // the level of statistics enabled + public static final String STATISTICS_LEVEL = "org.apache.camel.jmx.statisticsLevel"; + // whether to register always public static final String REGISTER_ALWAYS = "org.apache.camel.jmx.registerAlways"; http://git-wip-us.apache.org/repos/asf/camel/blob/488f3912/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 e1d9ef3..8fb61be 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 @@ -25,7 +25,6 @@ import javax.management.openmbean.TabularData; import javax.management.openmbean.TabularDataSupport; import org.apache.camel.CamelContext; -import org.apache.camel.ManagementStatisticsLevel; import org.apache.camel.Processor; import org.apache.camel.Route; import org.apache.camel.ServiceStatus; @@ -58,7 +57,7 @@ public class ManagedProcessor extends ManagedPerformanceCounter implements Manag this.definition = definition; this.id = definition.idOrCreate(context.getNodeIdFactory()); - boolean enabled = context.getManagementStrategy().getStatisticsLevel() == ManagementStatisticsLevel.All; + boolean enabled = context.getManagementStrategy().getManagementAgent().getStatisticsLevel().isDefaultOrExtended(); setStatisticsEnabled(enabled); } http://git-wip-us.apache.org/repos/asf/camel/blob/488f3912/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 df1f183..ae552da 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 @@ -20,6 +20,7 @@ import javax.management.JMException; import javax.management.MBeanServer; import javax.management.ObjectName; +import org.apache.camel.ManagementStatisticsLevel; import org.apache.camel.Service; /** @@ -287,4 +288,52 @@ public interface ManagementAgent extends Service { */ void setIncludeHostName(Boolean includeHostName); + /** + * The naming pattern for creating the CamelContext management name. + * <p/> + * The default pattern is <tt>#name#</tt> + */ + String getManagementNamePattern(); + + /** + * The naming pattern for creating the CamelContext management name. + * <p/> + * The default pattern is <tt>#name#</tt> + */ + void setManagementNamePattern(String managementNamePattern); + + /** + * Sets whether load statistics is enabled (gathers load statistics using a background thread per CamelContext). + * <p/> + * The default value is <tt>false</tt> + * + * @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 getLoadStatisticsEnabled(); + + /** + * Sets the statistics level + * <p/> + * Default is {@link org.apache.camel.ManagementStatisticsLevel#Default} + * <p/> + * The level can be set to <tt>Extended</tt> to gather additional information + * + * @param level the new level + */ + void setStatisticsLevel(ManagementStatisticsLevel level); + + /** + * Gets the statistics level + * + * @return the level + */ + ManagementStatisticsLevel getStatisticsLevel(); + } http://git-wip-us.apache.org/repos/asf/camel/blob/488f3912/camel-core/src/main/java/org/apache/camel/spi/ManagementStrategy.java ---------------------------------------------------------------------- diff --git a/camel-core/src/main/java/org/apache/camel/spi/ManagementStrategy.java b/camel-core/src/main/java/org/apache/camel/spi/ManagementStrategy.java index bc8ff06..d483eb4 100644 --- a/camel-core/src/main/java/org/apache/camel/spi/ManagementStrategy.java +++ b/camel-core/src/main/java/org/apache/camel/spi/ManagementStrategy.java @@ -207,58 +207,56 @@ public interface ManagementStrategy extends Service { * Default is false. * * @param flag <tt>true</tt> will only manage if custom id was set. + * @deprecated use {@link org.apache.camel.spi.ManagementAgent} */ + @Deprecated void onlyManageProcessorWithCustomId(boolean flag); /** * Checks whether only to manage processors if they have been configured with a custom id * * @return true or false + * @deprecated use {@link org.apache.camel.spi.ManagementAgent} */ + @Deprecated boolean isOnlyManageProcessorWithCustomId(); /** * Sets whether load statistics is enabled. * * @param flag <tt>true</tt> to enable load statistics + * @deprecated use {@link org.apache.camel.spi.ManagementAgent} */ + @Deprecated void setLoadStatisticsEnabled(boolean flag); /** * Gets whether load statistics is enabled * * @return <tt>true</tt> if enabled + * @deprecated use {@link org.apache.camel.spi.ManagementAgent} */ + @Deprecated boolean isLoadStatisticsEnabled(); /** - * Sets whether extended statistics is enabled, such as each EIP keep tracks of per endpoint utilization. - * - * @param flag <tt>true</tt> to enable extended statistics - */ - void setExtendedStatisticsEnabled(boolean flag); - - /** - * Gets whether extended statistics is enabled - * - * @return <tt>true</tt> if enabled - */ - boolean isExtendedStatisticsEnabled(); - - /** * Sets the statistics level * <p/> - * Default is {@link org.apache.camel.ManagementStatisticsLevel#All} + * Default is {@link org.apache.camel.ManagementStatisticsLevel#Default} * * @param level the new level + * @deprecated use {@link org.apache.camel.spi.ManagementAgent} */ + @Deprecated void setStatisticsLevel(ManagementStatisticsLevel level); /** * Gets the statistics level * * @return the level + * @deprecated use {@link org.apache.camel.spi.ManagementAgent} */ + @Deprecated ManagementStatisticsLevel getStatisticsLevel(); } http://git-wip-us.apache.org/repos/asf/camel/blob/488f3912/camel-core/src/test/java/org/apache/camel/management/JmxInstrumentationOnlyRegisterProcessorWithCustomIdTest.java ---------------------------------------------------------------------- diff --git a/camel-core/src/test/java/org/apache/camel/management/JmxInstrumentationOnlyRegisterProcessorWithCustomIdTest.java b/camel-core/src/test/java/org/apache/camel/management/JmxInstrumentationOnlyRegisterProcessorWithCustomIdTest.java index 78343d2..1861923 100644 --- a/camel-core/src/test/java/org/apache/camel/management/JmxInstrumentationOnlyRegisterProcessorWithCustomIdTest.java +++ b/camel-core/src/test/java/org/apache/camel/management/JmxInstrumentationOnlyRegisterProcessorWithCustomIdTest.java @@ -72,7 +72,7 @@ public class JmxInstrumentationOnlyRegisterProcessorWithCustomIdTest extends Con @Override protected CamelContext createCamelContext() throws Exception { CamelContext context = super.createCamelContext(); - context.getManagementStrategy().onlyManageProcessorWithCustomId(true); + context.getManagementStrategy().getManagementAgent().setOnlyRegisterProcessorWithCustomId(true); return context; } http://git-wip-us.apache.org/repos/asf/camel/blob/488f3912/camel-core/src/test/java/org/apache/camel/management/ManagedDynamicRouterTest.java ---------------------------------------------------------------------- diff --git a/camel-core/src/test/java/org/apache/camel/management/ManagedDynamicRouterTest.java b/camel-core/src/test/java/org/apache/camel/management/ManagedDynamicRouterTest.java index ccf10aa..5775132 100644 --- a/camel-core/src/test/java/org/apache/camel/management/ManagedDynamicRouterTest.java +++ b/camel-core/src/test/java/org/apache/camel/management/ManagedDynamicRouterTest.java @@ -21,6 +21,7 @@ import javax.management.ObjectName; import javax.management.openmbean.TabularData; import org.apache.camel.CamelContext; +import org.apache.camel.ManagementStatisticsLevel; import org.apache.camel.ServiceStatus; import org.apache.camel.builder.RouteBuilder; import org.apache.camel.component.mock.MockEndpoint; @@ -33,7 +34,7 @@ public class ManagedDynamicRouterTest extends ManagementTestSupport { @Override protected CamelContext createCamelContext() throws Exception { CamelContext context = super.createCamelContext(); - context.getManagementStrategy().setExtendedStatisticsEnabled(true); + context.getManagementStrategy().getManagementAgent().setStatisticsLevel(ManagementStatisticsLevel.Extended); return context; } http://git-wip-us.apache.org/repos/asf/camel/blob/488f3912/camel-core/src/test/java/org/apache/camel/management/ManagedEnricherTest.java ---------------------------------------------------------------------- diff --git a/camel-core/src/test/java/org/apache/camel/management/ManagedEnricherTest.java b/camel-core/src/test/java/org/apache/camel/management/ManagedEnricherTest.java index 99724b4..23c1596 100644 --- a/camel-core/src/test/java/org/apache/camel/management/ManagedEnricherTest.java +++ b/camel-core/src/test/java/org/apache/camel/management/ManagedEnricherTest.java @@ -21,6 +21,7 @@ import javax.management.ObjectName; import javax.management.openmbean.TabularData; import org.apache.camel.CamelContext; +import org.apache.camel.ManagementStatisticsLevel; import org.apache.camel.ServiceStatus; import org.apache.camel.builder.RouteBuilder; import org.apache.camel.component.mock.MockEndpoint; @@ -33,7 +34,7 @@ public class ManagedEnricherTest extends ManagementTestSupport { @Override protected CamelContext createCamelContext() throws Exception { CamelContext context = super.createCamelContext(); - context.getManagementStrategy().setExtendedStatisticsEnabled(true); + context.getManagementStrategy().getManagementAgent().setStatisticsLevel(ManagementStatisticsLevel.Extended); return context; } http://git-wip-us.apache.org/repos/asf/camel/blob/488f3912/camel-core/src/test/java/org/apache/camel/management/ManagedRecipientListTest.java ---------------------------------------------------------------------- diff --git a/camel-core/src/test/java/org/apache/camel/management/ManagedRecipientListTest.java b/camel-core/src/test/java/org/apache/camel/management/ManagedRecipientListTest.java index a6b7328..5daadd7 100644 --- a/camel-core/src/test/java/org/apache/camel/management/ManagedRecipientListTest.java +++ b/camel-core/src/test/java/org/apache/camel/management/ManagedRecipientListTest.java @@ -21,6 +21,7 @@ import javax.management.ObjectName; import javax.management.openmbean.TabularData; import org.apache.camel.CamelContext; +import org.apache.camel.ManagementStatisticsLevel; import org.apache.camel.ServiceStatus; import org.apache.camel.builder.RouteBuilder; import org.apache.camel.component.mock.MockEndpoint; @@ -33,7 +34,7 @@ public class ManagedRecipientListTest extends ManagementTestSupport { @Override protected CamelContext createCamelContext() throws Exception { CamelContext context = super.createCamelContext(); - context.getManagementStrategy().setExtendedStatisticsEnabled(true); + context.getManagementStrategy().getManagementAgent().setStatisticsLevel(ManagementStatisticsLevel.Extended); return context; } http://git-wip-us.apache.org/repos/asf/camel/blob/488f3912/camel-core/src/test/java/org/apache/camel/management/ManagedRouteLoadstatisticsTest.java ---------------------------------------------------------------------- diff --git a/camel-core/src/test/java/org/apache/camel/management/ManagedRouteLoadstatisticsTest.java b/camel-core/src/test/java/org/apache/camel/management/ManagedRouteLoadstatisticsTest.java index 4b9c19b..6d1d9a3 100644 --- a/camel-core/src/test/java/org/apache/camel/management/ManagedRouteLoadstatisticsTest.java +++ b/camel-core/src/test/java/org/apache/camel/management/ManagedRouteLoadstatisticsTest.java @@ -32,7 +32,9 @@ public class ManagedRouteLoadstatisticsTest extends ManagementTestSupport { return; } - assertFalse(context.getManagementStrategy().isLoadStatisticsEnabled()); + boolean load = context.getManagementStrategy().getManagementAgent().getLoadStatisticsEnabled() != null + && context.getManagementStrategy().getManagementAgent().getLoadStatisticsEnabled(); + assertFalse(load); // get the stats for the route MBeanServer mbeanServer = getMBeanServer(); ObjectName on = ObjectName.getInstance("org.apache.camel:context=camel-1,type=routes,name=\"route1\""); @@ -55,7 +57,7 @@ public class ManagedRouteLoadstatisticsTest extends ManagementTestSupport { if (isPlatform("aix")) { return; } - context.getManagementStrategy().setLoadStatisticsEnabled(true); + context.getManagementStrategy().getManagementAgent().setLoadStatisticsEnabled(true); context.stop(); context.start(); // get the stats for the route http://git-wip-us.apache.org/repos/asf/camel/blob/488f3912/camel-core/src/test/java/org/apache/camel/management/ManagedRoutingSlipTest.java ---------------------------------------------------------------------- diff --git a/camel-core/src/test/java/org/apache/camel/management/ManagedRoutingSlipTest.java b/camel-core/src/test/java/org/apache/camel/management/ManagedRoutingSlipTest.java index 0ebf549..c830354 100644 --- a/camel-core/src/test/java/org/apache/camel/management/ManagedRoutingSlipTest.java +++ b/camel-core/src/test/java/org/apache/camel/management/ManagedRoutingSlipTest.java @@ -21,6 +21,7 @@ import javax.management.ObjectName; import javax.management.openmbean.TabularData; import org.apache.camel.CamelContext; +import org.apache.camel.ManagementStatisticsLevel; import org.apache.camel.ServiceStatus; import org.apache.camel.builder.RouteBuilder; import org.apache.camel.component.mock.MockEndpoint; @@ -33,7 +34,7 @@ public class ManagedRoutingSlipTest extends ManagementTestSupport { @Override protected CamelContext createCamelContext() throws Exception { CamelContext context = super.createCamelContext(); - context.getManagementStrategy().setExtendedStatisticsEnabled(true); + context.getManagementStrategy().getManagementAgent().setStatisticsLevel(ManagementStatisticsLevel.Extended); return context; } http://git-wip-us.apache.org/repos/asf/camel/blob/488f3912/camel-core/src/test/java/org/apache/camel/management/ManagedSendDynamicProcessorTest.java ---------------------------------------------------------------------- diff --git a/camel-core/src/test/java/org/apache/camel/management/ManagedSendDynamicProcessorTest.java b/camel-core/src/test/java/org/apache/camel/management/ManagedSendDynamicProcessorTest.java index 2c2b895..eb7ff51 100644 --- a/camel-core/src/test/java/org/apache/camel/management/ManagedSendDynamicProcessorTest.java +++ b/camel-core/src/test/java/org/apache/camel/management/ManagedSendDynamicProcessorTest.java @@ -21,6 +21,7 @@ import javax.management.ObjectName; import javax.management.openmbean.TabularData; import org.apache.camel.CamelContext; +import org.apache.camel.ManagementStatisticsLevel; import org.apache.camel.ServiceStatus; import org.apache.camel.builder.RouteBuilder; import org.apache.camel.component.mock.MockEndpoint; @@ -33,7 +34,7 @@ public class ManagedSendDynamicProcessorTest extends ManagementTestSupport { @Override protected CamelContext createCamelContext() throws Exception { CamelContext context = super.createCamelContext(); - context.getManagementStrategy().setExtendedStatisticsEnabled(true); + context.getManagementStrategy().getManagementAgent().setStatisticsLevel(ManagementStatisticsLevel.Extended); return context; } http://git-wip-us.apache.org/repos/asf/camel/blob/488f3912/camel-core/src/test/java/org/apache/camel/management/ManagedWireTapTest.java ---------------------------------------------------------------------- diff --git a/camel-core/src/test/java/org/apache/camel/management/ManagedWireTapTest.java b/camel-core/src/test/java/org/apache/camel/management/ManagedWireTapTest.java index 58b9943..c87f78f 100644 --- a/camel-core/src/test/java/org/apache/camel/management/ManagedWireTapTest.java +++ b/camel-core/src/test/java/org/apache/camel/management/ManagedWireTapTest.java @@ -21,6 +21,7 @@ import javax.management.ObjectName; import javax.management.openmbean.TabularData; import org.apache.camel.CamelContext; +import org.apache.camel.ManagementStatisticsLevel; import org.apache.camel.ServiceStatus; import org.apache.camel.builder.RouteBuilder; import org.apache.camel.component.mock.MockEndpoint; @@ -33,7 +34,7 @@ public class ManagedWireTapTest extends ManagementTestSupport { @Override protected CamelContext createCamelContext() throws Exception { CamelContext context = super.createCamelContext(); - context.getManagementStrategy().setExtendedStatisticsEnabled(true); + context.getManagementStrategy().getManagementAgent().setStatisticsLevel(ManagementStatisticsLevel.Extended); return context; }