Switch to side-by-side view

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