in wagon-providers/wagon-ftp/src/main/java/org/apache/maven/wagon/providers/ftp/FtpWagon.java [87:190]
protected void openConnectionInternal()
throws ConnectionException, AuthenticationException
{
AuthenticationInfo authInfo = getAuthenticationInfo();
if ( authInfo == null )
{
throw new NullPointerException( "authenticationInfo cannot be null" );
}
if ( authInfo.getUserName() == null )
{
authInfo.setUserName( System.getProperty( "user.name" ) );
}
String username = authInfo.getUserName();
String password = authInfo.getPassword();
if ( username == null )
{
throw new AuthenticationException( "Username not specified for repository " + getRepository().getId() );
}
if ( password == null )
{
throw new AuthenticationException( "Password not specified for repository " + getRepository().getId() );
}
String host = getRepository().getHost();
ftp = createClient();
ftp.setDefaultTimeout( getTimeout() );
ftp.setDataTimeout( getTimeout() );
ftp.setControlEncoding( getControlEncoding() );
ftp.addProtocolCommandListener( new PrintCommandListener( this ) );
try
{
if ( getRepository().getPort() != WagonConstants.UNKNOWN_PORT )
{
ftp.connect( host, getRepository().getPort() );
}
else
{
ftp.connect( host );
}
// After connection attempt, you should check the reply code to
// verify
// success.
int reply = ftp.getReplyCode();
if ( !FTPReply.isPositiveCompletion( reply ) )
{
ftp.disconnect();
throw new AuthenticationException( "FTP server refused connection." );
}
}
catch ( IOException e )
{
if ( ftp.isConnected() )
{
try
{
fireSessionError( e );
ftp.disconnect();
}
catch ( IOException f )
{
// do nothing
}
}
throw new AuthenticationException( "Could not connect to server.", e );
}
try
{
if ( !ftp.login( username, password ) )
{
throw new AuthenticationException( "Cannot login to remote system" );
}
fireSessionDebug( "Remote system is " + ftp.getSystemName() );
// Set to binary mode.
ftp.setFileType( FTP.BINARY_FILE_TYPE );
ftp.setListHiddenFiles( true );
// Use passive mode as default because most of us are
// behind firewalls these days.
if ( isPassiveMode() )
{
ftp.enterLocalPassiveMode();
}
}
catch ( IOException e )
{
throw new ConnectionException( "Cannot login to remote system", e );
}
}