CAMEL-9683: Made configuration of service call easier
Project: http://git-wip-us.apache.org/repos/asf/camel/repo Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/0cdb8787 Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/0cdb8787 Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/0cdb8787 Branch: refs/heads/remoteServiceCall Commit: 0cdb878741c5dc6301e052a97f399908c5102125 Parents: eac7a25 Author: Claus Ibsen <davscl...@apache.org> Authored: Thu May 19 11:45:56 2016 +0200 Committer: Claus Ibsen <davscl...@apache.org> Committed: Mon May 23 09:28:22 2016 +0200 ---------------------------------------------------------------------- .../java/org/apache/camel/CamelContext.java | 26 ++++++++ .../apache/camel/impl/DefaultCamelContext.java | 34 +++++++++++ .../camel/spi/ServiceCallConfiguration.java | 64 ++++++++++++++++++++ .../processor/KubernetesProcessorFactory.java | 13 +++- .../processor/ServiceCallClientRouteTest.java | 13 +--- .../ServiceCallEnvironmentRouteTest.java | 12 +--- .../SpringServiceCallClientRouteTest.xml | 2 +- .../SpringServiceCallEnvironmentRouteTest.xml | 2 +- .../processor/RibbonProcessorFactory.java | 40 +++++++----- .../RibbonServiceCallRegistryRouteTest.java | 13 +--- .../SpringRibbonServiceCallRouteTest.xml | 2 +- 11 files changed, 169 insertions(+), 52 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/camel/blob/0cdb8787/camel-core/src/main/java/org/apache/camel/CamelContext.java ---------------------------------------------------------------------- diff --git a/camel-core/src/main/java/org/apache/camel/CamelContext.java b/camel-core/src/main/java/org/apache/camel/CamelContext.java index d830e2d..e5d13fd 100644 --- a/camel-core/src/main/java/org/apache/camel/CamelContext.java +++ b/camel-core/src/main/java/org/apache/camel/CamelContext.java @@ -34,6 +34,7 @@ import org.apache.camel.model.DataFormatDefinition; import org.apache.camel.model.ProcessorDefinition; import org.apache.camel.model.RouteDefinition; import org.apache.camel.model.RoutesDefinition; +import org.apache.camel.model.remote.ServiceCallConfigurationDefinition; import org.apache.camel.model.rest.RestDefinition; import org.apache.camel.model.rest.RestsDefinition; import org.apache.camel.spi.AsyncProcessorAwaitManager; @@ -565,6 +566,31 @@ public interface CamelContext extends SuspendableService, RuntimeConfiguration { Collection<RestConfiguration> getRestConfigurations(); /** + * Gets the service call configuration by the given name. If no name is given and there is only one configuration + * which matches the type then this configuration is returned. + * + * @param serviceName name of service, or <tt>null</tt> to return the default configuration + * @param type implementation of the configuration such as kubernetes, ribbon etc. + * @return the configuration, or <tt>null</tt> if no configuration has been registered + */ + <T extends ServiceCallConfigurationDefinition> T getServiceCallConfiguration(String serviceName, Class<T> type); + + /** + * Sets the default service call configuration + * + * @param configuration the configuration + */ + void setServiceCallConfiguration(ServiceCallConfigurationDefinition configuration); + + /** + * Adds the service call configuration + * + * @param serviceName name of the service + * @param configuration the configuration + */ + void addServiceCallConfiguration(String serviceName, ServiceCallConfigurationDefinition configuration); + + /** * Returns the order in which the route inputs was started. * <p/> * The order may not be according to the startupOrder defined on the route. http://git-wip-us.apache.org/repos/asf/camel/blob/0cdb8787/camel-core/src/main/java/org/apache/camel/impl/DefaultCamelContext.java ---------------------------------------------------------------------- diff --git a/camel-core/src/main/java/org/apache/camel/impl/DefaultCamelContext.java b/camel-core/src/main/java/org/apache/camel/impl/DefaultCamelContext.java index 180fa99..38ee073 100644 --- a/camel-core/src/main/java/org/apache/camel/impl/DefaultCamelContext.java +++ b/camel-core/src/main/java/org/apache/camel/impl/DefaultCamelContext.java @@ -100,6 +100,7 @@ import org.apache.camel.model.ProcessorDefinitionHelper; import org.apache.camel.model.RouteDefinition; import org.apache.camel.model.RouteDefinitionHelper; import org.apache.camel.model.RoutesDefinition; +import org.apache.camel.model.remote.ServiceCallConfigurationDefinition; import org.apache.camel.model.rest.RestDefinition; import org.apache.camel.model.rest.RestsDefinition; import org.apache.camel.processor.interceptor.BacklogDebugger; @@ -206,6 +207,7 @@ public class DefaultCamelContext extends ServiceSupport implements ModelCamelCon private final List<RouteDefinition> routeDefinitions = new ArrayList<RouteDefinition>(); private final List<RestDefinition> restDefinitions = new ArrayList<RestDefinition>(); private Map<String, RestConfiguration> restConfigurations = new ConcurrentHashMap<>(); + private Map<String, ServiceCallConfigurationDefinition> serviceCallConfigurations = new ConcurrentHashMap<>(); private RestRegistry restRegistry = new DefaultRestRegistry(); private List<InterceptStrategy> interceptStrategies = new ArrayList<InterceptStrategy>(); private List<RoutePolicyFactory> routePolicyFactories = new ArrayList<RoutePolicyFactory>(); @@ -2551,6 +2553,7 @@ public class DefaultCamelContext extends ServiceSupport implements ModelCamelCon public void addRestConfiguration(RestConfiguration restConfiguration) { restConfigurations.put(restConfiguration.getComponent(), restConfiguration); } + public RestConfiguration getRestConfiguration(String component, boolean defaultIfNotExist) { if (component == null) { component = ""; @@ -2566,6 +2569,37 @@ public class DefaultCamelContext extends ServiceSupport implements ModelCamelCon return config; } + @SuppressWarnings("unchecked") + public <T extends ServiceCallConfigurationDefinition> T getServiceCallConfiguration(String serviceName, Class<T> type) { + if (serviceName == null) { + serviceName = ""; + } + + ServiceCallConfigurationDefinition config = serviceCallConfigurations.get(serviceName); + if (config == null) { + for (ServiceCallConfigurationDefinition candidate : serviceCallConfigurations.values()) { + if (type == null || type.isInstance(candidate)) { + config = candidate; + break; + } + } + } + + if (config != null) { + return type != null ? type.cast(config) : (T) config; + } else { + return null; + } + } + + public void setServiceCallConfiguration(ServiceCallConfigurationDefinition configuration) { + serviceCallConfigurations.put("", configuration); + } + + public void addServiceCallConfiguration(String serviceName, ServiceCallConfigurationDefinition configuration) { + serviceCallConfigurations.put(serviceName, configuration); + } + public List<InterceptStrategy> getInterceptStrategies() { return interceptStrategies; } http://git-wip-us.apache.org/repos/asf/camel/blob/0cdb8787/camel-core/src/main/java/org/apache/camel/spi/ServiceCallConfiguration.java ---------------------------------------------------------------------- diff --git a/camel-core/src/main/java/org/apache/camel/spi/ServiceCallConfiguration.java b/camel-core/src/main/java/org/apache/camel/spi/ServiceCallConfiguration.java new file mode 100644 index 0000000..7c46190 --- /dev/null +++ b/camel-core/src/main/java/org/apache/camel/spi/ServiceCallConfiguration.java @@ -0,0 +1,64 @@ +/** + * 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.spi; + +/** + * Configuration use by calling remote services where the service is looked up in a service registry of some sorts, + * implemented by Camel components to support the Camel {@link org.apache.camel.model.remote.ServiceCallDefinition Service Call} EIP. + */ +@Deprecated +public class ServiceCallConfiguration { + + private String component; + private ServiceCallLoadBalancer loadBalancer; + private ServiceCallServerListStrategy serverListStrategy; + + public String getComponent() { + return component; + } + + /** + * Sets the name of the Camel component to use such as ribbon or kubernetes + */ + public void setComponent(String component) { + this.component = component; + } + + public ServiceCallLoadBalancer getLoadBalancer() { + return loadBalancer; + } + + /** + * Sets a custom {@link org.apache.camel.spi.ServiceCallLoadBalancer} load balancer to use. + */ + public void setLoadBalancer(ServiceCallLoadBalancer loadBalancer) { + this.loadBalancer = loadBalancer; + } + + public ServiceCallServerListStrategy getServerListStrategy() { + return serverListStrategy; + } + + /** + * Sets a custom {@link org.apache.camel.spi.ServiceCallServerListStrategy} strategy to obtain the list of active + * servers that provides the service which is being selected by the load balancer when calling the remote service. + */ + public void setServerListStrategy(ServiceCallServerListStrategy serverListStrategy) { + this.serverListStrategy = serverListStrategy; + } + +} http://git-wip-us.apache.org/repos/asf/camel/blob/0cdb8787/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/processor/KubernetesProcessorFactory.java ---------------------------------------------------------------------- diff --git a/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/processor/KubernetesProcessorFactory.java b/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/processor/KubernetesProcessorFactory.java index 6fb695b..3a1352e 100644 --- a/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/processor/KubernetesProcessorFactory.java +++ b/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/processor/KubernetesProcessorFactory.java @@ -58,11 +58,20 @@ public class KubernetesProcessorFactory implements ProcessorFactory { KubernetesConfigurationDefinition config = (KubernetesConfigurationDefinition) sc.getServiceCallConfiguration(); KubernetesConfigurationDefinition configRef = null; if (sc.getServiceCallConfigurationRef() != null) { - configRef = CamelContextHelper.mandatoryLookup(routeContext.getCamelContext(), sc.getServiceCallConfigurationRef(), KubernetesConfigurationDefinition.class); + // lookup in registry first + configRef = CamelContextHelper.lookup(routeContext.getCamelContext(), sc.getServiceCallConfigurationRef(), KubernetesConfigurationDefinition.class); + if (configRef == null) { + // and fallback as service configuration + routeContext.getCamelContext().getServiceCallConfiguration(sc.getServiceCallConfigurationRef(), KubernetesConfigurationDefinition.class); + } } - // if no configuration explicit configured then try to lookup in registry by type and find the best candidate to use + // if no configuration explicit configured then use default if (config == null && configRef == null) { + config = routeContext.getCamelContext().getServiceCallConfiguration(null, KubernetesConfigurationDefinition.class); + } + if (config == null) { + // if no default then try to find if there configuration in the registry of the given type Set<KubernetesConfigurationDefinition> set = routeContext.getCamelContext().getRegistry().findByType(KubernetesConfigurationDefinition.class); if (set != null) { for (KubernetesConfigurationDefinition candidate : set) { http://git-wip-us.apache.org/repos/asf/camel/blob/0cdb8787/components/camel-kubernetes/src/test/java/org/apache/camel/component/kubernetes/processor/ServiceCallClientRouteTest.java ---------------------------------------------------------------------- diff --git a/components/camel-kubernetes/src/test/java/org/apache/camel/component/kubernetes/processor/ServiceCallClientRouteTest.java b/components/camel-kubernetes/src/test/java/org/apache/camel/component/kubernetes/processor/ServiceCallClientRouteTest.java index 20485e5..b5e03e3 100644 --- a/components/camel-kubernetes/src/test/java/org/apache/camel/component/kubernetes/processor/ServiceCallClientRouteTest.java +++ b/components/camel-kubernetes/src/test/java/org/apache/camel/component/kubernetes/processor/ServiceCallClientRouteTest.java @@ -18,7 +18,6 @@ package org.apache.camel.component.kubernetes.processor; import org.apache.camel.RoutesBuilder; import org.apache.camel.builder.RouteBuilder; -import org.apache.camel.impl.JndiRegistry; import org.apache.camel.model.remote.KubernetesConfigurationDefinition; import org.apache.camel.test.junit4.CamelTestSupport; import org.junit.Ignore; @@ -27,14 +26,6 @@ import org.junit.Test; @Ignore("Manual test") public class ServiceCallClientRouteTest extends CamelTestSupport { - private JndiRegistry registry; - - @Override - protected JndiRegistry createRegistry() throws Exception { - registry = super.createRegistry(); - return registry; - } - @Test public void testServiceCall() throws Exception { getMockEndpoint("mock:result").expectedMessageCount(1); @@ -58,8 +49,8 @@ public class ServiceCallClientRouteTest extends CamelTestSupport { // lets use the built-in round robin (random is default) config.setLoadBalancerRef("roundrobin"); - // add the config to the registry so service call can use it - registry.bind("myConfig", config); + // register configuration + context.setServiceCallConfiguration(config); from("direct:start") .serviceCall("cdi-camel-jetty") http://git-wip-us.apache.org/repos/asf/camel/blob/0cdb8787/components/camel-kubernetes/src/test/java/org/apache/camel/component/kubernetes/processor/ServiceCallEnvironmentRouteTest.java ---------------------------------------------------------------------- diff --git a/components/camel-kubernetes/src/test/java/org/apache/camel/component/kubernetes/processor/ServiceCallEnvironmentRouteTest.java b/components/camel-kubernetes/src/test/java/org/apache/camel/component/kubernetes/processor/ServiceCallEnvironmentRouteTest.java index 6d4fa57..9278b57 100644 --- a/components/camel-kubernetes/src/test/java/org/apache/camel/component/kubernetes/processor/ServiceCallEnvironmentRouteTest.java +++ b/components/camel-kubernetes/src/test/java/org/apache/camel/component/kubernetes/processor/ServiceCallEnvironmentRouteTest.java @@ -27,14 +27,6 @@ import org.junit.Test; @Ignore("Manual test") public class ServiceCallEnvironmentRouteTest extends CamelTestSupport { - private JndiRegistry registry; - - @Override - protected JndiRegistry createRegistry() throws Exception { - registry = super.createRegistry(); - return registry; - } - @Test public void testServiceCall() throws Exception { getMockEndpoint("mock:result").expectedMessageCount(1); @@ -52,8 +44,8 @@ public class ServiceCallEnvironmentRouteTest extends CamelTestSupport { KubernetesConfigurationDefinition config = new KubernetesConfigurationDefinition(); config.setLookup("environment"); - // add the config to the registry so service call can use it - registry.bind("myConfig", config); + // register configuration + context.setServiceCallConfiguration(config); from("direct:start") .serviceCall("cdi-camel-jetty") http://git-wip-us.apache.org/repos/asf/camel/blob/0cdb8787/components/camel-kubernetes/src/test/resources/org/apache/camel/component/kubernetes/processor/SpringServiceCallClientRouteTest.xml ---------------------------------------------------------------------- diff --git a/components/camel-kubernetes/src/test/resources/org/apache/camel/component/kubernetes/processor/SpringServiceCallClientRouteTest.xml b/components/camel-kubernetes/src/test/resources/org/apache/camel/component/kubernetes/processor/SpringServiceCallClientRouteTest.xml index e9eda75..87162d9 100644 --- a/components/camel-kubernetes/src/test/resources/org/apache/camel/component/kubernetes/processor/SpringServiceCallClientRouteTest.xml +++ b/components/camel-kubernetes/src/test/resources/org/apache/camel/component/kubernetes/processor/SpringServiceCallClientRouteTest.xml @@ -25,7 +25,7 @@ <camelContext xmlns="http://camel.apache.org/schema/spring"> <!-- use client to lookup the service, which requires to setup a number of options --> - <kubernetesConfiguration id="myConfig" masterUrl="http://172.28.128.80:8080" lookup="client" + <kubernetesConfiguration id="kubernetes" masterUrl="http://172.28.128.80:8080" lookup="client" username="admin" password="admin" namespace="default" loadBalancerRef="roundrobin"/> <route> http://git-wip-us.apache.org/repos/asf/camel/blob/0cdb8787/components/camel-kubernetes/src/test/resources/org/apache/camel/component/kubernetes/processor/SpringServiceCallEnvironmentRouteTest.xml ---------------------------------------------------------------------- diff --git a/components/camel-kubernetes/src/test/resources/org/apache/camel/component/kubernetes/processor/SpringServiceCallEnvironmentRouteTest.xml b/components/camel-kubernetes/src/test/resources/org/apache/camel/component/kubernetes/processor/SpringServiceCallEnvironmentRouteTest.xml index 4546621..6f2f028 100644 --- a/components/camel-kubernetes/src/test/resources/org/apache/camel/component/kubernetes/processor/SpringServiceCallEnvironmentRouteTest.xml +++ b/components/camel-kubernetes/src/test/resources/org/apache/camel/component/kubernetes/processor/SpringServiceCallEnvironmentRouteTest.xml @@ -25,7 +25,7 @@ <camelContext xmlns="http://camel.apache.org/schema/spring"> <!-- use environment variables to lookup the service --> - <kubernetesConfiguration id="myConfig" lookup="environment"/> + <kubernetesConfiguration id="kubernetes" lookup="environment"/> <route> <from uri="direct:start"/> http://git-wip-us.apache.org/repos/asf/camel/blob/0cdb8787/components/camel-ribbon/src/main/java/org/apache/camel/component/ribbon/processor/RibbonProcessorFactory.java ---------------------------------------------------------------------- diff --git a/components/camel-ribbon/src/main/java/org/apache/camel/component/ribbon/processor/RibbonProcessorFactory.java b/components/camel-ribbon/src/main/java/org/apache/camel/component/ribbon/processor/RibbonProcessorFactory.java index 3448527..e0821cf 100644 --- a/components/camel-ribbon/src/main/java/org/apache/camel/component/ribbon/processor/RibbonProcessorFactory.java +++ b/components/camel-ribbon/src/main/java/org/apache/camel/component/ribbon/processor/RibbonProcessorFactory.java @@ -26,6 +26,7 @@ import org.apache.camel.Processor; import org.apache.camel.component.ribbon.RibbonConfiguration; import org.apache.camel.model.ProcessorDefinition; import org.apache.camel.model.PropertyDefinition; +import org.apache.camel.model.remote.RibbonConfigurationDefinition; import org.apache.camel.model.remote.ServiceCallConfigurationDefinition; import org.apache.camel.model.remote.ServiceCallDefinition; import org.apache.camel.spi.ProcessorFactory; @@ -55,17 +56,26 @@ public class RibbonProcessorFactory implements ProcessorFactory { String uri = sc.getUri(); ExchangePattern mep = sc.getPattern(); - ServiceCallConfigurationDefinition config = sc.getServiceCallConfiguration(); - ServiceCallConfigurationDefinition configRef = null; + RibbonConfigurationDefinition config = (RibbonConfigurationDefinition) sc.getServiceCallConfiguration(); + RibbonConfigurationDefinition configRef = null; if (sc.getServiceCallConfigurationRef() != null) { - configRef = CamelContextHelper.mandatoryLookup(routeContext.getCamelContext(), sc.getServiceCallConfigurationRef(), ServiceCallConfigurationDefinition.class); + // lookup in registry first + configRef = CamelContextHelper.lookup(routeContext.getCamelContext(), sc.getServiceCallConfigurationRef(), RibbonConfigurationDefinition.class); + if (configRef == null) { + // and fallback as service configuration + routeContext.getCamelContext().getServiceCallConfiguration(sc.getServiceCallConfigurationRef(), RibbonConfigurationDefinition.class); + } } - // if no configuration explicit configured then try to lookup in registry by type and find the best candidate to use + // if no configuration explicit configured then use default if (config == null && configRef == null) { - Set<ServiceCallConfigurationDefinition> set = routeContext.getCamelContext().getRegistry().findByType(ServiceCallConfigurationDefinition.class); + config = routeContext.getCamelContext().getServiceCallConfiguration(null, RibbonConfigurationDefinition.class); + } + if (config == null) { + // if no default then try to find if there configuration in the registry of the given type + Set<RibbonConfigurationDefinition> set = routeContext.getCamelContext().getRegistry().findByType(RibbonConfigurationDefinition.class); if (set != null) { - for (ServiceCallConfigurationDefinition candidate : set) { + for (RibbonConfigurationDefinition candidate : set) { if (candidate.getComponent() == null || "ribbon".equals(candidate.getComponent())) { config = candidate; break; @@ -74,15 +84,6 @@ public class RibbonProcessorFactory implements ProcessorFactory { } } - // extract the properties from the configuration from the model - Map<String, Object> parameters = new HashMap<>(); - if (configRef != null) { - IntrospectionSupport.getProperties(configRef, parameters, null); - } - if (config != null) { - IntrospectionSupport.getProperties(config, parameters, null); - } - // component must either not be set, or if set then must be us String component = config != null ? config.getComponent() : null; if (component == null && configRef != null) { @@ -92,6 +93,15 @@ public class RibbonProcessorFactory implements ProcessorFactory { return null; } + // extract the properties from the configuration from the model + Map<String, Object> parameters = new HashMap<>(); + if (configRef != null) { + IntrospectionSupport.getProperties(configRef, parameters, null); + } + if (config != null) { + IntrospectionSupport.getProperties(config, parameters, null); + } + // and set them on the kubernetes configuration class RibbonConfiguration rc = new RibbonConfiguration(); IntrospectionSupport.setProperties(rc, parameters); http://git-wip-us.apache.org/repos/asf/camel/blob/0cdb8787/components/camel-ribbon/src/test/java/org/apache/camel/component/ribbon/processor/RibbonServiceCallRegistryRouteTest.java ---------------------------------------------------------------------- diff --git a/components/camel-ribbon/src/test/java/org/apache/camel/component/ribbon/processor/RibbonServiceCallRegistryRouteTest.java b/components/camel-ribbon/src/test/java/org/apache/camel/component/ribbon/processor/RibbonServiceCallRegistryRouteTest.java index 3a2c764..b1c7d4d 100644 --- a/components/camel-ribbon/src/test/java/org/apache/camel/component/ribbon/processor/RibbonServiceCallRegistryRouteTest.java +++ b/components/camel-ribbon/src/test/java/org/apache/camel/component/ribbon/processor/RibbonServiceCallRegistryRouteTest.java @@ -18,19 +18,10 @@ package org.apache.camel.component.ribbon.processor; import org.apache.camel.RoutesBuilder; import org.apache.camel.builder.RouteBuilder; -import org.apache.camel.impl.JndiRegistry; import org.apache.camel.model.remote.RibbonConfigurationDefinition; public class RibbonServiceCallRegistryRouteTest extends RibbonServiceCallRouteTest { - private JndiRegistry registry; - - @Override - protected JndiRegistry createRegistry() throws Exception { - registry = super.createRegistry(); - return registry; - } - @Override protected RoutesBuilder createRouteBuilder() throws Exception { return new RouteBuilder() { @@ -45,8 +36,8 @@ public class RibbonServiceCallRegistryRouteTest extends RibbonServiceCallRouteTe RibbonConfigurationDefinition config = new RibbonConfigurationDefinition(); config.setServerListStrategy(servers); - // add the config to the registry so service call can use it - registry.bind("myConfig", config); + // register configuration + context.setServiceCallConfiguration(config); from("direct:start") .serviceCall("myService") http://git-wip-us.apache.org/repos/asf/camel/blob/0cdb8787/components/camel-ribbon/src/test/resources/org/apache/camel/component/ribbon/processor/SpringRibbonServiceCallRouteTest.xml ---------------------------------------------------------------------- diff --git a/components/camel-ribbon/src/test/resources/org/apache/camel/component/ribbon/processor/SpringRibbonServiceCallRouteTest.xml b/components/camel-ribbon/src/test/resources/org/apache/camel/component/ribbon/processor/SpringRibbonServiceCallRouteTest.xml index a448e66..6b2df8d 100644 --- a/components/camel-ribbon/src/test/resources/org/apache/camel/component/ribbon/processor/SpringRibbonServiceCallRouteTest.xml +++ b/components/camel-ribbon/src/test/resources/org/apache/camel/component/ribbon/processor/SpringRibbonServiceCallRouteTest.xml @@ -32,7 +32,7 @@ <camelContext xmlns="http://camel.apache.org/schema/spring"> <!-- service call configuration to use ribbon --> - <ribbonConfiguration id="myConfig" serverListStrategyRef="servers"/> + <ribbonConfiguration id="ribbon" serverListStrategyRef="servers"/> <route> <from uri="direct:start"/>