You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2016/05/19 12:56:29 UTC
[2/2] camel git commit: CAMEL-9683: Allow to configure default
component to use instead of http
CAMEL-9683: Allow to configure default component to use instead of http
Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/c00d2c3d
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/c00d2c3d
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/c00d2c3d
Branch: refs/heads/kube-lb
Commit: c00d2c3d85d7f1437114c72ca833ebf32ef0a749
Parents: 5f70f9e
Author: Claus Ibsen <da...@apache.org>
Authored: Thu May 19 14:53:57 2016 +0200
Committer: Claus Ibsen <da...@apache.org>
Committed: Thu May 19 14:53:57 2016 +0200
----------------------------------------------------------------------
.../remote/RibbonConfigurationDefinition.java | 2 +-
.../ServiceCallConfigurationDefinition.java | 26 ++++++++++++++++++++
.../KubernetesClientServiceCallProcessor.java | 4 +--
.../KubernetesDnsServiceCallProcessor.java | 4 +--
...bernetesEnvironmentServiceCallProcessor.java | 4 +--
.../processor/KubernetesProcessorFactory.java | 12 ++++++---
.../processor/RibbonProcessorFactory.java | 8 +++++-
.../processor/RibbonServiceCallProcessor.java | 4 +--
8 files changed, 51 insertions(+), 13 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/camel/blob/c00d2c3d/camel-core/src/main/java/org/apache/camel/model/remote/RibbonConfigurationDefinition.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/model/remote/RibbonConfigurationDefinition.java b/camel-core/src/main/java/org/apache/camel/model/remote/RibbonConfigurationDefinition.java
index 2cc5ea2..4ac4109 100644
--- a/camel-core/src/main/java/org/apache/camel/model/remote/RibbonConfigurationDefinition.java
+++ b/camel-core/src/main/java/org/apache/camel/model/remote/RibbonConfigurationDefinition.java
@@ -40,7 +40,7 @@ public class RibbonConfigurationDefinition extends ServiceCallConfigurationDefin
// Getter/Setter
// -------------------------------------------------------------------------
-
+ // currently no ribbon specific options
// Fluent API
// -------------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/camel/blob/c00d2c3d/camel-core/src/main/java/org/apache/camel/model/remote/ServiceCallConfigurationDefinition.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/model/remote/ServiceCallConfigurationDefinition.java b/camel-core/src/main/java/org/apache/camel/model/remote/ServiceCallConfigurationDefinition.java
index 526a0d3..562e0df 100644
--- a/camel-core/src/main/java/org/apache/camel/model/remote/ServiceCallConfigurationDefinition.java
+++ b/camel-core/src/main/java/org/apache/camel/model/remote/ServiceCallConfigurationDefinition.java
@@ -46,6 +46,8 @@ public abstract class ServiceCallConfigurationDefinition extends IdentifiedType
@XmlTransient
private ServiceCallDefinition parent;
+ @XmlAttribute @Metadata(defaultValue = "http")
+ private String component;
@XmlAttribute
private String loadBalancerRef;
@XmlTransient
@@ -70,6 +72,15 @@ public abstract class ServiceCallConfigurationDefinition extends IdentifiedType
// Getter/Setter
// -------------------------------------------------------------------------
+
+ public String getComponent() {
+ return component;
+ }
+
+ public void setComponent(String component) {
+ this.component = component;
+ }
+
public String getLoadBalancerRef() {
return loadBalancerRef;
}
@@ -124,6 +135,21 @@ public abstract class ServiceCallConfigurationDefinition extends IdentifiedType
// -------------------------------------------------------------------------
/**
+ * Sets the default Camel component to use for calling the remote service.
+ * <p/>
+ * By default the http component is used. You can configure this to use <tt>netty4-http</tt>, <tt>jetty</tt>,
+ * <tt>restlet</tt> or some other components of choice. If the service is not HTTP protocol you can use other
+ * components such as <tt>mqtt</tt>, <tt>jms</tt>, <tt>amqp</tt> etc.
+ * <p/>
+ * If the service call has been configured using an uri, then the component from the uri is used instead
+ * of this default component.
+ */
+ public ServiceCallConfigurationDefinition component(String component) {
+ setComponent(component);
+ return this;
+ }
+
+ /**
* Sets a reference to a custom {@link org.apache.camel.spi.ServiceCallLoadBalancer} to use.
*/
public ServiceCallConfigurationDefinition loadBalancer(String loadBalancerRef) {
http://git-wip-us.apache.org/repos/asf/camel/blob/c00d2c3d/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/processor/KubernetesClientServiceCallProcessor.java
----------------------------------------------------------------------
diff --git a/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/processor/KubernetesClientServiceCallProcessor.java b/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/processor/KubernetesClientServiceCallProcessor.java
index 1bdca12..f1af317 100644
--- a/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/processor/KubernetesClientServiceCallProcessor.java
+++ b/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/processor/KubernetesClientServiceCallProcessor.java
@@ -63,7 +63,7 @@ public class KubernetesClientServiceCallProcessor extends ServiceSupport impleme
private ServiceCallLoadBalancer<KubernetesServer> loadBalancer;
private SendDynamicProcessor processor;
- public KubernetesClientServiceCallProcessor(String name, String namespace, String uri, ExchangePattern exchangePattern, KubernetesConfiguration configuration) {
+ public KubernetesClientServiceCallProcessor(String name, String namespace, String scheme, String uri, ExchangePattern exchangePattern, KubernetesConfiguration configuration) {
// setup from the provided name which can contain scheme and context-path information as well
String serviceName;
if (name.contains("/")) {
@@ -80,7 +80,7 @@ public class KubernetesClientServiceCallProcessor extends ServiceSupport impleme
this.scheme = ObjectHelper.before(serviceName, ":");
this.name = ObjectHelper.after(serviceName, ":");
} else {
- this.scheme = null;
+ this.scheme = scheme;
this.name = serviceName;
}
http://git-wip-us.apache.org/repos/asf/camel/blob/c00d2c3d/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/processor/KubernetesDnsServiceCallProcessor.java
----------------------------------------------------------------------
diff --git a/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/processor/KubernetesDnsServiceCallProcessor.java b/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/processor/KubernetesDnsServiceCallProcessor.java
index de66286..0401d5f 100644
--- a/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/processor/KubernetesDnsServiceCallProcessor.java
+++ b/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/processor/KubernetesDnsServiceCallProcessor.java
@@ -56,7 +56,7 @@ public class KubernetesDnsServiceCallProcessor extends ServiceSupport implements
private String ip;
private long port;
- public KubernetesDnsServiceCallProcessor(String name, String namespace, String uri, ExchangePattern exchangePattern, String dnsDomain) {
+ public KubernetesDnsServiceCallProcessor(String name, String namespace, String scheme, String uri, ExchangePattern exchangePattern, String dnsDomain) {
// setup from the provided name which can contain scheme and context-path information as well
String serviceName;
if (name.contains("/")) {
@@ -73,7 +73,7 @@ public class KubernetesDnsServiceCallProcessor extends ServiceSupport implements
this.scheme = ObjectHelper.before(serviceName, ":");
this.name = ObjectHelper.after(serviceName, ":");
} else {
- this.scheme = null;
+ this.scheme = scheme;
this.name = serviceName;
}
http://git-wip-us.apache.org/repos/asf/camel/blob/c00d2c3d/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/processor/KubernetesEnvironmentServiceCallProcessor.java
----------------------------------------------------------------------
diff --git a/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/processor/KubernetesEnvironmentServiceCallProcessor.java b/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/processor/KubernetesEnvironmentServiceCallProcessor.java
index 5c743b6..ea264e6 100644
--- a/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/processor/KubernetesEnvironmentServiceCallProcessor.java
+++ b/components/camel-kubernetes/src/main/java/org/apache/camel/component/kubernetes/processor/KubernetesEnvironmentServiceCallProcessor.java
@@ -55,7 +55,7 @@ public class KubernetesEnvironmentServiceCallProcessor extends ServiceSupport im
private String ip;
private long port;
- public KubernetesEnvironmentServiceCallProcessor(String name, String namespace, String uri, ExchangePattern exchangePattern) {
+ public KubernetesEnvironmentServiceCallProcessor(String name, String namespace, String scheme, String uri, ExchangePattern exchangePattern) {
// setup from the provided name which can contain scheme and context-path information as well
String serviceName;
if (name.contains("/")) {
@@ -72,7 +72,7 @@ public class KubernetesEnvironmentServiceCallProcessor extends ServiceSupport im
this.scheme = ObjectHelper.before(serviceName, ":");
this.name = ObjectHelper.after(serviceName, ":");
} else {
- this.scheme = null;
+ this.scheme = scheme;
this.name = serviceName;
}
http://git-wip-us.apache.org/repos/asf/camel/blob/c00d2c3d/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 73d9a07..8c1324c 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
@@ -120,8 +120,14 @@ public class KubernetesProcessorFactory implements ProcessorFactory {
lookup = configRef.getLookup();
}
+ // the component is used to configure what the default scheme to use (eg camel component name)
+ String component = config != null ? config.getComponent() : null;
+ if (component == null && configRef != null) {
+ component = configRef.getComponent();
+ }
+
if ("client".equals(lookup)) {
- KubernetesClientServiceCallProcessor processor = new KubernetesClientServiceCallProcessor(name, namespace, uri, mep, kc);
+ KubernetesClientServiceCallProcessor processor = new KubernetesClientServiceCallProcessor(name, namespace, component, uri, mep, kc);
processor.setLoadBalancer(lb);
processor.setServerListStrategy(sl);
return processor;
@@ -130,10 +136,10 @@ public class KubernetesProcessorFactory implements ProcessorFactory {
if (dnsDomain == null && configRef != null) {
dnsDomain = configRef.getDnsDomain();
}
- return new KubernetesDnsServiceCallProcessor(name, namespace, uri, mep, dnsDomain);
+ return new KubernetesDnsServiceCallProcessor(name, namespace, component, uri, mep, dnsDomain);
} else {
// environment is default
- return new KubernetesEnvironmentServiceCallProcessor(name, namespace, uri, mep);
+ return new KubernetesEnvironmentServiceCallProcessor(name, namespace, component, uri, mep);
}
} else {
return null;
http://git-wip-us.apache.org/repos/asf/camel/blob/c00d2c3d/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 f77557e..8b03a74 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
@@ -119,9 +119,15 @@ public class RibbonProcessorFactory implements ProcessorFactory {
throw new IllegalArgumentException("Load balancer must be of type: " + IRule.class + " but is of type: " + lb.getClass().getName());
}
+ // the component is used to configure what the default scheme to use (eg camel component name)
+ String component = config != null ? config.getComponent() : null;
+ if (component == null && configRef != null) {
+ component = configRef.getComponent();
+ }
+
Map<String, String> properties = configureProperties(routeContext, config, configRef);
- RibbonServiceCallProcessor processor = new RibbonServiceCallProcessor(name, uri, mep, rc);
+ RibbonServiceCallProcessor processor = new RibbonServiceCallProcessor(name, uri, component, mep, rc);
processor.setRule((IRule) lb);
processor.setServerListStrategy(sl);
processor.setRibbonClientConfig(properties);
http://git-wip-us.apache.org/repos/asf/camel/blob/c00d2c3d/components/camel-ribbon/src/main/java/org/apache/camel/component/ribbon/processor/RibbonServiceCallProcessor.java
----------------------------------------------------------------------
diff --git a/components/camel-ribbon/src/main/java/org/apache/camel/component/ribbon/processor/RibbonServiceCallProcessor.java b/components/camel-ribbon/src/main/java/org/apache/camel/component/ribbon/processor/RibbonServiceCallProcessor.java
index 530fd40..c980cce 100644
--- a/components/camel-ribbon/src/main/java/org/apache/camel/component/ribbon/processor/RibbonServiceCallProcessor.java
+++ b/components/camel-ribbon/src/main/java/org/apache/camel/component/ribbon/processor/RibbonServiceCallProcessor.java
@@ -72,7 +72,7 @@ public class RibbonServiceCallProcessor extends ServiceSupport implements AsyncP
private Map<String, String> ribbonClientConfig;
private SendDynamicProcessor processor;
- public RibbonServiceCallProcessor(String name, String uri, ExchangePattern exchangePattern, RibbonConfiguration configuration) {
+ public RibbonServiceCallProcessor(String name, String uri, String scheme, ExchangePattern exchangePattern, RibbonConfiguration configuration) {
// setup from the provided name which can contain scheme and context-path information as well
String serviceName;
if (name.contains("/")) {
@@ -89,7 +89,7 @@ public class RibbonServiceCallProcessor extends ServiceSupport implements AsyncP
this.scheme = ObjectHelper.before(serviceName, ":");
this.name = ObjectHelper.after(serviceName, ":");
} else {
- this.scheme = null;
+ this.scheme = scheme;
this.name = serviceName;
}