You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by ac...@apache.org on 2021/01/05 09:29:18 UTC
[camel] 01/03: camel-docker: cleaned up deprecations related to
outdated docker-java (#4826)
This is an automated email from the ASF dual-hosted git repository.
acosentino pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/camel.git
commit 79080343587ddb9ec6771c0feb3a05e9c3bb25c3
Author: Otavio Rodolfo Piske <or...@users.noreply.github.com>
AuthorDate: Tue Jan 5 09:42:16 2021 +0100
camel-docker: cleaned up deprecations related to outdated docker-java (#4826)
api calls
- adjusted some classes for Junit 5 compatibility
- removed several deprecated callback classes
- adjusted test cases to match the updated classes
- simplified execution of a few IT cases
---
.../docker/consumer/DockerEventsConsumer.java | 4 +-
.../docker/consumer/DockerStatsConsumer.java | 2 +-
.../docker/producer/AsyncDockerProducer.java | 230 +++++++++++----------
.../headers/AttachContainerCmdHeaderTest.java | 5 +-
.../docker/headers/BuildImageCmdHeaderTest.java | 10 +-
.../docker/headers/ExecStartCmdHeaderTest.java | 5 +-
.../docker/headers/LogContainerCmdHeaderTest.java | 5 +-
.../docker/headers/PullImageCmdHeaderTest.java | 2 +-
.../docker/headers/PushImageCmdHeaderTest.java | 5 +-
.../docker/headers/WaitContainerCmdHeaderTest.java | 4 +-
...tIT.java => DockerNettyCmdExecFactoryTest.java} | 7 +-
...ProducerTestIT.java => DockerProducerTest.java} | 9 +-
...merTestIT.java => DockerStatsConsumerTest.java} | 13 +-
13 files changed, 155 insertions(+), 146 deletions(-)
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 09194a9..005c085 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
@@ -16,9 +16,9 @@
*/
package org.apache.camel.component.docker.consumer;
+import com.github.dockerjava.api.async.ResultCallback;
import com.github.dockerjava.api.command.EventsCmd;
import com.github.dockerjava.api.model.Event;
-import com.github.dockerjava.core.command.EventsResultCallback;
import org.apache.camel.AsyncCallback;
import org.apache.camel.Exchange;
import org.apache.camel.Message;
@@ -82,7 +82,7 @@ public class DockerEventsConsumer extends DefaultConsumer {
super.doStop();
}
- protected class EventsCallback extends EventsResultCallback {
+ protected class EventsCallback extends ResultCallback.Adapter<Event> {
@Override
public void onNext(Event event) {
diff --git a/components/camel-docker/src/main/java/org/apache/camel/component/docker/consumer/DockerStatsConsumer.java b/components/camel-docker/src/main/java/org/apache/camel/component/docker/consumer/DockerStatsConsumer.java
index b4e29c0..268a823 100644
--- a/components/camel-docker/src/main/java/org/apache/camel/component/docker/consumer/DockerStatsConsumer.java
+++ b/components/camel-docker/src/main/java/org/apache/camel/component/docker/consumer/DockerStatsConsumer.java
@@ -16,9 +16,9 @@
*/
package org.apache.camel.component.docker.consumer;
+import com.github.dockerjava.api.async.ResultCallbackTemplate;
import com.github.dockerjava.api.command.StatsCmd;
import com.github.dockerjava.api.model.Statistics;
-import com.github.dockerjava.core.async.ResultCallbackTemplate;
import org.apache.camel.AsyncCallback;
import org.apache.camel.Exchange;
import org.apache.camel.Message;
diff --git a/components/camel-docker/src/main/java/org/apache/camel/component/docker/producer/AsyncDockerProducer.java b/components/camel-docker/src/main/java/org/apache/camel/component/docker/producer/AsyncDockerProducer.java
index d335a7a..16f0e29 100644
--- a/components/camel-docker/src/main/java/org/apache/camel/component/docker/producer/AsyncDockerProducer.java
+++ b/components/camel-docker/src/main/java/org/apache/camel/component/docker/producer/AsyncDockerProducer.java
@@ -17,30 +17,29 @@
package org.apache.camel.component.docker.producer;
import java.io.File;
-import java.io.IOException;
import java.io.InputStream;
+import java.util.Collections;
import com.github.dockerjava.api.DockerClient;
+import com.github.dockerjava.api.async.ResultCallback.Adapter;
+import com.github.dockerjava.api.async.ResultCallbackTemplate;
+import com.github.dockerjava.api.command.AsyncDockerCmd;
import com.github.dockerjava.api.command.AttachContainerCmd;
import com.github.dockerjava.api.command.BuildImageCmd;
+import com.github.dockerjava.api.command.BuildImageResultCallback;
import com.github.dockerjava.api.command.ExecStartCmd;
import com.github.dockerjava.api.command.LogContainerCmd;
import com.github.dockerjava.api.command.PullImageCmd;
+import com.github.dockerjava.api.command.PullImageResultCallback;
import com.github.dockerjava.api.command.PushImageCmd;
import com.github.dockerjava.api.command.WaitContainerCmd;
+import com.github.dockerjava.api.command.WaitContainerResultCallback;
import com.github.dockerjava.api.model.AuthConfig;
import com.github.dockerjava.api.model.BuildResponseItem;
import com.github.dockerjava.api.model.Frame;
import com.github.dockerjava.api.model.PullResponseItem;
import com.github.dockerjava.api.model.PushResponseItem;
import com.github.dockerjava.api.model.WaitResponse;
-import com.github.dockerjava.core.command.AttachContainerResultCallback;
-import com.github.dockerjava.core.command.BuildImageResultCallback;
-import com.github.dockerjava.core.command.ExecStartResultCallback;
-import com.github.dockerjava.core.command.LogContainerResultCallback;
-import com.github.dockerjava.core.command.PullImageResultCallback;
-import com.github.dockerjava.core.command.PushImageResultCallback;
-import com.github.dockerjava.core.command.WaitContainerResultCallback;
import org.apache.camel.AsyncCallback;
import org.apache.camel.Exchange;
import org.apache.camel.Message;
@@ -80,148 +79,151 @@ public class AsyncDockerProducer extends DefaultAsyncProducer {
DockerOperation operation = configuration.getOperation();
- Object result;
-
switch (operation) {
/** Images **/
case BUILD_IMAGE:
- // result contain an image id value
- result = executeBuildImageRequest(client, message).exec(new BuildImageResultCallback() {
- @Override
- public void onNext(BuildResponseItem item) {
- LOG.trace("build image callback {}", item);
- super.onNext(item);
- }
- });
+ runAsyncImageBuild(exchange, message, client);
- if (result != null) {
- String imageId = ((BuildImageResultCallback) result).awaitImageId();
+ break;
+ case PULL_IMAGE:
+ runAsyncPull(message, client, exchange);
- ((BuildImageResultCallback) result).close();
+ break;
+ case PUSH_IMAGE:
+ runAsyncPush(exchange, message, client);
- result = imageId;
- }
+ break;
+ /** Containers **/
+ case ATTACH_CONTAINER:
+ runAsyncAttachContainer(exchange, message, client);
break;
- case PULL_IMAGE:
- result = executePullImageRequest(client, message).exec(new PullImageResultCallback() {
- @Override
- public void onNext(PullResponseItem item) {
- LOG.trace("pull image callback {}", item);
- super.onNext(item);
- }
- });
+ case LOG_CONTAINER:
+ runAsyncLogContainer(exchange, message, client);
- if (result != null) {
- result = ((PullImageResultCallback) result).awaitCompletion();
+ break;
+ case WAIT_CONTAINER:
+ // result contain a status code value
+ runAsyncWaitContainer(exchange, message, client);
- ((PullImageResultCallback) result).close();
- }
+ break;
+ case EXEC_START:
+ runAsyncExecStart(exchange, message, client);
break;
- case PUSH_IMAGE:
- result = executePushImageRequest(client, message).exec(new PushImageResultCallback() {
- @Override
- public void onNext(PushResponseItem item) {
- LOG.trace("push image callback {}", item);
- super.onNext(item);
- }
- });
+ default:
+ throw new DockerException("Invalid operation: " + operation);
+ }
- if (result != null) {
- result = ((PushImageResultCallback) result).awaitCompletion();
+ } catch (DockerException | InterruptedException e) {
+ LOG.error(e.getMessage(), e);
+ }
- ((PushImageResultCallback) result).close();
- }
+ callback.done(false);
+ return false;
+ }
- break;
- /** Containers **/
- case ATTACH_CONTAINER:
- result = executeAttachContainerRequest(client, message).exec(new AttachContainerResultCallback() {
- @Override
- public void onNext(Frame item) {
- LOG.trace("attach container callback {}", item);
- super.onNext(item);
- }
+ private void runAsyncImageBuild(Exchange exchange, Message message, DockerClient client)
+ throws DockerException, InterruptedException {
+ // result contain an image id value
+ BuildImageCmd cmd = executeBuildImageRequest(client, message);
- });
+ BuildImageResultCallback item = cmd.exec(new BuildImageResultCallback() {
+ @Override
+ public void onNext(BuildResponseItem item) {
+ super.onNext(item);
- if (result != null) {
- result = ((AttachContainerResultCallback) result).awaitCompletion();
+ LOG.trace("build image callback {}", item);
- ((AttachContainerResultCallback) result).close();
- }
+ exchange.getIn().setBody(item.getImageId());
+ }
+ });
- break;
- case LOG_CONTAINER:
- result = executeLogContainerRequest(client, message).exec(new LogContainerResultCallback() {
- @Override
- public void onNext(Frame item) {
- LOG.trace("log container callback {}", item);
- super.onNext(item);
- }
+ setResponse(exchange, item);
+ }
- });
+ private void runAsyncWithFrameResponse(Exchange exchange, AsyncDockerCmd<?, Frame> cmd) throws InterruptedException {
+ Adapter<Frame> item = cmd.exec(new Adapter<Frame>() {
+ @Override
+ public void onNext(Frame item) {
+ LOG.trace("running framed callback {}", item);
+ super.onNext(item);
+ }
- if (result != null) {
- result = ((LogContainerResultCallback) result).awaitCompletion();
+ });
- ((LogContainerResultCallback) result).close();
- }
+ setResponse(exchange, item);
+ }
- break;
- case WAIT_CONTAINER:
- // result contain a status code value
- result = executeWaitContainerRequest(client, message).exec(new WaitContainerResultCallback() {
- @Override
- public void onNext(WaitResponse item) {
- LOG.trace("wait contanier callback {}", item);
- super.onNext(item);
- }
+ private void runAsyncExecStart(Exchange exchange, Message message, DockerClient client) throws InterruptedException {
+ ExecStartCmd cmd = executeExecStartRequest(client, message);
- });
+ runAsyncWithFrameResponse(exchange, cmd);
+ }
- if (result != null) {
- Integer statusCode = ((WaitContainerResultCallback) result).awaitStatusCode();
+ private void runAsyncWaitContainer(Exchange exchange, Message message, DockerClient client) throws InterruptedException {
+ WaitContainerCmd cmd = executeWaitContainerRequest(client, message);
+ WaitContainerResultCallback item = cmd.exec(new WaitContainerResultCallback() {
+ @Override
+ public void onNext(WaitResponse item) {
+ super.onNext(item);
- ((WaitContainerResultCallback) result).close();
+ LOG.trace("wait container callback {}", item);
+ }
- result = statusCode;
- }
+ });
- break;
- case EXEC_START:
- result = executeExecStartRequest(client, message).exec(new ExecStartResultCallback() {
- @Override
- public void onNext(Frame item) {
- LOG.trace("exec start callback {}", item);
- super.onNext(item);
- }
+ setResponse(exchange, item);
+ }
- });
+ private void setResponse(Exchange exchange, ResultCallbackTemplate item) throws InterruptedException {
+ if (item != null) {
+ exchange.getIn().setBody(item);
+ item.awaitCompletion();
+ }
+ }
- if (result != null) {
- result = ((ExecStartResultCallback) result).awaitCompletion();
+ private void runAsyncLogContainer(Exchange exchange, Message message, DockerClient client) throws InterruptedException {
+ LogContainerCmd cmd = executeLogContainerRequest(client, message);
- ((ExecStartResultCallback) result).close();
- }
+ runAsyncWithFrameResponse(exchange, cmd);
- break;
- default:
- throw new DockerException("Invalid operation: " + operation);
+ }
+
+ private void runAsyncAttachContainer(Exchange exchange, Message message, DockerClient client) throws InterruptedException {
+ AttachContainerCmd cmd = executeAttachContainerRequest(client, message);
+ runAsyncWithFrameResponse(exchange, cmd);
+ }
+
+ private void runAsyncPush(Exchange exchange, Message message, DockerClient client) throws InterruptedException {
+ PushImageCmd cmd = executePushImageRequest(client, message);
+ Adapter<PushResponseItem> item = cmd.exec(new Adapter<PushResponseItem>() {
+ @Override
+ public void onNext(PushResponseItem item) {
+ super.onNext(item);
+
+ LOG.trace("push image callback {}", item);
}
+ });
+
+ setResponse(exchange, item);
+ }
+
+ private void runAsyncPull(Message message, DockerClient client, Exchange exchange) throws InterruptedException {
+ PullImageCmd cmd = executePullImageRequest(client, message);
+
+ PullImageResultCallback item = cmd.exec(new PullImageResultCallback() {
+ @Override
+ public void onNext(PullResponseItem item) {
+ super.onNext(item);
+
+ LOG.trace("pull image callback {}", item);
- // If request included a response, set as body
- if (result != null) {
- exchange.getIn().setBody(result);
}
- } catch (DockerException | InterruptedException | IOException e) {
- LOG.error(e.getMessage(), e);
- }
+ });
- callback.done(false);
- return false;
+ setResponse(exchange, item);
}
/**
@@ -264,7 +266,7 @@ public class AsyncDockerProducer extends DefaultAsyncProducer {
String tag = DockerHelper.getProperty(DockerConstants.DOCKER_TAG, configuration, message, String.class);
if (tag != null) {
- buildImageCmd.withTag(tag);
+ buildImageCmd.withTags(Collections.singleton(tag));
}
return buildImageCmd;
diff --git a/components/camel-docker/src/test/java/org/apache/camel/component/docker/headers/AttachContainerCmdHeaderTest.java b/components/camel-docker/src/test/java/org/apache/camel/component/docker/headers/AttachContainerCmdHeaderTest.java
index c46e73c..c6c397f 100644
--- a/components/camel-docker/src/test/java/org/apache/camel/component/docker/headers/AttachContainerCmdHeaderTest.java
+++ b/components/camel-docker/src/test/java/org/apache/camel/component/docker/headers/AttachContainerCmdHeaderTest.java
@@ -18,8 +18,9 @@ package org.apache.camel.component.docker.headers;
import java.util.Map;
+import com.github.dockerjava.api.async.ResultCallback;
import com.github.dockerjava.api.command.AttachContainerCmd;
-import com.github.dockerjava.core.command.AttachContainerResultCallback;
+import com.github.dockerjava.api.model.Frame;
import org.apache.camel.component.docker.DockerConstants;
import org.apache.camel.component.docker.DockerOperation;
import org.junit.jupiter.api.Test;
@@ -42,7 +43,7 @@ public class AttachContainerCmdHeaderTest extends BaseDockerHeaderTest<AttachCon
private AttachContainerCmd mockObject;
@Mock
- private AttachContainerResultCallback callback;
+ private ResultCallback.Adapter<Frame> callback;
@Test
void attachContainerHeaderTest() {
diff --git a/components/camel-docker/src/test/java/org/apache/camel/component/docker/headers/BuildImageCmdHeaderTest.java b/components/camel-docker/src/test/java/org/apache/camel/component/docker/headers/BuildImageCmdHeaderTest.java
index cbb47ed..d5f8048 100644
--- a/components/camel-docker/src/test/java/org/apache/camel/component/docker/headers/BuildImageCmdHeaderTest.java
+++ b/components/camel-docker/src/test/java/org/apache/camel/component/docker/headers/BuildImageCmdHeaderTest.java
@@ -18,10 +18,11 @@ package org.apache.camel.component.docker.headers;
import java.io.File;
import java.io.InputStream;
+import java.util.Collections;
import java.util.Map;
import com.github.dockerjava.api.command.BuildImageCmd;
-import com.github.dockerjava.core.command.BuildImageResultCallback;
+import com.github.dockerjava.api.command.BuildImageResultCallback;
import org.apache.camel.component.docker.DockerConstants;
import org.apache.camel.component.docker.DockerOperation;
import org.junit.jupiter.api.Test;
@@ -29,7 +30,6 @@ import org.mockito.Mock;
import org.mockito.Mockito;
import static org.mockito.ArgumentMatchers.any;
-import static org.mockito.ArgumentMatchers.anyString;
/**
* Validates Build Image Request headers are parsed properly
@@ -58,7 +58,6 @@ public class BuildImageCmdHeaderTest extends BaseDockerHeaderTest<BuildImageCmd>
void buildImageFromInputStreamHeaderTest() {
Mockito.when(dockerClient.buildImageCmd(any(InputStream.class))).thenReturn(mockObject);
Mockito.when(mockObject.exec(any())).thenReturn(callback);
- Mockito.when(callback.awaitImageId()).thenReturn(anyString());
template.sendBodyAndHeaders("direct:in", inputStream, getHeaders());
@@ -66,7 +65,7 @@ public class BuildImageCmdHeaderTest extends BaseDockerHeaderTest<BuildImageCmd>
Mockito.verify(mockObject, Mockito.times(1)).withQuiet(quiet);
Mockito.verify(mockObject, Mockito.times(1)).withNoCache(noCache);
Mockito.verify(mockObject, Mockito.times(1)).withRemove(remove);
- Mockito.verify(mockObject, Mockito.times(1)).withTag(tag);
+ Mockito.verify(mockObject, Mockito.times(1)).withTags(Collections.singleton(tag));
}
@@ -74,7 +73,6 @@ public class BuildImageCmdHeaderTest extends BaseDockerHeaderTest<BuildImageCmd>
void buildImageFromFileHeaderTest() {
Mockito.when(dockerClient.buildImageCmd(any(File.class))).thenReturn(mockObject);
Mockito.when(mockObject.exec(any())).thenReturn(callback);
- Mockito.when(callback.awaitImageId()).thenReturn(anyString());
template.sendBodyAndHeaders("direct:in", file, getHeaders());
@@ -82,7 +80,7 @@ public class BuildImageCmdHeaderTest extends BaseDockerHeaderTest<BuildImageCmd>
Mockito.verify(mockObject, Mockito.times(1)).withQuiet(quiet);
Mockito.verify(mockObject, Mockito.times(1)).withNoCache(noCache);
Mockito.verify(mockObject, Mockito.times(1)).withRemove(remove);
- Mockito.verify(mockObject, Mockito.times(1)).withTag(tag);
+ Mockito.verify(mockObject, Mockito.times(1)).withTags(Collections.singleton(tag));
}
diff --git a/components/camel-docker/src/test/java/org/apache/camel/component/docker/headers/ExecStartCmdHeaderTest.java b/components/camel-docker/src/test/java/org/apache/camel/component/docker/headers/ExecStartCmdHeaderTest.java
index ab66c75..775e079 100644
--- a/components/camel-docker/src/test/java/org/apache/camel/component/docker/headers/ExecStartCmdHeaderTest.java
+++ b/components/camel-docker/src/test/java/org/apache/camel/component/docker/headers/ExecStartCmdHeaderTest.java
@@ -18,8 +18,9 @@ package org.apache.camel.component.docker.headers;
import java.util.Map;
+import com.github.dockerjava.api.async.ResultCallback;
import com.github.dockerjava.api.command.ExecStartCmd;
-import com.github.dockerjava.core.command.ExecStartResultCallback;
+import com.github.dockerjava.api.model.Frame;
import org.apache.camel.component.docker.DockerConstants;
import org.apache.camel.component.docker.DockerOperation;
import org.junit.jupiter.api.Test;
@@ -42,7 +43,7 @@ public class ExecStartCmdHeaderTest extends BaseDockerHeaderTest<ExecStartCmd> {
private ExecStartCmd mockObject;
@Mock
- private ExecStartResultCallback callback;
+ private ResultCallback.Adapter<Frame> callback;
@Test
void execCreateHeaderTest() {
diff --git a/components/camel-docker/src/test/java/org/apache/camel/component/docker/headers/LogContainerCmdHeaderTest.java b/components/camel-docker/src/test/java/org/apache/camel/component/docker/headers/LogContainerCmdHeaderTest.java
index de0c906..90db854 100644
--- a/components/camel-docker/src/test/java/org/apache/camel/component/docker/headers/LogContainerCmdHeaderTest.java
+++ b/components/camel-docker/src/test/java/org/apache/camel/component/docker/headers/LogContainerCmdHeaderTest.java
@@ -18,8 +18,9 @@ package org.apache.camel.component.docker.headers;
import java.util.Map;
+import com.github.dockerjava.api.async.ResultCallback;
import com.github.dockerjava.api.command.LogContainerCmd;
-import com.github.dockerjava.core.command.LogContainerResultCallback;
+import com.github.dockerjava.api.model.Frame;
import org.apache.camel.component.docker.DockerConstants;
import org.apache.camel.component.docker.DockerOperation;
import org.junit.jupiter.api.Test;
@@ -42,7 +43,7 @@ public class LogContainerCmdHeaderTest extends BaseDockerHeaderTest<LogContainer
private LogContainerCmd mockObject;
@Mock
- private LogContainerResultCallback callback;
+ private ResultCallback.Adapter<Frame> callback;
@Test
void logContainerHeaderTest() {
diff --git a/components/camel-docker/src/test/java/org/apache/camel/component/docker/headers/PullImageCmdHeaderTest.java b/components/camel-docker/src/test/java/org/apache/camel/component/docker/headers/PullImageCmdHeaderTest.java
index e25cf74..101e064 100644
--- a/components/camel-docker/src/test/java/org/apache/camel/component/docker/headers/PullImageCmdHeaderTest.java
+++ b/components/camel-docker/src/test/java/org/apache/camel/component/docker/headers/PullImageCmdHeaderTest.java
@@ -19,7 +19,7 @@ package org.apache.camel.component.docker.headers;
import java.util.Map;
import com.github.dockerjava.api.command.PullImageCmd;
-import com.github.dockerjava.core.command.PullImageResultCallback;
+import com.github.dockerjava.api.command.PullImageResultCallback;
import org.apache.camel.component.docker.DockerConstants;
import org.apache.camel.component.docker.DockerOperation;
import org.junit.jupiter.api.Test;
diff --git a/components/camel-docker/src/test/java/org/apache/camel/component/docker/headers/PushImageCmdHeaderTest.java b/components/camel-docker/src/test/java/org/apache/camel/component/docker/headers/PushImageCmdHeaderTest.java
index bc4f22e..aebec03 100644
--- a/components/camel-docker/src/test/java/org/apache/camel/component/docker/headers/PushImageCmdHeaderTest.java
+++ b/components/camel-docker/src/test/java/org/apache/camel/component/docker/headers/PushImageCmdHeaderTest.java
@@ -18,8 +18,9 @@ package org.apache.camel.component.docker.headers;
import java.util.Map;
+import com.github.dockerjava.api.async.ResultCallback;
import com.github.dockerjava.api.command.PushImageCmd;
-import com.github.dockerjava.core.command.PushImageResultCallback;
+import com.github.dockerjava.api.model.Frame;
import org.apache.camel.component.docker.DockerClientProfile;
import org.apache.camel.component.docker.DockerConstants;
import org.apache.camel.component.docker.DockerOperation;
@@ -42,7 +43,7 @@ public class PushImageCmdHeaderTest extends BaseDockerHeaderTest<PushImageCmd> {
private PushImageCmd mockObject;
@Mock
- private PushImageResultCallback callback;
+ private ResultCallback.Adapter<Frame> callback;
private String userName = "jdoe";
private String password = "password";
diff --git a/components/camel-docker/src/test/java/org/apache/camel/component/docker/headers/WaitContainerCmdHeaderTest.java b/components/camel-docker/src/test/java/org/apache/camel/component/docker/headers/WaitContainerCmdHeaderTest.java
index 40e7c8b..895f6a8 100644
--- a/components/camel-docker/src/test/java/org/apache/camel/component/docker/headers/WaitContainerCmdHeaderTest.java
+++ b/components/camel-docker/src/test/java/org/apache/camel/component/docker/headers/WaitContainerCmdHeaderTest.java
@@ -19,7 +19,7 @@ package org.apache.camel.component.docker.headers;
import java.util.Map;
import com.github.dockerjava.api.command.WaitContainerCmd;
-import com.github.dockerjava.core.command.WaitContainerResultCallback;
+import com.github.dockerjava.api.command.WaitContainerResultCallback;
import org.apache.camel.component.docker.DockerConstants;
import org.apache.camel.component.docker.DockerOperation;
import org.junit.jupiter.api.Test;
@@ -27,7 +27,6 @@ import org.mockito.Mock;
import org.mockito.Mockito;
import static org.mockito.ArgumentMatchers.any;
-import static org.mockito.ArgumentMatchers.anyInt;
import static org.mockito.ArgumentMatchers.anyString;
/**
@@ -59,7 +58,6 @@ public class WaitContainerCmdHeaderTest extends BaseDockerHeaderTest<WaitContain
protected void setupMocks() {
Mockito.when(dockerClient.waitContainerCmd(anyString())).thenReturn(mockObject);
Mockito.when(mockObject.exec(any())).thenReturn(callback);
- Mockito.when(callback.awaitStatusCode()).thenReturn(anyInt());
}
@Override
diff --git a/components/camel-docker/src/test/java/org/apache/camel/component/docker/it/DockerNettyCmdExecFactoryTestIT.java b/components/camel-docker/src/test/java/org/apache/camel/component/docker/it/DockerNettyCmdExecFactoryTest.java
similarity index 78%
rename from components/camel-docker/src/test/java/org/apache/camel/component/docker/it/DockerNettyCmdExecFactoryTestIT.java
rename to components/camel-docker/src/test/java/org/apache/camel/component/docker/it/DockerNettyCmdExecFactoryTest.java
index af13ee0..1e89266 100644
--- a/components/camel-docker/src/test/java/org/apache/camel/component/docker/it/DockerNettyCmdExecFactoryTestIT.java
+++ b/components/camel-docker/src/test/java/org/apache/camel/component/docker/it/DockerNettyCmdExecFactoryTest.java
@@ -22,8 +22,10 @@ import com.github.dockerjava.netty.NettyDockerCmdExecFactory;
import org.apache.camel.builder.RouteBuilder;
import org.apache.camel.component.mock.MockEndpoint;
import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.condition.EnabledIfSystemProperty;
-public class DockerNettyCmdExecFactoryTestIT extends DockerITTestSupport {
+@EnabledIfSystemProperty(named = "docker.hostname", matches = ".*", disabledReason = "Requires a running docker environment")
+public class DockerNettyCmdExecFactoryTest extends DockerITTestSupport {
@Test
void testNettyCmdExecFactoryConfig() throws Exception {
@@ -40,7 +42,8 @@ public class DockerNettyCmdExecFactoryTestIT extends DockerITTestSupport {
return new RouteBuilder() {
public void configure() {
from("direct:in")
- .to("docker://version?cmdExecFactory=" + NettyDockerCmdExecFactory.class.getName())
+ .toF("docker://version?host={{docker.hostname}}&port={{docker.port}}&cmdExecFactory=%s",
+ NettyDockerCmdExecFactory.class.getName())
.log("${body}")
.to("mock:result");
}
diff --git a/components/camel-docker/src/test/java/org/apache/camel/component/docker/it/DockerProducerTestIT.java b/components/camel-docker/src/test/java/org/apache/camel/component/docker/it/DockerProducerTest.java
similarity index 76%
rename from components/camel-docker/src/test/java/org/apache/camel/component/docker/it/DockerProducerTestIT.java
rename to components/camel-docker/src/test/java/org/apache/camel/component/docker/it/DockerProducerTest.java
index c728fde..e3e88bb 100644
--- a/components/camel-docker/src/test/java/org/apache/camel/component/docker/it/DockerProducerTestIT.java
+++ b/components/camel-docker/src/test/java/org/apache/camel/component/docker/it/DockerProducerTest.java
@@ -21,11 +21,14 @@ import java.util.concurrent.TimeUnit;
import org.apache.camel.builder.RouteBuilder;
import org.apache.camel.component.mock.MockEndpoint;
import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.condition.EnabledIfSystemProperty;
/**
- * Integration test listing images on Docker Platform
+ * Integration test listing images on Docker Platform. For this test to run you need to inform the docker host name via
+ * -Ddocker.hostname=my.host.com and the port via -Ddocker.port=2375
*/
-public class DockerProducerTestIT extends DockerITTestSupport {
+@EnabledIfSystemProperty(named = "docker.hostname", matches = ".*", disabledReason = "Requires a running docker environment")
+public class DockerProducerTest extends DockerITTestSupport {
@Test
void testDocker() throws Exception {
@@ -42,7 +45,7 @@ public class DockerProducerTestIT extends DockerITTestSupport {
return new RouteBuilder() {
public void configure() {
from("direct:in")
- .to("docker://imagelist?maxTotalConnections=10")
+ .to("docker://imagelist?maxTotalConnections=10&host={{docker.hostname}}&port={{docker.port}}")
.log("${body}")
.to("mock:result");
}
diff --git a/components/camel-docker/src/test/java/org/apache/camel/component/docker/it/DockerStatsConsumerTestIT.java b/components/camel-docker/src/test/java/org/apache/camel/component/docker/it/DockerStatsConsumerTest.java
similarity index 67%
rename from components/camel-docker/src/test/java/org/apache/camel/component/docker/it/DockerStatsConsumerTestIT.java
rename to components/camel-docker/src/test/java/org/apache/camel/component/docker/it/DockerStatsConsumerTest.java
index 05a845c..61f0856 100644
--- a/components/camel-docker/src/test/java/org/apache/camel/component/docker/it/DockerStatsConsumerTestIT.java
+++ b/components/camel-docker/src/test/java/org/apache/camel/component/docker/it/DockerStatsConsumerTest.java
@@ -21,14 +21,15 @@ import java.util.concurrent.TimeUnit;
import org.apache.camel.builder.RouteBuilder;
import org.apache.camel.component.mock.MockEndpoint;
import org.junit.jupiter.api.Test;
+import org.junit.jupiter.api.condition.EnabledIfSystemProperty;
/**
- * Integration test consuming statistics on Docker Platform
+ * Integration test consuming statistics on Docker Platform. This is a manual test which verifies whether Camel can
+ * consume the stats from a docker instance. For this test to run you need to inform the container ID via
+ * -D=id-of-the-container, the docker host name via -Ddocker.hostname=my.host.com and the port via -Ddocker.port=2375
*/
-public class DockerStatsConsumerTestIT extends DockerITTestSupport {
-
- private static final String CONTAINER_ID = "470b9b823e6c";
-
+@EnabledIfSystemProperty(named = "docker.test.container.id", matches = ".*", disabledReason = "Requires a running container")
+public class DockerStatsConsumerTest extends DockerITTestSupport {
@Test
void testDocker() throws Exception {
@@ -42,7 +43,7 @@ public class DockerStatsConsumerTestIT extends DockerITTestSupport {
protected RouteBuilder createRouteBuilder() {
return new RouteBuilder() {
public void configure() {
- fromF("docker://stats?containerId=%s", CONTAINER_ID)
+ from("docker://stats?containerId={{docker.test.container.id}}&host={{docker.hostname}}&port={{docker.port}}")
.log("${body}")
.to("mock:result");
}