This is an automated email from the ASF dual-hosted git repository. davsclaus pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/camel.git
The following commit(s) were added to refs/heads/master by this push: new 284ca72 Close requests to release resources (#5015) 284ca72 is described below commit 284ca72ba52755f7d9206dbe2c3c12493a2a71fa Author: perttuk <pert...@users.noreply.github.com> AuthorDate: Thu Feb 4 07:11:13 2021 +0200 Close requests to release resources (#5015) --- .../docker/producer/AsyncDockerProducer.java | 96 +++++++++--------- .../component/docker/producer/DockerProducer.java | 112 +++++++++++++++------ 2 files changed, 134 insertions(+), 74 deletions(-) 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 16f0e29..5748c64 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 @@ -127,20 +127,21 @@ public class AsyncDockerProducer extends DefaultAsyncProducer { private void runAsyncImageBuild(Exchange exchange, Message message, DockerClient client) throws DockerException, InterruptedException { // result contain an image id value - BuildImageCmd cmd = executeBuildImageRequest(client, message); + try (BuildImageCmd cmd = executeBuildImageRequest(client, message)) { - BuildImageResultCallback item = cmd.exec(new BuildImageResultCallback() { - @Override - public void onNext(BuildResponseItem item) { - super.onNext(item); + BuildImageResultCallback item = cmd.exec(new BuildImageResultCallback() { + @Override + public void onNext(BuildResponseItem item) { + super.onNext(item); - LOG.trace("build image callback {}", item); + LOG.trace("build image callback {}", item); - exchange.getIn().setBody(item.getImageId()); - } - }); + exchange.getIn().setBody(item.getImageId()); + } + }); - setResponse(exchange, item); + setResponse(exchange, item); + } } private void runAsyncWithFrameResponse(Exchange exchange, AsyncDockerCmd<?, Frame> cmd) throws InterruptedException { @@ -157,24 +158,25 @@ public class AsyncDockerProducer extends DefaultAsyncProducer { } private void runAsyncExecStart(Exchange exchange, Message message, DockerClient client) throws InterruptedException { - ExecStartCmd cmd = executeExecStartRequest(client, message); - - runAsyncWithFrameResponse(exchange, cmd); + try (ExecStartCmd cmd = executeExecStartRequest(client, message)) { + runAsyncWithFrameResponse(exchange, cmd); + } } 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); + try (WaitContainerCmd cmd = executeWaitContainerRequest(client, message)) { + WaitContainerResultCallback item = cmd.exec(new WaitContainerResultCallback() { + @Override + public void onNext(WaitResponse item) { + super.onNext(item); - LOG.trace("wait container callback {}", item); - } + LOG.trace("wait container callback {}", item); + } - }); + }); - setResponse(exchange, item); + setResponse(exchange, item); + } } private void setResponse(Exchange exchange, ResultCallbackTemplate item) throws InterruptedException { @@ -185,45 +187,47 @@ public class AsyncDockerProducer extends DefaultAsyncProducer { } private void runAsyncLogContainer(Exchange exchange, Message message, DockerClient client) throws InterruptedException { - LogContainerCmd cmd = executeLogContainerRequest(client, message); - - runAsyncWithFrameResponse(exchange, cmd); - + try (LogContainerCmd cmd = executeLogContainerRequest(client, message)) { + runAsyncWithFrameResponse(exchange, cmd); + } } private void runAsyncAttachContainer(Exchange exchange, Message message, DockerClient client) throws InterruptedException { - AttachContainerCmd cmd = executeAttachContainerRequest(client, message); - runAsyncWithFrameResponse(exchange, cmd); + try (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); + try (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); - } - }); + LOG.trace("push image callback {}", item); + } + }); - setResponse(exchange, item); + setResponse(exchange, item); + } } private void runAsyncPull(Message message, DockerClient client, Exchange exchange) throws InterruptedException { - PullImageCmd cmd = executePullImageRequest(client, message); + try (PullImageCmd cmd = executePullImageRequest(client, message)) { - PullImageResultCallback item = cmd.exec(new PullImageResultCallback() { - @Override - public void onNext(PullResponseItem item) { - super.onNext(item); + PullImageResultCallback item = cmd.exec(new PullImageResultCallback() { + @Override + public void onNext(PullResponseItem item) { + super.onNext(item); - LOG.trace("pull image callback {}", item); + LOG.trace("pull image callback {}", item); - } - }); + } + }); - setResponse(exchange, item); + setResponse(exchange, item); + } } /** 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 69fd1a1..ff8bdac 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 @@ -100,88 +100,144 @@ public class DockerProducer extends DefaultProducer { /** General **/ case AUTH: - result = executeAuthRequest(client, message).exec(); + try (AuthCmd cmd = executeAuthRequest(client, message)) { + result = cmd.exec(); + } break; case INFO: - result = executeInfoRequest(client, message).exec(); + try (InfoCmd cmd = executeInfoRequest(client, message)) { + result = cmd.exec(); + } break; case PING: - result = executePingRequest(client, message).exec(); + try (PingCmd cmd = executePingRequest(client, message)) { + result = cmd.exec(); + } break; case VERSION: - result = executeVersionRequest(client, message).exec(); + try (VersionCmd cmd = executeVersionRequest(client, message)) { + result = cmd.exec(); + } break; case CREATE_IMAGE: - result = executeCreateImageRequest(client, message).exec(); + try (CreateImageCmd cmd = executeCreateImageRequest(client, message)) { + result = cmd.exec(); + } break; case INSPECT_IMAGE: - result = executeInspectImageRequest(client, message).exec(); + try (InspectImageCmd cmd = executeInspectImageRequest(client, message)) { + result = cmd.exec(); + } break; case LIST_IMAGES: - result = executeListImagesRequest(client, message).exec(); + try (ListImagesCmd cmd = executeListImagesRequest(client, message)) { + result = cmd.exec(); + } break; case REMOVE_IMAGE: - result = executeRemoveImageRequest(client, message).exec(); + try (RemoveImageCmd cmd = executeRemoveImageRequest(client, message)) { + result = cmd.exec(); + } break; case SEARCH_IMAGES: - result = executeSearchImageRequest(client, message).exec(); + try (SearchImagesCmd cmd = executeSearchImageRequest(client, message)) { + result = cmd.exec(); + } break; case TAG_IMAGE: - result = executeTagImageRequest(client, message).exec(); + try (TagImageCmd cmd = executeTagImageRequest(client, message)) { + result = cmd.exec(); + } break; case COMMIT_CONTAINER: - result = executeCommitContainerRequest(client, message).exec(); + try (CommitCmd cmd = executeCommitContainerRequest(client, message)) { + result = cmd.exec(); + } break; case COPY_FILE_CONTAINER: - result = executeCopyFileContainerRequest(client, message).exec(); + try (CopyArchiveFromContainerCmd cmd = executeCopyFileContainerRequest(client, message)) { + result = cmd.exec(); + } break; case CREATE_CONTAINER: - result = executeCreateContainerRequest(client, message).exec(); + try (CreateContainerCmd cmd = executeCreateContainerRequest(client, message)) { + result = cmd.exec(); + } break; case DIFF_CONTAINER: - result = executeDiffContainerRequest(client, message).exec(); + try (ContainerDiffCmd cmd = executeDiffContainerRequest(client, message)) { + result = cmd.exec(); + } break; case INSPECT_CONTAINER: - result = executeInspectContainerRequest(client, message).exec(); + try (InspectContainerCmd cmd = executeInspectContainerRequest(client, message)) { + result = cmd.exec(); + } break; case LIST_CONTAINERS: - result = executeListContainersRequest(client, message).exec(); + try (ListContainersCmd cmd = executeListContainersRequest(client, message)) { + result = cmd.exec(); + } break; case KILL_CONTAINER: - result = executeKillContainerRequest(client, message).exec(); + try (KillContainerCmd cmd = executeKillContainerRequest(client, message)) { + result = cmd.exec(); + } break; case PAUSE_CONTAINER: - result = executePauseContainerRequest(client, message).exec(); + try (PauseContainerCmd cmd = executePauseContainerRequest(client, message)) { + result = cmd.exec(); + } break; case REMOVE_CONTAINER: - result = executeRemoveContainerRequest(client, message).exec(); + try (RemoveContainerCmd cmd = executeRemoveContainerRequest(client, message)) { + result = cmd.exec(); + } break; case RESTART_CONTAINER: - result = executeRestartContainerRequest(client, message).exec(); + try (RestartContainerCmd cmd = executeRestartContainerRequest(client, message)) { + result = cmd.exec(); + } break; case START_CONTAINER: - result = executeStartContainerRequest(client, message).exec(); + try (StartContainerCmd cmd = executeStartContainerRequest(client, message)) { + result = cmd.exec(); + } break; case STOP_CONTAINER: - result = executeStopContainerRequest(client, message).exec(); + try (StopContainerCmd cmd = executeStopContainerRequest(client, message)) { + result = cmd.exec(); + } break; case TOP_CONTAINER: - result = executeTopContainerRequest(client, message).exec(); + try (TopContainerCmd cmd = executeTopContainerRequest(client, message)) { + result = cmd.exec(); + } break; case UNPAUSE_CONTAINER: - result = executeUnpauseContainerRequest(client, message).exec(); + try (UnpauseContainerCmd cmd = executeUnpauseContainerRequest(client, message)) { + result = cmd.exec(); + } break; case CREATE_NETWORK: - result = executeCreateNetworkRequest(client, message).exec(); + try (CreateNetworkCmd cmd = executeCreateNetworkRequest(client, message)) { + result = cmd.exec(); + } break; case REMOVE_NETWORK: - result = executeRemoveNetworkRequest(client, message).exec(); + try (RemoveNetworkCmd cmd = executeRemoveNetworkRequest(client, message)) { + result = cmd.exec(); + } break; case CONNECT_NETWORK: - result = executeConnectToNetworkRequest(client, message).exec(); + try (ConnectToNetworkCmd cmd = executeConnectToNetworkRequest(client, message)) { + result = cmd.exec(); + } break; case EXEC_CREATE: - result = executeExecCreateRequest(client, message).exec(); + try (ExecCreateCmd cmd = executeExecCreateRequest(client, message)) { + result = cmd.exec(); + } break; default: throw new DockerException("Invalid operation: " + operation);