Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [dsdp-tm-dev] RSE 1.0 testing round 3

On Monday 30 October 2006 06:51, Oberhuber, Martin wrote:
> Dear testers,
>
> * You are signed up for verifying particular bugs. Please see
>   instructions and the signup table on the Wiki.

tested with 64bit:

Bug 153118 OK
Bug 160786 OK
Bug 143417 don't know how to reproduce
Bug 149155 OK
Bug 158534 OK
Bug 158765
	tested 
	Local OK
	remote Windows dstore FAIL
	remote Linux SSH FAIL/WORK
		It seems never to work when the shell is freshly connected.
		If I do a ls and try it it still fails. If I try a ls existingdirectory it
		works afterwards.
Bug 153271 OK


tested with 32bit:

Bug 153118 OK
Bug 160786 OK
Bug 143417 don't know how to reproduce
Bug 149155 OK
Bug 158534 OK
Bug 158765
	tested 
	Local OK
	remote Windows dstore FAIL
	remote Linux SSH FAIL/WORK
		It seems never to work when the shell is freshly connected.
		If I do a ls and try it it still fails. If I try a ls existingdirectory it
		works afterwards.
Bug 153271 OK


SSH Filters:
If I understand the filter (based on the user guide) correctly the attached 
filter should show only workspaces. However the attached dirtree shows all 
other directories, too.



RSE User Documentation:
	ScratchPad:
		I found no user documentation and don't know how to operate the scratchpad
		at all.
	Compile Commands:
		In
http://127.0.0.1:59548/help/topic/org.eclipse.rse.doc.user/concepts/cfilters.html
		"Compile Commands" are mentioned but I found no documentation of them.
		Are they obsolete remnants of IBMs original RSE?


RSE Developer Documentation:
Still very sketchy in many parts. Many sublevels of Architecture are just 
empty. Many things are not detailed enough.
Example:
http://127.0.0.1:59548/help/topic/org.eclipse.rse.doc.isv/reference/api/org/eclipse/rse/subsystems/files/core/servicesubsystem/FileServiceSubSystem.html#copy
what is the sense of the boolean return variable. The method throws 
exceptions. What is if it returns false? There's no way to get a reason.

I wished 
http://127.0.0.1:59548/help/topic/org.eclipse.rse.doc.isv/reference/api/org/eclipse/rse/services/files/IFileService.html#createFolder
had an option to not throw an exception if the folder already exists (and 
really is a folder). That's a common use case.

I also don't like the use of String parameters for paths and filenames. 
Example: 
http://127.0.0.1:59548/help/topic/org.eclipse.rse.doc.isv/reference/api/org/eclipse/rse/services/files/IFileService.html#copy
Why not use something like IPath. That would condense two arguments into one 
and the user would not have to worry about directory separators in the 
strings etc. If RSE has no external real users at that time I would wish to 
make such an API change.

Why is there no generic up/downlad that works also with directories? I wrote 
my own one (and every other user of RSE is likely to the same). I can 
contribute that code if desired (upload is attached).

I, Lothar Werzinger, declare that I developed attached code from 
scratch, without referencing any 3rd party materials except material 
licensed under the EPL. I am authorized by my employer to make this 
contribution under the EPL.

There is no easy way to just get the contents of a remote file (e.g. as an 
InputStream). At least I didn't find it.
I had to download the remote file to a temporary file. That proved to be very 
hard, as I had to come up with a (valid) temporary filename and location, as 
well as the cleanup. RSE has all the infrastructure already in place (you can 
open a remote file in an editor), so why not offer it as part of 
IFileService?

I tried to open a SystemRemoteFileDialog and set a SystemActionViewerFilter 
and a ISystemValidator so that the dialog shows only directories and files 
that start with a predefined remote path and that OK is only valid if an 
executable is selected. I could (so far) not figure out how to do that.


Please let me know If I can do anything else for you.

Thanks for making RSE available! It's a great piece of SW.

Lothar
-- 
Lothar Werzinger Dipl.-Ing. Univ.
framework & platform architect
Tradescape Inc.
111 West St. John Street, Suite 200
San Jose, Ca 95113
email: lothar@xxxxxxxxxxxxxx
web: http://www.tradescape.biz

Attachment: dirtree.png
Description: PNG image

Attachment: filter.png
Description: PNG image

  private void upload(IPath localPath, IPath remotePath, IProgressMonitor monitor) throws SystemMessageException, CoreException
  {
    File entry = new File(localPath.toPortableString());
    if(entry.isDirectory())
    {
      monitor.subTask(MessageFormat.format("uploading directory {0} to {1}", new String[]{localPath.toPortableString(), remotePath.toPortableString()}));
      IRemoteFile remoteEntry = m_fileSubSystem.getRemoteFileObject(remotePath.toPortableString());
      if(!remoteEntry.exists())
      {
        monitor.subTask(MessageFormat.format("creating remote directory {1}", new String[]{remotePath.toPortableString()}));
        m_fileService.createFolder(monitor, remotePath.removeLastSegments(1).toPortableString(), remotePath.lastSegment().toString());
      }
      else if(!remoteEntry.isDirectory())
      {
        abort(MessageFormat.format("remote path {0} exists and is not a directory", new String[]{remotePath.toPortableString()}), null, IStatus.OK);
      }
      File[] entries = entry.listFiles();
      for (int i = 0; i < entries.length; i++)
      {
        entry = entries[i];
        monitor.subTask(MessageFormat.format("uploading directory {0} to {1}", new String[]{localPath.append(entry.getName()).toPortableString(), remotePath.append(entry.getName()).toPortableString()}));
        upload(localPath.append(entry.getName()), remotePath.append(entry.getName()), monitor);
      }
    }
    else
    {
      monitor.subTask(MessageFormat.format("uploading file {0} to {1}", new String[]{localPath.toPortableString(), remotePath.toPortableString()}));
      m_fileService.upload(monitor, entry, remotePath.removeLastSegments(1).toPortableString(), remotePath.lastSegment().toString(), true, null, null);
    }
    
  }

Back to the top