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/17 14:34:22 UTC

[3/4] camel git commit: CAMEL-9683: Separate configuration of k8s and ribbon to have their own model.

CAMEL-9683: Separate configuration of k8s and ribbon to have their own model.


Project: http://git-wip-us.apache.org/repos/asf/camel/repo
Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/e7b0d79b
Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/e7b0d79b
Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/e7b0d79b

Branch: refs/heads/kube-lb
Commit: e7b0d79b23f8c18dcf4860b5e4444ccf40b25fa3
Parents: cbecce5
Author: Claus Ibsen <da...@apache.org>
Authored: Tue May 17 16:22:20 2016 +0200
Committer: Claus Ibsen <da...@apache.org>
Committed: Tue May 17 16:22:20 2016 +0200

----------------------------------------------------------------------
 .../KubernetesConfigurationDefinition.java      | 320 +++++++++++++++++++
 .../remote/RibbonConfigurationDefinition.java   |  48 +++
 .../ServiceCallConfigurationDefinition.java     | 292 ++---------------
 .../model/remote/ServiceCallDefinition.java     |  18 +-
 .../org/apache/camel/model/remote/jaxb.index    |   2 +
 .../blueprint/CamelContextFactoryBean.java      |   6 +-
 .../processor/ServiceCallRouteTest.java         |   4 +-
 .../processor/SpringServiceCallRouteTest.xml    |   4 +-
 .../RibbonServiceCallKubernetesRouteTest.java   |  56 ----
 .../RibbonServiceCallRegistryRouteTest.java     |   4 +-
 .../processor/RibbonServiceCallRouteTest.java   |   2 +-
 .../RibbonServiceCallUpdateRouteTest.java       |   2 +-
 .../SpringRibbonServiceCallRouteTest.xml        |   2 +-
 .../camel/spring/CamelContextFactoryBean.java   |   6 +-
 .../spring/handler/CamelNamespaceHandler.java   |   8 +-
 15 files changed, 425 insertions(+), 349 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/e7b0d79b/camel-core/src/main/java/org/apache/camel/model/remote/KubernetesConfigurationDefinition.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/model/remote/KubernetesConfigurationDefinition.java b/camel-core/src/main/java/org/apache/camel/model/remote/KubernetesConfigurationDefinition.java
new file mode 100644
index 0000000..0a8726b
--- /dev/null
+++ b/camel-core/src/main/java/org/apache/camel/model/remote/KubernetesConfigurationDefinition.java
@@ -0,0 +1,320 @@
+/**
+ * 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.model.remote;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAttribute;
+import javax.xml.bind.annotation.XmlRootElement;
+
+import org.apache.camel.spi.Metadata;
+
+/**
+ * Kubernetes remote service call configuration
+ */
+@Metadata(label = "eip,routing,remote")
+@XmlRootElement(name = "kubernetesConfiguration")
+@XmlAccessorType(XmlAccessType.FIELD)
+public class KubernetesConfigurationDefinition extends ServiceCallConfigurationDefinition {
+
+    @XmlAttribute
+    @Metadata(required = "true")
+    private String masterUrl;
+    @XmlAttribute
+    private String namespace;
+    @XmlAttribute
+    private String apiVersion;
+    @XmlAttribute @Metadata(label = "security")
+    private String username;
+    @XmlAttribute @Metadata(label = "security")
+    private String password;
+    @XmlAttribute @Metadata(label = "security")
+    private String oauthToken;
+    @XmlAttribute @Metadata(label = "security")
+    private String caCertData;
+    @XmlAttribute @Metadata(label = "security")
+    private String caCertFile;
+    @XmlAttribute @Metadata(label = "security")
+    private String clientCertData;
+    @XmlAttribute @Metadata(label = "security")
+    private String clientCertFile;
+    @XmlAttribute @Metadata(label = "security")
+    private String clientKeyAlgo;
+    @XmlAttribute @Metadata(label = "security")
+    private String clientKeyData;
+    @XmlAttribute @Metadata(label = "security")
+    private String clientKeyFile;
+    @XmlAttribute @Metadata(label = "security")
+    private String clientKeyPassphrase;
+    @XmlAttribute @Metadata(label = "security")
+    private Boolean trustCerts;
+
+    public KubernetesConfigurationDefinition() {
+    }
+
+    public KubernetesConfigurationDefinition(ServiceCallDefinition parent) {
+        super(parent);
+    }
+
+    // Getter/Setter
+    // -------------------------------------------------------------------------
+
+
+    public String getMasterUrl() {
+        return masterUrl;
+    }
+
+    public void setMasterUrl(String masterUrl) {
+        this.masterUrl = masterUrl;
+    }
+
+    public String getNamespace() {
+        return namespace;
+    }
+
+    public void setNamespace(String namespace) {
+        this.namespace = namespace;
+    }
+
+    public String getApiVersion() {
+        return apiVersion;
+    }
+
+    public void setApiVersion(String apiVersion) {
+        this.apiVersion = apiVersion;
+    }
+
+    public String getUsername() {
+        return username;
+    }
+
+    public void setUsername(String username) {
+        this.username = username;
+    }
+
+    public String getPassword() {
+        return password;
+    }
+
+    public void setPassword(String password) {
+        this.password = password;
+    }
+
+    public String getOauthToken() {
+        return oauthToken;
+    }
+
+    public void setOauthToken(String oauthToken) {
+        this.oauthToken = oauthToken;
+    }
+
+    public String getCaCertData() {
+        return caCertData;
+    }
+
+    public void setCaCertData(String caCertData) {
+        this.caCertData = caCertData;
+    }
+
+    public String getCaCertFile() {
+        return caCertFile;
+    }
+
+    public void setCaCertFile(String caCertFile) {
+        this.caCertFile = caCertFile;
+    }
+
+    public String getClientCertData() {
+        return clientCertData;
+    }
+
+    public void setClientCertData(String clientCertData) {
+        this.clientCertData = clientCertData;
+    }
+
+    public String getClientCertFile() {
+        return clientCertFile;
+    }
+
+    public void setClientCertFile(String clientCertFile) {
+        this.clientCertFile = clientCertFile;
+    }
+
+    public String getClientKeyAlgo() {
+        return clientKeyAlgo;
+    }
+
+    public void setClientKeyAlgo(String clientKeyAlgo) {
+        this.clientKeyAlgo = clientKeyAlgo;
+    }
+
+    public String getClientKeyData() {
+        return clientKeyData;
+    }
+
+    public void setClientKeyData(String clientKeyData) {
+        this.clientKeyData = clientKeyData;
+    }
+
+    public String getClientKeyFile() {
+        return clientKeyFile;
+    }
+
+    public void setClientKeyFile(String clientKeyFile) {
+        this.clientKeyFile = clientKeyFile;
+    }
+
+    public String getClientKeyPassphrase() {
+        return clientKeyPassphrase;
+    }
+
+    public void setClientKeyPassphrase(String clientKeyPassphrase) {
+        this.clientKeyPassphrase = clientKeyPassphrase;
+    }
+
+    public Boolean getTrustCerts() {
+        return trustCerts;
+    }
+
+    public void setTrustCerts(Boolean trustCerts) {
+        this.trustCerts = trustCerts;
+    }
+
+    // Fluent API
+    // -------------------------------------------------------------------------
+
+    /**
+     * Sets the URL to the master
+     */
+    public KubernetesConfigurationDefinition masterUrl(String masterUrl) {
+        setMasterUrl(masterUrl);
+        return this;
+    }
+
+    /**
+     * Sets the namespace to use
+     */
+    public KubernetesConfigurationDefinition namespace(String namespace) {
+        setNamespace(namespace);
+        return this;
+    }
+
+    /**
+     * Sets the API version
+     */
+    public KubernetesConfigurationDefinition apiVersion(String apiVersion) {
+        setApiVersion(apiVersion);
+        return this;
+    }
+
+    /**
+     * Sets the username for authentication
+     */
+    public KubernetesConfigurationDefinition username(String username) {
+        setUsername(username);
+        return this;
+    }
+
+    /**
+     * Sets the password for authentication
+     */
+    public KubernetesConfigurationDefinition password(String password) {
+        setPassword(password);
+        return this;
+    }
+
+    /**
+     * Sets the OAUTH token for authentication (instead of username/password)
+     */
+    public KubernetesConfigurationDefinition oauthToken(String oauthToken) {
+        setOauthToken(oauthToken);
+        return this;
+    }
+
+    /**
+     * Sets the Certificate Authority data
+     */
+    public KubernetesConfigurationDefinition caCertData(String caCertData) {
+        setCaCertData(caCertData);
+        return this;
+    }
+
+    /**
+     * Sets the Certificate Authority data that are loaded from the file
+     */
+    public KubernetesConfigurationDefinition caCertFile(String caCertFile) {
+        setCaCertFile(caCertFile);
+        return this;
+    }
+
+    /**
+     * Sets the Client Certificate data
+     */
+    public KubernetesConfigurationDefinition clientCertData(String clientCertData) {
+        setClientCertData(clientCertData);
+        return this;
+    }
+
+    /**
+     * Sets the Client Certificate data that are loaded from the file
+     */
+    public KubernetesConfigurationDefinition clientCertFile(String clientCertFile) {
+        setClientCertFile(clientCertFile);
+        return this;
+    }
+
+    /**
+     * Sets the Client Keystore algorithm, such as RSA.
+     */
+    public KubernetesConfigurationDefinition clientKeyAlgo(String clientKeyAlgo) {
+        setClientKeyAlgo(clientKeyAlgo);
+        return this;
+    }
+
+    /**
+     * Sets the Client Keystore data
+     */
+    public KubernetesConfigurationDefinition clientKeyData(String clientKeyData) {
+        setClientKeyData(clientKeyData);
+        return this;
+    }
+
+    /**
+     * Sets the Client Keystore data that are loaded from the file
+     */
+    public KubernetesConfigurationDefinition clientKeyFile(String clientKeyFile) {
+        setClientKeyFile(clientKeyFile);
+        return this;
+    }
+
+    /**
+     * Sets the Client Keystore passphrase
+     */
+    public KubernetesConfigurationDefinition clientKeyPassphrase(String clientKeyPassphrase) {
+        setClientKeyPassphrase(clientKeyPassphrase);
+        return this;
+    }
+
+    /**
+     * Sets whether to turn on trust certificate check
+     */
+    public KubernetesConfigurationDefinition trustCerts(boolean trustCerts) {
+        setTrustCerts(trustCerts);
+        return this;
+    }
+
+}

http://git-wip-us.apache.org/repos/asf/camel/blob/e7b0d79b/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
new file mode 100644
index 0000000..2cc5ea2
--- /dev/null
+++ b/camel-core/src/main/java/org/apache/camel/model/remote/RibbonConfigurationDefinition.java
@@ -0,0 +1,48 @@
+/**
+ * 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.model.remote;
+
+import javax.xml.bind.annotation.XmlAccessType;
+import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlRootElement;
+
+import org.apache.camel.spi.Metadata;
+
+/**
+ * Ribbon remote service call configuration
+ */
+@Metadata(label = "eip,routing,remote")
+@XmlRootElement(name = "ribbonConfiguration")
+@XmlAccessorType(XmlAccessType.FIELD)
+public class RibbonConfigurationDefinition extends ServiceCallConfigurationDefinition {
+
+    public RibbonConfigurationDefinition() {
+    }
+
+    public RibbonConfigurationDefinition(ServiceCallDefinition parent) {
+        super(parent);
+    }
+
+    // Getter/Setter
+    // -------------------------------------------------------------------------
+
+
+
+    // Fluent API
+    // -------------------------------------------------------------------------
+
+}

http://git-wip-us.apache.org/repos/asf/camel/blob/e7b0d79b/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 6fb0363..4b51bd7 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
@@ -18,14 +18,18 @@ package org.apache.camel.model.remote;
 
 import java.util.ArrayList;
 import java.util.List;
+import java.util.Map;
 import javax.xml.bind.annotation.XmlAccessType;
 import javax.xml.bind.annotation.XmlAccessorType;
+import javax.xml.bind.annotation.XmlAnyAttribute;
 import javax.xml.bind.annotation.XmlAttribute;
 import javax.xml.bind.annotation.XmlElement;
 import javax.xml.bind.annotation.XmlRootElement;
 import javax.xml.bind.annotation.XmlTransient;
+import javax.xml.namespace.QName;
 
 import org.apache.camel.model.IdentifiedType;
+import org.apache.camel.model.OtherAttributesAware;
 import org.apache.camel.model.ProcessorDefinition;
 import org.apache.camel.model.PropertyDefinition;
 import org.apache.camel.spi.Metadata;
@@ -35,45 +39,15 @@ import org.apache.camel.spi.ServiceCallServerListStrategy;
 /**
  * Remote service call configuration
  */
-@Metadata(label = "eip,routing")
+@Metadata(label = "eip,routing,remote")
 @XmlRootElement(name = "serviceCallConfiguration")
 @XmlAccessorType(XmlAccessType.FIELD)
-public class ServiceCallConfigurationDefinition extends IdentifiedType {
+public abstract class ServiceCallConfigurationDefinition extends IdentifiedType implements OtherAttributesAware {
 
     @XmlTransient
     private ServiceCallDefinition parent;
     @XmlAttribute
     private String component;
-    @XmlAttribute @Metadata(required = "true")
-    private String masterUrl;
-    @XmlAttribute
-    private String namespace;
-    @XmlAttribute
-    private String apiVersion;
-    @XmlAttribute @Metadata(label = "security")
-    private String username;
-    @XmlAttribute @Metadata(label = "security")
-    private String password;
-    @XmlAttribute @Metadata(label = "security")
-    private String oauthToken;
-    @XmlAttribute @Metadata(label = "security")
-    private String caCertData;
-    @XmlAttribute @Metadata(label = "security")
-    private String caCertFile;
-    @XmlAttribute @Metadata(label = "security")
-    private String clientCertData;
-    @XmlAttribute @Metadata(label = "security")
-    private String clientCertFile;
-    @XmlAttribute @Metadata(label = "security")
-    private String clientKeyAlgo;
-    @XmlAttribute @Metadata(label = "security")
-    private String clientKeyData;
-    @XmlAttribute @Metadata(label = "security")
-    private String clientKeyFile;
-    @XmlAttribute @Metadata(label = "security")
-    private String clientKeyPassphrase;
-    @XmlAttribute @Metadata(label = "security")
-    private Boolean trustCerts;
     @XmlAttribute
     private String loadBalancerRef;
     @XmlTransient
@@ -84,6 +58,9 @@ public class ServiceCallConfigurationDefinition extends IdentifiedType {
     private ServiceCallServerListStrategy serverListStrategy;
     @XmlElement(name = "clientProperty") @Metadata(label = "advanced")
     private List<PropertyDefinition> properties;
+    // use xs:any to support optional property placeholders
+    @XmlAnyAttribute
+    private Map<QName, Object> otherAttributes;
 
     public ServiceCallConfigurationDefinition() {
     }
@@ -95,7 +72,6 @@ public class ServiceCallConfigurationDefinition extends IdentifiedType {
     // Getter/Setter
     // -------------------------------------------------------------------------
 
-
     public String getComponent() {
         return component;
     }
@@ -104,126 +80,6 @@ public class ServiceCallConfigurationDefinition extends IdentifiedType {
         this.component = component;
     }
 
-    public String getMasterUrl() {
-        return masterUrl;
-    }
-
-    public void setMasterUrl(String masterUrl) {
-        this.masterUrl = masterUrl;
-    }
-
-    public String getNamespace() {
-        return namespace;
-    }
-
-    public void setNamespace(String namespace) {
-        this.namespace = namespace;
-    }
-
-    public String getApiVersion() {
-        return apiVersion;
-    }
-
-    public void setApiVersion(String apiVersion) {
-        this.apiVersion = apiVersion;
-    }
-
-    public String getUsername() {
-        return username;
-    }
-
-    public void setUsername(String username) {
-        this.username = username;
-    }
-
-    public String getPassword() {
-        return password;
-    }
-
-    public void setPassword(String password) {
-        this.password = password;
-    }
-
-    public String getCaCertData() {
-        return caCertData;
-    }
-
-    public void setCaCertData(String caCertData) {
-        this.caCertData = caCertData;
-    }
-
-    public String getCaCertFile() {
-        return caCertFile;
-    }
-
-    public void setCaCertFile(String caCertFile) {
-        this.caCertFile = caCertFile;
-    }
-
-    public String getClientCertData() {
-        return clientCertData;
-    }
-
-    public void setClientCertData(String clientCertData) {
-        this.clientCertData = clientCertData;
-    }
-
-    public String getClientCertFile() {
-        return clientCertFile;
-    }
-
-    public void setClientCertFile(String clientCertFile) {
-        this.clientCertFile = clientCertFile;
-    }
-
-    public String getClientKeyAlgo() {
-        return clientKeyAlgo;
-    }
-
-    public void setClientKeyAlgo(String clientKeyAlgo) {
-        this.clientKeyAlgo = clientKeyAlgo;
-    }
-
-    public String getClientKeyData() {
-        return clientKeyData;
-    }
-
-    public void setClientKeyData(String clientKeyData) {
-        this.clientKeyData = clientKeyData;
-    }
-
-    public String getClientKeyFile() {
-        return clientKeyFile;
-    }
-
-    public void setClientKeyFile(String clientKeyFile) {
-        this.clientKeyFile = clientKeyFile;
-    }
-
-    public String getClientKeyPassphrase() {
-        return clientKeyPassphrase;
-    }
-
-    public void setClientKeyPassphrase(String clientKeyPassphrase) {
-        this.clientKeyPassphrase = clientKeyPassphrase;
-    }
-
-    public String getOauthToken() {
-        return oauthToken;
-    }
-
-    public void setOauthToken(String oauthToken) {
-        this.oauthToken = oauthToken;
-    }
-
-    public Boolean getTrustCerts() {
-        return trustCerts;
-    }
-
-    public void setTrustCerts(Boolean trustCerts) {
-        this.trustCerts = trustCerts;
-    }
-
     public String getLoadBalancerRef() {
         return loadBalancerRef;
     }
@@ -264,6 +120,16 @@ public class ServiceCallConfigurationDefinition extends IdentifiedType {
         this.properties = properties;
     }
 
+    @Override
+    public Map<QName, Object> getOtherAttributes() {
+        return otherAttributes;
+    }
+
+    @Override
+    public void setOtherAttributes(Map<QName, Object> otherAttributes) {
+        this.otherAttributes = otherAttributes;
+    }
+
     // Fluent API
     // -------------------------------------------------------------------------
 
@@ -276,126 +142,6 @@ public class ServiceCallConfigurationDefinition extends IdentifiedType {
     }
 
     /**
-     * Sets the URL to the master
-     */
-    public ServiceCallConfigurationDefinition masterUrl(String masterUrl) {
-        setMasterUrl(masterUrl);
-        return this;
-    }
-
-    /**
-     * Sets the namespace to use
-     */
-    public ServiceCallConfigurationDefinition namespace(String namespace) {
-        setNamespace(namespace);
-        return this;
-    }
-
-    /**
-     * Sets the API version
-     */
-    public ServiceCallConfigurationDefinition apiVersion(String apiVersion) {
-        setApiVersion(apiVersion);
-        return this;
-    }
-
-    /**
-     * Sets the username for authentication
-     */
-    public ServiceCallConfigurationDefinition username(String username) {
-        setUsername(username);
-        return this;
-    }
-
-    /**
-     * Sets the password for authentication
-     */
-    public ServiceCallConfigurationDefinition password(String password) {
-        setPassword(password);
-        return this;
-    }
-
-    /**
-     * Sets the OAUTH token for authentication (instead of username/password)
-     */
-    public ServiceCallConfigurationDefinition oauthToken(String oauthToken) {
-        setOauthToken(oauthToken);
-        return this;
-    }
-
-    /**
-     * Sets the Certificate Authority data
-     */
-    public ServiceCallConfigurationDefinition caCertData(String caCertData) {
-        setCaCertData(caCertData);
-        return this;
-    }
-
-    /**
-     * Sets the Certificate Authority data that are loaded from the file
-     */
-    public ServiceCallConfigurationDefinition caCertFile(String caCertFile) {
-        setCaCertFile(caCertFile);
-        return this;
-    }
-
-    /**
-     * Sets the Client Certificate data
-     */
-    public ServiceCallConfigurationDefinition clientCertData(String clientCertData) {
-        setClientCertData(clientCertData);
-        return this;
-    }
-
-    /**
-     * Sets the Client Certificate data that are loaded from the file
-     */
-    public ServiceCallConfigurationDefinition clientCertFile(String clientCertFile) {
-        setClientCertFile(clientCertFile);
-        return this;
-    }
-
-    /**
-     * Sets the Client Keystore algorithm, such as RSA.
-     */
-    public ServiceCallConfigurationDefinition clientKeyAlgo(String clientKeyAlgo) {
-        setClientKeyAlgo(clientKeyAlgo);
-        return this;
-    }
-
-    /**
-     * Sets the Client Keystore data
-     */
-    public ServiceCallConfigurationDefinition clientKeyData(String clientKeyData) {
-        setClientKeyData(clientKeyData);
-        return this;
-    }
-
-    /**
-     * Sets the Client Keystore data that are loaded from the file
-     */
-    public ServiceCallConfigurationDefinition clientKeyFile(String clientKeyFile) {
-        setClientKeyFile(clientKeyFile);
-        return this;
-    }
-
-    /**
-     * Sets the Client Keystore passphrase
-     */
-    public ServiceCallConfigurationDefinition clientKeyPassphrase(String clientKeyPassphrase) {
-        setClientKeyPassphrase(clientKeyPassphrase);
-        return this;
-    }
-
-    /**
-     * Sets whether to turn on trust certificate check
-     */
-    public ServiceCallConfigurationDefinition trustCerts(boolean trustCerts) {
-        setTrustCerts(trustCerts);
-        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/e7b0d79b/camel-core/src/main/java/org/apache/camel/model/remote/ServiceCallDefinition.java
----------------------------------------------------------------------
diff --git a/camel-core/src/main/java/org/apache/camel/model/remote/ServiceCallDefinition.java b/camel-core/src/main/java/org/apache/camel/model/remote/ServiceCallDefinition.java
index c923128..c5b668c 100644
--- a/camel-core/src/main/java/org/apache/camel/model/remote/ServiceCallDefinition.java
+++ b/camel-core/src/main/java/org/apache/camel/model/remote/ServiceCallDefinition.java
@@ -126,13 +126,23 @@ public class ServiceCallDefinition extends NoOutputDefinition<ServiceCallDefinit
     }
 
     /**
-     * Configures the Service Call EIP
+     * Configures the Service Call EIP using Kubernetes
      * <p/>
      * Use <tt>end</tt> when configuration is complete, to return back to the Service Call EIP.
      */
-    public ServiceCallConfigurationDefinition serviceCallConfiguration() {
-        serviceCallConfiguration = new ServiceCallConfigurationDefinition(this);
-        return serviceCallConfiguration;
+    public KubernetesConfigurationDefinition kubernetesConfiguration() {
+        serviceCallConfiguration = new KubernetesConfigurationDefinition(this);
+        return (KubernetesConfigurationDefinition) serviceCallConfiguration;
+    }
+
+    /**
+     * Configures the Service Call EIP using Ribbon
+     * <p/>
+     * Use <tt>end</tt> when configuration is complete, to return back to the Service Call EIP.
+     */
+    public RibbonConfigurationDefinition ribbonConfiguration() {
+        serviceCallConfiguration = new RibbonConfigurationDefinition(this);
+        return (RibbonConfigurationDefinition) serviceCallConfiguration;
     }
 
     /**

http://git-wip-us.apache.org/repos/asf/camel/blob/e7b0d79b/camel-core/src/main/resources/org/apache/camel/model/remote/jaxb.index
----------------------------------------------------------------------
diff --git a/camel-core/src/main/resources/org/apache/camel/model/remote/jaxb.index b/camel-core/src/main/resources/org/apache/camel/model/remote/jaxb.index
index 498dc90..29147c2 100644
--- a/camel-core/src/main/resources/org/apache/camel/model/remote/jaxb.index
+++ b/camel-core/src/main/resources/org/apache/camel/model/remote/jaxb.index
@@ -14,5 +14,7 @@
 ## See the License for the specific language governing permissions and
 ## limitations under the License.
 ## ------------------------------------------------------------------------
+KubernetesConfigurationDefinition
+RibbonConfigurationDefinition
 ServiceCallDefinition
 ServiceCallConfigurationDefinition

http://git-wip-us.apache.org/repos/asf/camel/blob/e7b0d79b/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 362f057..d04ca11 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
@@ -58,7 +58,8 @@ import org.apache.camel.model.RouteContextRefDefinition;
 import org.apache.camel.model.RouteDefinition;
 import org.apache.camel.model.ThreadPoolProfileDefinition;
 import org.apache.camel.model.dataformat.DataFormatsDefinition;
-import org.apache.camel.model.remote.ServiceCallConfigurationDefinition;
+import org.apache.camel.model.remote.KubernetesConfigurationDefinition;
+import org.apache.camel.model.remote.RibbonConfigurationDefinition;
 import org.apache.camel.model.rest.RestConfigurationDefinition;
 import org.apache.camel.model.rest.RestDefinition;
 import org.apache.camel.spi.PackageScanFilter;
@@ -143,7 +144,8 @@ public class CamelContextFactoryBean extends AbstractCamelContextFactoryBean<Blu
     private CamelStreamCachingStrategyDefinition camelStreamCachingStrategy;
     @XmlElements({
         @XmlElement(name = "hystrixConfiguration", type = HystrixConfigurationDefinition.class, required = false),
-        @XmlElement(name = "serviceCallConfiguration", type = ServiceCallConfigurationDefinition.class, required = false),
+        @XmlElement(name = "kubernetesConfiguration", type = KubernetesConfigurationDefinition.class, required = false),
+        @XmlElement(name = "ribbonConfiguration", type = RibbonConfigurationDefinition.class, required = false),
         @XmlElement(name = "template", type = CamelProducerTemplateFactoryBean.class, required = false),
         @XmlElement(name = "consumerTemplate", type = CamelConsumerTemplateFactoryBean.class, required = false),
         @XmlElement(name = "proxy", type = CamelProxyFactoryBean.class, required = false),

http://git-wip-us.apache.org/repos/asf/camel/blob/e7b0d79b/components/camel-kubernetes/src/test/java/org/apache/camel/component/kubernetes/processor/ServiceCallRouteTest.java
----------------------------------------------------------------------
diff --git a/components/camel-kubernetes/src/test/java/org/apache/camel/component/kubernetes/processor/ServiceCallRouteTest.java b/components/camel-kubernetes/src/test/java/org/apache/camel/component/kubernetes/processor/ServiceCallRouteTest.java
index 2c1ca37..b8bfdae 100644
--- a/components/camel-kubernetes/src/test/java/org/apache/camel/component/kubernetes/processor/ServiceCallRouteTest.java
+++ b/components/camel-kubernetes/src/test/java/org/apache/camel/component/kubernetes/processor/ServiceCallRouteTest.java
@@ -19,7 +19,7 @@ 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.ServiceCallConfigurationDefinition;
+import org.apache.camel.model.remote.KubernetesConfigurationDefinition;
 import org.apache.camel.test.junit4.CamelTestSupport;
 import org.junit.Ignore;
 import org.junit.Test;
@@ -49,7 +49,7 @@ public class ServiceCallRouteTest extends CamelTestSupport {
         return new RouteBuilder() {
             @Override
             public void configure() throws Exception {
-                ServiceCallConfigurationDefinition config = new ServiceCallConfigurationDefinition();
+                KubernetesConfigurationDefinition config = new KubernetesConfigurationDefinition();
                 config.setMasterUrl("https://fabric8-master.vagrant.f8:8443");
                 config.setUsername("admin");
                 config.setPassword("admin");

http://git-wip-us.apache.org/repos/asf/camel/blob/e7b0d79b/components/camel-kubernetes/src/test/resources/org/apache/camel/component/kubernetes/processor/SpringServiceCallRouteTest.xml
----------------------------------------------------------------------
diff --git a/components/camel-kubernetes/src/test/resources/org/apache/camel/component/kubernetes/processor/SpringServiceCallRouteTest.xml b/components/camel-kubernetes/src/test/resources/org/apache/camel/component/kubernetes/processor/SpringServiceCallRouteTest.xml
index 3cb0a2f..efab9d1 100644
--- a/components/camel-kubernetes/src/test/resources/org/apache/camel/component/kubernetes/processor/SpringServiceCallRouteTest.xml
+++ b/components/camel-kubernetes/src/test/resources/org/apache/camel/component/kubernetes/processor/SpringServiceCallRouteTest.xml
@@ -25,8 +25,8 @@
   <camelContext xmlns="http://camel.apache.org/schema/spring">
 
     <!-- service call configuration to use ribbon -->
-    <serviceCallConfiguration id="myConfig" masterUrl="https://fabric8-master.vagrant.f8:8443"
-                              username="admin" password="admin" namespace="default" loadBalancerRef="roundrobin"/>
+    <kubernetesConfiguration id="myConfig" masterUrl="https://fabric8-master.vagrant.f8:8443"
+                             username="admin" password="admin" namespace="default" loadBalancerRef="roundrobin"/>
 
     <route>
       <from uri="direct:start"/>

http://git-wip-us.apache.org/repos/asf/camel/blob/e7b0d79b/components/camel-ribbon/src/test/java/org/apache/camel/component/ribbon/processor/RibbonServiceCallKubernetesRouteTest.java
----------------------------------------------------------------------
diff --git a/components/camel-ribbon/src/test/java/org/apache/camel/component/ribbon/processor/RibbonServiceCallKubernetesRouteTest.java b/components/camel-ribbon/src/test/java/org/apache/camel/component/ribbon/processor/RibbonServiceCallKubernetesRouteTest.java
deleted file mode 100644
index 2dff71c..0000000
--- a/components/camel-ribbon/src/test/java/org/apache/camel/component/ribbon/processor/RibbonServiceCallKubernetesRouteTest.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/**
- * 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
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * 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.component.ribbon.processor;
-
-import org.apache.camel.RoutesBuilder;
-import org.apache.camel.builder.RouteBuilder;
-import org.apache.camel.model.remote.ServiceCallConfigurationDefinition;
-import org.apache.camel.test.junit4.CamelTestSupport;
-import org.junit.Ignore;
-import org.junit.Test;
-
-@Ignore("Manual test")
-public class RibbonServiceCallKubernetesRouteTest extends CamelTestSupport {
-
-    @Test
-    public void testServiceCall() throws Exception {
-        getMockEndpoint("mock:result").expectedMessageCount(1);
-
-        template.sendBody("direct:start", "Hello World");
-
-        assertMockEndpointsSatisfied();
-    }
-
-    @Override
-    protected RoutesBuilder createRouteBuilder() throws Exception {
-        return new RouteBuilder() {
-            @Override
-            public void configure() throws Exception {
-                ServiceCallConfigurationDefinition config = new ServiceCallConfigurationDefinition();
-                config.setMasterUrl("https://fabric8-master.vagrant.f8:8443");
-                config.setUsername("admin");
-                config.setPassword("admin");
-                config.setNamespace("default");
-
-                from("direct:start")
-                        .serviceCall("cdi-camel-jetty")
-                        .to("mock:result");
-            }
-        };
-    }
-}
-

http://git-wip-us.apache.org/repos/asf/camel/blob/e7b0d79b/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 39e75ff..3a2c764 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
@@ -19,7 +19,7 @@ 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.ServiceCallConfigurationDefinition;
+import org.apache.camel.model.remote.RibbonConfigurationDefinition;
 
 public class RibbonServiceCallRegistryRouteTest extends RibbonServiceCallRouteTest {
 
@@ -42,7 +42,7 @@ public class RibbonServiceCallRegistryRouteTest extends RibbonServiceCallRouteTe
                 servers.addServer("localhost", 9091);
 
                 // configure camel service call
-                ServiceCallConfigurationDefinition config = new ServiceCallConfigurationDefinition();
+                RibbonConfigurationDefinition config = new RibbonConfigurationDefinition();
                 config.setServerListStrategy(servers);
 
                 // add the config to the registry so service call can use it

http://git-wip-us.apache.org/repos/asf/camel/blob/e7b0d79b/components/camel-ribbon/src/test/java/org/apache/camel/component/ribbon/processor/RibbonServiceCallRouteTest.java
----------------------------------------------------------------------
diff --git a/components/camel-ribbon/src/test/java/org/apache/camel/component/ribbon/processor/RibbonServiceCallRouteTest.java b/components/camel-ribbon/src/test/java/org/apache/camel/component/ribbon/processor/RibbonServiceCallRouteTest.java
index 90134a3..a3abc29 100644
--- a/components/camel-ribbon/src/test/java/org/apache/camel/component/ribbon/processor/RibbonServiceCallRouteTest.java
+++ b/components/camel-ribbon/src/test/java/org/apache/camel/component/ribbon/processor/RibbonServiceCallRouteTest.java
@@ -48,7 +48,7 @@ public class RibbonServiceCallRouteTest extends CamelTestSupport {
                 servers.addServer("localhost", 9091);
 
                 from("direct:start")
-                        .serviceCall().name("myService").serviceCallConfiguration().serverListStrategy(servers).end()
+                        .serviceCall().name("myService").ribbonConfiguration().serverListStrategy(servers).end()
                         .to("mock:result");
 
                 from("jetty:http://localhost:9090")

http://git-wip-us.apache.org/repos/asf/camel/blob/e7b0d79b/components/camel-ribbon/src/test/java/org/apache/camel/component/ribbon/processor/RibbonServiceCallUpdateRouteTest.java
----------------------------------------------------------------------
diff --git a/components/camel-ribbon/src/test/java/org/apache/camel/component/ribbon/processor/RibbonServiceCallUpdateRouteTest.java b/components/camel-ribbon/src/test/java/org/apache/camel/component/ribbon/processor/RibbonServiceCallUpdateRouteTest.java
index 589e830..a37f5bc 100644
--- a/components/camel-ribbon/src/test/java/org/apache/camel/component/ribbon/processor/RibbonServiceCallUpdateRouteTest.java
+++ b/components/camel-ribbon/src/test/java/org/apache/camel/component/ribbon/processor/RibbonServiceCallUpdateRouteTest.java
@@ -73,7 +73,7 @@ public class RibbonServiceCallUpdateRouteTest extends CamelTestSupport {
                 from("direct:start")
                         .serviceCall().name("myService")
                             // lets update quick so we do not have to sleep so much in the tests
-                            .serviceCallConfiguration().serverListStrategy(servers).clientProperty("ServerListRefreshInterval", "250").end()
+                            .ribbonConfiguration().serverListStrategy(servers).clientProperty("ServerListRefreshInterval", "250").end()
                         .to("mock:result");
 
                 from("jetty:http://localhost:9090").routeId("9090")

http://git-wip-us.apache.org/repos/asf/camel/blob/e7b0d79b/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 a06a670..a448e66 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 -->
-    <serviceCallConfiguration id="myConfig" serverListStrategyRef="servers"/>
+    <ribbonConfiguration id="myConfig" serverListStrategyRef="servers"/>
 
     <route>
       <from uri="direct:start"/>

http://git-wip-us.apache.org/repos/asf/camel/blob/e7b0d79b/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 227cd2e..89d2502 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
@@ -57,7 +57,8 @@ import org.apache.camel.model.RouteContextRefDefinition;
 import org.apache.camel.model.RouteDefinition;
 import org.apache.camel.model.ThreadPoolProfileDefinition;
 import org.apache.camel.model.dataformat.DataFormatsDefinition;
-import org.apache.camel.model.remote.ServiceCallConfigurationDefinition;
+import org.apache.camel.model.remote.KubernetesConfigurationDefinition;
+import org.apache.camel.model.remote.RibbonConfigurationDefinition;
 import org.apache.camel.model.rest.RestConfigurationDefinition;
 import org.apache.camel.model.rest.RestDefinition;
 import org.apache.camel.spi.PackageScanFilter;
@@ -153,7 +154,8 @@ public class CamelContextFactoryBean extends AbstractCamelContextFactoryBean<Spr
     private CamelJMXAgentDefinition camelJMXAgent;
     @XmlElements({
             @XmlElement(name = "hystrixConfiguration", type = HystrixConfigurationDefinition.class, required = false),
-            @XmlElement(name = "serviceCallConfiguration", type = ServiceCallConfigurationDefinition.class, required = false),
+            @XmlElement(name = "kubernetesConfiguration", type = KubernetesConfigurationDefinition.class, required = false),
+            @XmlElement(name = "ribbonConfiguration", type = RibbonConfigurationDefinition.class, required = false),
             @XmlElement(name = "template", type = CamelProducerTemplateFactoryBean.class, required = false),
             @XmlElement(name = "consumerTemplate", type = CamelConsumerTemplateFactoryBean.class, required = false),
             @XmlElement(name = "proxy", type = CamelProxyFactoryDefinition.class, required = false),

http://git-wip-us.apache.org/repos/asf/camel/blob/e7b0d79b/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 ae119ff..855d6d3 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
@@ -40,7 +40,8 @@ import org.apache.camel.impl.DefaultCamelContextNameStrategy;
 import org.apache.camel.model.FromDefinition;
 import org.apache.camel.model.HystrixConfigurationDefinition;
 import org.apache.camel.model.SendDefinition;
-import org.apache.camel.model.remote.ServiceCallConfigurationDefinition;
+import org.apache.camel.model.remote.KubernetesConfigurationDefinition;
+import org.apache.camel.model.remote.RibbonConfigurationDefinition;
 import org.apache.camel.spi.CamelContextNameStrategy;
 import org.apache.camel.spi.NamespaceAware;
 import org.apache.camel.spring.CamelBeanPostProcessor;
@@ -140,12 +141,13 @@ public class CamelNamespaceHandler extends NamespaceHandlerSupport {
         addBeanDefinitionParser("threadPool", CamelThreadPoolFactoryBean.class, true, true);
         addBeanDefinitionParser("redeliveryPolicyProfile", CamelRedeliveryPolicyFactoryBean.class, true, true);
 
-        // jmx agent, stream caching, hystrix, service call configuration and property placeholder cannot be used outside of the camel context
+        // jmx agent, stream caching, hystrix, service call configurations and property placeholder cannot be used outside of the camel context
         addBeanDefinitionParser("jmxAgent", CamelJMXAgentDefinition.class, false, false);
         addBeanDefinitionParser("streamCaching", CamelStreamCachingStrategyDefinition.class, false, false);
         addBeanDefinitionParser("propertyPlaceholder", CamelPropertyPlaceholderDefinition.class, false, false);
         addBeanDefinitionParser("hystrixConfiguration", HystrixConfigurationDefinition.class, false, false);
-        addBeanDefinitionParser("serviceCallConfiguration", ServiceCallConfigurationDefinition.class, false, false);
+        addBeanDefinitionParser("kubernetesConfiguration", KubernetesConfigurationDefinition.class, false, false);
+        addBeanDefinitionParser("ribbonConfiguration", RibbonConfigurationDefinition.class, false, false);
 
         // errorhandler could be the sub element of camelContext or defined outside camelContext
         BeanDefinitionParser errorHandlerParser = new ErrorHandlerDefinitionParser();