[
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);
}
}