This is an automated email from the ASF dual-hosted git repository.

davsclaus pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel.git


The following commit(s) were added to refs/heads/main by this push:
     new f88c05c33fb CAMEL-21657: camel-ftp - Add JMX to dump jsch config
f88c05c33fb is described below

commit f88c05c33fbe1bb292ebb2ed940a73910d3821d2
Author: Claus Ibsen <[email protected]>
AuthorDate: Mon Jan 27 18:31:50 2025 +0100

    CAMEL-21657: camel-ftp - Add JMX to dump jsch config
---
 .../camel/component/file/remote/SftpComponent.java    | 19 +++++++++++++++++++
 1 file changed, 19 insertions(+)

diff --git 
a/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/SftpComponent.java
 
b/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/SftpComponent.java
index 9314b7a3f83..7024dbc2283 100644
--- 
a/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/SftpComponent.java
+++ 
b/components/camel-ftp/src/main/java/org/apache/camel/component/file/remote/SftpComponent.java
@@ -18,8 +18,12 @@ package org.apache.camel.component.file.remote;
 
 import java.net.URI;
 import java.util.Map;
+import java.util.TreeMap;
 
+import com.jcraft.jsch.JSch;
 import org.apache.camel.CamelContext;
+import org.apache.camel.api.management.ManagedOperation;
+import org.apache.camel.api.management.ManagedResource;
 import org.apache.camel.component.file.GenericFileEndpoint;
 import org.apache.camel.spi.annotations.Component;
 import org.apache.camel.util.StringHelper;
@@ -28,6 +32,7 @@ import org.apache.camel.util.StringHelper;
  * Secure FTP Component
  */
 @Component("sftp")
+@ManagedResource(description = "Managed SFTP Component")
 public class SftpComponent extends RemoteFileComponent<SftpRemoteFile> {
 
     public SftpComponent() {
@@ -62,4 +67,18 @@ public class SftpComponent extends 
RemoteFileComponent<SftpRemoteFile> {
         // noop
     }
 
+    @ManagedOperation(description = "Dump JSCH Configuration")
+    public String dumpConfiguration() {
+        StringBuilder sb = new StringBuilder();
+
+        Map<String, String> map = new TreeMap<>(String::compareToIgnoreCase);
+        map.putAll(JSch.getConfig());
+        for (var e : map.entrySet()) {
+            String v = e.getValue() != null ? e.getValue() : "";
+            sb.append(String.format("%s = %s%n", e.getKey(), v));
+        }
+
+        return sb.toString();
+    }
+
 }

Reply via email to