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 <[email protected]>
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;