You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2021/02/04 05:11:41 UTC

[camel] branch master updated: Close requests to release resources (#5015)

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 <pe...@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);