--- a
+++ b/src/main/java/net/timbusproject/extractors/modules/tavernaextractor/utils/SSHManager.java
@@ -0,0 +1,142 @@
+package net.timbusproject.extractors.modules.tavernaextractor.utils;
+
+import com.jcraft.jsch.*;
+
+import java.io.File;
+import java.io.IOException;
+import java.io.InputStream;
+import java.lang.Exception;import java.lang.String;import java.nio.file.Path;
+import java.nio.file.Paths;
+
+/**
+ * Created by marco unterberger on 28.08.2014.
+ *
+ * Copy input files from a remote location to use them for the extraction.
+ *
+ * * munterberger@sba-research.org
+ */
+public class SSHManager {
+
+ private final String username;
+ private final String password;
+ private final String fqdn;
+ private final int port;
+
+ public SSHManager(String fqdn, int port, String username, String password){
+ this.username = username;
+ this.password = password;
+ this.fqdn = fqdn;
+ this.port = port;
+ }
+
+ public Session createSession(int timeout) throws SSHManagerException{
+
+ JSch jsch = new JSch();
+
+ Session session = null;
+ try {
+ session = jsch.getSession(username, fqdn, port);
+ session.setPassword(password);
+ session.setConfig("StrictHostKeyChecking", "no");
+ session.connect(timeout);
+
+ } catch (JSchException e) {
+ e.printStackTrace();
+ }
+ return session;
+ }
+
+ public File readFile(Session session, String path) throws SSHManagerException{
+
+ if(!session.isConnected()){
+ try{
+ session.connect();
+ }
+ catch (JSchException e){
+ e.printStackTrace();
+ throw new SSHManagerException(e.getLocalizedMessage());
+ }
+ }
+
+ Channel channel = null;
+ try {
+ channel = session.openChannel("sftp");
+ channel.connect();
+ } catch (JSchException e) {
+ e.printStackTrace();
+ throw new SSHManagerException(e.getLocalizedMessage());
+ }
+
+ ChannelSftp sftpChannel = (ChannelSftp) channel;
+
+ File file = null;
+ try {
+ file = File.createTempFile("tavernaExtractor-", ".input");
+ //file.deleteOnExit();
+ } catch (IOException e) {
+ e.printStackTrace();
+ throw new SSHManagerException(e.getLocalizedMessage());
+ }
+
+ try {
+ sftpChannel.get(path, file.getAbsolutePath());
+ } catch (SftpException e) {
+ e.printStackTrace();
+ throw new SSHManagerException(e.getLocalizedMessage());
+ }
+
+ session.disconnect();
+ return file;
+ }
+
+ public void sendFile(Session session, String from, String to) throws SSHManagerException{
+
+ if(!session.isConnected()){
+ try{
+ session.connect();
+ }
+ catch (JSchException e){
+ e.printStackTrace();
+ throw new SSHManagerException(e.getLocalizedMessage());
+ }
+ }
+
+ Channel channel = null;
+ try {
+ channel = session.openChannel("sftp");
+ channel.connect();
+ } catch (JSchException e) {
+ e.printStackTrace();
+ throw new SSHManagerException(e.getLocalizedMessage());
+ }
+
+ ChannelSftp sftpChannel = (ChannelSftp) channel;
+
+ try {
+ sftpChannel.put(from, to);
+ } catch (SftpException e) {
+ e.printStackTrace();
+ throw new SSHManagerException(e.getLocalizedMessage());
+ }
+
+ session.disconnect();
+ }
+
+ public static void main(String[] arg) throws Exception{
+
+ SSHManager ssh = new SSHManager("172.16.1.3",22, "timbus", "timbus");
+ Session session = ssh.createSession(60000);
+
+ // downloading file
+ File file = ssh.readFile(session, "/home/timbus/WorkflowInput/+Z150709801_ground_truth.csv");
+ if(file!=null){
+ System.out.println("File successfully saved at "+file.getAbsolutePath() + " [size="+file.length()+"]");
+ }
+
+ Thread.sleep(3000);
+
+ // receiving file
+ ssh.sendFile(session, new File("C:\\Users\\munterberger\\AppData\\Local\\Temp\\tavernaExtractor-7820989094280082735.input").getAbsolutePath(), "/home/timbus/WorkflowInput/tmp.csv");
+ }
+
+}