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;
 

Reply via email to