From ac3fef760c88c69fb0fc212cb667c063424433e3 Mon Sep 17 00:00:00 2001 From: Javier Montalvo Orus Date: Tue, 7 Nov 2006 12:26:51 +0000 Subject: [PATCH] Moved logging console setup to org.eclipse.subsystems.files.ftp --- .../META-INF/MANIFEST.MF | 4 +- .../rse/services/files/ftp/FTPService.java | 46 ++++++------------- .../files/ftp/FTPServiceResources.java | 8 +++- .../files/ftp/FTPServiceResources.properties | 9 +++- .../META-INF/MANIFEST.MF | 3 +- .../connectorservice/FTPConnectorService.java | 36 +++++++++++++-- 6 files changed, 63 insertions(+), 43 deletions(-) diff --git a/rse/plugins/org.eclipse.rse.services.files.ftp/META-INF/MANIFEST.MF b/rse/plugins/org.eclipse.rse.services.files.ftp/META-INF/MANIFEST.MF index 5683c0d4fbb..c8b6f242a67 100644 --- a/rse/plugins/org.eclipse.rse.services.files.ftp/META-INF/MANIFEST.MF +++ b/rse/plugins/org.eclipse.rse.services.files.ftp/META-INF/MANIFEST.MF @@ -8,8 +8,6 @@ Bundle-Vendor: %providerName Bundle-Localization: plugin Require-Bundle: org.eclipse.core.runtime, org.eclipse.rse.services, - org.apache.commons.net, - org.eclipse.ui.console, - org.eclipse.jface + org.apache.commons.net Eclipse-LazyStart: true Export-Package: org.eclipse.rse.services.files.ftp diff --git a/rse/plugins/org.eclipse.rse.services.files.ftp/src/org/eclipse/rse/services/files/ftp/FTPService.java b/rse/plugins/org.eclipse.rse.services.files.ftp/src/org/eclipse/rse/services/files/ftp/FTPService.java index 58e395b2eef..d816ac662a5 100644 --- a/rse/plugins/org.eclipse.rse.services.files.ftp/src/org/eclipse/rse/services/files/ftp/FTPService.java +++ b/rse/plugins/org.eclipse.rse.services.files.ftp/src/org/eclipse/rse/services/files/ftp/FTPService.java @@ -63,9 +63,6 @@ import org.eclipse.rse.services.files.IFileService; import org.eclipse.rse.services.files.IHostFile; import org.eclipse.rse.services.files.RemoteFileIOException; import org.eclipse.rse.services.files.RemoteFolderNotEmptyException; -import org.eclipse.ui.console.ConsolePlugin; -import org.eclipse.ui.console.IConsole; -import org.eclipse.ui.console.MessageConsole; public class FTPService extends AbstractFileService implements IFileService, IFTPService @@ -79,7 +76,7 @@ public class FTPService extends AbstractFileService implements IFileService, IFT private transient String _password; private transient int _portNumber; - private OutputStream _ftpConsoleOutputStream; + private OutputStream _ftpLoggingOutputStream; /* @@ -118,6 +115,11 @@ public class FTPService extends AbstractFileService implements IFileService, IFT { _password = password; } + + public void setLoggingStream(OutputStream ftpLoggingOutputStream) + { + _ftpLoggingOutputStream = ftpLoggingOutputStream; + } public void connect() throws Exception { @@ -126,30 +128,12 @@ public class FTPService extends AbstractFileService implements IFileService, IFT _ftpClient = new FTPClient(); } - - if(_ftpConsoleOutputStream==null) + + if(_ftpLoggingOutputStream!=null) { - MessageConsole messageConsole=null; - - IConsole[] consoles = ConsolePlugin.getDefault().getConsoleManager().getConsoles(); - for (int i = 0; i < consoles.length; i++) { - if(consoles[i].getName().equals("FTP log: "+_hostName+":"+_portNumber)) { //$NON-NLS-1$ //$NON-NLS-2$ - messageConsole = (MessageConsole)consoles[i]; - break; - } - } - - if(messageConsole==null){ - messageConsole = new MessageConsole("FTP log: "+_hostName+":"+_portNumber, null); //$NON-NLS-1$ //$NON-NLS-2$ - ConsolePlugin.getDefault().getConsoleManager().addConsoles(new IConsole[]{ messageConsole }); - } - - _ftpConsoleOutputStream = messageConsole.newOutputStream(); - ConsolePlugin.getDefault().getConsoleManager().showConsoleView(messageConsole); + _ftpClient.registerSpyStream(_ftpLoggingOutputStream); } - _ftpClient.registerSpyStream(_ftpConsoleOutputStream); - if (_portNumber == 0) { _ftpClient.connect(_hostName); } else { @@ -552,7 +536,7 @@ public class FTPService extends AbstractFileService implements IFileService, IFT MyProgressMonitor progressMonitor = new MyProgressMonitor(monitor); - progressMonitor.init("Deleting "+fileName, 1); //$NON-NLS-1$ + progressMonitor.init(FTPServiceResources.FTP_File_Service_Deleting_Task+fileName, 1); boolean isFile = getFile(null,remoteParent,fileName).isFile(); @@ -572,7 +556,7 @@ public class FTPService extends AbstractFileService implements IFileService, IFT } if(!hasSucceeded){ - throw new Exception(ftpClient.getReplyString()+" ("+fileName+")"); + throw new Exception(ftpClient.getReplyString()+" ("+fileName+")"); //$NON-NLS-1$ //$NON-NLS-2$ } else { @@ -716,7 +700,7 @@ public class FTPService extends AbstractFileService implements IFileService, IFT public boolean copy(IProgressMonitor monitor, String srcParent, String srcName, String tgtParent, String tgtName) throws SystemMessageException { - throw new RemoteFileIOException(new Exception("FTP copy not supported, use move instead")); //$NON-NLS-1$ + throw new RemoteFileIOException(new Exception(FTPServiceResources.FTP_File_Service_Copy_Not_Supported)); } public boolean copyBatch(IProgressMonitor monitor, String[] srcParents, String[] srcNames, String tgtParent) throws SystemMessageException @@ -753,14 +737,14 @@ public class FTPService extends AbstractFileService implements IFileService, IFT { boolean result = true; - Job fetchJob = new Job("Listing files..."){ //$NON-NLS-1$ + Job fetchJob = new Job(FTPServiceResources.FTP_File_Service_Listing_Job){ protected IStatus run(IProgressMonitor monitor) { try { _ftpFiles = _ftpClient.listFiles(); } catch (IOException e) { return new Status(IStatus.ERROR, "org.eclipse.rse.services.files.ftp",IStatus.ERROR,e.getMessage(),e); //$NON-NLS-1$ } - return new Status(IStatus.OK,"org.eclipse.rse.services.files.ftp",IStatus.OK,"Success",null); //$NON-NLS-1$ + return new Status(IStatus.OK,"org.eclipse.rse.services.files.ftp",IStatus.OK,FTPServiceResources.FTP_File_Service_Listing_Job_Success,null); //$NON-NLS-1$ }}; IStatus fetchResult = null; @@ -845,7 +829,7 @@ public class FTPService extends AbstractFileService implements IFileService, IFT Long workToDateKB = new Long(fWorkToDate / 1024L); Double workPercent = new Double(fWorkPercentFactor * fWorkToDate); String subDesc = MessageFormat.format( - "{0,number,integer} KB of {1,number,integer} KB complete ({2,number,percent})", //$NON-NLS-1$ + FTPServiceResources.FTP_File_Service_Monitor_Format, new Object[] { workToDateKB, fMaxWorkKB, workPercent }); diff --git a/rse/plugins/org.eclipse.rse.services.files.ftp/src/org/eclipse/rse/services/files/ftp/FTPServiceResources.java b/rse/plugins/org.eclipse.rse.services.files.ftp/src/org/eclipse/rse/services/files/ftp/FTPServiceResources.java index 905e0497bb2..fecc0e5dc24 100644 --- a/rse/plugins/org.eclipse.rse.services.files.ftp/src/org/eclipse/rse/services/files/ftp/FTPServiceResources.java +++ b/rse/plugins/org.eclipse.rse.services.files.ftp/src/org/eclipse/rse/services/files/ftp/FTPServiceResources.java @@ -11,7 +11,7 @@ * Emily Bruner, Mazen Faraj, Adrian Storisteanu, Li Ding, and Kent Hawley. * * Contributors: - * {Name} (company) - description of contribution. + * Javier Montalvo Orus (Symbian) - Added Externalized Strings ********************************************************************************/ package org.eclipse.rse.services.files.ftp; @@ -21,7 +21,11 @@ import org.eclipse.osgi.util.NLS; public class FTPServiceResources extends NLS { private static String BUNDLE_NAME = "org.eclipse.rse.services.files.ftp.FTPServiceResources";//$NON-NLS-1$ - + public static String FTP_File_Service_Copy_Not_Supported; + public static String FTP_File_Service_Deleting_Task; + public static String FTP_File_Service_Listing_Job; + public static String FTP_File_Service_Listing_Job_Success; + public static String FTP_File_Service_Monitor_Format; public static String FTP_File_Service_Name; public static String FTP_File_Service_Description; diff --git a/rse/plugins/org.eclipse.rse.services.files.ftp/src/org/eclipse/rse/services/files/ftp/FTPServiceResources.properties b/rse/plugins/org.eclipse.rse.services.files.ftp/src/org/eclipse/rse/services/files/ftp/FTPServiceResources.properties index 5ceabfa9ca2..99c7a00a9e9 100644 --- a/rse/plugins/org.eclipse.rse.services.files.ftp/src/org/eclipse/rse/services/files/ftp/FTPServiceResources.properties +++ b/rse/plugins/org.eclipse.rse.services.files.ftp/src/org/eclipse/rse/services/files/ftp/FTPServiceResources.properties @@ -11,8 +11,13 @@ # Emily Bruner, Mazen Faraj, Adrian Storisteanu, Li Ding, and Kent Hawley. # # Contributors: -# {Name} (company) - description of contribution. +# Javier Montalvo Orus (Symbian) - Added Externalized Strings ################################################################################ FTP_File_Service_Name=FTP File Service -FTP_File_Service_Description=The FTP File Service uses the FTP protocol to provide service for the Files subsystem. It requires an FTP daemon to be running on the host machine. \ No newline at end of file +FTP_File_Service_Description=The FTP File Service uses the FTP protocol to provide service for the Files subsystem. It requires an FTP daemon to be running on the host machine. +FTP_File_Service_Deleting_Task=Deleting +FTP_File_Service_Copy_Not_Supported=FTP copy not supported, use move instead +FTP_File_Service_Listing_Job=Listing files... +FTP_File_Service_Listing_Job_Success=Success +FTP_File_Service_Monitor_Format={0,number,integer} KB of {1,number,integer} KB complete ({2,number,percent}) diff --git a/rse/plugins/org.eclipse.rse.subsystems.files.ftp/META-INF/MANIFEST.MF b/rse/plugins/org.eclipse.rse.subsystems.files.ftp/META-INF/MANIFEST.MF index f26cab1dfd4..485c9dc54a7 100644 --- a/rse/plugins/org.eclipse.rse.subsystems.files.ftp/META-INF/MANIFEST.MF +++ b/rse/plugins/org.eclipse.rse.subsystems.files.ftp/META-INF/MANIFEST.MF @@ -13,7 +13,8 @@ Require-Bundle: org.eclipse.ui, org.eclipse.rse.files.ui, org.eclipse.rse.subsystems.files.core, org.eclipse.rse.core, - org.eclipse.rse.ui + org.eclipse.rse.ui, + org.eclipse.ui.console Eclipse-LazyStart: true Export-Package: org.eclipse.rse.subsystems.files.ftp, org.eclipse.rse.subsystems.files.ftp.connectorservice, diff --git a/rse/plugins/org.eclipse.rse.subsystems.files.ftp/src/org/eclipse/rse/subsystems/files/ftp/connectorservice/FTPConnectorService.java b/rse/plugins/org.eclipse.rse.subsystems.files.ftp/src/org/eclipse/rse/subsystems/files/ftp/connectorservice/FTPConnectorService.java index 5c7d16f2bac..d63138b4fba 100644 --- a/rse/plugins/org.eclipse.rse.subsystems.files.ftp/src/org/eclipse/rse/subsystems/files/ftp/connectorservice/FTPConnectorService.java +++ b/rse/plugins/org.eclipse.rse.subsystems.files.ftp/src/org/eclipse/rse/subsystems/files/ftp/connectorservice/FTPConnectorService.java @@ -11,11 +11,14 @@ * Emily Bruner, Mazen Faraj, Adrian Storisteanu, Li Ding, and Kent Hawley. * * Contributors: - * Javier Montalvo OrĂºs (Symbian) - Bug 140348 - FTP did not use port number + * Javier Montalvo Orus (Symbian) - Bug 140348 - FTP did not use port number + * Javier Montalvo Orus (Symbian) - Bug 161209 - Need a Log of ftp commands ********************************************************************************/ package org.eclipse.rse.subsystems.files.ftp.connectorservice; +import java.io.OutputStream; + import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.rse.core.model.IHost; import org.eclipse.rse.core.model.SystemSignonInformation; @@ -23,6 +26,9 @@ import org.eclipse.rse.core.subsystems.AbstractConnectorService; import org.eclipse.rse.services.files.IFileService; import org.eclipse.rse.services.files.ftp.FTPService; import org.eclipse.rse.subsystems.files.core.SystemFileResources; +import org.eclipse.ui.console.ConsolePlugin; +import org.eclipse.ui.console.IConsole; +import org.eclipse.ui.console.MessageConsole; @@ -43,12 +49,36 @@ public class FTPConnectorService extends AbstractConnectorService private void internalConnect() throws Exception { + SystemSignonInformation info = getPasswordInformation(); _ftpService.setHostName(info.getHostname()); _ftpService.setUserId(info.getUserid()); _ftpService.setPassword(info.getPassword()); _ftpService.setPortNumber(getPort()); - _ftpService.connect(); + _ftpService.setLoggingStream(getLoggingStream(info.getHostname(),getPort())); + _ftpService.connect(); + } + + private OutputStream getLoggingStream(String hostName,int portNumber) + { + MessageConsole messageConsole=null; + + IConsole[] consoles = ConsolePlugin.getDefault().getConsoleManager().getConsoles(); + for (int i = 0; i < consoles.length; i++) { + if(consoles[i].getName().equals("FTP log: "+hostName+":"+portNumber)) { //$NON-NLS-1$ //$NON-NLS-2$ + messageConsole = (MessageConsole)consoles[i]; + break; + } + } + + if(messageConsole==null){ + messageConsole = new MessageConsole("FTP log: "+hostName+":"+portNumber, null); //$NON-NLS-1$ //$NON-NLS-2$ + ConsolePlugin.getDefault().getConsoleManager().addConsoles(new IConsole[]{ messageConsole }); + } + + ConsolePlugin.getDefault().getConsoleManager().showConsoleView(messageConsole); + + return messageConsole.newOutputStream(); } public IFileService getFileService() @@ -72,8 +102,6 @@ public class FTPConnectorService extends AbstractConnectorService return false; } - - public boolean isConnected() { return (_ftpService != null && _ftpService.isConnected());