Hi all,
I suggest a small improvement in order to better integrate mina sshd
(sftp part in my case) into a JEE environment allowing to provide the
ThreadFactory.
In JEE application container, ThreadFactory are managed by the server
and it's better, in my opinion, to allow SftpSubsystem to use the
ManagedThreadFactory of the server.
In my case, I create the sshd daemon in a Singleton EJB Bean and I'd
like to be able to provide the ThreadFactory managed by the application
server and injected in my bean. To do that I need to override the wall
SftpSubsystem to allow a custom ThreadFactory :
public class MySftpSubsystem extends SftpSubsystem {
protected final Logger log = LoggerFactory.getLogger(getClass());
private Environment env;
private ThreadFactory factory;
public static class Factory implements NamedFactory<Command> {
private ThreadFactory threadFactory;
public Factory(ThreadFactory threadFactory) {
this.threadFactory = threadFactory;
}
public Command create() {
MySftpSubsystem dsftp = new MySftpSubsystem();
dsftp.setThreadFactory(threadFactory);
return dsftp;
}
public String getName() {
return "sftp";
}
}
public void setThreadFactory(ThreadFactory factory) {
this.factory = factory;
}
@Override
public void start(Environment env) throws IOException {
this.env = env;
factory.newThread(this).start();
}
}
It's a very small improvement but, I think, fullfill with the JEE
application server components.
Best regards, Jérôme Blanchard.