This is an automated email from the ASF dual-hosted git repository. davsclaus pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/camel.git
The following commit(s) were added to refs/heads/master by this push: new fb20317 CAMEL-13551: camel3 - Some of the SPI can be static services when there can only be one configured. Also polished a bit. fb20317 is described below commit fb20317e970504ed273c823f322592b7d44db45d Author: Claus Ibsen <claus.ib...@gmail.com> AuthorDate: Tue May 21 11:07:35 2019 +0200 CAMEL-13551: camel3 - Some of the SPI can be static services when there can only be one configured. Also polished a bit. --- .../main/java/org/apache/camel/CamelContext.java | 123 +++++++++++---------- .../org/apache/camel/ExtendedCamelContext.java | 7 ++ .../apache/camel/spi/ManagementMBeanAssembler.java | 4 +- .../apache/camel/spi/PackageScanClassResolver.java | 4 +- .../java/org/apache/camel/spi/RouteController.java | 5 +- .../TypeConvertersPackageScanClassResolver.java | 13 ++- .../engine/DefaultAsyncProcessorAwaitManager.java | 3 +- .../engine/DefaultPackageScanClassResolver.java | 3 +- .../xml/AbstractCamelContextFactoryBeanTest.java | 6 +- .../main/java/org/apache/camel/model/Model.java | 2 - 10 files changed, 99 insertions(+), 71 deletions(-) diff --git a/core/camel-api/src/main/java/org/apache/camel/CamelContext.java b/core/camel-api/src/main/java/org/apache/camel/CamelContext.java index 32695cf..eb142b4 100644 --- a/core/camel-api/src/main/java/org/apache/camel/CamelContext.java +++ b/core/camel-api/src/main/java/org/apache/camel/CamelContext.java @@ -507,42 +507,6 @@ public interface CamelContext extends StatefulService, RuntimeConfiguration { RouteController getRouteController(); /** - * Sets a custom {@link org.apache.camel.spi.RestConfiguration} - * - * @param restConfiguration the REST configuration - */ - void setRestConfiguration(RestConfiguration restConfiguration); - - /** - * Gets the default REST configuration - * - * @return the configuration, or <tt>null</tt> if none has been configured. - */ - RestConfiguration getRestConfiguration(); - - /** - * Sets a custom {@link org.apache.camel.spi.RestConfiguration} - * - * @param restConfiguration the REST configuration - */ - void addRestConfiguration(RestConfiguration restConfiguration); - - /** - * Gets the REST configuration for the given component - * - * @param component the component name to get the configuration - * @param defaultIfNotFound determine if the default configuration is returned if there isn't a - * specific configuration for the given component - * @return the configuration, or <tt>null</tt> if none has been configured. - */ - RestConfiguration getRestConfiguration(String component, boolean defaultIfNotFound); - - /** - * Gets all the RestConfiguration's - */ - Collection<RestConfiguration> getRestConfigurations(); - - /** * Returns the current routes in this CamelContext * * @return the current routes @@ -615,6 +579,69 @@ public interface CamelContext extends StatefulService, RuntimeConfiguration { */ boolean removeRoute(String routeId) throws Exception; + /** + * Adds the given route policy factory + * + * @param routePolicyFactory the factory + */ + void addRoutePolicyFactory(RoutePolicyFactory routePolicyFactory); + + /** + * Gets the route policy factories + * + * @return the list of current route policy factories + */ + List<RoutePolicyFactory> getRoutePolicyFactories(); + + // Rest Methods + //----------------------------------------------------------------------- + + /** + * Sets a custom {@link org.apache.camel.spi.RestConfiguration} + * + * @param restConfiguration the REST configuration + */ + void setRestConfiguration(RestConfiguration restConfiguration); + + /** + * Gets the default REST configuration + * + * @return the configuration, or <tt>null</tt> if none has been configured. + */ + RestConfiguration getRestConfiguration(); + + /** + * Sets a custom {@link org.apache.camel.spi.RestConfiguration} + * + * @param restConfiguration the REST configuration + */ + void addRestConfiguration(RestConfiguration restConfiguration); + + /** + * Gets the REST configuration for the given component + * + * @param component the component name to get the configuration + * @param defaultIfNotFound determine if the default configuration is returned if there isn't a + * specific configuration for the given component + * @return the configuration, or <tt>null</tt> if none has been configured. + */ + RestConfiguration getRestConfiguration(String component, boolean defaultIfNotFound); + + /** + * Gets all the RestConfiguration's + */ + Collection<RestConfiguration> getRestConfigurations(); + + /** + * Gets the {@link org.apache.camel.spi.RestRegistry} to use + */ + RestRegistry getRestRegistry(); + + /** + * Sets a custom {@link org.apache.camel.spi.RestRegistry} to use. + */ + void setRestRegistry(RestRegistry restRegistry); + // Properties //----------------------------------------------------------------------- @@ -1172,30 +1199,6 @@ public interface CamelContext extends StatefulService, RuntimeConfiguration { void setRuntimeEndpointRegistry(RuntimeEndpointRegistry runtimeEndpointRegistry); /** - * Gets the {@link org.apache.camel.spi.RestRegistry} to use - */ - RestRegistry getRestRegistry(); - - /** - * Sets a custom {@link org.apache.camel.spi.RestRegistry} to use. - */ - void setRestRegistry(RestRegistry restRegistry); - - /** - * Adds the given route policy factory - * - * @param routePolicyFactory the factory - */ - void addRoutePolicyFactory(RoutePolicyFactory routePolicyFactory); - - /** - * Gets the route policy factories - * - * @return the list of current route policy factories - */ - List<RoutePolicyFactory> getRoutePolicyFactories(); - - /** * Returns the {@link ReloadStrategy} if in use. * * @return the strategy, or <tt>null</tt> if none has been configured. diff --git a/core/camel-api/src/main/java/org/apache/camel/ExtendedCamelContext.java b/core/camel-api/src/main/java/org/apache/camel/ExtendedCamelContext.java index d8cc8e9..1304268 100644 --- a/core/camel-api/src/main/java/org/apache/camel/ExtendedCamelContext.java +++ b/core/camel-api/src/main/java/org/apache/camel/ExtendedCamelContext.java @@ -197,6 +197,13 @@ public interface ExtendedCamelContext extends CamelContext { void setFactoryFinderResolver(FactoryFinderResolver resolver); /** + * Gets the factory finder resolver to use + * + * @return the factory finder resolver + */ + FactoryFinderResolver getFactoryFinderResolver(); + + /** * Gets the current {@link org.apache.camel.spi.ProcessorFactory} * * @return the factory, can be <tt>null</tt> if no custom factory has been set diff --git a/core/camel-api/src/main/java/org/apache/camel/spi/ManagementMBeanAssembler.java b/core/camel-api/src/main/java/org/apache/camel/spi/ManagementMBeanAssembler.java index b62ea67..f53c3dd 100644 --- a/core/camel-api/src/main/java/org/apache/camel/spi/ManagementMBeanAssembler.java +++ b/core/camel-api/src/main/java/org/apache/camel/spi/ManagementMBeanAssembler.java @@ -16,6 +16,8 @@ */ package org.apache.camel.spi; +import org.apache.camel.StaticService; + import javax.management.JMException; import javax.management.MBeanServer; import javax.management.ObjectName; @@ -25,7 +27,7 @@ import javax.management.modelmbean.ModelMBean; * An assembler to assemble a {@link javax.management.modelmbean.RequiredModelMBean} which can be used * to register the object in JMX. */ -public interface ManagementMBeanAssembler { +public interface ManagementMBeanAssembler extends StaticService { /** * Assemble the {@link javax.management.modelmbean.ModelMBean}. diff --git a/core/camel-api/src/main/java/org/apache/camel/spi/PackageScanClassResolver.java b/core/camel-api/src/main/java/org/apache/camel/spi/PackageScanClassResolver.java index 61c0e5f..f881041 100644 --- a/core/camel-api/src/main/java/org/apache/camel/spi/PackageScanClassResolver.java +++ b/core/camel-api/src/main/java/org/apache/camel/spi/PackageScanClassResolver.java @@ -16,13 +16,15 @@ */ package org.apache.camel.spi; +import org.apache.camel.StaticService; + import java.lang.annotation.Annotation; import java.util.Set; /** * A resolver that can find resources based on package scanning. */ -public interface PackageScanClassResolver { +public interface PackageScanClassResolver extends StaticService { /** * Gets the ClassLoader instances that should be used when scanning for classes. diff --git a/core/camel-api/src/main/java/org/apache/camel/spi/RouteController.java b/core/camel-api/src/main/java/org/apache/camel/spi/RouteController.java index 8a8f4c6..4ef114f 100644 --- a/core/camel-api/src/main/java/org/apache/camel/spi/RouteController.java +++ b/core/camel-api/src/main/java/org/apache/camel/spi/RouteController.java @@ -24,8 +24,9 @@ import org.apache.camel.Route; import org.apache.camel.ServiceStatus; import org.apache.camel.StaticService; -// TODO: Add javadoc - +/** + * Controller for managing the lifecycle of all the {@link Route}'s. + */ public interface RouteController extends CamelContextAware, StaticService { /** diff --git a/core/camel-base/src/main/java/org/apache/camel/impl/converter/TypeConvertersPackageScanClassResolver.java b/core/camel-base/src/main/java/org/apache/camel/impl/converter/TypeConvertersPackageScanClassResolver.java index aa8a6fb..b7aea30 100644 --- a/core/camel-base/src/main/java/org/apache/camel/impl/converter/TypeConvertersPackageScanClassResolver.java +++ b/core/camel-base/src/main/java/org/apache/camel/impl/converter/TypeConvertersPackageScanClassResolver.java @@ -23,6 +23,7 @@ import java.util.Set; import org.apache.camel.spi.PackageScanClassResolver; import org.apache.camel.spi.PackageScanFilter; +import org.apache.camel.support.service.ServiceSupport; /** * A {@link org.apache.camel.spi.ClassResolver} which loads type converters @@ -31,7 +32,7 @@ import org.apache.camel.spi.PackageScanFilter; * This is used when adding converters manually using the * {@link org.apache.camel.impl.converter.BaseTypeConverterRegistry#addTypeConverters(org.apache.camel.TypeConverters)} method. */ -public class TypeConvertersPackageScanClassResolver implements PackageScanClassResolver { +public class TypeConvertersPackageScanClassResolver extends ServiceSupport implements PackageScanClassResolver { private final Set<ClassLoader> classLoaders = new LinkedHashSet<>(); private final Set<Class<?>> converters = new LinkedHashSet<>(); @@ -84,4 +85,14 @@ public class TypeConvertersPackageScanClassResolver implements PackageScanClassR public void removeFilter(PackageScanFilter filter) { // noop } + + @Override + protected void doStart() throws Exception { + // noop + } + + @Override + protected void doStop() throws Exception { + // noop + } } diff --git a/core/camel-base/src/main/java/org/apache/camel/impl/engine/DefaultAsyncProcessorAwaitManager.java b/core/camel-base/src/main/java/org/apache/camel/impl/engine/DefaultAsyncProcessorAwaitManager.java index e0f846e..3a2b41c 100644 --- a/core/camel-base/src/main/java/org/apache/camel/impl/engine/DefaultAsyncProcessorAwaitManager.java +++ b/core/camel-base/src/main/java/org/apache/camel/impl/engine/DefaultAsyncProcessorAwaitManager.java @@ -30,6 +30,7 @@ import org.apache.camel.Exchange; import org.apache.camel.MessageHistory; import org.apache.camel.NamedNode; import org.apache.camel.RuntimeCamelException; +import org.apache.camel.StaticService; import org.apache.camel.spi.AsyncProcessorAwaitManager; import org.apache.camel.spi.ExchangeFormatter; import org.apache.camel.support.MessageHelper; @@ -37,7 +38,7 @@ import org.apache.camel.support.ReactiveHelper; import org.apache.camel.support.processor.DefaultExchangeFormatter; import org.apache.camel.support.service.ServiceSupport; -public class DefaultAsyncProcessorAwaitManager extends ServiceSupport implements AsyncProcessorAwaitManager { +public class DefaultAsyncProcessorAwaitManager extends ServiceSupport implements AsyncProcessorAwaitManager, StaticService { private final AsyncProcessorAwaitManager.Statistics statistics = new UtilizationStatistics(); private final AtomicLong blockedCounter = new AtomicLong(); diff --git a/core/camel-base/src/main/java/org/apache/camel/impl/engine/DefaultPackageScanClassResolver.java b/core/camel-base/src/main/java/org/apache/camel/impl/engine/DefaultPackageScanClassResolver.java index 50ad01e..d9d35f1 100644 --- a/core/camel-base/src/main/java/org/apache/camel/impl/engine/DefaultPackageScanClassResolver.java +++ b/core/camel-base/src/main/java/org/apache/camel/impl/engine/DefaultPackageScanClassResolver.java @@ -38,7 +38,6 @@ 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; import org.apache.camel.impl.scan.AssignableToPackageScanFilter; @@ -55,7 +54,7 @@ import org.slf4j.LoggerFactory; /** * Default implement of {@link org.apache.camel.spi.PackageScanClassResolver} */ -public class DefaultPackageScanClassResolver extends ServiceSupport implements PackageScanClassResolver, StaticService, NonManagedService { +public class DefaultPackageScanClassResolver extends ServiceSupport implements PackageScanClassResolver, NonManagedService { protected final Logger log = LoggerFactory.getLogger(getClass()); private final Set<ClassLoader> classLoaders = new LinkedHashSet<>(); diff --git a/core/camel-core-xml/src/test/java/org/apache/camel/core/xml/AbstractCamelContextFactoryBeanTest.java b/core/camel-core-xml/src/test/java/org/apache/camel/core/xml/AbstractCamelContextFactoryBeanTest.java index d99beb6..7aed727 100644 --- a/core/camel-core-xml/src/test/java/org/apache/camel/core/xml/AbstractCamelContextFactoryBeanTest.java +++ b/core/camel-core-xml/src/test/java/org/apache/camel/core/xml/AbstractCamelContextFactoryBeanTest.java @@ -27,8 +27,10 @@ import java.util.Set; import static java.util.Arrays.asList; import static java.util.Arrays.stream; +import org.apache.camel.ExtendedCamelContext; import org.apache.camel.Service; import org.apache.camel.TypeConverter; +import org.apache.camel.impl.DefaultCamelContext; import org.apache.camel.impl.converter.DefaultTypeConverter; import org.apache.camel.impl.engine.DefaultClassResolver; import org.apache.camel.impl.engine.DefaultFactoryFinder; @@ -88,9 +90,11 @@ public class AbstractCamelContextFactoryBeanTest { public void shouldSupportPropertyPlaceholdersOnAllProperties() throws Exception { final Set<Invocation> invocations = new LinkedHashSet<>(); - final ModelCamelContext context = mock(ModelCamelContext.class, + final DefaultCamelContext context = mock(DefaultCamelContext.class, withSettings().invocationListeners(i -> invocations.add((Invocation) i.getInvocation()))); + when(context.adapt(ExtendedCamelContext.class)).thenReturn(context); + // program the property resolution in context mock when(context.resolvePropertyPlaceholders(anyString())).thenAnswer(invocation -> { final String placeholder = invocation.getArgument(0); diff --git a/core/camel-core/src/main/java/org/apache/camel/model/Model.java b/core/camel-core/src/main/java/org/apache/camel/model/Model.java index 47d6638..f3b77be 100644 --- a/core/camel-core/src/main/java/org/apache/camel/model/Model.java +++ b/core/camel-core/src/main/java/org/apache/camel/model/Model.java @@ -258,8 +258,6 @@ public interface Model { /** * Start all routes from this model. - * - * @throws Exception */ void startRouteDefinitions() throws Exception;