Subversion Repositories bacoAlunos

Rev

Rev 406 | Blame | Compare with Previous | Last modification | View Log | RSS feed

package pt.estgp.estgweb.web;

import org.apache.commons.net.ftp.FTPClient;
import org.apache.log4j.Logger;

import java.util.HashMap;
import java.net.URL;
import java.net.MalformedURLException;
import java.io.IOException;

/**
 * @author Jorge
 * @date 18/Jan/2009
 * @time 18:35:11
 */

public class FtpServer
{
    private static final 1.5.0/docs/api/java/util/logging/Logger.html">Logger logger = 1.5.0/docs/api/java/util/logging/Logger.html">Logger.getLogger(FtpServer.class);


    private static HashMap<String, FtpServer> servers = new HashMap<String, FtpServer>();


    1.5.0/docs/api/java/lang/String.html">String host = null;
    int port = 21;
    1.5.0/docs/api/java/lang/String.html">String username = null;
    1.5.0/docs/api/java/lang/String.html">String password = null;


    public FtpServer(1.5.0/docs/api/java/lang/String.html">String host, int port)
    {
        this.host = host;
        if (port > 0)
            this.port = port;
    }

    public FtpServer(1.5.0/docs/api/java/lang/String.html">String host, int port, 1.5.0/docs/api/java/lang/String.html">String username, 1.5.0/docs/api/java/lang/String.html">String password)
    {
        this.host = host;
        this.port = port;
        this.username = username;
        this.password = password;
    }

    public FTPClient getClient() throws 1.5.0/docs/api/java/io/IOException.html">IOException
    {
        FTPClient ftp = new FTPClient();
        ftp.connect(host, port);
        if (username != null)
            ftp.user(username);
        if (password != null)
            ftp.pass(password);
        return ftp;
    }

    public 1.5.0/docs/api/java/lang/String.html">String getHost()
    {
        return host;
    }

    public void setHost(1.5.0/docs/api/java/lang/String.html">String host)
    {
        this.host = host;
    }

    public int getPort()
    {
        return port;
    }

    public void setPort(int port)
    {
        this.port = port;
    }

    public 1.5.0/docs/api/java/lang/String.html">String getUsername()
    {
        return username;
    }

    public void setUsername(1.5.0/docs/api/java/lang/String.html">String username)
    {
        this.username = username;
    }

    public 1.5.0/docs/api/java/lang/String.html">String getPassword()
    {
        return password;
    }

    public void setPassword(1.5.0/docs/api/java/lang/String.html">String password)
    {
        this.password = password;
    }

    public static FtpServer getServer(1.5.0/docs/api/java/lang/String.html">String urlStr, 1.5.0/docs/api/java/lang/String.html">String user, 1.5.0/docs/api/java/lang/String.html">String pass)
    {
        FtpServer ftpServer = servers.get(urlStr);
        if (ftpServer == null)
            ftpServer = addServer(urlStr, user, pass);
        return ftpServer;
    }

    public static FtpServer getNewServer(1.5.0/docs/api/java/lang/String.html">String urlStr, 1.5.0/docs/api/java/lang/String.html">String user, 1.5.0/docs/api/java/lang/String.html">String pass)
    {

        try
        {
            1.5.0/docs/api/java/net/URL.html">URL url = new 1.5.0/docs/api/java/net/URL.html">URL(urlStr);
            1.5.0/docs/api/java/lang/String.html">String host = url.getHost();
            int port = url.getPort();
            if (port <= 0)
                port = 21;
            logger.info("Connecting to " + host + "in port:" + port);
            return new FtpServer(host, port, user, pass);
        }
        catch (1.5.0/docs/api/java/net/MalformedURLException.html">MalformedURLException e)
        {
            logger.error(e, e);
        }
        catch (1.5.0/docs/api/java/io/IOException.html">IOException e)
        {
            logger.error(e, e);
        }
        return null;

    }

    /**
     * Add a ftpServer to Cache
     *
     * @param urlStr to parse
     * @param user   username
     * @param pass   password
     * @return ftpServer
     */

    private static synchronized FtpServer addServer(1.5.0/docs/api/java/lang/String.html">String urlStr, 1.5.0/docs/api/java/lang/String.html">String user, 1.5.0/docs/api/java/lang/String.html">String pass)
    {
        try
        {
            1.5.0/docs/api/java/net/URL.html">URL url = new 1.5.0/docs/api/java/net/URL.html">URL(urlStr);
            1.5.0/docs/api/java/lang/String.html">String host = url.getHost();
            int port = url.getPort();
            if (port <= 0)
                port = 21;
            logger.info("Connecting to " + host + " in port:" + port);
            FtpServer ftpServer = new FtpServer(host, port, user, pass);
            servers.put(urlStr, ftpServer);
            return ftpServer;
        }
        catch (1.5.0/docs/api/java/net/MalformedURLException.html">MalformedURLException e)
        {
            logger.error(e, e);
        }
        catch (1.5.0/docs/api/java/io/IOException.html">IOException e)
        {
            logger.error(e, e);
        }
        return null;
    }


}