CAMEL-6564: JMX services which is single (only one instance per camel) should used fixed MBean name
Project: http://git-wip-us.apache.org/repos/asf/camel/repo Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/df4b8bb3 Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/df4b8bb3 Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/df4b8bb3 Branch: refs/heads/master Commit: df4b8bb3c1b8ebaa43d0809fa03ad5b6a7d04980 Parents: 577c61b Author: Claus Ibsen <davscl...@apache.org> Authored: Wed Jul 24 12:25:16 2013 +0200 Committer: Claus Ibsen <davscl...@apache.org> Committed: Wed Jul 24 12:25:16 2013 +0200 ---------------------------------------------------------------------- .../java/org/apache/camel/StaticService.java | 23 ++++++++++++++++++++ .../management/mbean/ManagedServiceMBean.java | 3 +++ .../impl/DefaultExecutorServiceManager.java | 10 +++++++-- .../impl/DefaultPackageScanClassResolver.java | 3 ++- .../org/apache/camel/impl/EndpointRegistry.java | 4 ++-- .../camel/impl/SharedProducerServicePool.java | 3 ++- .../DefaultManagementNamingStrategy.java | 18 +++++---------- .../management/ManagedManagementStrategy.java | 6 +---- .../mbean/ManagedEndpointRegistry.java | 1 - .../camel/management/mbean/ManagedService.java | 6 ++--- .../mbean/ManagedStreamCachingStrategy.java | 1 - .../mbean/ManagedTypeConverterRegistry.java | 1 - .../camel/spi/ExecutorServiceManager.java | 3 ++- .../apache/camel/spi/InflightRepository.java | 4 ++-- .../camel/spi/ManagementNamingStrategy.java | 2 -- .../org/apache/camel/spi/ShutdownStrategy.java | 3 ++- .../apache/camel/spi/StreamCachingStrategy.java | 4 ++-- .../apache/camel/spi/TypeConverterRegistry.java | 4 ++-- .../camel/support/TimerListenerManager.java | 3 ++- 19 files changed, 61 insertions(+), 41 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/camel/blob/df4b8bb3/camel-core/src/main/java/org/apache/camel/StaticService.java ---------------------------------------------------------------------- diff --git a/camel-core/src/main/java/org/apache/camel/StaticService.java b/camel-core/src/main/java/org/apache/camel/StaticService.java new file mode 100644 index 0000000..53b4638 --- /dev/null +++ b/camel-core/src/main/java/org/apache/camel/StaticService.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 + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * 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; + +/** + * Marker for indicating the {@link Service} is a static service (only one instance per {@link CamelContext}). + */ +public interface StaticService extends Service { +} http://git-wip-us.apache.org/repos/asf/camel/blob/df4b8bb3/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedServiceMBean.java ---------------------------------------------------------------------- diff --git a/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedServiceMBean.java b/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedServiceMBean.java index 729f9b1..7f04c84 100644 --- a/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedServiceMBean.java +++ b/camel-core/src/main/java/org/apache/camel/api/management/mbean/ManagedServiceMBean.java @@ -42,6 +42,9 @@ public interface ManagedServiceMBean { @ManagedAttribute(description = "Whether this service supports suspension") boolean isSupportSuspension(); + @ManagedAttribute(description = "Whether this service is static") + boolean isStaticService(); + @ManagedAttribute(description = "Whether this service is suspended") boolean isSuspended(); http://git-wip-us.apache.org/repos/asf/camel/blob/df4b8bb3/camel-core/src/main/java/org/apache/camel/impl/DefaultExecutorServiceManager.java ---------------------------------------------------------------------- diff --git a/camel-core/src/main/java/org/apache/camel/impl/DefaultExecutorServiceManager.java b/camel-core/src/main/java/org/apache/camel/impl/DefaultExecutorServiceManager.java index d8bd891..dd8797d 100644 --- a/camel-core/src/main/java/org/apache/camel/impl/DefaultExecutorServiceManager.java +++ b/camel-core/src/main/java/org/apache/camel/impl/DefaultExecutorServiceManager.java @@ -31,6 +31,7 @@ import java.util.concurrent.TimeUnit; import org.apache.camel.CamelContext; import org.apache.camel.NamedNode; +import org.apache.camel.StaticService; import org.apache.camel.ThreadPoolRejectedPolicy; import org.apache.camel.model.OptionalIdentifiedDefinition; import org.apache.camel.model.ProcessorDefinition; @@ -502,8 +503,13 @@ public class DefaultExecutorServiceManager extends ServiceSupport implements Exe } else if (source instanceof String) { id = (String) source; } else if (source != null) { - // fallback and use the simple class name with hashcode for the id so its unique for this given source - id = source.getClass().getSimpleName() + "(" + ObjectHelper.getIdentityHashCode(source) + ")"; + if (source instanceof StaticService) { + // the source is static service so its name would be unique + id = source.getClass().getSimpleName(); + } else { + // fallback and use the simple class name with hashcode for the id so its unique for this given source + id = source.getClass().getSimpleName() + "(" + ObjectHelper.getIdentityHashCode(source) + ")"; + } } else { // no source, so fallback and use the simple class name from thread pool and its hashcode identity so its unique id = executorService.getClass().getSimpleName() + "(" + ObjectHelper.getIdentityHashCode(executorService) + ")"; http://git-wip-us.apache.org/repos/asf/camel/blob/df4b8bb3/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 485ea17..c326f6d 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.StaticService; import org.apache.camel.impl.scan.AnnotatedWithAnyPackageScanFilter; import org.apache.camel.impl.scan.AnnotatedWithPackageScanFilter; import org.apache.camel.impl.scan.AssignableToPackageScanFilter; @@ -54,7 +55,7 @@ import org.slf4j.LoggerFactory; /** * Default implement of {@link org.apache.camel.spi.PackageScanClassResolver} */ -public class DefaultPackageScanClassResolver extends ServiceSupport implements PackageScanClassResolver { +public class DefaultPackageScanClassResolver extends ServiceSupport implements PackageScanClassResolver, StaticService { protected final transient Logger log = LoggerFactory.getLogger(getClass()); private final Set<ClassLoader> classLoaders = new LinkedHashSet<ClassLoader>(); http://git-wip-us.apache.org/repos/asf/camel/blob/df4b8bb3/camel-core/src/main/java/org/apache/camel/impl/EndpointRegistry.java ---------------------------------------------------------------------- diff --git a/camel-core/src/main/java/org/apache/camel/impl/EndpointRegistry.java b/camel-core/src/main/java/org/apache/camel/impl/EndpointRegistry.java index 8440af8..6f4e6d7 100644 --- a/camel-core/src/main/java/org/apache/camel/impl/EndpointRegistry.java +++ b/camel-core/src/main/java/org/apache/camel/impl/EndpointRegistry.java @@ -20,7 +20,7 @@ import java.util.Map; import org.apache.camel.CamelContext; import org.apache.camel.Endpoint; -import org.apache.camel.Service; +import org.apache.camel.StaticService; import org.apache.camel.util.CamelContextHelper; import org.apache.camel.util.LRUSoftCache; import org.apache.camel.util.ServiceHelper; @@ -30,7 +30,7 @@ import org.apache.camel.util.ServiceHelper; * <p/> * We use a soft reference cache to allow the JVM to re-claim memory if it runs low on memory. */ -public class EndpointRegistry extends LRUSoftCache<EndpointKey, Endpoint> implements Service { +public class EndpointRegistry extends LRUSoftCache<EndpointKey, Endpoint> implements StaticService { private static final long serialVersionUID = 1L; private final CamelContext context; http://git-wip-us.apache.org/repos/asf/camel/blob/df4b8bb3/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 fa567f7..16313eb 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 @@ -17,6 +17,7 @@ package org.apache.camel.impl; import org.apache.camel.ShutdownableService; +import org.apache.camel.StaticService; /** * A shared {@link org.apache.camel.impl.DefaultProducerServicePool} which is used by @@ -24,7 +25,7 @@ import org.apache.camel.ShutdownableService; * * @version */ -public class SharedProducerServicePool extends DefaultProducerServicePool implements ShutdownableService { +public class SharedProducerServicePool extends DefaultProducerServicePool implements ShutdownableService, StaticService { public SharedProducerServicePool() { } http://git-wip-us.apache.org/repos/asf/camel/blob/df4b8bb3/camel-core/src/main/java/org/apache/camel/management/DefaultManagementNamingStrategy.java ---------------------------------------------------------------------- diff --git a/camel-core/src/main/java/org/apache/camel/management/DefaultManagementNamingStrategy.java b/camel-core/src/main/java/org/apache/camel/management/DefaultManagementNamingStrategy.java index 368ea4f..18fe1a6 100644 --- a/camel-core/src/main/java/org/apache/camel/management/DefaultManagementNamingStrategy.java +++ b/camel-core/src/main/java/org/apache/camel/management/DefaultManagementNamingStrategy.java @@ -31,6 +31,7 @@ import org.apache.camel.Processor; import org.apache.camel.Producer; import org.apache.camel.Route; import org.apache.camel.Service; +import org.apache.camel.StaticService; import org.apache.camel.builder.ErrorHandlerBuilderRef; import org.apache.camel.spi.EventNotifier; import org.apache.camel.spi.InterceptStrategy; @@ -245,19 +246,10 @@ public class DefaultManagementNamingStrategy implements ManagementNamingStrategy buffer.append(domainName).append(":"); buffer.append(KEY_CONTEXT + "=").append(getContextId(context)).append(","); buffer.append(KEY_TYPE + "=" + TYPE_SERVICE + ","); - buffer.append(KEY_NAME + "=") - .append(service.getClass().getSimpleName()) - .append("(").append(ObjectHelper.getIdentityHashCode(service)).append(")"); - return createObjectName(buffer); - } - - public ObjectName getObjectNameForSingleService(CamelContext context, Service service) throws MalformedObjectNameException { - StringBuilder buffer = new StringBuilder(); - buffer.append(domainName).append(":"); - buffer.append(KEY_CONTEXT + "=").append(getContextId(context)).append(","); - buffer.append(KEY_TYPE + "=" + TYPE_SERVICE + ","); - buffer.append(KEY_NAME + "=") - .append(service.getClass().getSimpleName()); + buffer.append(KEY_NAME + "=").append(service.getClass().getSimpleName()); + if (!(service instanceof StaticService)) { + buffer.append("(").append(ObjectHelper.getIdentityHashCode(service)).append(")"); + } return createObjectName(buffer); } http://git-wip-us.apache.org/repos/asf/camel/blob/df4b8bb3/camel-core/src/main/java/org/apache/camel/management/ManagedManagementStrategy.java ---------------------------------------------------------------------- diff --git a/camel-core/src/main/java/org/apache/camel/management/ManagedManagementStrategy.java b/camel-core/src/main/java/org/apache/camel/management/ManagedManagementStrategy.java index ea0168e..c16e5c1 100644 --- a/camel-core/src/main/java/org/apache/camel/management/ManagedManagementStrategy.java +++ b/camel-core/src/main/java/org/apache/camel/management/ManagedManagementStrategy.java @@ -133,11 +133,7 @@ public class ManagedManagementStrategy extends DefaultManagementStrategy { if (ms.getService() instanceof Endpoint) { return null; } - if (ms.isSingle()) { - objectName = getManagementNamingStrategy().getObjectNameForSingleService(ms.getContext(), ms.getService()); - } else { - objectName = getManagementNamingStrategy().getObjectNameForService(ms.getContext(), ms.getService()); - } + objectName = getManagementNamingStrategy().getObjectNameForService(ms.getContext(), ms.getService()); } return nameType.cast(objectName); http://git-wip-us.apache.org/repos/asf/camel/blob/df4b8bb3/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedEndpointRegistry.java ---------------------------------------------------------------------- diff --git a/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedEndpointRegistry.java b/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedEndpointRegistry.java index 46758ad..80cd79d 100644 --- a/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedEndpointRegistry.java +++ b/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedEndpointRegistry.java @@ -31,7 +31,6 @@ public class ManagedEndpointRegistry extends ManagedService implements ManagedEn public ManagedEndpointRegistry(CamelContext context, EndpointRegistry endpointRegistry) { super(context, endpointRegistry); this.endpointRegistry = endpointRegistry; - this.single = true; } public EndpointRegistry getEndpointRegistry() { http://git-wip-us.apache.org/repos/asf/camel/blob/df4b8bb3/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedService.java ---------------------------------------------------------------------- diff --git a/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedService.java b/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedService.java index ec2f891..1eb11b7 100644 --- a/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedService.java +++ b/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedService.java @@ -21,6 +21,7 @@ import org.apache.camel.Route; import org.apache.camel.Service; import org.apache.camel.ServiceStatus; import org.apache.camel.StatefulService; +import org.apache.camel.StaticService; import org.apache.camel.SuspendableService; import org.apache.camel.api.management.ManagedInstance; import org.apache.camel.api.management.ManagedResource; @@ -32,7 +33,6 @@ public class ManagedService implements ManagedInstance, ManagedServiceMBean { private final CamelContext context; private final Service service; private Route route; - protected boolean single; public ManagedService(CamelContext context, Service service) { this.context = context; @@ -43,8 +43,8 @@ public class ManagedService implements ManagedInstance, ManagedServiceMBean { // do nothing } - public boolean isSingle() { - return single; + public boolean isStaticService() { + return service instanceof StaticService; } public Service getService() { http://git-wip-us.apache.org/repos/asf/camel/blob/df4b8bb3/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedStreamCachingStrategy.java ---------------------------------------------------------------------- diff --git a/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedStreamCachingStrategy.java b/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedStreamCachingStrategy.java index 5fec257..b57a010 100644 --- a/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedStreamCachingStrategy.java +++ b/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedStreamCachingStrategy.java @@ -32,7 +32,6 @@ public class ManagedStreamCachingStrategy extends ManagedService implements Mana super(camelContext, streamCachingStrategy); this.camelContext = camelContext; this.streamCachingStrategy = streamCachingStrategy; - this.single = true; } public void init(ManagementStrategy strategy) { http://git-wip-us.apache.org/repos/asf/camel/blob/df4b8bb3/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedTypeConverterRegistry.java ---------------------------------------------------------------------- diff --git a/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedTypeConverterRegistry.java b/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedTypeConverterRegistry.java index e808493..55af467 100644 --- a/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedTypeConverterRegistry.java +++ b/camel-core/src/main/java/org/apache/camel/management/mbean/ManagedTypeConverterRegistry.java @@ -32,7 +32,6 @@ public class ManagedTypeConverterRegistry extends ManagedService implements Mana public ManagedTypeConverterRegistry(CamelContext context, TypeConverterRegistry registry) { super(context, registry); this.registry = registry; - this.single = true; } public TypeConverterRegistry getRegistry() { http://git-wip-us.apache.org/repos/asf/camel/blob/df4b8bb3/camel-core/src/main/java/org/apache/camel/spi/ExecutorServiceManager.java ---------------------------------------------------------------------- diff --git a/camel-core/src/main/java/org/apache/camel/spi/ExecutorServiceManager.java b/camel-core/src/main/java/org/apache/camel/spi/ExecutorServiceManager.java index 28cce20..0f0f929 100644 --- a/camel-core/src/main/java/org/apache/camel/spi/ExecutorServiceManager.java +++ b/camel-core/src/main/java/org/apache/camel/spi/ExecutorServiceManager.java @@ -21,6 +21,7 @@ import java.util.concurrent.ExecutorService; import java.util.concurrent.ScheduledExecutorService; import org.apache.camel.ShutdownableService; +import org.apache.camel.StaticService; /** * Strategy to create thread pools. @@ -50,7 +51,7 @@ import org.apache.camel.ShutdownableService; * * @see ThreadPoolFactory */ -public interface ExecutorServiceManager extends ShutdownableService { +public interface ExecutorServiceManager extends ShutdownableService, StaticService { /** * Gets the {@link ThreadPoolFactory} to use for creating the thread pools. http://git-wip-us.apache.org/repos/asf/camel/blob/df4b8bb3/camel-core/src/main/java/org/apache/camel/spi/InflightRepository.java ---------------------------------------------------------------------- diff --git a/camel-core/src/main/java/org/apache/camel/spi/InflightRepository.java b/camel-core/src/main/java/org/apache/camel/spi/InflightRepository.java index 018cfa9..cf22cfa 100644 --- a/camel-core/src/main/java/org/apache/camel/spi/InflightRepository.java +++ b/camel-core/src/main/java/org/apache/camel/spi/InflightRepository.java @@ -18,14 +18,14 @@ package org.apache.camel.spi; import org.apache.camel.Endpoint; import org.apache.camel.Exchange; -import org.apache.camel.Service; +import org.apache.camel.StaticService; /** * A repository which tracks in flight {@link Exchange}s. * * @version */ -public interface InflightRepository extends Service { +public interface InflightRepository extends StaticService { /** * Adds the exchange to the inflight registry to the total counter http://git-wip-us.apache.org/repos/asf/camel/blob/df4b8bb3/camel-core/src/main/java/org/apache/camel/spi/ManagementNamingStrategy.java ---------------------------------------------------------------------- diff --git a/camel-core/src/main/java/org/apache/camel/spi/ManagementNamingStrategy.java b/camel-core/src/main/java/org/apache/camel/spi/ManagementNamingStrategy.java index 8cb0045..6d5d4ff 100644 --- a/camel-core/src/main/java/org/apache/camel/spi/ManagementNamingStrategy.java +++ b/camel-core/src/main/java/org/apache/camel/spi/ManagementNamingStrategy.java @@ -60,8 +60,6 @@ public interface ManagementNamingStrategy { ObjectName getObjectNameForService(CamelContext context, Service service) throws MalformedObjectNameException; - ObjectName getObjectNameForSingleService(CamelContext context, Service service) throws MalformedObjectNameException; - ObjectName getObjectNameForThreadPool(CamelContext context, ThreadPoolExecutor threadPool, String id, String sourceId) throws MalformedObjectNameException; ObjectName getObjectNameForEventNotifier(CamelContext context, EventNotifier eventNotifier) throws MalformedObjectNameException; http://git-wip-us.apache.org/repos/asf/camel/blob/df4b8bb3/camel-core/src/main/java/org/apache/camel/spi/ShutdownStrategy.java ---------------------------------------------------------------------- diff --git a/camel-core/src/main/java/org/apache/camel/spi/ShutdownStrategy.java b/camel-core/src/main/java/org/apache/camel/spi/ShutdownStrategy.java index 0fec17b..c1e7632 100644 --- a/camel-core/src/main/java/org/apache/camel/spi/ShutdownStrategy.java +++ b/camel-core/src/main/java/org/apache/camel/spi/ShutdownStrategy.java @@ -21,6 +21,7 @@ import java.util.concurrent.TimeUnit; import org.apache.camel.CamelContext; import org.apache.camel.Service; +import org.apache.camel.StaticService; /** * Pluggable shutdown strategy executed during shutdown of routes. @@ -38,7 +39,7 @@ import org.apache.camel.Service; * @version * @see org.apache.camel.spi.ShutdownAware */ -public interface ShutdownStrategy extends Service { +public interface ShutdownStrategy extends StaticService { /** * Shutdown the routes, forcing shutdown being more aggressive, if timeout occurred. http://git-wip-us.apache.org/repos/asf/camel/blob/df4b8bb3/camel-core/src/main/java/org/apache/camel/spi/StreamCachingStrategy.java ---------------------------------------------------------------------- diff --git a/camel-core/src/main/java/org/apache/camel/spi/StreamCachingStrategy.java b/camel-core/src/main/java/org/apache/camel/spi/StreamCachingStrategy.java index 089ad09..e6d851c 100644 --- a/camel-core/src/main/java/org/apache/camel/spi/StreamCachingStrategy.java +++ b/camel-core/src/main/java/org/apache/camel/spi/StreamCachingStrategy.java @@ -19,13 +19,13 @@ package org.apache.camel.spi; import java.io.File; import org.apache.camel.Exchange; -import org.apache.camel.Service; +import org.apache.camel.StaticService; import org.apache.camel.StreamCache; /** * Strategy for using <a href="http://camel.apache.org/stream-caching.html">stream caching</a>. */ -public interface StreamCachingStrategy extends Service { +public interface StreamCachingStrategy extends StaticService { /** * Utilization statistics of stream caching. http://git-wip-us.apache.org/repos/asf/camel/blob/df4b8bb3/camel-core/src/main/java/org/apache/camel/spi/TypeConverterRegistry.java ---------------------------------------------------------------------- diff --git a/camel-core/src/main/java/org/apache/camel/spi/TypeConverterRegistry.java b/camel-core/src/main/java/org/apache/camel/spi/TypeConverterRegistry.java index b7c90e2..39c7dcd 100644 --- a/camel-core/src/main/java/org/apache/camel/spi/TypeConverterRegistry.java +++ b/camel-core/src/main/java/org/apache/camel/spi/TypeConverterRegistry.java @@ -16,7 +16,7 @@ */ package org.apache.camel.spi; -import org.apache.camel.Service; +import org.apache.camel.StaticService; import org.apache.camel.TypeConverter; /** @@ -27,7 +27,7 @@ import org.apache.camel.TypeConverter; * * @version */ -public interface TypeConverterRegistry extends Service { +public interface TypeConverterRegistry extends StaticService { /** * Utilization statistics of the this registry. http://git-wip-us.apache.org/repos/asf/camel/blob/df4b8bb3/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 49a481c..ad7794d 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.StaticService; import org.apache.camel.TimerListener; import org.apache.camel.util.ObjectHelper; import org.slf4j.Logger; @@ -38,7 +39,7 @@ import org.slf4j.LoggerFactory; * * @see TimerListener */ -public class TimerListenerManager extends ServiceSupport implements Runnable, CamelContextAware { +public class TimerListenerManager extends ServiceSupport implements Runnable, CamelContextAware, StaticService { private static final Logger LOG = LoggerFactory.getLogger(TimerListenerManager.class); private final Set<TimerListener> listeners = new LinkedHashSet<TimerListener>();