CAMEL-10682: AbstractCamelContextFactorybean : add specific methods for servicecall/hystrix configuration
Project: http://git-wip-us.apache.org/repos/asf/camel/repo Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/40e177b5 Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/40e177b5 Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/40e177b5 Branch: refs/heads/mention Commit: 40e177b504f7bf7c289d2dabfc7d4178ca68c674 Parents: da3e2ea Author: lburgazzoli <lburgazz...@gmail.com> Authored: Mon Feb 6 18:15:36 2017 +0100 Committer: lburgazzoli <lburgazz...@gmail.com> Committed: Mon Feb 6 18:15:36 2017 +0100 ---------------------------------------------------------------------- .../blueprint/CamelContextFactoryBean.java | 27 ++++++++++++++-- .../camel/cdi/xml/CamelContextFactoryBean.java | 29 +++++++++++++++-- .../xml/AbstractCamelContextFactoryBean.java | 15 ++++----- .../camel/spring/CamelContextFactoryBean.java | 33 ++++++++++++++++++-- .../spring/handler/CamelNamespaceHandler.java | 2 ++ 5 files changed, 90 insertions(+), 16 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/camel/blob/40e177b5/components/camel-blueprint/src/main/java/org/apache/camel/blueprint/CamelContextFactoryBean.java ---------------------------------------------------------------------- diff --git a/components/camel-blueprint/src/main/java/org/apache/camel/blueprint/CamelContextFactoryBean.java b/components/camel-blueprint/src/main/java/org/apache/camel/blueprint/CamelContextFactoryBean.java index cf8a9e1..717665a 100644 --- a/components/camel-blueprint/src/main/java/org/apache/camel/blueprint/CamelContextFactoryBean.java +++ b/components/camel-blueprint/src/main/java/org/apache/camel/blueprint/CamelContextFactoryBean.java @@ -155,10 +155,12 @@ public class CamelContextFactoryBean extends AbstractCamelContextFactoryBean<Blu @XmlElement(name = "errorHandler", type = CamelErrorHandlerFactoryBean.class)}) private List<AbstractCamelFactoryBean<?>> beansFactory; @XmlElements({ - @XmlElement(name = "export", type = CamelServiceExporterDefinition.class), - @XmlElement(name = "serviceCallConfiguration", type = ServiceCallConfigurationDefinition.class), - @XmlElement(name = "hystrixConfiguration", type = HystrixConfigurationDefinition.class)}) + @XmlElement(name = "export", type = CamelServiceExporterDefinition.class) }) private List<?> beans; + @XmlElement(name = "serviceCallConfiguration", type = ServiceCallConfigurationDefinition.class) + private List<ServiceCallConfigurationDefinition> serviceCallConfigurations; + @XmlElement(name = "hystrixConfiguration", type = HystrixConfigurationDefinition.class) + private List<HystrixConfigurationDefinition> hystrixConfigurations; @XmlElement(name = "routeBuilder") private List<RouteBuilderDefinition> builderRefs = new ArrayList<RouteBuilderDefinition>(); @XmlElement(name = "routeContextRef") @@ -626,6 +628,7 @@ public class CamelContextFactoryBean extends AbstractCamelContextFactoryBean<Blu this.camelStreamCachingStrategy = camelStreamCachingStrategy; } + @Override public List<AbstractCamelFactoryBean<?>> getBeansFactory() { return beansFactory; } @@ -643,6 +646,24 @@ public class CamelContextFactoryBean extends AbstractCamelContextFactoryBean<Blu this.beans = beans; } + @Override + public List<ServiceCallConfigurationDefinition> getServiceCallConfigurations() { + return serviceCallConfigurations; + } + + public void setServiceCallConfigurations(List<ServiceCallConfigurationDefinition> serviceCallConfigurations) { + this.serviceCallConfigurations = serviceCallConfigurations; + } + + @Override + public List<HystrixConfigurationDefinition> getHystrixConfigurations() { + return hystrixConfigurations; + } + + public void setHystrixConfigurations(List<HystrixConfigurationDefinition> hystrixConfigurations) { + this.hystrixConfigurations = hystrixConfigurations; + } + public List<RouteBuilderDefinition> getBuilderRefs() { return builderRefs; } http://git-wip-us.apache.org/repos/asf/camel/blob/40e177b5/components/camel-cdi/src/main/java/org/apache/camel/cdi/xml/CamelContextFactoryBean.java ---------------------------------------------------------------------- diff --git a/components/camel-cdi/src/main/java/org/apache/camel/cdi/xml/CamelContextFactoryBean.java b/components/camel-cdi/src/main/java/org/apache/camel/cdi/xml/CamelContextFactoryBean.java index 455f091..d5336ed 100644 --- a/components/camel-cdi/src/main/java/org/apache/camel/cdi/xml/CamelContextFactoryBean.java +++ b/components/camel-cdi/src/main/java/org/apache/camel/cdi/xml/CamelContextFactoryBean.java @@ -169,11 +169,15 @@ public class CamelContextFactoryBean extends AbstractCamelContextFactoryBean<Def }) private List<AbstractCamelFactoryBean<?>> beansFactory; - @XmlElements({ - @XmlElement(name = "serviceCallConfiguration", type = ServiceCallConfigurationDefinition.class), - @XmlElement(name = "hystrixConfiguration", type = HystrixConfigurationDefinition.class)}) + @XmlTransient private List<?> beans; + @XmlElement(name = "serviceCallConfiguration", type = ServiceCallConfigurationDefinition.class) + private List<ServiceCallConfigurationDefinition> serviceCallConfigurations; + + @XmlElement(name = "hystrixConfiguration", type = HystrixConfigurationDefinition.class) + private List<HystrixConfigurationDefinition> hystrixConfigurations; + @XmlElement(name = "errorHandler", type = ErrorHandlerDefinition.class) private List<ErrorHandlerDefinition> errorHandlers; @@ -314,6 +318,7 @@ public class CamelContextFactoryBean extends AbstractCamelContextFactoryBean<Def return context; } + @Override public List<AbstractCamelFactoryBean<?>> getBeansFactory() { return beansFactory; } @@ -331,6 +336,24 @@ public class CamelContextFactoryBean extends AbstractCamelContextFactoryBean<Def this.beans = beans; } + @Override + public List<ServiceCallConfigurationDefinition> getServiceCallConfigurations() { + return serviceCallConfigurations; + } + + public void setServiceCallConfigurations(List<ServiceCallConfigurationDefinition> serviceCallConfigurations) { + this.serviceCallConfigurations = serviceCallConfigurations; + } + + @Override + public List<HystrixConfigurationDefinition> getHystrixConfigurations() { + return hystrixConfigurations; + } + + public void setHystrixConfigurations(List<HystrixConfigurationDefinition> hystrixConfigurations) { + this.hystrixConfigurations = hystrixConfigurations; + } + public List<RouteDefinition> getRoutes() { return routes; } http://git-wip-us.apache.org/repos/asf/camel/blob/40e177b5/components/camel-core-xml/src/main/java/org/apache/camel/core/xml/AbstractCamelContextFactoryBean.java ---------------------------------------------------------------------- diff --git a/components/camel-core-xml/src/main/java/org/apache/camel/core/xml/AbstractCamelContextFactoryBean.java b/components/camel-core-xml/src/main/java/org/apache/camel/core/xml/AbstractCamelContextFactoryBean.java index e2c1892..0c2c8b9 100644 --- a/components/camel-core-xml/src/main/java/org/apache/camel/core/xml/AbstractCamelContextFactoryBean.java +++ b/components/camel-core-xml/src/main/java/org/apache/camel/core/xml/AbstractCamelContextFactoryBean.java @@ -52,6 +52,7 @@ import org.apache.camel.management.ManagedManagementStrategy; import org.apache.camel.model.ContextScanDefinition; import org.apache.camel.model.FromDefinition; import org.apache.camel.model.GlobalOptionsDefinition; +import org.apache.camel.model.HystrixConfigurationDefinition; import org.apache.camel.model.IdentifiedType; import org.apache.camel.model.InterceptDefinition; import org.apache.camel.model.InterceptFromDefinition; @@ -791,6 +792,10 @@ public abstract class AbstractCamelContextFactoryBean<T extends ModelCamelContex public abstract List<?> getBeans(); + public abstract List<HystrixConfigurationDefinition> getHystrixConfigurations(); + + public abstract List<ServiceCallConfigurationDefinition> getServiceCallConfigurations(); + // Implementation methods // ------------------------------------------------------------------------- @@ -867,13 +872,9 @@ public abstract class AbstractCamelContextFactoryBean<T extends ModelCamelContex if (getRestConfiguration() != null) { ctx.setRestConfiguration(getRestConfiguration().asRestConfiguration(ctx)); } - if (getBeans() != null) { - for (Object bean : getBeans()) { - if (bean instanceof ServiceCallConfigurationDefinition) { - @SuppressWarnings("unchecked") - ServiceCallConfigurationDefinition configuration = (ServiceCallConfigurationDefinition)bean; - ctx.addServiceCallConfiguration(configuration.getId(), configuration); - } + if (getServiceCallConfigurations() != null) { + for (ServiceCallConfigurationDefinition bean : getServiceCallConfigurations()) { + ctx.addServiceCallConfiguration(bean.getId(), bean); } } } http://git-wip-us.apache.org/repos/asf/camel/blob/40e177b5/components/camel-spring/src/main/java/org/apache/camel/spring/CamelContextFactoryBean.java ---------------------------------------------------------------------- diff --git a/components/camel-spring/src/main/java/org/apache/camel/spring/CamelContextFactoryBean.java b/components/camel-spring/src/main/java/org/apache/camel/spring/CamelContextFactoryBean.java index a05b4f0..6c2f2d0 100644 --- a/components/camel-spring/src/main/java/org/apache/camel/spring/CamelContextFactoryBean.java +++ b/components/camel-spring/src/main/java/org/apache/camel/spring/CamelContextFactoryBean.java @@ -164,10 +164,12 @@ public class CamelContextFactoryBean extends AbstractCamelContextFactoryBean<Spr @XmlElements({ @XmlElement(name = "proxy", type = CamelProxyFactoryDefinition.class), @XmlElement(name = "export", type = CamelServiceExporterDefinition.class), - @XmlElement(name = "errorHandler", type = ErrorHandlerDefinition.class), - @XmlElement(name = "serviceCallConfiguration", type = ServiceCallConfigurationDefinition.class), - @XmlElement(name = "hystrixConfiguration", type = HystrixConfigurationDefinition.class)}) + @XmlElement(name = "errorHandler", type = ErrorHandlerDefinition.class) }) private List<?> beans; + @XmlElement(name = "serviceCallConfiguration", type = ServiceCallConfigurationDefinition.class) + private List<ServiceCallConfigurationDefinition> serviceCallConfigurations; + @XmlElement(name = "hystrixConfiguration", type = HystrixConfigurationDefinition.class) + private List<HystrixConfigurationDefinition> hystrixConfigurations; @XmlElement(name = "routeBuilder") private List<RouteBuilderDefinition> builderRefs = new ArrayList<RouteBuilderDefinition>(); @XmlElement(name = "routeContextRef") @@ -912,6 +914,7 @@ public class CamelContextFactoryBean extends AbstractCamelContextFactoryBean<Spr this.redeliveryPolicies = redeliveryPolicies; } + @Override public List<AbstractCamelFactoryBean<?>> getBeansFactory() { return beansFactory; } @@ -935,6 +938,30 @@ public class CamelContextFactoryBean extends AbstractCamelContextFactoryBean<Spr this.beans = beans; } + @Override + public List<ServiceCallConfigurationDefinition> getServiceCallConfigurations() { + return serviceCallConfigurations; + } + + /** + * ServiceCall configurations + */ + public void setServiceCallConfigurations(List<ServiceCallConfigurationDefinition> serviceCallConfigurations) { + this.serviceCallConfigurations = serviceCallConfigurations; + } + + @Override + public List<HystrixConfigurationDefinition> getHystrixConfigurations() { + return hystrixConfigurations; + } + + /** + * hystrix configurations + */ + public void setHystrixConfigurations(List<HystrixConfigurationDefinition> hystrixConfigurations) { + this.hystrixConfigurations = hystrixConfigurations; + } + /** * Configuration of error handlers that triggers on exceptions thrown. */ http://git-wip-us.apache.org/repos/asf/camel/blob/40e177b5/components/camel-spring/src/main/java/org/apache/camel/spring/handler/CamelNamespaceHandler.java ---------------------------------------------------------------------- diff --git a/components/camel-spring/src/main/java/org/apache/camel/spring/handler/CamelNamespaceHandler.java b/components/camel-spring/src/main/java/org/apache/camel/spring/handler/CamelNamespaceHandler.java index ff17b4d..e0ef322 100644 --- a/components/camel-spring/src/main/java/org/apache/camel/spring/handler/CamelNamespaceHandler.java +++ b/components/camel-spring/src/main/java/org/apache/camel/spring/handler/CamelNamespaceHandler.java @@ -402,6 +402,8 @@ public class CamelNamespaceHandler extends NamespaceHandlerSupport { builder.addPropertyValue("threadPoolProfiles", factoryBean.getThreadPoolProfiles()); builder.addPropertyValue("beansFactory", factoryBean.getBeansFactory()); builder.addPropertyValue("beans", factoryBean.getBeans()); + builder.addPropertyValue("serviceCallConfigurations", factoryBean.getServiceCallConfigurations()); + builder.addPropertyValue("hystrixConfigurations", factoryBean.getHystrixConfigurations()); // add any depends-on addDependsOn(factoryBean, builder); }