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 <orpi...@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"); }