Repository: camel
Updated Branches:
  refs/heads/master 52d41c5e5 -> c0af48134


CAMEL-8394 Consolidated configurations and moved client state to component


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

Branch: refs/heads/master
Commit: 29f9fe56a371eb06a9a2c747254a0f7265a6745b
Parents: 52d41c5
Author: Andrew Block <andy.bl...@gmail.com>
Authored: Wed Feb 25 09:18:12 2015 -0600
Committer: Claus Ibsen <davscl...@apache.org>
Committed: Wed Feb 25 16:24:36 2015 +0100

----------------------------------------------------------------------
 components/camel-docker/README.md               |  35 +----
 .../component/docker/DockerClientFactory.java   |  88 ++++++------
 .../component/docker/DockerClientProfile.java   |  32 ++---
 .../camel/component/docker/DockerComponent.java |  13 ++
 .../component/docker/DockerConfiguration.java   | 140 ++++++++++++++++---
 .../docker/consumer/DockerEventsConsumer.java   |   6 +-
 .../docker/producer/DockerProducer.java         |   5 +-
 .../docker/DockerClientProfileRegistryTest.java |  65 ---------
 .../docker/headers/BaseDockerHeaderTest.java    |  10 +-
 9 files changed, 207 insertions(+), 187 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/camel/blob/29f9fe56/components/camel-docker/README.md
----------------------------------------------------------------------
diff --git a/components/camel-docker/README.md 
b/components/camel-docker/README.md
index 637b8aa..e827061 100644
--- a/components/camel-docker/README.md
+++ b/components/camel-docker/README.md
@@ -19,51 +19,26 @@ All URI option can be passed as Header properties. Values 
found in a message hea
 | ------------- | ---------------- |
 |containerId|CamelDockerContainerId |
 
-## Client Profile
+## Configuration
 
-A client profile encapsulates the parameters necessary to communicate with 
docker. It is constructed into a *DockerClientProfile* object from the 
following uri or or header values as described below
+Options on the Docker Endpoint mapped to a *DockerConfiguration* POJO. This 
object contains the values integral to the communication with the Docker sever 
as first order attributes along with a Map of additional parameters based on 
the options for each type of interaction.
 
-The following options are required
+The following are the the primary options for communicating with the Docker 
server
 
 | Option | Header | Description | Default Value |
 |-----------|-----------|-----------------|-------------------|
 | host     | CamelDockerHost | Docker host | localhost |
 | port      | CamelDockerPort | Docker port | 2375 |
-
-The following are additional optional parameters
-
-| Option | Header | Description | Default Value |
-|-----------|-----------|-----------------|-------------------|
 | username | CamelDockerUserName | User name to authenticate with | |
 | password | CamelDockerPassword | Password to authenticate with | |
 | secure | CamelDockerSecure | Use HTTPS communication | false |
-|certPath | CamelDockerCertPath | Location containing the SSL certificate 
chain | | 
+|certPath | CamelDockerCertPath | Location containing the SSL certificate 
chain | |
 | email | CamelDockerEmail | Email address associated with the user | |
 | requestTimeout | CamelDockerRequestTimeout | Request timeout for response 
(in seconds) | 30 |
-|serverAddress | CamelDockerServerAddress | Address of the Docker registry 
server (If not specified, *host* will be used) | | 
+|serverAddress | CamelDockerServerAddress | Address of the Docker registry 
server (If not specified, *host* will be used) | https://index.docker.io/v1/ |
 |maxTotalConnections | CamelDockerMaxTotalConnections | Maximum number of 
total connections | 100 |
 |maxPerRouteConnections | CamelDockerMaxPerRouteConnections | Maximum number 
of connections per route | 100 |
 
-### Client Profile Bean
-
-Instead of leveraging uri or header parameters, a DockerClientProfile bean may 
be referenced using the *clientProfile* uri option which has been defined in 
the Camel Registry. This gives the user the option of defining a static 
configuration for docker connectivity without requiring the use of defining 
each parameter on the endpoint.
-
-The following illustrates how a DockerClientProfile can be defined in Spring 
DSL
-
-    <bean id="devClientProfile" 
class="org.apache.camel.component.docker.DockerClientProfile">
-        <property name="host" value="192.168.59.103" />
-        <property name="port" value="2376" />
-        <property name="secure" value="true" />
-        <property name="certPath" 
value="/Users/cameluser/.boot2docker/certs/boot2docker-vm"
-    </bean>
-
-
-Reference the bean in your Camel route
-
-```
-<from uri="direct:in" />
-<to uri="docker://info?clientProfile=#devClientProfile" />
-```
 
 ## Consumer Operations
 

http://git-wip-us.apache.org/repos/asf/camel/blob/29f9fe56/components/camel-docker/src/main/java/org/apache/camel/component/docker/DockerClientFactory.java
----------------------------------------------------------------------
diff --git 
a/components/camel-docker/src/main/java/org/apache/camel/component/docker/DockerClientFactory.java
 
b/components/camel-docker/src/main/java/org/apache/camel/component/docker/DockerClientFactory.java
index dfd7531..b95fb5e 100644
--- 
a/components/camel-docker/src/main/java/org/apache/camel/component/docker/DockerClientFactory.java
+++ 
b/components/camel-docker/src/main/java/org/apache/camel/component/docker/DockerClientFactory.java
@@ -34,58 +34,48 @@ import org.apache.camel.util.ObjectHelper;
 public final class DockerClientFactory {
 
     private DockerClientFactory() {
-        //Helper class
+        // Helper class
     }
 
     /**
      * Produces a {@link DockerClient} to communicate with Docker
      */
-    public static DockerClient getDockerClient(DockerConfiguration 
dockerConfiguration, Message message) throws DockerException {
+    public static DockerClient getDockerClient(DockerComponent 
dockerComponent, DockerConfiguration dockerConfiguration, Message message) 
throws DockerException {
 
         ObjectHelper.notNull(dockerConfiguration, "dockerConfiguration");
 
-        DockerClientProfile endpointClientProfile = 
dockerConfiguration.getClientProfile();
-
-        DockerClientProfile clientProfile;
-        DockerClient client;
-
-        // Check if profile is specified in configuration
-        if (endpointClientProfile != null) {
-            clientProfile = endpointClientProfile;
-        } else {
-
-            clientProfile = new DockerClientProfile();
-
-            Integer port = 
DockerHelper.getProperty(DockerConstants.DOCKER_PORT, dockerConfiguration, 
message, Integer.class, clientProfile.getPort());
-            String host = 
DockerHelper.getProperty(DockerConstants.DOCKER_HOST, dockerConfiguration, 
message, String.class, clientProfile.getHost());
-
-            Integer maxTotalConnections = 
DockerHelper.getProperty(DockerConstants.DOCKER_MAX_TOTAL_CONNECTIONS, 
dockerConfiguration,
-                    message, Integer.class, 
clientProfile.getMaxTotalConnections());
-            Integer maxPerRouteConnections = 
DockerHelper.getProperty(DockerConstants.DOCKER_MAX_PER_ROUTE_CONNECTIONS, 
dockerConfiguration,
-                    message, Integer.class, 
clientProfile.getMaxPerRouteConnections());
-
-            String username = 
DockerHelper.getProperty(DockerConstants.DOCKER_USERNAME, dockerConfiguration, 
message, String.class, clientProfile.getUsername());
-            String password = 
DockerHelper.getProperty(DockerConstants.DOCKER_PASSWORD, dockerConfiguration, 
message, String.class, clientProfile.getPassword());
-            String email = 
DockerHelper.getProperty(DockerConstants.DOCKER_EMAIL, dockerConfiguration, 
message, String.class, clientProfile.getEmail());
-            Integer requestTimeout = 
DockerHelper.getProperty(DockerConstants.DOCKER_API_REQUEST_TIMEOUT, 
dockerConfiguration, message, Integer.class, clientProfile.getRequestTimeout());
-            String serverAddress = 
DockerHelper.getProperty(DockerConstants.DOCKER_SERVER_ADDRESS, 
dockerConfiguration, message, String.class, clientProfile.getServerAddress());
-            String certPath = 
DockerHelper.getProperty(DockerConstants.DOCKER_CERT_PATH, dockerConfiguration, 
message, String.class, clientProfile.getCertPath());
-            Boolean secure = 
DockerHelper.getProperty(DockerConstants.DOCKER_SECURE, dockerConfiguration, 
message, Boolean.class, clientProfile.isSecure());
-
-            clientProfile.setHost(host);
-            clientProfile.setPort(port);
-            clientProfile.setEmail(email);
-            clientProfile.setUsername(username);
-            clientProfile.setPassword(password);
-            clientProfile.setRequestTimeout(requestTimeout);
-            clientProfile.setServerAddress(serverAddress);
-            clientProfile.setCertPath(certPath);
-            clientProfile.setMaxTotalConnections(maxTotalConnections);
-            clientProfile.setMaxPerRouteConnections(maxPerRouteConnections);
-            clientProfile.setSecure(secure);
-        }
-
-        client = dockerConfiguration.getClient(clientProfile);
+        DockerClientProfile clientProfile = new DockerClientProfile();
+
+        Integer port = DockerHelper.getProperty(DockerConstants.DOCKER_PORT, 
dockerConfiguration, message, Integer.class, dockerConfiguration.getPort());
+        String host = DockerHelper.getProperty(DockerConstants.DOCKER_HOST, 
dockerConfiguration, message, String.class, dockerConfiguration.getHost());
+
+        Integer maxTotalConnections = 
DockerHelper.getProperty(DockerConstants.DOCKER_MAX_TOTAL_CONNECTIONS, 
dockerConfiguration, message, Integer.class,
+                                                               
dockerConfiguration.getMaxTotalConnections());
+        Integer maxPerRouteConnections = 
DockerHelper.getProperty(DockerConstants.DOCKER_MAX_PER_ROUTE_CONNECTIONS, 
dockerConfiguration, message, Integer.class,
+                                                                  
dockerConfiguration.getMaxPerRouteConnections());
+
+        String username = 
DockerHelper.getProperty(DockerConstants.DOCKER_USERNAME, dockerConfiguration, 
message, String.class, dockerConfiguration.getUsername());
+        String password = 
DockerHelper.getProperty(DockerConstants.DOCKER_PASSWORD, dockerConfiguration, 
message, String.class, dockerConfiguration.getPassword());
+        String email = DockerHelper.getProperty(DockerConstants.DOCKER_EMAIL, 
dockerConfiguration, message, String.class, dockerConfiguration.getEmail());
+        Integer requestTimeout = 
DockerHelper.getProperty(DockerConstants.DOCKER_API_REQUEST_TIMEOUT, 
dockerConfiguration, message, Integer.class,
+                                                          
dockerConfiguration.getRequestTimeout());
+        String serverAddress = 
DockerHelper.getProperty(DockerConstants.DOCKER_SERVER_ADDRESS, 
dockerConfiguration, message, String.class, 
dockerConfiguration.getServerAddress());
+        String certPath = 
DockerHelper.getProperty(DockerConstants.DOCKER_CERT_PATH, dockerConfiguration, 
message, String.class, dockerConfiguration.getCertPath());
+        Boolean secure = 
DockerHelper.getProperty(DockerConstants.DOCKER_SECURE, dockerConfiguration, 
message, Boolean.class, dockerConfiguration.isSecure());
+
+        clientProfile.setHost(host);
+        clientProfile.setPort(port);
+        clientProfile.setEmail(email);
+        clientProfile.setUsername(username);
+        clientProfile.setPassword(password);
+        clientProfile.setRequestTimeout(requestTimeout);
+        clientProfile.setServerAddress(serverAddress);
+        clientProfile.setCertPath(certPath);
+        clientProfile.setMaxTotalConnections(maxTotalConnections);
+        clientProfile.setMaxPerRouteConnections(maxPerRouteConnections);
+        clientProfile.setSecure(secure);
+
+        DockerClient client = dockerComponent.getClient(clientProfile);
 
         if (client != null) {
             return client;
@@ -101,10 +91,10 @@ public final class DockerClientFactory {
             sslConfig = new NoImplSslConfig();
         }
 
-        DockerClientConfig.DockerClientConfigBuilder configBuilder = new 
DockerClientConfig.DockerClientConfigBuilder()
-                
.withUsername(clientProfile.getUsername()).withPassword(clientProfile.getPassword()).withEmail(clientProfile.getEmail()).withReadTimeout(clientProfile.getRequestTimeout())
-                
.withUri(clientProfile.toUrl()).withMaxPerRouteConnections(clientProfile.getMaxPerRouteConnections()).withMaxTotalConnections(clientProfile.getMaxTotalConnections())
-                
.withSSLConfig(sslConfig).withServerAddress(clientProfile.getServerAddress());
+        DockerClientConfig.DockerClientConfigBuilder configBuilder = new 
DockerClientConfig.DockerClientConfigBuilder().withUsername(clientProfile.getUsername())
+            
.withPassword(clientProfile.getPassword()).withEmail(clientProfile.getEmail()).withReadTimeout(clientProfile.getRequestTimeout()).withUri(clientProfile.toUrl())
+            
.withMaxPerRouteConnections(clientProfile.getMaxPerRouteConnections()).withMaxTotalConnections(clientProfile.getMaxTotalConnections()).withSSLConfig(sslConfig)
+            .withServerAddress(clientProfile.getServerAddress());
 
         if (clientProfile.getCertPath() != null) {
             configBuilder.withDockerCertPath(clientProfile.getCertPath());
@@ -113,7 +103,7 @@ public final class DockerClientFactory {
         DockerClientConfig config = configBuilder.build();
         DockerCmdExecFactory dockerClientFactory = new 
DockerCmdExecFactoryImpl();
         client = 
DockerClientBuilder.getInstance(config).withDockerCmdExecFactory(dockerClientFactory).build();
-        dockerConfiguration.setClient(clientProfile, client);
+        dockerComponent.setClient(clientProfile, client);
 
         return client;
     }

http://git-wip-us.apache.org/repos/asf/camel/blob/29f9fe56/components/camel-docker/src/main/java/org/apache/camel/component/docker/DockerClientProfile.java
----------------------------------------------------------------------
diff --git 
a/components/camel-docker/src/main/java/org/apache/camel/component/docker/DockerClientProfile.java
 
b/components/camel-docker/src/main/java/org/apache/camel/component/docker/DockerClientProfile.java
index f1a147c..6aff114 100644
--- 
a/components/camel-docker/src/main/java/org/apache/camel/component/docker/DockerClientProfile.java
+++ 
b/components/camel-docker/src/main/java/org/apache/camel/component/docker/DockerClientProfile.java
@@ -20,38 +20,34 @@ import java.net.MalformedURLException;
 import java.net.URL;
 
 import org.apache.camel.component.docker.exception.DockerException;
-import org.apache.camel.spi.UriParam;
-import org.apache.camel.spi.UriParams;
 import org.apache.camel.util.ObjectHelper;
 
 /**
  * The elements representing a client initiating a connection to Docker
  */
-@UriParams
 public class DockerClientProfile {
 
-    @UriParam(defaultValue = "localhost")
-    private String host = "localhost";
-    @UriParam(defaultValue = "2375")
-    private Integer port = 2375;
-    @UriParam
+    private String host;
+
+    private Integer port;
+
     private String username;
-    @UriParam
+
     private String password;
-    @UriParam
+
     private String email;
-    @UriParam
+
     private String serverAddress;
-    @UriParam
+
     private Integer requestTimeout;
-    @UriParam
+
     private Boolean secure;
-    @UriParam
+
     private String certPath;
-    @UriParam(defaultValue = "100")
-    private Integer maxTotalConnections = 100;
-    @UriParam(defaultValue = "100")
-    private Integer maxPerRouteConnections = 100;
+
+    private Integer maxTotalConnections;
+
+    private Integer maxPerRouteConnections;
 
     public String getHost() {
         return host;

http://git-wip-us.apache.org/repos/asf/camel/blob/29f9fe56/components/camel-docker/src/main/java/org/apache/camel/component/docker/DockerComponent.java
----------------------------------------------------------------------
diff --git 
a/components/camel-docker/src/main/java/org/apache/camel/component/docker/DockerComponent.java
 
b/components/camel-docker/src/main/java/org/apache/camel/component/docker/DockerComponent.java
index b89b5d8..650ed1d 100644
--- 
a/components/camel-docker/src/main/java/org/apache/camel/component/docker/DockerComponent.java
+++ 
b/components/camel-docker/src/main/java/org/apache/camel/component/docker/DockerComponent.java
@@ -16,6 +16,9 @@
  */
 package org.apache.camel.component.docker;
 
+import com.github.dockerjava.api.DockerClient;
+
+import java.util.HashMap;
 import java.util.Map;
 
 import org.apache.camel.Endpoint;
@@ -28,6 +31,7 @@ import org.apache.camel.impl.DefaultComponent;
 public class DockerComponent extends DefaultComponent {
 
     private DockerConfiguration configuration;
+    private Map<DockerClientProfile,DockerClient> clients = new 
HashMap<DockerClientProfile,DockerClient>();
 
     public DockerComponent() {
 
@@ -72,4 +76,13 @@ public class DockerComponent extends DefaultComponent {
         return configuration;
     }
 
+    public DockerClient getClient(DockerClientProfile clientProfile) throws 
DockerException {
+        return clients.get(clientProfile);
+    }
+
+    public void setClient(DockerClientProfile clientProfile, DockerClient 
client) {
+        clients.put(clientProfile, client);
+    }
+
+
 }

http://git-wip-us.apache.org/repos/asf/camel/blob/29f9fe56/components/camel-docker/src/main/java/org/apache/camel/component/docker/DockerConfiguration.java
----------------------------------------------------------------------
diff --git 
a/components/camel-docker/src/main/java/org/apache/camel/component/docker/DockerConfiguration.java
 
b/components/camel-docker/src/main/java/org/apache/camel/component/docker/DockerConfiguration.java
index bd60604..f8d507a 100644
--- 
a/components/camel-docker/src/main/java/org/apache/camel/component/docker/DockerConfiguration.java
+++ 
b/components/camel-docker/src/main/java/org/apache/camel/component/docker/DockerConfiguration.java
@@ -19,9 +19,7 @@ package org.apache.camel.component.docker;
 import java.util.HashMap;
 import java.util.Map;
 
-import com.github.dockerjava.api.DockerClient;
 import org.apache.camel.RuntimeCamelException;
-import org.apache.camel.component.docker.exception.DockerException;
 import org.apache.camel.spi.UriParam;
 import org.apache.camel.spi.UriParams;
 import org.apache.camel.spi.UriPath;
@@ -32,42 +30,144 @@ public class DockerConfiguration implements Cloneable {
     @UriPath
     private DockerOperation operation;
 
+    @UriParam(defaultValue = "localhost")
+    private String host = "localhost";
+
+    @UriParam(defaultValue = "2375")
+    private Integer port = 2375;
+
+    @UriParam
+    private String username;
+
+    @UriParam
+    private String password;
+
+    @UriParam
+    private String email;
+
+    @UriParam(defaultValue = "https://index.docker.io/v1/";)
+    private String serverAddress = "https://index.docker.io/v1/";;
+
     @UriParam
-    private DockerClientProfile clientProfile;
+    private Integer requestTimeout;
+
+    @UriParam
+    private Boolean secure;
+
+    @UriParam
+    private String certPath;
+
+    @UriParam(defaultValue = "100")
+    private Integer maxTotalConnections = 100;
+
+    @UriParam(defaultValue = "100")
+    private Integer maxPerRouteConnections = 100;
 
     private Map<String, Object> parameters = new HashMap<String, Object>();
-    private Map<DockerClientProfile, DockerClient> clients = new 
HashMap<DockerClientProfile, DockerClient>();
 
-    public Map<String, Object> getParameters() {
-        return parameters;
+    public String getHost() {
+        return host;
     }
 
-    public void setParameters(Map<String, Object> parameters) {
-        this.parameters = parameters;
+    public void setHost(String host) {
+        this.host = host;
     }
 
-    public DockerOperation getOperation() {
-        return operation;
+    public Integer getPort() {
+        return port;
     }
 
-    public void setOperation(DockerOperation operation) {
-        this.operation = operation;
+    public void setPort(Integer port) {
+        this.port = port;
+    }
+
+    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 getEmail() {
+        return email;
+    }
+
+    public void setEmail(String email) {
+        this.email = email;
+    }
+
+    public String getServerAddress() {
+        return serverAddress;
+    }
+
+    public void setServerAddress(String serverAddress) {
+        this.serverAddress = serverAddress;
+    }
+
+    public Integer getRequestTimeout() {
+        return requestTimeout;
+    }
+
+    public void setRequestTimeout(Integer requestTimeout) {
+        this.requestTimeout = requestTimeout;
+    }
+
+    public Boolean isSecure() {
+        return secure;
+    }
+
+    public void setSecure(Boolean secure) {
+        this.secure = secure;
+    }
+
+    public String getCertPath() {
+        return certPath;
+    }
+
+    public void setCertPath(String certPath) {
+        this.certPath = certPath;
     }
 
-    public DockerClient getClient(DockerClientProfile clientProfile) throws 
DockerException {
-        return clients.get(clientProfile);
+    public Integer getMaxTotalConnections() {
+        return maxTotalConnections;
     }
 
-    public void setClient(DockerClientProfile clientProfile, DockerClient 
client) {
-        clients.put(clientProfile, client);
+    public void setMaxTotalConnections(Integer maxTotalConnections) {
+        this.maxTotalConnections = maxTotalConnections;
     }
 
-    public void setClientProfile(DockerClientProfile clientProfile) {
-        this.clientProfile = clientProfile;
+    public Integer getMaxPerRouteConnections() {
+        return maxPerRouteConnections;
     }
 
-    public DockerClientProfile getClientProfile() {
-        return clientProfile;
+    public void setMaxPerRouteConnections(Integer maxPerRouteConnections) {
+        this.maxPerRouteConnections = maxPerRouteConnections;
+    }
+
+
+    public Map<String, Object> getParameters() {
+        return parameters;
+    }
+
+    public void setParameters(Map<String, Object> parameters) {
+        this.parameters = parameters;
+    }
+
+    public DockerOperation getOperation() {
+        return operation;
+    }
+
+    public void setOperation(DockerOperation operation) {
+        this.operation = operation;
     }
 
     public DockerConfiguration copy() {

http://git-wip-us.apache.org/repos/asf/camel/blob/29f9fe56/components/camel-docker/src/main/java/org/apache/camel/component/docker/consumer/DockerEventsConsumer.java
----------------------------------------------------------------------
diff --git 
a/components/camel-docker/src/main/java/org/apache/camel/component/docker/consumer/DockerEventsConsumer.java
 
b/components/camel-docker/src/main/java/org/apache/camel/component/docker/consumer/DockerEventsConsumer.java
index e9c4985..7895c44 100644
--- 
a/components/camel-docker/src/main/java/org/apache/camel/component/docker/consumer/DockerEventsConsumer.java
+++ 
b/components/camel-docker/src/main/java/org/apache/camel/component/docker/consumer/DockerEventsConsumer.java
@@ -27,6 +27,7 @@ import org.apache.camel.Exchange;
 import org.apache.camel.Message;
 import org.apache.camel.Processor;
 import org.apache.camel.component.docker.DockerClientFactory;
+import org.apache.camel.component.docker.DockerComponent;
 import org.apache.camel.component.docker.DockerConstants;
 import org.apache.camel.component.docker.DockerEndpoint;
 import org.apache.camel.component.docker.DockerHelper;
@@ -43,6 +44,8 @@ public class DockerEventsConsumer extends DefaultConsumer 
implements EventCallba
 
     private DockerEndpoint endpoint;
 
+    private DockerComponent component;
+
     private EventsCmd eventsCmd;
 
     private ExecutorService eventsExecutorService;
@@ -50,6 +53,7 @@ public class DockerEventsConsumer extends DefaultConsumer 
implements EventCallba
     public DockerEventsConsumer(DockerEndpoint endpoint, Processor processor) 
throws Exception {
         super(endpoint, processor);
         this.endpoint = endpoint;
+        this.component = (DockerComponent) endpoint.getComponent();
 
     }
 
@@ -80,7 +84,7 @@ public class DockerEventsConsumer extends DefaultConsumer 
implements EventCallba
     @Override
     protected void doStart() throws Exception {
 
-        eventsCmd = 
DockerClientFactory.getDockerClient(endpoint.getConfiguration(), 
null).eventsCmd(this);
+        eventsCmd = DockerClientFactory.getDockerClient(component, 
endpoint.getConfiguration(), null).eventsCmd(this);
 
         eventsCmd.withSince(String.valueOf(processInitialEvent()));
         eventsExecutorService = eventsCmd.exec();

http://git-wip-us.apache.org/repos/asf/camel/blob/29f9fe56/components/camel-docker/src/main/java/org/apache/camel/component/docker/producer/DockerProducer.java
----------------------------------------------------------------------
diff --git 
a/components/camel-docker/src/main/java/org/apache/camel/component/docker/producer/DockerProducer.java
 
b/components/camel-docker/src/main/java/org/apache/camel/component/docker/producer/DockerProducer.java
index 8bc3b3d..9512145 100644
--- 
a/components/camel-docker/src/main/java/org/apache/camel/component/docker/producer/DockerProducer.java
+++ 
b/components/camel-docker/src/main/java/org/apache/camel/component/docker/producer/DockerProducer.java
@@ -70,6 +70,7 @@ import com.github.dockerjava.api.model.Volumes;
 import org.apache.camel.Exchange;
 import org.apache.camel.Message;
 import org.apache.camel.component.docker.DockerClientFactory;
+import org.apache.camel.component.docker.DockerComponent;
 import org.apache.camel.component.docker.DockerConfiguration;
 import org.apache.camel.component.docker.DockerConstants;
 import org.apache.camel.component.docker.DockerEndpoint;
@@ -87,10 +88,12 @@ import org.slf4j.LoggerFactory;
 public class DockerProducer extends DefaultProducer {
     private static final Logger LOGGER = 
LoggerFactory.getLogger(DockerProducer.class);
     private DockerConfiguration configuration;
+    private DockerComponent component;
 
     public DockerProducer(DockerEndpoint endpoint) {
         super(endpoint);
         this.configuration = endpoint.getConfiguration();
+        this.component = (DockerComponent) endpoint.getComponent();
     }
 
     public void process(Exchange exchange) throws Exception {
@@ -98,7 +101,7 @@ public class DockerProducer extends DefaultProducer {
         DockerCmd<?> dockerCmd = null;
 
         Message message = exchange.getIn();
-        DockerClient client = 
DockerClientFactory.getDockerClient(configuration, message);
+        DockerClient client = DockerClientFactory.getDockerClient(component, 
configuration, message);
 
         DockerOperation operation = configuration.getOperation();
 

http://git-wip-us.apache.org/repos/asf/camel/blob/29f9fe56/components/camel-docker/src/test/java/org/apache/camel/component/docker/DockerClientProfileRegistryTest.java
----------------------------------------------------------------------
diff --git 
a/components/camel-docker/src/test/java/org/apache/camel/component/docker/DockerClientProfileRegistryTest.java
 
b/components/camel-docker/src/test/java/org/apache/camel/component/docker/DockerClientProfileRegistryTest.java
deleted file mode 100644
index 158de7c..0000000
--- 
a/components/camel-docker/src/test/java/org/apache/camel/component/docker/DockerClientProfileRegistryTest.java
+++ /dev/null
@@ -1,65 +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.docker;
-
-import org.apache.camel.CamelContext;
-import org.apache.camel.impl.JndiRegistry;
-import org.apache.camel.impl.PropertyPlaceholderDelegateRegistry;
-import org.apache.camel.test.junit4.CamelTestSupport;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.powermock.modules.junit4.PowerMockRunner;
-
-/**
- * Validates a {@link DockerClientProfile} is bound from the Camel registry
- */
-@RunWith(PowerMockRunner.class)
-public class DockerClientProfileRegistryTest extends CamelTestSupport {
-
-
-    @Override
-    protected CamelContext createCamelContext() throws Exception {
-        CamelContext camelContext = super.createCamelContext();
-
-        DockerClientProfile profile = new DockerClientProfile();
-        profile.setHost("192.168.59.103");
-        profile.setPort(2376);
-        profile.setSecure(true);
-        
profile.setCertPath("/Users/cameluser/.boot2docker/certs/boot2docker-vm");
-
-        PropertyPlaceholderDelegateRegistry registry = 
(PropertyPlaceholderDelegateRegistry) camelContext.getRegistry();
-        JndiRegistry jndiRegistry = (JndiRegistry) registry.getRegistry();
-        jndiRegistry.bind("dockerProfile", profile);
-
-
-        return camelContext;
-    }
-
-    @Test
-    public void clientProfileTest() {
-        DockerEndpoint endpoint = resolveMandatoryEndpoint(context(), 
"docker://info?clientProfile=#dockerProfile", DockerEndpoint.class);
-        assertNotNull(endpoint.getConfiguration().getClientProfile());
-        DockerClientProfile clientProfile = 
endpoint.getConfiguration().getClientProfile();
-        assertEquals("192.168.59.103", clientProfile.getHost());
-        assertEquals((Integer) 2376, clientProfile.getPort());
-        assertTrue(clientProfile.isSecure());
-        assertEquals("/Users/cameluser/.boot2docker/certs/boot2docker-vm", 
clientProfile.getCertPath());
-
-    }
-
-
-}

http://git-wip-us.apache.org/repos/asf/camel/blob/29f9fe56/components/camel-docker/src/test/java/org/apache/camel/component/docker/headers/BaseDockerHeaderTest.java
----------------------------------------------------------------------
diff --git 
a/components/camel-docker/src/test/java/org/apache/camel/component/docker/headers/BaseDockerHeaderTest.java
 
b/components/camel-docker/src/test/java/org/apache/camel/component/docker/headers/BaseDockerHeaderTest.java
index c490317..56f0bd4 100644
--- 
a/components/camel-docker/src/test/java/org/apache/camel/component/docker/headers/BaseDockerHeaderTest.java
+++ 
b/components/camel-docker/src/test/java/org/apache/camel/component/docker/headers/BaseDockerHeaderTest.java
@@ -68,10 +68,8 @@ public abstract class BaseDockerHeaderTest<T> extends 
CamelTestSupport {
         dockerConfiguration = new DockerConfiguration();
         dockerConfiguration.setParameters(getDefaultParameters());
 
-
-        dockerConfiguration.setClient(getClientProfile(), dockerClient);
-
         DockerComponent dockerComponent = new 
DockerComponent(dockerConfiguration);
+        dockerComponent.setClient(getClientProfile(), dockerClient);
         camelContext.addComponent("docker", dockerComponent);
 
 
@@ -99,6 +97,10 @@ public abstract class BaseDockerHeaderTest<T> extends 
CamelTestSupport {
         return 100;
     }
 
+    protected String getServerAddress() {
+        return "https://index.docker.io/v1/";;
+    }
+
     public T getMockObject() {
         return mockObject;
     }
@@ -108,6 +110,7 @@ public abstract class BaseDockerHeaderTest<T> extends 
CamelTestSupport {
         parameters.put(DockerConstants.DOCKER_HOST, getHost());
         parameters.put(DockerConstants.DOCKER_PORT, getPort());
         parameters.put(DockerConstants.DOCKER_EMAIL, getEmail());
+        parameters.put(DockerConstants.DOCKER_SERVER_ADDRESS, 
getServerAddress());
         parameters.put(DockerConstants.DOCKER_MAX_PER_ROUTE_CONNECTIONS, 
getMaxPerRouteConnections());
         parameters.put(DockerConstants.DOCKER_MAX_TOTAL_CONNECTIONS, 
getMaxTotalConnections());
 
@@ -119,6 +122,7 @@ public abstract class BaseDockerHeaderTest<T> extends 
CamelTestSupport {
         clientProfile.setHost(getHost());
         clientProfile.setPort(getPort());
         clientProfile.setEmail(getEmail());
+        clientProfile.setServerAddress(getServerAddress());
         clientProfile.setMaxPerRouteConnections(getMaxPerRouteConnections());
         clientProfile.setMaxTotalConnections(getMaxTotalConnections());
 

Reply via email to