Repository: camel Updated Branches: refs/heads/master 93d21ff8f -> 2b67dce34
CAMEL-9395: Reduce the number of default services registered in JMX Project: http://git-wip-us.apache.org/repos/asf/camel/repo Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/7c025036 Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/7c025036 Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/7c025036 Branch: refs/heads/master Commit: 7c0250367a264e1d64d5b5ac77d73d4488412321 Parents: 93d21ff Author: Claus Ibsen <[email protected]> Authored: Sat Dec 5 17:56:38 2015 +0100 Committer: Claus Ibsen <[email protected]> Committed: Sat Dec 5 17:56:38 2015 +0100 ---------------------------------------------------------------------- .../org/apache/camel/NonManagedService.java | 23 ++++++++++++++++++++ .../impl/DefaultPackageScanClassResolver.java | 3 ++- .../impl/SharedPollingConsumerServicePool.java | 3 ++- .../camel/impl/SharedProducerServicePool.java | 3 ++- .../impl/ThrottlingInflightRoutePolicy.java | 3 ++- .../DefaultManagementLifecycleStrategy.java | 6 +++++ .../camel/management/ManagedLoadTimer.java | 3 ++- .../camel/support/TimerListenerManager.java | 1 + .../MetricsMessageHistoryFactory.java | 3 ++- .../metrics/routepolicy/MetricsRoutePolicy.java | 3 ++- 10 files changed, 44 insertions(+), 7 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/camel/blob/7c025036/camel-core/src/main/java/org/apache/camel/NonManagedService.java ---------------------------------------------------------------------- diff --git a/camel-core/src/main/java/org/apache/camel/NonManagedService.java b/camel-core/src/main/java/org/apache/camel/NonManagedService.java new file mode 100644 index 0000000..37a7ed7 --- /dev/null +++ b/camel-core/src/main/java/org/apache/camel/NonManagedService.java @@ -0,0 +1,23 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * <p> + * http://www.apache.org/licenses/LICENSE-2.0 + * <p> + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.camel; + +/** + * A marker to indicate the {@link Service} should not be registered in JMX for management. + */ +public interface NonManagedService { +} http://git-wip-us.apache.org/repos/asf/camel/blob/7c025036/camel-core/src/main/java/org/apache/camel/impl/DefaultPackageScanClassResolver.java ---------------------------------------------------------------------- diff --git a/camel-core/src/main/java/org/apache/camel/impl/DefaultPackageScanClassResolver.java b/camel-core/src/main/java/org/apache/camel/impl/DefaultPackageScanClassResolver.java index 0427a43..aba0330 100644 --- a/camel-core/src/main/java/org/apache/camel/impl/DefaultPackageScanClassResolver.java +++ b/camel-core/src/main/java/org/apache/camel/impl/DefaultPackageScanClassResolver.java @@ -37,6 +37,7 @@ import java.util.Set; import java.util.jar.JarEntry; import java.util.jar.JarInputStream; +import org.apache.camel.NonManagedService; import org.apache.camel.StaticService; import org.apache.camel.impl.scan.AnnotatedWithAnyPackageScanFilter; import org.apache.camel.impl.scan.AnnotatedWithPackageScanFilter; @@ -54,7 +55,7 @@ import org.slf4j.LoggerFactory; /** * Default implement of {@link org.apache.camel.spi.PackageScanClassResolver} */ -public class DefaultPackageScanClassResolver extends ServiceSupport implements PackageScanClassResolver, StaticService { +public class DefaultPackageScanClassResolver extends ServiceSupport implements PackageScanClassResolver, StaticService, NonManagedService { protected final Logger log = LoggerFactory.getLogger(getClass()); private final Set<ClassLoader> classLoaders = new LinkedHashSet<ClassLoader>(); http://git-wip-us.apache.org/repos/asf/camel/blob/7c025036/camel-core/src/main/java/org/apache/camel/impl/SharedPollingConsumerServicePool.java ---------------------------------------------------------------------- diff --git a/camel-core/src/main/java/org/apache/camel/impl/SharedPollingConsumerServicePool.java b/camel-core/src/main/java/org/apache/camel/impl/SharedPollingConsumerServicePool.java index 7478a14..1205a74 100644 --- a/camel-core/src/main/java/org/apache/camel/impl/SharedPollingConsumerServicePool.java +++ b/camel-core/src/main/java/org/apache/camel/impl/SharedPollingConsumerServicePool.java @@ -16,6 +16,7 @@ */ package org.apache.camel.impl; +import org.apache.camel.NonManagedService; import org.apache.camel.ShutdownableService; import org.apache.camel.StaticService; @@ -25,7 +26,7 @@ import org.apache.camel.StaticService; * * @version */ -public class SharedPollingConsumerServicePool extends DefaultPollingConsumerServicePool implements ShutdownableService, StaticService { +public class SharedPollingConsumerServicePool extends DefaultPollingConsumerServicePool implements ShutdownableService, StaticService, NonManagedService { public SharedPollingConsumerServicePool() { } http://git-wip-us.apache.org/repos/asf/camel/blob/7c025036/camel-core/src/main/java/org/apache/camel/impl/SharedProducerServicePool.java ---------------------------------------------------------------------- diff --git a/camel-core/src/main/java/org/apache/camel/impl/SharedProducerServicePool.java b/camel-core/src/main/java/org/apache/camel/impl/SharedProducerServicePool.java index 16313eb..3596808 100644 --- a/camel-core/src/main/java/org/apache/camel/impl/SharedProducerServicePool.java +++ b/camel-core/src/main/java/org/apache/camel/impl/SharedProducerServicePool.java @@ -16,6 +16,7 @@ */ package org.apache.camel.impl; +import org.apache.camel.NonManagedService; import org.apache.camel.ShutdownableService; import org.apache.camel.StaticService; @@ -25,7 +26,7 @@ import org.apache.camel.StaticService; * * @version */ -public class SharedProducerServicePool extends DefaultProducerServicePool implements ShutdownableService, StaticService { +public class SharedProducerServicePool extends DefaultProducerServicePool implements ShutdownableService, StaticService, NonManagedService { public SharedProducerServicePool() { } http://git-wip-us.apache.org/repos/asf/camel/blob/7c025036/camel-core/src/main/java/org/apache/camel/impl/ThrottlingInflightRoutePolicy.java ---------------------------------------------------------------------- diff --git a/camel-core/src/main/java/org/apache/camel/impl/ThrottlingInflightRoutePolicy.java b/camel-core/src/main/java/org/apache/camel/impl/ThrottlingInflightRoutePolicy.java index a0a1914..6250e96 100644 --- a/camel-core/src/main/java/org/apache/camel/impl/ThrottlingInflightRoutePolicy.java +++ b/camel-core/src/main/java/org/apache/camel/impl/ThrottlingInflightRoutePolicy.java @@ -27,6 +27,7 @@ import org.apache.camel.CamelContextAware; import org.apache.camel.Consumer; import org.apache.camel.Exchange; import org.apache.camel.LoggingLevel; +import org.apache.camel.NonManagedService; import org.apache.camel.Route; import org.apache.camel.management.event.ExchangeCompletedEvent; import org.apache.camel.support.EventNotifierSupport; @@ -49,7 +50,7 @@ import org.slf4j.LoggerFactory; * * @version */ -public class ThrottlingInflightRoutePolicy extends RoutePolicySupport implements CamelContextAware { +public class ThrottlingInflightRoutePolicy extends RoutePolicySupport implements CamelContextAware, NonManagedService { public enum ThrottlingScope { Context, Route http://git-wip-us.apache.org/repos/asf/camel/blob/7c025036/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 1c52d2a..34c8d5e 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 @@ -37,6 +37,7 @@ import org.apache.camel.Consumer; import org.apache.camel.Endpoint; import org.apache.camel.ErrorHandlerFactory; import org.apache.camel.ManagementStatisticsLevel; +import org.apache.camel.NonManagedService; import org.apache.camel.Processor; import org.apache.camel.Producer; import org.apache.camel.Route; @@ -416,6 +417,11 @@ public class DefaultManagementLifecycleStrategy extends ServiceSupport implement return null; } + // skip non managed services + if (service instanceof NonManagedService) { + return null; + } + Object answer = null; if (service instanceof ManagementAware) { http://git-wip-us.apache.org/repos/asf/camel/blob/7c025036/camel-core/src/main/java/org/apache/camel/management/ManagedLoadTimer.java ---------------------------------------------------------------------- diff --git a/camel-core/src/main/java/org/apache/camel/management/ManagedLoadTimer.java b/camel-core/src/main/java/org/apache/camel/management/ManagedLoadTimer.java index 0e487c7..a5dd990 100644 --- a/camel-core/src/main/java/org/apache/camel/management/ManagedLoadTimer.java +++ b/camel-core/src/main/java/org/apache/camel/management/ManagedLoadTimer.java @@ -16,6 +16,7 @@ */ package org.apache.camel.management; +import org.apache.camel.NonManagedService; import org.apache.camel.support.TimerListenerManager; /** @@ -24,7 +25,7 @@ import org.apache.camel.support.TimerListenerManager; * From Camel 2.13 onwards the {@link ManagedLoadTimer} is only enabled if * {@link org.apache.camel.spi.ManagementStrategy#isLoadStatisticsEnabled()} is enabled. */ -public class ManagedLoadTimer extends TimerListenerManager { +public class ManagedLoadTimer extends TimerListenerManager implements NonManagedService { // empty on purpose http://git-wip-us.apache.org/repos/asf/camel/blob/7c025036/camel-core/src/main/java/org/apache/camel/support/TimerListenerManager.java ---------------------------------------------------------------------- diff --git a/camel-core/src/main/java/org/apache/camel/support/TimerListenerManager.java b/camel-core/src/main/java/org/apache/camel/support/TimerListenerManager.java index ae489c7..d018048 100644 --- a/camel-core/src/main/java/org/apache/camel/support/TimerListenerManager.java +++ b/camel-core/src/main/java/org/apache/camel/support/TimerListenerManager.java @@ -24,6 +24,7 @@ import java.util.concurrent.TimeUnit; import org.apache.camel.CamelContext; import org.apache.camel.CamelContextAware; +import org.apache.camel.NonManagedService; import org.apache.camel.StaticService; import org.apache.camel.TimerListener; import org.apache.camel.util.ObjectHelper; http://git-wip-us.apache.org/repos/asf/camel/blob/7c025036/components/camel-metrics/src/main/java/org/apache/camel/component/metrics/messagehistory/MetricsMessageHistoryFactory.java ---------------------------------------------------------------------- diff --git a/components/camel-metrics/src/main/java/org/apache/camel/component/metrics/messagehistory/MetricsMessageHistoryFactory.java b/components/camel-metrics/src/main/java/org/apache/camel/component/metrics/messagehistory/MetricsMessageHistoryFactory.java index 274ab14..c738af5 100644 --- a/components/camel-metrics/src/main/java/org/apache/camel/component/metrics/messagehistory/MetricsMessageHistoryFactory.java +++ b/components/camel-metrics/src/main/java/org/apache/camel/component/metrics/messagehistory/MetricsMessageHistoryFactory.java @@ -25,6 +25,7 @@ import org.apache.camel.CamelContext; import org.apache.camel.CamelContextAware; import org.apache.camel.MessageHistory; import org.apache.camel.NamedNode; +import org.apache.camel.NonManagedService; import org.apache.camel.StaticService; import org.apache.camel.spi.MessageHistoryFactory; import org.apache.camel.support.ServiceSupport; @@ -33,7 +34,7 @@ import org.apache.camel.util.ObjectHelper; /** * A factory to setup and use {@link MetricsMessageHistory} as message history implementation. */ -public class MetricsMessageHistoryFactory extends ServiceSupport implements CamelContextAware, StaticService, MessageHistoryFactory { +public class MetricsMessageHistoryFactory extends ServiceSupport implements CamelContextAware, StaticService, NonManagedService, MessageHistoryFactory { private CamelContext camelContext; private MetricsMessageHistoryService messageHistoryService; http://git-wip-us.apache.org/repos/asf/camel/blob/7c025036/components/camel-metrics/src/main/java/org/apache/camel/component/metrics/routepolicy/MetricsRoutePolicy.java ---------------------------------------------------------------------- diff --git a/components/camel-metrics/src/main/java/org/apache/camel/component/metrics/routepolicy/MetricsRoutePolicy.java b/components/camel-metrics/src/main/java/org/apache/camel/component/metrics/routepolicy/MetricsRoutePolicy.java index c921e83..bb6c1e9 100644 --- a/components/camel-metrics/src/main/java/org/apache/camel/component/metrics/routepolicy/MetricsRoutePolicy.java +++ b/components/camel-metrics/src/main/java/org/apache/camel/component/metrics/routepolicy/MetricsRoutePolicy.java @@ -22,6 +22,7 @@ import com.codahale.metrics.MetricRegistry; import com.codahale.metrics.Timer; import org.apache.camel.CamelContext; import org.apache.camel.Exchange; +import org.apache.camel.NonManagedService; import org.apache.camel.Route; import org.apache.camel.support.RoutePolicySupport; import org.apache.camel.util.ObjectHelper; @@ -31,7 +32,7 @@ import org.apache.camel.util.ObjectHelper; * <p/> * The metrics is reported in JMX by default, but this can be configured. */ -public class MetricsRoutePolicy extends RoutePolicySupport { +public class MetricsRoutePolicy extends RoutePolicySupport implements NonManagedService { private MetricRegistry metricsRegistry; private MetricsRegistryService registryService;
