You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@commons.apache.org by im...@apache.org on 2004/05/26 10:21:18 UTC

cvs commit: jakarta-commons-sandbox/vfs/src/java/org/apache/commons/vfs/provider/ftp FtpFileSystem.java

imario      2004/05/26 01:21:18

  Modified:    vfs/src/java/org/apache/commons/vfs/provider/ftp
                        FtpFileSystem.java
  Log:
  moved create of ftpclient to its own factory
  
  Revision  Changes    Path
  1.29      +19 -96    jakarta-commons-sandbox/vfs/src/java/org/apache/commons/vfs/provider/ftp/FtpFileSystem.java
  
  Index: FtpFileSystem.java
  ===================================================================
  RCS file: /home/cvs/jakarta-commons-sandbox/vfs/src/java/org/apache/commons/vfs/provider/ftp/FtpFileSystem.java,v
  retrieving revision 1.28
  retrieving revision 1.29
  diff -u -r1.28 -r1.29
  --- FtpFileSystem.java	19 May 2004 19:34:06 -0000	1.28
  +++ FtpFileSystem.java	26 May 2004 08:21:18 -0000	1.29
  @@ -1,12 +1,12 @@
   /*
    * Copyright 2002, 2003,2004 The Apache Software Foundation.
  - * 
  + *
    * Licensed 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.
  @@ -17,9 +17,7 @@
   
   import org.apache.commons.logging.Log;
   import org.apache.commons.logging.LogFactory;
  -import org.apache.commons.net.ftp.FTP;
   import org.apache.commons.net.ftp.FTPClient;
  -import org.apache.commons.net.ftp.FTPReply;
   import org.apache.commons.vfs.FileName;
   import org.apache.commons.vfs.FileObject;
   import org.apache.commons.vfs.FileSystemException;
  @@ -42,37 +40,21 @@
   {
       private final static Log log = LogFactory.getLog(FtpFileSystem.class);
   
  -    private final String hostname;
  -    private final int port;
  -    private final String username;
  -    private final String password;
  +//    private final String hostname;
  +//    private final int port;
  +//    private final String username;
  +//    private final String password;
   
       // An idle client
       private FTPClient idleClient;
   
  -    public FtpFileSystem(final GenericFileName rootName, final FileSystemOptions fileSystemOptions)
  +    public FtpFileSystem(final GenericFileName rootName, final FTPClient ftpClient, final FileSystemOptions fileSystemOptions)
       {
           super(rootName, null, fileSystemOptions);
  -        hostname = rootName.getHostName();
  -        port = rootName.getPort();
  +        // hostname = rootName.getHostName();
  +        // port = rootName.getPort();
   
  -        // Determine the username and password to use
  -        if (rootName.getUserName() == null)
  -        {
  -            username = "anonymous";
  -        }
  -        else
  -        {
  -            username = rootName.getUserName();
  -        }
  -        if (rootName.getPassword() == null)
  -        {
  -            password = "anonymous";
  -        }
  -        else
  -        {
  -            password = rootName.getPassword();
  -        }
  +        idleClient = ftpClient;
       }
   
       public void close()
  @@ -121,7 +103,14 @@
       {
           if (idleClient == null)
           {
  -            return createConnection();
  +            final GenericFileName rootName = (GenericFileName) getRoot().getName();
  +
  +            return FtpClientFactory.createConnection(rootName.getHostName(),
  +                rootName.getPort(),
  +                rootName.getUserName(),
  +                rootName.getPassword(),
  +                rootName.getPath());
  +            // return createConnection();
           }
           else
           {
  @@ -156,70 +145,4 @@
       {
           return new FtpFileObject(name, this, getRootName());
       }
  -
  -    /**
  -     * Creates a new connection to the server.
  -     */
  -    private FTPClient createConnection()
  -        throws FileSystemException
  -    {
  -        try
  -        {
  -            final FTPClient client = new FTPClient();
  -
  -            /* as soon as commons-1.2 will be released
  -            FTPFileEntryParserFactory myFactory = FtpFileSystemConfigBuilder.getInstance().getFTPFileEntryParserFactory(getFileSystemOptions());
  -            if (myFactory != null)
  -            {
  -                client.setParserFactory(myFactory);
  -            }
  -            */
  -
  -            try
  -            {
  -                client.connect(hostname, port);
  -
  -                int reply = client.getReplyCode();
  -                if (!FTPReply.isPositiveCompletion(reply))
  -                {
  -                    throw new FileSystemException("vfs.provider.ftp/connect-rejected.error", hostname);
  -                }
  -
  -                // Login
  -                if (!client.login(username, password))
  -                {
  -                    throw new FileSystemException("vfs.provider.ftp/login.error", new Object[]{hostname, username}, null);
  -                }
  -
  -                // Set binary mode
  -                if (!client.setFileType(FTP.BINARY_FILE_TYPE))
  -                {
  -                    throw new FileSystemException("vfs.provider.ftp/set-binary.error", hostname);
  -                }
  -
  -                // Change to root by default
  -                // All file operations a relative to the filesystem-root
  -                String root = getRoot().getName().getPath();
  -                if (root != null)
  -                {
  -                    if (!client.changeWorkingDirectory(root))
  -                    {
  -                        throw new FileSystemException("vfs.provider/get-attributes-no-exist.error", "/");
  -                    }
  -                }
  -            }
  -            catch (final IOException e)
  -            {
  -                closeConnection(client);
  -                throw e;
  -            }
  -
  -            return client;
  -        }
  -        catch (final Exception exc)
  -        {
  -            throw new FileSystemException("vfs.provider.ftp/connect.error", new Object[]{hostname}, exc);
  -        }
  -    }
  -
   }
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: commons-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: commons-dev-help@jakarta.apache.org