You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airavata.apache.org by sh...@apache.org on 2015/06/03 20:14:19 UTC

[02/39] airavata git commit: Refactored gfac sub modules, merged gfac-ssh, gfac-gsissh, gfac-local, gfac-monitor and gsissh modules and create gface-impl, removed implementation from gfac-core to gfac-impl

http://git-wip-us.apache.org/repos/asf/airavata/blob/7b809747/tools/gsissh/src/main/java/org/apache/airavata/gsi/ssh/impl/GSISSHAbstractCluster.java
----------------------------------------------------------------------
diff --git a/tools/gsissh/src/main/java/org/apache/airavata/gsi/ssh/impl/GSISSHAbstractCluster.java b/tools/gsissh/src/main/java/org/apache/airavata/gsi/ssh/impl/GSISSHAbstractCluster.java
deleted file mode 100644
index 7a04f11..0000000
--- a/tools/gsissh/src/main/java/org/apache/airavata/gsi/ssh/impl/GSISSHAbstractCluster.java
+++ /dev/null
@@ -1,768 +0,0 @@
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
-*/
-package org.apache.airavata.gsi.ssh.impl;
-
-import java.io.ByteArrayInputStream;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileNotFoundException;
-import java.io.IOException;
-import java.io.StringWriter;
-import java.net.URL;
-import java.security.SecureRandom;
-import java.util.List;
-import java.util.Map;
-
-import javax.xml.transform.Source;
-import javax.xml.transform.Transformer;
-import javax.xml.transform.TransformerConfigurationException;
-import javax.xml.transform.TransformerException;
-import javax.xml.transform.TransformerFactory;
-import javax.xml.transform.stream.StreamResult;
-import javax.xml.transform.stream.StreamSource;
-
-import org.apache.airavata.gsi.ssh.api.Cluster;
-import org.apache.airavata.gsi.ssh.api.CommandExecutor;
-import org.apache.airavata.gsi.ssh.api.SSHApiException;
-import org.apache.airavata.gsi.ssh.api.ServerInfo;
-import org.apache.airavata.gsi.ssh.api.authentication.AuthenticationInfo;
-import org.apache.airavata.gsi.ssh.api.authentication.GSIAuthenticationInfo;
-import org.apache.airavata.gsi.ssh.api.authentication.SSHKeyAuthentication;
-import org.apache.airavata.gsi.ssh.api.authentication.SSHPasswordAuthentication;
-import org.apache.airavata.gsi.ssh.api.authentication.SSHPublicKeyAuthentication;
-import org.apache.airavata.gsi.ssh.api.authentication.SSHPublicKeyFileAuthentication;
-import org.apache.airavata.gsi.ssh.api.job.JobDescriptor;
-import org.apache.airavata.gsi.ssh.api.job.JobManagerConfiguration;
-import org.apache.airavata.gsi.ssh.api.job.OutputParser;
-import org.apache.airavata.gsi.ssh.config.ConfigReader;
-import org.apache.airavata.gsi.ssh.jsch.ExtendedJSch;
-import org.apache.airavata.gsi.ssh.util.CommonUtils;
-import org.apache.airavata.gsi.ssh.util.SSHAPIUIKeyboardInteractive;
-import org.apache.airavata.gsi.ssh.util.SSHKeyPasswordHandler;
-import org.apache.airavata.gsi.ssh.util.SSHUtils;
-import org.apache.commons.io.FileUtils;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import com.jcraft.jsch.ExtendedSession;
-import com.jcraft.jsch.GSISSHIdentityFile;
-import com.jcraft.jsch.GSISSHIdentityRepository;
-import com.jcraft.jsch.Identity;
-import com.jcraft.jsch.JSch;
-import com.jcraft.jsch.JSchException;
-import com.jcraft.jsch.Session;
-
-public class GSISSHAbstractCluster implements Cluster {
-
-    private static final Logger log = LoggerFactory.getLogger(GSISSHAbstractCluster.class);
-    public static final String X509_CERT_DIR = "X509_CERT_DIR";
-    public static final String SSH_SESSION_TIMEOUT = "ssh.session.timeout";
-
-    public JobManagerConfiguration jobManagerConfiguration;
-
-    private ServerInfo serverInfo;
-
-    private AuthenticationInfo authenticationInfo;
-
-    private Session session;
-
-    private ConfigReader configReader;
-	
-    private JSch defaultJSch;
-
-    private static Identity identityFile = null;
-
-    public GSISSHAbstractCluster(ServerInfo serverInfo, AuthenticationInfo authenticationInfo, JobManagerConfiguration config) throws SSHApiException {
-        this(serverInfo, authenticationInfo);
-        this.jobManagerConfiguration = config;
-    }
-
-    public  GSISSHAbstractCluster(ServerInfo serverInfo, AuthenticationInfo authenticationInfo) throws SSHApiException {
-
-        reconnect(serverInfo, authenticationInfo);
-    }
-
-    public GSISSHAbstractCluster(JobManagerConfiguration config) {
-        this.jobManagerConfiguration = config;
-    }
-    private synchronized void reconnect(ServerInfo serverInfo, AuthenticationInfo authenticationInfo) throws SSHApiException {
-        this.serverInfo = serverInfo;
-
-        this.authenticationInfo = authenticationInfo;
-
-        if (authenticationInfo instanceof GSIAuthenticationInfo) {
-            JSch.setConfig("gssapi-with-mic.x509", "org.apache.airavata.gsi.ssh.GSSContextX509");
-            JSch.setConfig("userauth.gssapi-with-mic", "com.jcraft.jsch.UserAuthGSSAPIWithMICGSSCredentials");
-            System.setProperty(X509_CERT_DIR, (String) ((GSIAuthenticationInfo) authenticationInfo).getProperties().
-                    get("X509_CERT_DIR"));
-        }
-
-
-        try {
-            this.configReader = new ConfigReader();
-        } catch (IOException e) {
-            throw new SSHApiException("Unable to load system configurations.", e);
-        }
-        try {
-        	 if(defaultJSch == null){
-             	defaultJSch = createJSch(authenticationInfo);
-             }
-     	        log.debug("Connecting to server - " + serverInfo.getHost() + ":" + serverInfo.getPort() + " with user name - "
-                     + serverInfo.getUserName());
-
-        	session = createSession(defaultJSch,serverInfo.getUserName(), serverInfo.getHost(), serverInfo.getPort());
-        	}
-        	catch (Exception e) {
-            throw new SSHApiException("An exception occurred while creating SSH session." +
-                    "Connecting server - " + serverInfo.getHost() + ":" + serverInfo.getPort() +
-                    " connecting user name - "
-                    + serverInfo.getUserName(), e);
-        }
-
-        //=============================================================
-        // Handling vanilla SSH pieces
-        //=============================================================
-        if (authenticationInfo instanceof SSHPasswordAuthentication) {
-            String password = ((SSHPasswordAuthentication) authenticationInfo).
-                    getPassword(serverInfo.getUserName(), serverInfo.getHost());
-
-            session.setUserInfo(new SSHAPIUIKeyboardInteractive(password));
-
-            // TODO figure out why we need to set password to session
-            session.setPassword(password);
-
-        } else if (authenticationInfo instanceof SSHPublicKeyFileAuthentication) {
-
-            SSHPublicKeyFileAuthentication sshPublicKeyFileAuthentication
-                    = (SSHPublicKeyFileAuthentication) authenticationInfo;
-            String privateKeyFile = sshPublicKeyFileAuthentication.
-                    getPrivateKeyFile(serverInfo.getUserName(), serverInfo.getHost());
-
-            logDebug("The private key file for vanilla SSH " + privateKeyFile);
-
-            String publicKeyFile = sshPublicKeyFileAuthentication.
-                    getPublicKeyFile(serverInfo.getUserName(), serverInfo.getHost());
-
-            logDebug("The public key file for vanilla SSH " + publicKeyFile);
-
-            try {
-                identityFile = GSISSHIdentityFile.newInstance(privateKeyFile, null, defaultJSch);
-            } catch (JSchException e) {
-                throw new SSHApiException("An exception occurred while initializing keys using files. " +
-                        "(private key and public key)." +
-                        "Connecting server - " + serverInfo.getHost() + ":" + serverInfo.getPort() +
-                        " connecting user name - "
-                        + serverInfo.getUserName() + " private key file - " + privateKeyFile + ", public key file - " +
-                        publicKeyFile, e);
-            }
-
-            // Add identity to identity repository
-            GSISSHIdentityRepository identityRepository = new GSISSHIdentityRepository(defaultJSch);
-            identityRepository.add(identityFile);
-
-            // Set repository to session
-            session.setIdentityRepository(identityRepository);
-
-            // Set the user info
-            SSHKeyPasswordHandler sshKeyPasswordHandler
-                    = new SSHKeyPasswordHandler((SSHKeyAuthentication) authenticationInfo);
-
-            session.setUserInfo(sshKeyPasswordHandler);
-
-        } else if (authenticationInfo instanceof SSHPublicKeyAuthentication) {
-
-            SSHPublicKeyAuthentication sshPublicKeyAuthentication
-                    = (SSHPublicKeyAuthentication) authenticationInfo;
-            try {
-                String name = serverInfo.getUserName() + "_" + serverInfo.getHost();
-                identityFile = GSISSHIdentityFile.newInstance(name,
-                        sshPublicKeyAuthentication.getPrivateKey(serverInfo.getUserName(), serverInfo.getHost()),
-                        sshPublicKeyAuthentication.getPublicKey(serverInfo.getUserName(), serverInfo.getHost()), defaultJSch);
-            } catch (JSchException e) {
-                throw new SSHApiException("An exception occurred while initializing keys using byte arrays. " +
-                        "(private key and public key)." +
-                        "Connecting server - " + serverInfo.getHost() + ":" + serverInfo.getPort() +
-                        " connecting user name - "
-                        + serverInfo.getUserName(), e);
-            }
-
-            // Add identity to identity repository
-            GSISSHIdentityRepository identityRepository = new GSISSHIdentityRepository(defaultJSch);
-            identityRepository.add(identityFile);
-
-            // Set repository to session
-            session.setIdentityRepository(identityRepository);
-
-            // Set the user info
-            SSHKeyPasswordHandler sshKeyPasswordHandler
-                    = new SSHKeyPasswordHandler((SSHKeyAuthentication) authenticationInfo);
-
-            session.setUserInfo(sshKeyPasswordHandler);
-
-        }
-
-        // Not a good way, but we dont have any choice
-        if (session instanceof ExtendedSession) {
-            if (authenticationInfo instanceof GSIAuthenticationInfo) {
-                ((ExtendedSession) session).setAuthenticationInfo((GSIAuthenticationInfo) authenticationInfo);
-            }
-        }
-
-        try {
-            session.connect(Integer.parseInt(configReader.getConfiguration(SSH_SESSION_TIMEOUT)));
-        } catch (Exception e) {
-            throw new SSHApiException("An exception occurred while connecting to server." +
-                    "Connecting server - " + serverInfo.getHost() + ":" + serverInfo.getPort() +
-                    " connecting user name - "
-                    + serverInfo.getUserName(), e);
-        }
-    }
-
-    public synchronized JobDescriptor cancelJob(String jobID) throws SSHApiException {
-        JobStatus jobStatus = getJobStatus(jobID);
-        if (jobStatus == null || jobStatus == JobStatus.U) {
-            log.info("Validation before cancel is failed, couldn't found job in remote host to cancel. Job may be already completed|failed|canceled");
-            return null;
-        }
-        RawCommandInfo rawCommandInfo = jobManagerConfiguration.getCancelCommand(jobID);
-
-        StandardOutReader stdOutReader = new StandardOutReader();
-        log.info("Executing RawCommand : " + rawCommandInfo.getCommand());
-        CommandExecutor.executeCommand(rawCommandInfo, this.getSession(), stdOutReader);
-        String outputifAvailable = getOutputifAvailable(stdOutReader, "Error reading output of job submission", jobManagerConfiguration.getBaseCancelCommand());
-        // this might not be the case for all teh resources, if so Cluster implementation can override this method
-        // because here after cancelling we try to get the job description and return it back
-        try {
-            return this.getJobDescriptorById(jobID);
-        } catch (Exception e) {
-            //its ok to fail to get status when the job is gone
-            return null;
-        }
-    }
-
-    public synchronized String submitBatchJobWithScript(String scriptPath, String workingDirectory) throws SSHApiException {
-        this.scpTo(workingDirectory, scriptPath);
-
-        // since this is a constant we do not ask users to fill this
-
-//        RawCommandInfo rawCommandInfo = new RawCommandInfo(this.installedPath + this.jobManagerConfiguration.getSubmitCommand() + " " +
-//                workingDirectory + File.separator + FilenameUtils.getName(scriptPath));
-
-        RawCommandInfo rawCommandInfo = jobManagerConfiguration.getSubmitCommand(workingDirectory,scriptPath);
-        StandardOutReader standardOutReader = new StandardOutReader();
-        log.info("Executing RawCommand : " + rawCommandInfo.getCommand());
-        CommandExecutor.executeCommand(rawCommandInfo, this.session, standardOutReader);
-
-        //Check whether pbs submission is successful or not, if it failed throw and exception in submitJob method
-        // with the error thrown in qsub command
-        //
-        String outputifAvailable = getOutputifAvailable(standardOutReader,"Error reading output of job submission",jobManagerConfiguration.getBaseSubmitCommand());
-        OutputParser outputParser = jobManagerConfiguration.getParser();
-        return  outputParser.parseJobSubmission(outputifAvailable);
-    }
-
-    public synchronized String submitBatchJob(JobDescriptor jobDescriptor) throws SSHApiException {
-        TransformerFactory factory = TransformerFactory.newInstance();
-        URL resource = this.getClass().getClassLoader().getResource(jobManagerConfiguration.getJobDescriptionTemplateName());
-
-        if (resource == null) {
-            String error = "System configuration file '" + jobManagerConfiguration.getJobDescriptionTemplateName()
-                    + "' not found in the classpath";
-            throw new SSHApiException(error);
-        }
-
-        Source xslt = new StreamSource(new File(resource.getPath()));
-        Transformer transformer;
-        StringWriter results = new StringWriter();
-        File tempPBSFile = null;
-        try {
-            // generate the pbs script using xslt
-            transformer = factory.newTransformer(xslt);
-            Source text = new StreamSource(new ByteArrayInputStream(jobDescriptor.toXML().getBytes()));
-            transformer.transform(text, new StreamResult(results));
-            String scriptContent = results.toString().replaceAll("^[ |\t]*\n$", "");
-            if (scriptContent.startsWith("\n")) {
-                scriptContent = scriptContent.substring(1);
-            }
-//            log.debug("generated PBS:" + results.toString());
-
-            // creating a temporary file using pbs script generated above
-            int number = new SecureRandom().nextInt();
-            number = (number < 0 ? -number : number);
-
-            tempPBSFile = new File(Integer.toString(number) + jobManagerConfiguration.getScriptExtension());
-            FileUtils.writeStringToFile(tempPBSFile, scriptContent);
-
-            //reusing submitBatchJobWithScript method to submit a job
-            String jobID = null;
-            int retry = 3;
-            while(retry>0) {
-                try {
-                    jobID = this.submitBatchJobWithScript(tempPBSFile.getAbsolutePath(),
-                            jobDescriptor.getWorkingDirectory());
-                    retry=0;
-                } catch (SSHApiException e) {
-                    retry--;
-                    if(retry==0) {
-                        throw e;
-                    }else{
-                        try {
-                            Thread.sleep(5000);
-                        } catch (InterruptedException e1) {
-                            log.error(e1.getMessage(), e1);
-                        }
-                        log.error("Error occured during job submission but doing a retry");
-                    }
-                }
-            }
-            log.debug("Job has successfully submitted, JobID : " + jobID);
-            if (jobID != null) {
-                return jobID.replace("\n", "");
-            } else {
-                return null;
-            }
-            } catch (TransformerConfigurationException e) {
-            throw new SSHApiException("Error parsing PBS transformation", e);
-        } catch (TransformerException e) {
-            throw new SSHApiException("Error generating PBS script", e);
-        } catch (IOException e) {
-            throw new SSHApiException("An exception occurred while connecting to server." +
-                    "Connecting server - " + serverInfo.getHost() + ":" + serverInfo.getPort() +
-                    " connecting user name - "
-                    + serverInfo.getUserName(), e);
-        } finally {
-            if (tempPBSFile != null) {
-                tempPBSFile.delete();
-            }
-        }
-    }
-
-
-    public void generateJobScript(JobDescriptor jobDescriptor) throws SSHApiException {
-        TransformerFactory factory = TransformerFactory.newInstance();
-        URL resource = this.getClass().getClassLoader().getResource(jobManagerConfiguration.getJobDescriptionTemplateName());
-
-        if (resource == null) {
-            String error = "System configuration file '" + jobManagerConfiguration.getJobDescriptionTemplateName()
-                    + "' not found in the classpath";
-            throw new SSHApiException(error);
-        }
-
-        Source xslt = new StreamSource(new File(resource.getPath()));
-        Transformer transformer;
-        StringWriter results = new StringWriter();
-        File tempPBSFile = null;
-        try {
-            // generate the pbs script using xslt
-            transformer = factory.newTransformer(xslt);
-            Source text = new StreamSource(new ByteArrayInputStream(jobDescriptor.toXML().getBytes()));
-            transformer.transform(text, new StreamResult(results));
-            String scriptContent = results.toString().replaceAll("^[ |\t]*\n$", "");
-            if (scriptContent.startsWith("\n")) {
-                scriptContent = scriptContent.substring(1);
-            }
-//            log.debug("generated PBS:" + results.toString());
-
-            // creating a temporary file using pbs script generated above
-            int number = new SecureRandom().nextInt();
-            number = (number < 0 ? -number : number);
-
-            tempPBSFile = new File(Integer.toString(number) + jobManagerConfiguration.getScriptExtension());
-            log.info("File Path: " + tempPBSFile.getAbsolutePath());
-            log.info("File Content: " + scriptContent);
-            FileUtils.writeStringToFile(tempPBSFile, scriptContent);
-        } catch (TransformerConfigurationException e) {
-            throw new SSHApiException("Error parsing PBS transformation", e);
-        } catch (TransformerException e) {
-            throw new SSHApiException("Error generating PBS script", e);
-        } catch (IOException e) {
-            throw new SSHApiException("An exception occurred while connecting to server." +
-                    "Connecting server - " + serverInfo.getHost() + ":" + serverInfo.getPort() +
-                    " connecting user name - "
-                    + serverInfo.getUserName(), e);
-        } finally {
-            if (tempPBSFile != null) {
-                tempPBSFile.delete();
-            }
-        }
-    }
-
-
-
-    public synchronized JobDescriptor getJobDescriptorById(String jobID) throws SSHApiException {
-        RawCommandInfo rawCommandInfo = jobManagerConfiguration.getMonitorCommand(jobID);
-        StandardOutReader stdOutReader = new StandardOutReader();
-        log.info("Executing RawCommand : " + rawCommandInfo.getCommand());
-        CommandExecutor.executeCommand(rawCommandInfo, this.getSession(), stdOutReader);
-        String result = getOutputifAvailable(stdOutReader, "Error getting job information from the resource !",jobManagerConfiguration.getBaseMonitorCommand());
-        JobDescriptor jobDescriptor = new JobDescriptor();
-        jobManagerConfiguration.getParser().parseSingleJob(jobDescriptor, result);
-        return jobDescriptor;
-    }
-
-    public synchronized JobStatus getJobStatus(String jobID) throws SSHApiException {
-        RawCommandInfo rawCommandInfo = jobManagerConfiguration.getMonitorCommand(jobID);
-        StandardOutReader stdOutReader = new StandardOutReader();
-        log.info("Executing RawCommand : " + rawCommandInfo.getCommand());
-        CommandExecutor.executeCommand(rawCommandInfo, this.getSession(), stdOutReader);
-        String result = getOutputifAvailable(stdOutReader, "Error getting job information from the resource !", jobManagerConfiguration.getBaseMonitorCommand());
-        return jobManagerConfiguration.getParser().parseJobStatus(jobID, result);
-    }
-
-    @Override
-    public String getJobIdByJobName(String jobName, String userName) throws SSHApiException {
-        RawCommandInfo rawCommandInfo = jobManagerConfiguration.getJobIdMonitorCommand(jobName, userName);
-        StandardOutReader stdOutReader = new StandardOutReader();
-        log.info("Executing RawCommand : " + rawCommandInfo.getCommand());
-        CommandExecutor.executeCommand(rawCommandInfo, this.getSession(), stdOutReader);
-        String result = getOutputifAvailable(stdOutReader, "Error getting job information from the resource !",
-                jobManagerConfiguration.getJobIdMonitorCommand(jobName,userName).getCommand());
-        return jobManagerConfiguration.getParser().parseJobId(jobName, result);
-    }
-
-    private static void logDebug(String message) {
-        if (log.isDebugEnabled()) {
-            log.debug(message);
-        }
-    }
-
-    public JobManagerConfiguration getJobManagerConfiguration() {
-        return jobManagerConfiguration;
-    }
-
-    public void setJobManagerConfiguration(JobManagerConfiguration jobManagerConfiguration) {
-        this.jobManagerConfiguration = jobManagerConfiguration;
-    }
-
-    public synchronized void scpTo(String remoteFile, String localFile) throws SSHApiException {
-        int retry = 3;
-        while (retry > 0) {
-            try {
-                if (!session.isConnected()) {
-                    session.connect();
-                }
-                log.info("Transfering file:/" + localFile + " To:" + serverInfo.getHost() + ":" + remoteFile);
-                SSHUtils.scpTo(remoteFile, localFile, session);
-                retry = 0;
-            } catch (IOException e) {
-                retry--;
-                reconnect(serverInfo, authenticationInfo);
-                if (retry == 0) {
-                    throw new SSHApiException("Failed during scping local file:" + localFile + " to remote file "
-                            + serverInfo.getHost() + ":rFile : " + remoteFile, e);
-                }
-            } catch (JSchException e) {
-                retry--;
-                try {
-                    Thread.sleep(5000);
-                } catch (InterruptedException e1) {
-                    log.error(e1.getMessage(), e1);
-                }
-                reconnect(serverInfo, authenticationInfo);
-                if (retry == 0) {
-                    throw new SSHApiException("Failed during scping local file:" + localFile + " to remote file "
-                            + serverInfo.getHost() + ":rFile : " + remoteFile, e);
-                }
-            }
-        }
-    }
-
-    public synchronized void scpFrom(String remoteFile, String localFile) throws SSHApiException {
-        int retry = 3;
-        while(retry>0) {
-            try {
-                if (!session.isConnected()) {
-                    session.connect();
-                }
-                log.info("Transfering from:" + serverInfo.getHost() + ":" + remoteFile + " To:" + "file:/" + localFile);
-                SSHUtils.scpFrom(remoteFile, localFile, session);
-                retry=0;
-            } catch (IOException e) {
-                retry--;
-                try {
-                    Thread.sleep(5000);
-                } catch (InterruptedException e1) {
-                    log.error(e1.getMessage(), e1);
-                }
-                reconnect(serverInfo, authenticationInfo);
-                if (retry == 0) {
-                    throw new SSHApiException("Failed during scping local file:" + localFile + " to remote file "
-                            + serverInfo.getHost() + ":rFile", e);
-                }else{
-                    log.error("Error performing scp but doing a retry");
-                }
-            } catch (JSchException e) {
-                retry--;
-                try {
-                    Thread.sleep(5000);
-                } catch (InterruptedException e1) {
-                    log.error(e1.getMessage(), e1);
-                }
-                reconnect(serverInfo, authenticationInfo);
-                if(retry==0) {
-                    throw new SSHApiException("Failed during scping local file:" + localFile + " to remote file "
-                            + serverInfo.getHost() + ":rFile", e);
-                }else{
-                    log.error("Error performing scp but doing a retry");
-                }
-            }
-        }
-    }
-    
-    public synchronized void scpThirdParty(String remoteFileSource, String remoteFileTarget) throws SSHApiException {
-        try {
-            if(!session.isConnected()){
-                session.connect();
-            }
-            log.info("Transfering from:" + remoteFileSource + " To: " + remoteFileTarget);
-            SSHUtils.scpThirdParty(remoteFileSource, remoteFileTarget, session);
-        } catch (IOException e) {
-            throw new SSHApiException("Failed during scping  file:" + remoteFileSource + " to remote file "
-                    +remoteFileTarget , e);
-        } catch (JSchException e) {
-            throw new SSHApiException("Failed during scping  file:" + remoteFileSource + " to remote file "
-                    +remoteFileTarget, e);
-        }
-    }
-
-    public synchronized void makeDirectory(String directoryPath) throws SSHApiException {
-        int retry = 3;
-        while (retry > 0) {
-            try {
-                if (!session.isConnected()) {
-                    session.connect();
-                }
-                log.info("Creating directory: " + serverInfo.getHost() + ":" + directoryPath);
-                SSHUtils.makeDirectory(directoryPath, session);
-                retry = 0;
-            } catch (IOException e) {
-                throw new SSHApiException("Failed during creating directory:" + directoryPath + " to remote file "
-                        + serverInfo.getHost() + ":rFile", e);
-            } catch (JSchException e) {
-                retry--;
-                try {
-                    Thread.sleep(5000);
-                } catch (InterruptedException e1) {
-                    log.error(e1.getMessage(), e1);
-                }
-                reconnect(serverInfo, authenticationInfo);
-                if (retry == 0) {
-                    throw new SSHApiException("Failed during creating directory :" + directoryPath + " to remote file "
-                            + serverInfo.getHost() + ":rFile", e);
-                }
-            } catch (SSHApiException e) {
-                retry--;
-                try {
-                    Thread.sleep(5000);
-                } catch (InterruptedException e1) {
-                    log.error(e1.getMessage(), e1);
-                }
-                reconnect(serverInfo, authenticationInfo);
-                if (retry == 0) {
-                    throw new SSHApiException("Failed during creating directory :" + directoryPath + " to remote file "
-                            + serverInfo.getHost() + ":rFile", e);
-                }
-            }
-        }
-    }
-
-    public synchronized List<String> listDirectory(String directoryPath) throws SSHApiException {
-        int retry = 3;
-        List<String> files = null;
-        while (retry > 0) {
-            try {
-                if (!session.isConnected()) {
-                    session.connect();
-                }
-                log.info("Listing directory: " + serverInfo.getHost() + ":" + directoryPath);
-                files = SSHUtils.listDirectory(directoryPath, session);
-                retry=0;
-            } catch (IOException e) {
-                log.error(e.getMessage(), e);
-                retry--;
-                try {
-                    Thread.sleep(5000);
-                } catch (InterruptedException e1) {
-                    log.error(e1.getMessage(), e1);
-                }
-                reconnect(serverInfo, authenticationInfo);
-                if (retry == 0) {
-                    throw new SSHApiException("Failed during listing directory:" + directoryPath + " to remote file ", e);
-                }
-            } catch (JSchException e) {
-                retry--;
-                reconnect(serverInfo, authenticationInfo);
-                if (retry == 0) {
-                    throw new SSHApiException("Failed during listing directory :" + directoryPath + " to remote file ", e);
-                }
-            }catch (SSHApiException e) {
-                retry--;
-                try {
-                    Thread.sleep(5000);
-                } catch (InterruptedException e1) {
-                    log.error(e1.getMessage(), e1);
-                }
-                reconnect(serverInfo, authenticationInfo);
-                if (retry == 0) {
-                    throw new SSHApiException("Failed during listing directory :" + directoryPath + " to remote file "
-                            + serverInfo.getHost() + ":rFile", e);
-                }
-            }
-        }
-        return files;
-    }
-
-    public synchronized void getJobStatuses(String userName, Map<String,JobStatus> jobIDs)throws SSHApiException {
-        int retry = 3;
-        RawCommandInfo rawCommandInfo = jobManagerConfiguration.getUserBasedMonitorCommand(userName);
-        StandardOutReader stdOutReader = new StandardOutReader();
-        while (retry > 0){
-            try {
-                log.info("Executing RawCommand : " + rawCommandInfo.getCommand());
-                CommandExecutor.executeCommand(rawCommandInfo, this.getSession(), stdOutReader);
-                retry=0;
-            } catch (SSHApiException e) {
-                retry--;
-                try {
-                    Thread.sleep(5000);
-                } catch (InterruptedException e1) {
-                    log.error(e1.getMessage(), e1);
-                }
-                reconnect(serverInfo, authenticationInfo);
-                if (retry == 0) {
-                    throw new SSHApiException("Failed Getting statuses  to remote file", e);
-                }
-            }
-        }
-        String result = getOutputifAvailable(stdOutReader, "Error getting job information from the resource !", jobManagerConfiguration.getBaseMonitorCommand());
-        jobManagerConfiguration.getParser().parseJobStatuses(userName, jobIDs, result);
-    }
-
-    public ServerInfo getServerInfo() {
-        return serverInfo;
-    }
-
-    public AuthenticationInfo getAuthenticationInfo() {
-        return authenticationInfo;
-    }
-
-    /**
-     * This gaurantee to return a valid session
-     *
-     * @return
-     */
-    public Session getSession() {
-        return this.session;
-    }
-
-    /**
-     * This method will read standard output and if there's any it will be parsed
-     *
-     * @param jobIDReaderCommandOutput
-     * @param errorMsg
-     * @return
-     * @throws SSHApiException
-     */
-    private String getOutputifAvailable(StandardOutReader jobIDReaderCommandOutput, String errorMsg, String command) throws SSHApiException {
-        String stdOutputString = jobIDReaderCommandOutput.getStdOutputString();
-        String stdErrorString = jobIDReaderCommandOutput.getStdErrorString();
-        log.info("StandardOutput Returned:" + stdOutputString);
-        log.info("StandardError  Returned:" +stdErrorString);
-        String[] list = command.split(File.separator);
-        command = list[list.length - 1];
-        // We are checking for stderr containing the command issued. Thus ignores the verbose logs in stderr.
-        if (stdErrorString != null && stdErrorString.contains(command.trim()) && !stdErrorString.contains("Warning")) {
-            log.error("Standard Error output : " + stdErrorString);
-            throw new SSHApiException(errorMsg + "\n\r StandardOutput: "+ stdOutputString + "\n\r StandardError: "+ stdErrorString);
-        }else if(stdOutputString.contains("error")){
-            throw new SSHApiException(errorMsg + "\n\r StandardOutput: "+ stdOutputString + "\n\r StandardError: "+ stdErrorString);
-        }
-        return stdOutputString;
-    }
-
-    public void disconnect() throws SSHApiException {
-    	if(getSession().isConnected()){
-    		getSession().disconnect();
-    	}
-    }
-    /**
-	
-	 *            the file system abstraction which will be necessary to
-	 *            perform certain file system operations.
-	 * @return the new default JSch implementation.
-	 * @throws JSchException
-	 *             known host keys cannot be loaded.
-	 */
-	protected JSch createJSch(AuthenticationInfo authenticationInfo) throws JSchException {
-//		final File fs = new File(System.getProperty("user.home"));
-		if(authenticationInfo instanceof GSIAuthenticationInfo){
-			final JSch jsch = new ExtendedJSch();
-//			knownHosts(jsch, fs);
-			return jsch;
-		}else{
-		final JSch jsch = new JSch();
-//		knownHosts(jsch, fs);
-		return jsch;
-		}
-		
-	}
-	/**
-	 * Create a new remote session for the requested address.
-	 *
-	 * @param user
-	 *            login to authenticate as.
-	 * @param host
-	 *            server name to connect to.
-	 * @param port
-	 *            port number of the SSH daemon (typically 22).
-	 * @return new session instance, but otherwise unconfigured.
-	 * @throws JSchException
-	 *             the session could not be created.
-	 */
-	private Session createSession(JSch jsch, String user, String host, int port) throws JSchException {
-		final Session session = jsch.getSession(user, host, port);
-		// We retry already in getSession() method. JSch must not retry
-		// on its own.
-		session.setConfig("MaxAuthTries", "1"); //$NON-NLS-1$ //$NON-NLS-2$
-		session.setTimeout(Integer.parseInt(configReader.getConfiguration(SSH_SESSION_TIMEOUT)));
-	    java.util.Properties config = this.configReader.getProperties();
-	    session.setConfig(config);
-	    
-    	return session;
-	}
-	private static void knownHosts(final JSch sch,final File home) throws JSchException {
-		if (home == null)
-			return;
-		final File known_hosts = new File(new File(home, ".ssh"), "known_hosts"); //$NON-NLS-1$ //$NON-NLS-2$
-		try {
-			final FileInputStream in = new FileInputStream(known_hosts);
-			try {
-				sch.setKnownHosts(in);
-			} finally {
-				in.close();
-			}
-		} catch (FileNotFoundException none) {
-			// Oh well. They don't have a known hosts in home.
-		} catch (IOException err) {
-			// Oh well. They don't have a known hosts in home.
-		}
-	}
-}

http://git-wip-us.apache.org/repos/asf/airavata/blob/7b809747/tools/gsissh/src/main/java/org/apache/airavata/gsi/ssh/impl/JobStatus.java
----------------------------------------------------------------------
diff --git a/tools/gsissh/src/main/java/org/apache/airavata/gsi/ssh/impl/JobStatus.java b/tools/gsissh/src/main/java/org/apache/airavata/gsi/ssh/impl/JobStatus.java
deleted file mode 100644
index 66c5e62..0000000
--- a/tools/gsissh/src/main/java/org/apache/airavata/gsi/ssh/impl/JobStatus.java
+++ /dev/null
@@ -1,112 +0,0 @@
- /*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
-*/
- package org.apache.airavata.gsi.ssh.impl;
-
- import javax.print.attribute.standard.JobState;
-
- /**
-  * This will contains all the PBS specific job statuses.
-  * C -  Job is completed after having run/
-  * E -  Job is exiting after having run.
-  * H -  Job is held.
-  * Q -  job is queued, eligible to run or routed.
-  * R -  job is running.
-  * T -  job is being moved to new location.
-  * W -  job is waiting for its execution time
-  * (-a option) to be reached.
-  * S -  (Unicos only) job is suspend.
-  */
- public enum JobStatus {
-     C, E, H, Q, R, T, W, S,U,F,CA,CD,CF,CG,NF,PD,PR,TO,qw,t,r,h,Er,Eqw,PEND,RUN,PSUSP,USUSP,SSUSP,DONE,EXIT,UNKWN,ZOMBI;
-
-     public static JobStatus fromString(String status){
-        if(status != null){
-            if("C".equals(status)){
-                return JobStatus.C;
-            }else if("E".equals(status)){
-                return JobStatus.E;
-            }else if("H".equals(status)){
-                return JobStatus.H;
-            }else if("Q".equals(status)){
-                return JobStatus.Q;
-            }else if("R".equals(status)){
-                return JobStatus.R;
-            }else if("T".equals(status)){
-                return JobStatus.T;
-            }else if("W".equals(status)){
-                return JobStatus.W;
-            }else if("S".equals(status)){
-                return JobStatus.S;
-            }else if("F".equals(status)){
-                return JobStatus.F;
-            }else if("S".equals(status)){
-                return JobStatus.S;
-            }else if("CA".equals(status)){
-                return JobStatus.CA;
-            }else if("CF".equals(status)){
-                return JobStatus.CF;
-            }else if("CD".equals(status)){
-                return JobStatus.CD;
-            }else if("CG".equals(status)){
-                return JobStatus.CG;
-            }else if("NF".equals(status)){
-                return JobStatus.NF;
-            }else if("PD".equals(status)){
-                return JobStatus.PD;
-            }else if("PR".equals(status)){
-                return JobStatus.PR;
-            }else if("TO".equals(status)){
-                return JobStatus.TO;
-            }else if("U".equals(status)){
-                return JobStatus.U;
-            }else if("qw".equals(status)){
-                return JobStatus.qw;
-            }else if("t".equals(status)){
-                return JobStatus.t;
-            }else if("r".equals(status)){
-                return JobStatus.r;
-            }else if("h".equals(status)){
-                return JobStatus.h;
-            }else if("Er".equals(status)){
-                return JobStatus.Er;
-            }else if("Eqw".equals(status)){
-                return JobStatus.Er;
-            }else if("RUN".equals(status)){      // LSF starts here
-                return JobStatus.RUN;
-            }else if("PEND".equals(status)){
-                return JobStatus.PEND;
-            }else if("DONE".equals(status)){
-                return JobStatus.DONE;
-            }else if("PSUSP".equals(status)){
-                return JobStatus.PSUSP;
-            }else if("USUSP".equals(status)){
-                return JobStatus.USUSP;
-            }else if("SSUSP".equals(status)){
-                return JobStatus.SSUSP;
-            }else if("EXIT".equals(status)){
-                return JobStatus.EXIT;
-            }else if("ZOMBI".equals(status)){
-                return JobStatus.ZOMBI;
-            }
-        }
-         return JobStatus.U;
-     }
- }

http://git-wip-us.apache.org/repos/asf/airavata/blob/7b809747/tools/gsissh/src/main/java/org/apache/airavata/gsi/ssh/impl/PBSCluster.java
----------------------------------------------------------------------
diff --git a/tools/gsissh/src/main/java/org/apache/airavata/gsi/ssh/impl/PBSCluster.java b/tools/gsissh/src/main/java/org/apache/airavata/gsi/ssh/impl/PBSCluster.java
deleted file mode 100644
index 58d6a3f..0000000
--- a/tools/gsissh/src/main/java/org/apache/airavata/gsi/ssh/impl/PBSCluster.java
+++ /dev/null
@@ -1,46 +0,0 @@
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
-*/
-package org.apache.airavata.gsi.ssh.impl;
-
-import com.jcraft.jsch.*;
-import org.apache.airavata.gsi.ssh.api.*;
-import org.apache.airavata.gsi.ssh.api.authentication.*;
-import org.apache.airavata.gsi.ssh.api.job.JobManagerConfiguration;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-
-/**
- * This is the default implementation of a cluster.
- * this has most of the methods to be used by the end user of the
- * library.
- */
-public class PBSCluster extends GSISSHAbstractCluster {
-    private static final Logger log = LoggerFactory.getLogger(PBSCluster.class);
-
-
-    public PBSCluster(JobManagerConfiguration jobManagerConfiguration) {
-        super(jobManagerConfiguration);
-    }
-    public PBSCluster(ServerInfo serverInfo, AuthenticationInfo authenticationInfo, JobManagerConfiguration config) throws SSHApiException {
-        super(serverInfo, authenticationInfo,config);
-    }
-}

http://git-wip-us.apache.org/repos/asf/airavata/blob/7b809747/tools/gsissh/src/main/java/org/apache/airavata/gsi/ssh/impl/RawCommandInfo.java
----------------------------------------------------------------------
diff --git a/tools/gsissh/src/main/java/org/apache/airavata/gsi/ssh/impl/RawCommandInfo.java b/tools/gsissh/src/main/java/org/apache/airavata/gsi/ssh/impl/RawCommandInfo.java
deleted file mode 100644
index 0e9d16e..0000000
--- a/tools/gsissh/src/main/java/org/apache/airavata/gsi/ssh/impl/RawCommandInfo.java
+++ /dev/null
@@ -1,55 +0,0 @@
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
- */
-
-package org.apache.airavata.gsi.ssh.impl;
-
-import org.apache.airavata.gsi.ssh.api.CommandInfo;
-
-/**
- * User: AmilaJ (amilaj@apache.org)
- * Date: 8/14/13
- * Time: 5:18 PM
- */
-
-/**
- * The raw command information. String returned by getCommand is directly executed in SSH
- * shell. E.g :- getCommand return string set for rawCommand - "/opt/torque/bin/qsub /home/ogce/test.pbs".
- */
-public class RawCommandInfo implements CommandInfo {
-
-    private String rawCommand;
-
-    public RawCommandInfo(String cmd) {
-        this.rawCommand = cmd;
-    }
-
-    public String getCommand() {
-        return this.rawCommand;
-    }
-
-    public String getRawCommand() {
-        return rawCommand;
-    }
-
-    public void setRawCommand(String rawCommand) {
-        this.rawCommand = rawCommand;
-    }
-}

http://git-wip-us.apache.org/repos/asf/airavata/blob/7b809747/tools/gsissh/src/main/java/org/apache/airavata/gsi/ssh/impl/SSHUserInfo.java
----------------------------------------------------------------------
diff --git a/tools/gsissh/src/main/java/org/apache/airavata/gsi/ssh/impl/SSHUserInfo.java b/tools/gsissh/src/main/java/org/apache/airavata/gsi/ssh/impl/SSHUserInfo.java
deleted file mode 100644
index 68d7ff7..0000000
--- a/tools/gsissh/src/main/java/org/apache/airavata/gsi/ssh/impl/SSHUserInfo.java
+++ /dev/null
@@ -1,63 +0,0 @@
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
- */
-
-package org.apache.airavata.gsi.ssh.impl;
-
-import com.jcraft.jsch.UserInfo;
-
-/**
- * User: AmilaJ (amilaj@apache.org)
- * Date: 9/20/13
- * Time: 2:31 PM
- */
-
-public class SSHUserInfo implements UserInfo {
-
-    private String password;
-
-    public SSHUserInfo(String pwd) {
-        this.password = pwd;
-    }
-
-    public String getPassphrase() {
-        return this.password;
-    }
-
-    public String getPassword() {
-        return this.password;
-    }
-
-    public boolean promptPassword(String message) {
-        return false;  //To change body of implemented methods use File | Settings | File Templates.
-    }
-
-    public boolean promptPassphrase(String message) {
-        return false;  //To change body of implemented methods use File | Settings | File Templates.
-    }
-
-    public boolean promptYesNo(String message) {
-        return false;  //To change body of implemented methods use File | Settings | File Templates.
-    }
-
-    public void showMessage(String message) {
-        //To change body of implemented methods use File | Settings | File Templates.
-    }
-}

http://git-wip-us.apache.org/repos/asf/airavata/blob/7b809747/tools/gsissh/src/main/java/org/apache/airavata/gsi/ssh/impl/StandardOutReader.java
----------------------------------------------------------------------
diff --git a/tools/gsissh/src/main/java/org/apache/airavata/gsi/ssh/impl/StandardOutReader.java b/tools/gsissh/src/main/java/org/apache/airavata/gsi/ssh/impl/StandardOutReader.java
deleted file mode 100644
index 9f5fa4c..0000000
--- a/tools/gsissh/src/main/java/org/apache/airavata/gsi/ssh/impl/StandardOutReader.java
+++ /dev/null
@@ -1,80 +0,0 @@
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
-*/
-package org.apache.airavata.gsi.ssh.impl;
-
-import com.jcraft.jsch.Channel;
-import com.jcraft.jsch.ChannelExec;
-
-import org.apache.airavata.gsi.ssh.api.CommandOutput;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import java.io.ByteArrayOutputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStream;
-
-public class StandardOutReader implements CommandOutput {
-
-    private static final Logger logger = LoggerFactory.getLogger(StandardOutReader.class);
-    String stdOutputString = null;
-    ByteArrayOutputStream errorStream = new ByteArrayOutputStream();
-    public void onOutput(Channel channel) {
-        try {
-            StringBuffer pbsOutput = new StringBuffer("");
-            InputStream inputStream =  channel.getInputStream();
-            byte[] tmp = new byte[1024];
-            do {
-                while (inputStream.available() > 0) {
-                    int i = inputStream.read(tmp, 0, 1024);
-                    if (i < 0) break;
-                    pbsOutput.append(new String(tmp, 0, i));
-                }
-            } while (!channel.isClosed()) ;
-            String output = pbsOutput.toString();
-            this.setStdOutputString(output);
-        } catch (IOException e) {
-            logger.error(e.getMessage(), e);
-        }
-
-    }
-
-
-    public void exitCode(int code) {
-        System.out.println("Program exit code - " + code);
-    }
-
-    public String getStdOutputString() {
-        return stdOutputString;
-    }
-
-    public void setStdOutputString(String stdOutputString) {
-        this.stdOutputString = stdOutputString;
-    }
-
-    public String getStdErrorString() {
-        return errorStream.toString();
-    }
-
-    public OutputStream getStandardError() {
-        return errorStream;
-    }
-}

http://git-wip-us.apache.org/repos/asf/airavata/blob/7b809747/tools/gsissh/src/main/java/org/apache/airavata/gsi/ssh/impl/SystemCommandOutput.java
----------------------------------------------------------------------
diff --git a/tools/gsissh/src/main/java/org/apache/airavata/gsi/ssh/impl/SystemCommandOutput.java b/tools/gsissh/src/main/java/org/apache/airavata/gsi/ssh/impl/SystemCommandOutput.java
deleted file mode 100644
index 37e1d69..0000000
--- a/tools/gsissh/src/main/java/org/apache/airavata/gsi/ssh/impl/SystemCommandOutput.java
+++ /dev/null
@@ -1,78 +0,0 @@
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
- */
-
-package org.apache.airavata.gsi.ssh.impl;
-
-import com.jcraft.jsch.Channel;
-import org.apache.airavata.gsi.ssh.api.CommandOutput;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.OutputStream;
-
-/**
- * User: AmilaJ (amilaj@apache.org)
- * Date: 8/15/13
- * Time: 10:44 AM
- */
-
-public class SystemCommandOutput implements CommandOutput {
-
-    private static final Logger logger = LoggerFactory.getLogger(SystemCommandOutput.class);
-    public void onOutput(Channel channel) {
-        try {
-            InputStream inputStream = channel.getInputStream();
-
-            byte[] tmp = new byte[1024];
-            while (true) {
-                while (inputStream.available() > 0) {
-                    int i = inputStream.read(tmp, 0, 1024);
-                    if (i < 0) break;
-                    System.out.print(new String(tmp, 0, i));
-                }
-                if (channel.isClosed()) {
-                    System.out.println("exit-status: " + channel.getExitStatus());
-                    break;
-                }
-                try {
-                    Thread.sleep(1000);
-                } catch (Exception ignored) {
-                }
-            }
-
-        } catch (IOException e) {
-            logger.error(e.getMessage(), e);
-        }
-
-    }
-
-    public OutputStream getStandardError() {
-        return System.err;
-    }
-
-    public void exitCode(int code) {
-        System.out.println("Program exit code - " + code);
-    }
-
-
-}

http://git-wip-us.apache.org/repos/asf/airavata/blob/7b809747/tools/gsissh/src/main/java/org/apache/airavata/gsi/ssh/impl/authentication/DefaultPasswordAuthenticationInfo.java
----------------------------------------------------------------------
diff --git a/tools/gsissh/src/main/java/org/apache/airavata/gsi/ssh/impl/authentication/DefaultPasswordAuthenticationInfo.java b/tools/gsissh/src/main/java/org/apache/airavata/gsi/ssh/impl/authentication/DefaultPasswordAuthenticationInfo.java
deleted file mode 100644
index 2679f57..0000000
--- a/tools/gsissh/src/main/java/org/apache/airavata/gsi/ssh/impl/authentication/DefaultPasswordAuthenticationInfo.java
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
- */
-
-package org.apache.airavata.gsi.ssh.impl.authentication;
-
-/**
- * User: AmilaJ (amilaj@apache.org)
- * Date: 9/20/13
- * Time: 12:15 PM
- */
-
-import org.apache.airavata.gsi.ssh.api.authentication.GSIAuthenticationInfo;
-import org.apache.airavata.gsi.ssh.api.authentication.SSHPasswordAuthentication;
-import org.ietf.jgss.*;
-
-/**
- * An authenticator used for raw SSH sessions. Gives SSH user name, password
- * directly.
- * This is only an example implementation.
- */
-public class DefaultPasswordAuthenticationInfo implements SSHPasswordAuthentication {
-
-    private String password;
-
-    public DefaultPasswordAuthenticationInfo(String pwd) {
-        this.password = pwd;
-    }
-
-    public String getPassword(String userName, String hostName) {
-        return password;
-    }
-}

http://git-wip-us.apache.org/repos/asf/airavata/blob/7b809747/tools/gsissh/src/main/java/org/apache/airavata/gsi/ssh/impl/authentication/DefaultPublicKeyAuthentication.java
----------------------------------------------------------------------
diff --git a/tools/gsissh/src/main/java/org/apache/airavata/gsi/ssh/impl/authentication/DefaultPublicKeyAuthentication.java b/tools/gsissh/src/main/java/org/apache/airavata/gsi/ssh/impl/authentication/DefaultPublicKeyAuthentication.java
deleted file mode 100644
index cadee38..0000000
--- a/tools/gsissh/src/main/java/org/apache/airavata/gsi/ssh/impl/authentication/DefaultPublicKeyAuthentication.java
+++ /dev/null
@@ -1,68 +0,0 @@
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
- */
-
-package org.apache.airavata.gsi.ssh.impl.authentication;
-
-import org.apache.airavata.gsi.ssh.api.authentication.SSHPublicKeyAuthentication;
-
-/**
- * User: AmilaJ (amilaj@apache.org)
- * Date: 10/4/13
- * Time: 11:44 AM
- */
-
-/**
- * Default public key authentication.
- * Note : This is only a sample implementation.
- */
-public class DefaultPublicKeyAuthentication implements SSHPublicKeyAuthentication {
-
-    private byte[] privateKey;
-    private byte[] publicKey;
-    private String passPhrase = null;
-
-    public DefaultPublicKeyAuthentication(byte[] priv, byte[] pub) {
-        this.privateKey = priv;
-        this.publicKey = pub;
-    }
-
-    public DefaultPublicKeyAuthentication(byte[] priv, byte[] pub, String pass) {
-        this.privateKey = priv;
-        this.publicKey = pub;
-        this.passPhrase = pass;
-    }
-
-    public String getPassPhrase() {
-        return passPhrase;
-    }
-
-    public void bannerMessage(String message) {
-        System.out.println(message);
-    }
-
-    public byte[] getPrivateKey(String userName, String hostName) {
-        return privateKey;
-    }
-
-    public byte[] getPublicKey(String userName, String hostName) {
-        return publicKey;
-    }
-}

http://git-wip-us.apache.org/repos/asf/airavata/blob/7b809747/tools/gsissh/src/main/java/org/apache/airavata/gsi/ssh/impl/authentication/DefaultPublicKeyFileAuthentication.java
----------------------------------------------------------------------
diff --git a/tools/gsissh/src/main/java/org/apache/airavata/gsi/ssh/impl/authentication/DefaultPublicKeyFileAuthentication.java b/tools/gsissh/src/main/java/org/apache/airavata/gsi/ssh/impl/authentication/DefaultPublicKeyFileAuthentication.java
deleted file mode 100644
index 495d8e1..0000000
--- a/tools/gsissh/src/main/java/org/apache/airavata/gsi/ssh/impl/authentication/DefaultPublicKeyFileAuthentication.java
+++ /dev/null
@@ -1,70 +0,0 @@
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
- */
-
-package org.apache.airavata.gsi.ssh.impl.authentication;
-
-import org.apache.airavata.gsi.ssh.api.authentication.SSHPublicKeyFileAuthentication;
-
-/**
- * User: AmilaJ (amilaj@apache.org)
- * Date: 10/4/13
- * Time: 11:40 AM
- */
-
-/**
- * Default public key authentication using files.
- * Note : This is only a sample implementation.
- */
-public class DefaultPublicKeyFileAuthentication implements SSHPublicKeyFileAuthentication {
-
-    private String publicKeyFile;
-    private String privateKeyFile;
-    private String passPhrase = null;
-
-    public DefaultPublicKeyFileAuthentication(String pubFile, String privFile) {
-        this.publicKeyFile = pubFile;
-        this.privateKeyFile = privFile;
-
-    }
-
-    public DefaultPublicKeyFileAuthentication(String pubFile, String privFile, String pass) {
-        this.publicKeyFile = pubFile;
-        this.privateKeyFile = privFile;
-        this.passPhrase = pass;
-
-    }
-
-    public String getPassPhrase() {
-        return passPhrase;
-    }
-
-    public void bannerMessage(String message) {
-        System.out.println(message);
-    }
-
-    public String getPublicKeyFile(String userName, String hostName) {
-        return publicKeyFile;
-    }
-
-    public String getPrivateKeyFile(String userName, String hostName) {
-        return privateKeyFile;
-    }
-}

http://git-wip-us.apache.org/repos/asf/airavata/blob/7b809747/tools/gsissh/src/main/java/org/apache/airavata/gsi/ssh/impl/authentication/MyProxyAuthenticationInfo.java
----------------------------------------------------------------------
diff --git a/tools/gsissh/src/main/java/org/apache/airavata/gsi/ssh/impl/authentication/MyProxyAuthenticationInfo.java b/tools/gsissh/src/main/java/org/apache/airavata/gsi/ssh/impl/authentication/MyProxyAuthenticationInfo.java
deleted file mode 100644
index b95ae99..0000000
--- a/tools/gsissh/src/main/java/org/apache/airavata/gsi/ssh/impl/authentication/MyProxyAuthenticationInfo.java
+++ /dev/null
@@ -1,108 +0,0 @@
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
- */
-
-package org.apache.airavata.gsi.ssh.impl.authentication;
-
-import org.apache.airavata.gsi.ssh.api.authentication.GSIAuthenticationInfo;
-import org.globus.myproxy.MyProxy;
-import org.globus.myproxy.MyProxyException;
-import org.ietf.jgss.GSSCredential;
-
-/**
- * User: AmilaJ (amilaj@apache.org)
- * Date: 8/14/13
- * Time: 5:22 PM
- */
-
-public class MyProxyAuthenticationInfo extends GSIAuthenticationInfo {
-
-    public static final String X509_CERT_DIR = "X509_CERT_DIR";
-    private String userName;
-    private String password;
-    private String myProxyUrl;
-    private int myProxyPort;
-    private int lifeTime;
-
-    public MyProxyAuthenticationInfo(String userName, String password, String myProxyUrl, int myProxyPort,
-                                     int life, String certificatePath) {
-        this.userName = userName;
-        this.password = password;
-        this.myProxyUrl = myProxyUrl;
-        this.myProxyPort = myProxyPort;
-        this.lifeTime = life;
-        properties.setProperty(X509_CERT_DIR, certificatePath);
-    }
-
-    public String getUserName() {
-        return userName;
-    }
-
-    public void setUserName(String userName) {
-        this.userName = userName;
-    }
-
-    public String getPassword() {
-        return password;
-    }
-
-    public void setPassword(String password) {
-        this.password = password;
-    }
-
-    public String getMyProxyUrl() {
-        return myProxyUrl;
-    }
-
-    public void setMyProxyUrl(String myProxyUrl) {
-        this.myProxyUrl = myProxyUrl;
-    }
-
-    public int getMyProxyPort() {
-        return myProxyPort;
-    }
-
-    public void setMyProxyPort(int myProxyPort) {
-        this.myProxyPort = myProxyPort;
-    }
-
-    public int getLifeTime() {
-        return lifeTime;
-    }
-
-    public void setLifeTime(int lifeTime) {
-        this.lifeTime = lifeTime;
-    }
-
-    public GSSCredential getCredentials() throws SecurityException {
-        return getMyProxyCredentials();
-    }
-
-    private GSSCredential getMyProxyCredentials() throws SecurityException {
-        MyProxy myproxy = new MyProxy(this.myProxyUrl, this.myProxyPort);
-        try {
-            return myproxy.get(this.getUserName(), this.password, this.lifeTime);
-        } catch (MyProxyException e) {
-            throw new SecurityException("Error getting proxy credentials", e);
-        }
-    }
-
-
-}

http://git-wip-us.apache.org/repos/asf/airavata/blob/7b809747/tools/gsissh/src/main/java/org/apache/airavata/gsi/ssh/jsch/ExtendedJSch.java
----------------------------------------------------------------------
diff --git a/tools/gsissh/src/main/java/org/apache/airavata/gsi/ssh/jsch/ExtendedJSch.java b/tools/gsissh/src/main/java/org/apache/airavata/gsi/ssh/jsch/ExtendedJSch.java
deleted file mode 100644
index 047580e..0000000
--- a/tools/gsissh/src/main/java/org/apache/airavata/gsi/ssh/jsch/ExtendedJSch.java
+++ /dev/null
@@ -1,64 +0,0 @@
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
- */
-
-package org.apache.airavata.gsi.ssh.jsch;
-
-import com.jcraft.jsch.ExtendedSession;
-import com.jcraft.jsch.JSch;
-import com.jcraft.jsch.JSchException;
-import com.jcraft.jsch.Session;
-import org.apache.airavata.gsi.ssh.api.authentication.GSIAuthenticationInfo;
-
-/**
- * User: AmilaJ (amilaj@apache.org)
- * Date: 8/15/13
- * Time: 10:03 AM
- */
-
-/**
- * Extended JSch to incorporate authentication info.
- */
-public class ExtendedJSch extends JSch {
-
-    private GSIAuthenticationInfo authenticationInfo;
-
-    public ExtendedJSch() {
-        super();
-    }
-
-    public GSIAuthenticationInfo getAuthenticationInfo() {
-        return authenticationInfo;
-    }
-
-    public void setAuthenticationInfo(GSIAuthenticationInfo authenticationInfo) {
-        this.authenticationInfo = authenticationInfo;
-    }
-
-    public Session getSession(String username, String host, int port) throws JSchException {
-
-        if(host==null){
-            throw new JSchException("host must not be null.");
-        }
-        Session s = new ExtendedSession(this, username, host, port);
-        return s;
-
-    }
-}

http://git-wip-us.apache.org/repos/asf/airavata/blob/7b809747/tools/gsissh/src/main/java/org/apache/airavata/gsi/ssh/listener/JobSubmissionListener.java
----------------------------------------------------------------------
diff --git a/tools/gsissh/src/main/java/org/apache/airavata/gsi/ssh/listener/JobSubmissionListener.java b/tools/gsissh/src/main/java/org/apache/airavata/gsi/ssh/listener/JobSubmissionListener.java
deleted file mode 100644
index 426cf20..0000000
--- a/tools/gsissh/src/main/java/org/apache/airavata/gsi/ssh/listener/JobSubmissionListener.java
+++ /dev/null
@@ -1,81 +0,0 @@
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
-*/
-package org.apache.airavata.gsi.ssh.listener;
-
-import org.apache.airavata.gsi.ssh.api.SSHApiException;
-import org.apache.airavata.gsi.ssh.api.job.JobDescriptor;
-import org.apache.airavata.gsi.ssh.impl.JobStatus;
-
-/**
- * This interface can be implemented by the end user of the API
- * to do desired operations based on the job status change. API has a
- * default joblistener which can be used by the end users, but its
- * configurable and can be parseSingleJob to jobsubmission methods.
- */
-public abstract class JobSubmissionListener {
-
-    private JobStatus jobStatus = JobStatus.U;
-
-    /**
-     * This can be usd to perform some operation during status change
-     *
-     * @param jobDescriptor
-     * @throws SSHApiException
-     */
-    public abstract void statusChanged(JobDescriptor jobDescriptor) throws SSHApiException;
-
-    /**
-     * This can be usd to perform some operation during status change
-     * @param jobStatus
-     * @throws SSHApiException
-     */
-    public abstract void statusChanged(JobStatus jobStatus) throws SSHApiException;
-
-
-    public JobStatus getJobStatus() {
-        return jobStatus;
-    }
-
-    public void setJobStatus(JobStatus jobStatus) {
-        this.jobStatus = jobStatus;
-    }
-
-    /**
-     * This method is used to block the process until the currentStatus of the job is DONE or FAILED
-     */
-    public void waitFor()  throws SSHApiException{
-        while (!isJobDone()) {
-            synchronized (this) {
-                try {
-                    wait();
-                } catch (InterruptedException e) {}
-            }
-        }
-    }
-
-    /**
-     * BAsed on the implementation user can define how to decide the job done
-     * scenario
-     * @return
-     * @throws SSHApiException
-     */
-    public abstract boolean isJobDone() throws SSHApiException;
-}

http://git-wip-us.apache.org/repos/asf/airavata/blob/7b809747/tools/gsissh/src/main/java/org/apache/airavata/gsi/ssh/util/CommonUtils.java
----------------------------------------------------------------------
diff --git a/tools/gsissh/src/main/java/org/apache/airavata/gsi/ssh/util/CommonUtils.java b/tools/gsissh/src/main/java/org/apache/airavata/gsi/ssh/util/CommonUtils.java
deleted file mode 100644
index c6cd5c8..0000000
--- a/tools/gsissh/src/main/java/org/apache/airavata/gsi/ssh/util/CommonUtils.java
+++ /dev/null
@@ -1,81 +0,0 @@
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
-*/
-package org.apache.airavata.gsi.ssh.util;
-
-import org.apache.airavata.gsi.ssh.api.job.*;
-import org.apache.airavata.gsi.ssh.impl.JobStatus;
-
-public class CommonUtils {
-    /**
-     * This returns true if the give job is finished
-     * otherwise false
-     *
-     * @param job
-     * @return
-     */
-    public static boolean isJobFinished(JobDescriptor job) {
-        if (JobStatus.C.toString().equals(job.getStatus())) {
-            return true;
-        } else {
-            return false;
-        }
-    }
-
-    /**
-     * This will read
-     *
-     * @param maxWalltime
-     * @return
-     */
-    public static String maxWallTimeCalculator(int maxWalltime) {
-        if (maxWalltime < 60) {
-            return "00:" + maxWalltime + ":00";
-        } else {
-            int minutes = maxWalltime % 60;
-            int hours = maxWalltime / 60;
-            return hours + ":" + minutes + ":00";
-        }
-    }
-    public static String maxWallTimeCalculatorForLSF(int maxWalltime) {
-        if (maxWalltime < 60) {
-            return "00:" + maxWalltime;
-        } else {
-            int minutes = maxWalltime % 60;
-            int hours = maxWalltime / 60;
-            return hours + ":" + minutes;
-        }
-    }
-    public static JobManagerConfiguration getPBSJobManager(String installedPath) {
-        return new PBSJobConfiguration("PBSTemplate.xslt",".pbs", installedPath, new PBSOutputParser());
-    }
-
-    public static JobManagerConfiguration getSLURMJobManager(String installedPath) {
-        return new SlurmJobConfiguration("SLURMTemplate.xslt", ".slurm", installedPath, new SlurmOutputParser());
-    }
-
-     public static JobManagerConfiguration getUGEJobManager(String installedPath) {
-        return new UGEJobConfiguration("UGETemplate.xslt", ".pbs", installedPath, new UGEOutputParser());
-    }
-
-    public static JobManagerConfiguration getLSFJobManager(String installedPath) {
-        return new LSFJobConfiguration("LSFTemplate.xslt", ".lsf", installedPath, new LSFOutputParser());
-    }
-}

http://git-wip-us.apache.org/repos/asf/airavata/blob/7b809747/tools/gsissh/src/main/java/org/apache/airavata/gsi/ssh/util/SSHAPIUIKeyboardInteractive.java
----------------------------------------------------------------------
diff --git a/tools/gsissh/src/main/java/org/apache/airavata/gsi/ssh/util/SSHAPIUIKeyboardInteractive.java b/tools/gsissh/src/main/java/org/apache/airavata/gsi/ssh/util/SSHAPIUIKeyboardInteractive.java
deleted file mode 100644
index e3c0671..0000000
--- a/tools/gsissh/src/main/java/org/apache/airavata/gsi/ssh/util/SSHAPIUIKeyboardInteractive.java
+++ /dev/null
@@ -1,73 +0,0 @@
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
- */
-
-package org.apache.airavata.gsi.ssh.util;
-
-import com.jcraft.jsch.UIKeyboardInteractive;
-import com.jcraft.jsch.UserInfo;
-
-/**
- * User: AmilaJ (amilaj@apache.org)
- * Date: 10/4/13
- * Time: 8:34 AM
- */
-
-/**
- * This is dummy class, the keyboard interactivity is not really used when acting as an API.
- * But to get things working we have this.
- */
-public class SSHAPIUIKeyboardInteractive implements UIKeyboardInteractive, UserInfo {
-
-    private String password;
-
-    public SSHAPIUIKeyboardInteractive(String pwd) {
-        this.password = pwd;
-    }
-
-    public String[] promptKeyboardInteractive(String destination, String name,
-                                              String instruction, String[] prompt, boolean[] echo) {
-        return null;
-    }
-
-    public String getPassphrase() {
-        return password;
-    }
-
-    public String getPassword() {
-        return password;
-    }
-
-    public boolean promptPassword(String message) {
-        return false;  //To change body of implemented methods use File | Settings | File Templates.
-    }
-
-    public boolean promptPassphrase(String message) {
-        return false;  //To change body of implemented methods use File | Settings | File Templates.
-    }
-
-    public boolean promptYesNo(String message) {
-        return false;  //To change body of implemented methods use File | Settings | File Templates.
-    }
-
-    public void showMessage(String message) {
-        //To change body of implemented methods use File | Settings | File Templates.
-    }
-}

http://git-wip-us.apache.org/repos/asf/airavata/blob/7b809747/tools/gsissh/src/main/java/org/apache/airavata/gsi/ssh/util/SSHKeyPasswordHandler.java
----------------------------------------------------------------------
diff --git a/tools/gsissh/src/main/java/org/apache/airavata/gsi/ssh/util/SSHKeyPasswordHandler.java b/tools/gsissh/src/main/java/org/apache/airavata/gsi/ssh/util/SSHKeyPasswordHandler.java
deleted file mode 100644
index 0e1fc2a..0000000
--- a/tools/gsissh/src/main/java/org/apache/airavata/gsi/ssh/util/SSHKeyPasswordHandler.java
+++ /dev/null
@@ -1,68 +0,0 @@
-/*
- *
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- *
- */
-
-package org.apache.airavata.gsi.ssh.util;
-
-import com.jcraft.jsch.UserInfo;
-import org.apache.airavata.gsi.ssh.api.authentication.SSHKeyAuthentication;
-import sun.reflect.generics.reflectiveObjects.NotImplementedException;
-
-/**
- * User: AmilaJ (amilaj@apache.org)
- * Date: 10/4/13
- * Time: 2:22 PM
- */
-
-/**
- * This class is used to get the pass phrase to decrypt public/private keys.
- */
-public class SSHKeyPasswordHandler implements UserInfo {
-
-    private SSHKeyAuthentication keyAuthenticationHandler;
-
-    public SSHKeyPasswordHandler(SSHKeyAuthentication handler) {
-        this.keyAuthenticationHandler = handler;
-    }
-
-    public String getPassphrase() {
-        return keyAuthenticationHandler.getPassPhrase();
-    }
-
-    public String getPassword() {
-        throw new NotImplementedException();
-    }
-
-    public boolean promptPassword(String message) {
-        return false;
-    }
-
-    public boolean promptPassphrase(String message) {
-        return true;
-    }
-
-    public boolean promptYesNo(String message) {
-        return false;
-    }
-
-    public void showMessage(String message) {
-        keyAuthenticationHandler.bannerMessage(message);
-    }
-}