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();
+ }
+
}