to avoid confusion I never said it was anything BUT the client and it was and is useful as an example implementation of the client library which I interpret as primarily the webdavResource and associated methods.
I would be happy to provide some patches. I assume the Eclipse Patch format is acceptable and should just be attached to a message post to this list.
Ollie
Ingo Brunberg wrote:
Hi Ollie,
to avoid confusion first let me state that what you describe is a problem with the command line client, not the client library itself.
I must admit that I haven't used the command line client much, as I regard it more as an example application for the client library than a WebDAV client for your daily use. There is another application called "cadaver" (http://www.webdav.org/cadaver/) which I would recommend for serious command line work.
As you propably have noticed there haven't been any changes to the command line client for ages. Although I never expect it to be able to compete with cadaver, I think it's time to get it a bit more up to date. This means any patches you send are very welcome.
Gents,
I would like to propose an enhancement to the Slide Client PropPatch method such that the command line can be used to more fully expose the webdavresource proppatchMethod signatures. Currently only
webdavResource.proppatchMethod( path, new PropertyName("DAV:",name), value)
Is implemented and this does not allow specification of another namespace other than DAV: nor does it allow for the boolean action argument that would allow a property to be removed.
The later ability to remove properties is most easily accomplished by adding a fourth optional argument to the existing
*propput path property value *
with
*propput path property value [set]*
where set = true|false|yes|no and true|yes|null = set and false|no = remove
*note an alternative would be to not add a fourth argument and use a lexicon for the value = "NULL" or "REMOVE" to indicate to remove the property, i.e. set=false, but this would be less flexible as someone may want to have a property set with either of those values but the code would be simpler and require fewer changes to fewer files.
executing:
*void proppatch(String path, String prop, String value, boolean set)
{
String name=prop;
try {
if (set) {
out.print("Putting property(" + name + ", " + value +
") to '" + path + "': ");
} else {
** out.print("Removing property(" + name + ") from '" + path + "': ");*
* }
if (webdavResource.proppatchMethod(
path, new PropertyName("DAV:", name), value, set) {
out.println("succeeded.");
} else {
out.println("failed.");
out.println(webdavResource.getStatusMessage());
}
}
catch (Exception ex) {
handleException(ex);
}
}*
This will require changes to the Client.g, ClientParser.java and Client.java.
For the namespace accomodation there are two approaches:
1. Add another optional command line argument for the namespace (not my favorite choice) like:
*propput path name value [namespaceUri] [set] *
where the lexer could determine if arg#4 was in the set true|false|yes|no or a namespace Uri
executing:
*void proppatch(String path, String prop, String value, String namespace, boolean set)
{
String name=prop;
if (namespace == null) {
namespace = "DAV:"; //could be imlemented by the lexer I think.
}
try {
* if (set) {
out.print("Putting property(" + name + ", " + value +
") to '" + path + "': ");
} else {
** out.print("Removing property(" + name + ") from '" + path + "': ");*
* }
***if (webdavResource.proppatchMethod(
path, new PropertyName(namespace, name), value, set) {
out.println("succeeded.");
} else {
out.println("failed.");
out.println(webdavResource.getStatusMessage());
}
}
catch (Exception ex) {
handleException(ex);
}
}*
2. Allow the name argument to be either with a namespace or not
*propput path name|namespace:name value [set]*
and let the lexer split them up.
Cadaver uses another approach:
3. Introduce a new command "set namespace" (we are free to call it whatever we like) that sets the namespace to a custom value for all proppatchs issued afterwards.
I volunteer to do the patches and am open to suggestions.
Ollie
Regards, Ingo
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
