diff --git a/pom.xml b/pom.xml
index 67d5baf..dbc15d9 100644
--- a/pom.xml
+++ b/pom.xml
@@ -9,7 +9,7 @@
fake-sftp-server-rule
- 2.1.0-SNAPSHOT
+ 2.2.0
jar
Fake SFTP Server Rule
@@ -44,7 +44,12 @@
org.apache.sshd
sshd-core
- [1,2)
+ [2.6,)
+
+
+ org.apache.sshd
+ sshd-sftp
+ [2.6,)
junit
@@ -60,7 +65,7 @@
com.jcraft
jsch
- [0.1.54]
+ [0.1.55]
test
diff --git a/src/main/java/com/github/stefanbirkner/fakesftpserver/rule/FakeSftpServerRule.java b/src/main/java/com/github/stefanbirkner/fakesftpserver/rule/FakeSftpServerRule.java
index f8d0a41..7dee709 100644
--- a/src/main/java/com/github/stefanbirkner/fakesftpserver/rule/FakeSftpServerRule.java
+++ b/src/main/java/com/github/stefanbirkner/fakesftpserver/rule/FakeSftpServerRule.java
@@ -1,9 +1,11 @@
package com.github.stefanbirkner.fakesftpserver.rule;
+import org.apache.sshd.common.file.FileSystemFactory;
+import org.apache.sshd.common.session.SessionContext;
import org.apache.sshd.server.SshServer;
import org.apache.sshd.server.keyprovider.SimpleGeneratorHostKeyProvider;
import org.apache.sshd.server.session.ServerSession;
-import org.apache.sshd.server.subsystem.sftp.SftpSubsystemFactory;
+import org.apache.sshd.sftp.server.SftpSubsystemFactory;
import org.junit.rules.TestRule;
import org.junit.runner.Description;
import org.junit.runners.model.Statement;
@@ -434,7 +436,7 @@ private SshServer startServer(
* In order to use the file system for multiple channels/sessions we
* have to use a file system wrapper whose close() does nothing.
*/
- server.setFileSystemFactory(session -> new DoNotClose(fileSystem));
+ server.setFileSystemFactory(new DoNotCloseFileSystemFactory(fileSystem));
server.start();
this.server = server;
return server;
@@ -470,6 +472,24 @@ private void verifyThatTestIsRunning(
);
}
+ private static class DoNotCloseFileSystemFactory implements FileSystemFactory{
+
+ final FileSystem fileSystem;
+ DoNotCloseFileSystemFactory(FileSystem fileSystem){
+ this.fileSystem = fileSystem;
+ }
+
+ @Override
+ public Path getUserHomeDir(SessionContext sessionContext) throws IOException {
+ return null;
+ }
+
+ @Override
+ public FileSystem createFileSystem(SessionContext sessionContext) throws IOException {
+ return new DoNotClose(fileSystem);
+ }
+ }
+
private static class DoNotClose extends FileSystem {
final FileSystem fileSystem;