Re: Alternative webdav client api?

2007-11-22 Thread Alon Salant
We have found the slide client to be stable and free of issues. I
would not immediately assume that it is not a good option because the
development effort has been retired.

Alon

On 11/21/07, Florian Kirchhoff [EMAIL PROTECTED] wrote:

 Hi,

 the retirement announcement for Slide, mentions Jackrabbit as an alternative
 to slide.
 I am mostly interested in using the api to access an existing WebDav
 repository, but
 it seems Jackrabbit is mostly focused on the server side of webdav, not the
 client.

 Is there a natural migration path for my situation?

 Thanks in advance for any help,

 Florian
 --
 View this message in context: 
 http://www.nabble.com/Alternative-webdav-client-api--tf4852654.html#a13885439
 Sent from the Jakarta Slide - User mailing list archive at Nabble.com.


 -
 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]



problem: OS X mounting webdav as read only

2004-11-30 Thread alon salant
I've searched the archives and found some recent discussion around
this but no great diagnostics or resolution. I'll do what I can to be
helpful...

My setup:

I have slide running embedded in my own web application running on
Tomcat 5. I built slide from CVS Nov 5. I have disabled authentication
in slide and am using container-managed security for authentication
(HTTP basic).

I am using TransientLockStore and TransientSecurityStore and
SimpleFileStore for the other stores.

My problem:

With my Win2k webdav client, I can use my webdav share with the
ability to do all actions. On OS X 10.3.6, I can mount my webdav share
but it mounts read only.

I see that there are people who are having more success with OS X on
this mailing list so I'm curious what could be different.

I've tried:

I've tried toggling lockdiscoveryIncludesPrincipalURL and get the same behavior.

I tried a new build from the latest changes in CVS (I saw a post
saying that recent changes may have fixed OS X issues) but ran in to
showstopper issues with both webdav clients. (I'll provide info in
another email.)

I turned on debugging but see the same log entries for both the
working win2k client and read-only OS X client.

Goliath 1.0.1 seems to work great.

I'm happy to provide more info. It doesn't look like webdavfs can be
configured to run through a proxy so is tcpdump the call?

Alon

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: Problem disabling slide authorization

2004-09-15 Thread alon salant
I saw the Security implementation that does this when looking through
the source code. Won't this create nodes for my users and roles in my
NodeStore? Since I am using an existing file system to back my
NodeStore this would not be an option for me.

Thanks,

Alon


On Wed, 15 Sep 2004 13:29:44 +0530, Ritu Kedia [EMAIL PROTECTED] wrote:
 Alon,
 
 Your problem could be solved by turning auto-create-user on in domain.xml
 (auto-create-userstrue/auto-create-users)
 This would ensure that if the principal is not already there in slide db
 then one would be created prior to executing the requested method.
 
 Hope this helps.
 
 Regards,
 Ritu
 
 
 
 -Original Message-
 From: alon salant [mailto:[EMAIL PROTECTED]
 Sent: Tuesday, September 14, 2004 10:06 PM
 To: Slide Users Mailing List
 Cc: [EMAIL PROTECTED]
 Subject: Re: Problem disabling slide authorization
 
 So after letting this sit for just a little bit, it strikes me that
 this may be considered a bug in SecurityImpl (or the calling Method
 implementations). The Methods are calling getPrincipal() so that they
 can set the owner metadata in the node being created. When security is
 off but webapp security is on, there is a Principal in the
 CredentialsToken but it does not exist in the store. So you get an
 ObjectNotFoundException.
 
 If SecurityImpl finds a Principal in the CredentialsToken but not in
 the NodeStore, why not return a SubjectNode with the principal name as
 the path? Or do this if slide security is disabled?
 
 Alon
 
 On Tue, 14 Sep 2004 00:24:16 -0700, alon salant [EMAIL PROTECTED] wrote:
  With a little digging, I appear to have a solution.
 
  It looks like you can set your own implementation of Security in
  Domain.xml with parameter name=acl_semantics/parameter.
 
  I created an AllowAllSecurityImpl that does its best to be okay with
  everything. The only method I really implemented is
  getPrincipal(SlideToken token) which returns SubjectNode.UNAUTHORIZED
  if there is no user principal in the SlideToken, or a SubjectNode with
  the principal name as the path if there is a principal.
 
  So I configure my domain to load it with:
 
  configuration
  parameter
 name=acl_semanticsorg.apache.slide.store.file.AllowAllSecurityImpl/param
 eter
  /configuration
 
 
 http://cvs.sourceforge.net/viewcvs.py/photospace/slidespace/WEB-INF/src/org/
 apache/slide/store/file/
 
  Seems to work for me. Any comments or gotchas I may have missed?
 
  Alon
 
 
 
 
  On Mon, 13 Sep 2004 23:41:17 -0700, alon salant [EMAIL PROTECTED] wrote:
   When working on SimpleFileStore, it was easy to disable Slide security
   by setting
  
 org.apache.slide.security=false
  
   in slide.properties.
  
   However, I do want to be able configure basic webapp security using
   security constraints on paths and HTTP methods. But I do not want to
   manage users and roles within slide.
  
   So I have slide configured with security=false, SimpleFileStore,
   TransientSecurityStore, and TransientLockStore for my store
   implementations, all user and role definitions removed from Domain.xml
   and basic auth configured in my web.xml for the path to the webdav
   servlet.
  
   With this config, I can connect via webdav, log in and browse.
  
   However, I cannot create files or folders, copy, move, delete
  
   The problem that I am running in to is that Methods (MkcolMethod for
   example), still try to authorize the current principal. If the
   principal is null, things work fine b/c SecurityImpl returns
   SubjectNode.UNAUTHENTICATED and slide lets this continue. However, if
   the principal is not null (it is not when the webapp makes the user
   log in), SecurityImpl.getPrincipal( ) tries to retrieve an object for
   that user resulting in an ObjectNotFoundException.
  
   This looks like hard behavior to change (unfortunately).
   AbstractWebDavMethod creates the SlideToken with the user principal in
   run( ) using req.getUserPrincipal().
  
   I haven't traced through the other methods to see if/how the user
   principal is used. It looks like copy/delete/put/move/mkcol (at least)
   all have issues related to this.
  
   Any thoughts? What I am trying to do seems like a pretty common use
   case. Is there a good way to address this need? I'm hoping I've missed
   something simple.
  
   Alon
  
 
 
 -
 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]
 


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Problem disabling slide authorization

2004-09-14 Thread alon salant
When working on SimpleFileStore, it was easy to disable Slide security
by setting

  org.apache.slide.security=false

in slide.properties.

However, I do want to be able configure basic webapp security using
security constraints on paths and HTTP methods. But I do not want to
manage users and roles within slide.

So I have slide configured with security=false, SimpleFileStore,
TransientSecurityStore, and TransientLockStore for my store
implementations, all user and role definitions removed from Domain.xml
and basic auth configured in my web.xml for the path to the webdav
servlet.

With this config, I can connect via webdav, log in and browse.

However, I cannot create files or folders, copy, move, delete

The problem that I am running in to is that Methods (MkcolMethod for
example), still try to authorize the current principal. If the
principal is null, things work fine b/c SecurityImpl returns
SubjectNode.UNAUTHENTICATED and slide lets this continue. However, if
the principal is not null (it is not when the webapp makes the user
log in), SecurityImpl.getPrincipal( ) tries to retrieve an object for
that user resulting in an ObjectNotFoundException.

This looks like hard behavior to change (unfortunately).
AbstractWebDavMethod creates the SlideToken with the user principal in
run( ) using req.getUserPrincipal().

I haven't traced through the other methods to see if/how the user
principal is used. It looks like copy/delete/put/move/mkcol (at least)
all have issues related to this.

Any thoughts? What I am trying to do seems like a pretty common use
case. Is there a good way to address this need? I'm hoping I've missed
something simple.

Alon

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: Problem disabling slide authorization

2004-09-14 Thread alon salant
With a little digging, I appear to have a solution.

It looks like you can set your own implementation of Security in
Domain.xml with parameter name=acl_semantics/parameter.

I created an AllowAllSecurityImpl that does its best to be okay with
everything. The only method I really implemented is
getPrincipal(SlideToken token) which returns SubjectNode.UNAUTHORIZED
if there is no user principal in the SlideToken, or a SubjectNode with
the principal name as the path if there is a principal.

So I configure my domain to load it with:

configuration
parameter 
name=acl_semanticsorg.apache.slide.store.file.AllowAllSecurityImpl/parameter
/configuration

http://cvs.sourceforge.net/viewcvs.py/photospace/slidespace/WEB-INF/src/org/apache/slide/store/file/

Seems to work for me. Any comments or gotchas I may have missed?

Alon


On Mon, 13 Sep 2004 23:41:17 -0700, alon salant [EMAIL PROTECTED] wrote:
 When working on SimpleFileStore, it was easy to disable Slide security
 by setting
 
   org.apache.slide.security=false
 
 in slide.properties.
 
 However, I do want to be able configure basic webapp security using
 security constraints on paths and HTTP methods. But I do not want to
 manage users and roles within slide.
 
 So I have slide configured with security=false, SimpleFileStore,
 TransientSecurityStore, and TransientLockStore for my store
 implementations, all user and role definitions removed from Domain.xml
 and basic auth configured in my web.xml for the path to the webdav
 servlet.
 
 With this config, I can connect via webdav, log in and browse.
 
 However, I cannot create files or folders, copy, move, delete
 
 The problem that I am running in to is that Methods (MkcolMethod for
 example), still try to authorize the current principal. If the
 principal is null, things work fine b/c SecurityImpl returns
 SubjectNode.UNAUTHENTICATED and slide lets this continue. However, if
 the principal is not null (it is not when the webapp makes the user
 log in), SecurityImpl.getPrincipal( ) tries to retrieve an object for
 that user resulting in an ObjectNotFoundException.
 
 This looks like hard behavior to change (unfortunately).
 AbstractWebDavMethod creates the SlideToken with the user principal in
 run( ) using req.getUserPrincipal().
 
 I haven't traced through the other methods to see if/how the user
 principal is used. It looks like copy/delete/put/move/mkcol (at least)
 all have issues related to this.
 
 Any thoughts? What I am trying to do seems like a pretty common use
 case. Is there a good way to address this need? I'm hoping I've missed
 something simple.
 
 Alon


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: Problem disabling slide authorization

2004-09-14 Thread alon salant
So after letting this sit for just a little bit, it strikes me that
this may be considered a bug in SecurityImpl (or the calling Method
implementations). The Methods are calling getPrincipal() so that they
can set the owner metadata in the node being created. When security is
off but webapp security is on, there is a Principal in the
CredentialsToken but it does not exist in the store. So you get an
ObjectNotFoundException.

If SecurityImpl finds a Principal in the CredentialsToken but not in
the NodeStore, why not return a SubjectNode with the principal name as
the path? Or do this if slide security is disabled?

Alon


On Tue, 14 Sep 2004 00:24:16 -0700, alon salant [EMAIL PROTECTED] wrote:
 With a little digging, I appear to have a solution.
 
 It looks like you can set your own implementation of Security in
 Domain.xml with parameter name=acl_semantics/parameter.
 
 I created an AllowAllSecurityImpl that does its best to be okay with
 everything. The only method I really implemented is
 getPrincipal(SlideToken token) which returns SubjectNode.UNAUTHORIZED
 if there is no user principal in the SlideToken, or a SubjectNode with
 the principal name as the path if there is a principal.
 
 So I configure my domain to load it with:
 
 configuration
 parameter 
 name=acl_semanticsorg.apache.slide.store.file.AllowAllSecurityImpl/parameter
 /configuration
 
 http://cvs.sourceforge.net/viewcvs.py/photospace/slidespace/WEB-INF/src/org/apache/slide/store/file/
 
 Seems to work for me. Any comments or gotchas I may have missed?
 
 Alon
 
 
 
 
 On Mon, 13 Sep 2004 23:41:17 -0700, alon salant [EMAIL PROTECTED] wrote:
  When working on SimpleFileStore, it was easy to disable Slide security
  by setting
 
org.apache.slide.security=false
 
  in slide.properties.
 
  However, I do want to be able configure basic webapp security using
  security constraints on paths and HTTP methods. But I do not want to
  manage users and roles within slide.
 
  So I have slide configured with security=false, SimpleFileStore,
  TransientSecurityStore, and TransientLockStore for my store
  implementations, all user and role definitions removed from Domain.xml
  and basic auth configured in my web.xml for the path to the webdav
  servlet.
 
  With this config, I can connect via webdav, log in and browse.
 
  However, I cannot create files or folders, copy, move, delete
 
  The problem that I am running in to is that Methods (MkcolMethod for
  example), still try to authorize the current principal. If the
  principal is null, things work fine b/c SecurityImpl returns
  SubjectNode.UNAUTHENTICATED and slide lets this continue. However, if
  the principal is not null (it is not when the webapp makes the user
  log in), SecurityImpl.getPrincipal( ) tries to retrieve an object for
  that user resulting in an ObjectNotFoundException.
 
  This looks like hard behavior to change (unfortunately).
  AbstractWebDavMethod creates the SlideToken with the user principal in
  run( ) using req.getUserPrincipal().
 
  I haven't traced through the other methods to see if/how the user
  principal is used. It looks like copy/delete/put/move/mkcol (at least)
  all have issues related to this.
 
  Any thoughts? What I am trying to do seems like a pretty common use
  case. Is there a good way to address this need? I'm hoping I've missed
  something simple.
 
  Alon
 


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Embedding Slide in Spring Application

2004-09-12 Thread alon salant
I found the following note in the mailing list archives. I'm wondering
if someone can elaborate on using EmbeddedDomain to expose Slide's
server API as a Spring-managed bean. I'm finding that I want to
configure a namespace from configuration available within my Spring
application.

Either I need to give my store access to the Spring application
context (it's in my webapp context) or inject my config from Spring in
to my store. Any thoughts on the best way to do this?

Alon


From: Ben Alex
Subject: OutOfMemoryError with large files and Postgres
Date: Tue, 04 May 2004 07:35:27 -0700 

PS: Further to my earlier email, I had good success integrating with Slide's
security and also using EmbeddedDomain to expose Slide's server API as a
Spring-managed bean. Thanks to the Slide developers for making it so easy to
integrate!

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: Can WebDAV servlet serve non-slide-managed filesystem?

2004-09-11 Thread alon salant
http://nagoya.apache.org/bugzilla/show_bug.cgi?id=31177

There you go.

For anyone reading earlier emails in this thread, I moved the
photospace.slide.* source to org.apache.slide.store.file in the
sourceforge CVS:

http://cvs.sourceforge.net/viewcvs.py/photospace/slidespace/WEB-INF/src/org/apache/slide/store/file

You can still check out the slidespace module to get a simple webapp
that deploys the SimpleFileStore store.

Alon

On Thu, 09 Sep 2004 08:31:01 +0200, Oliver Zeigermann
[EMAIL PROTECTED] wrote:

 The package name org.apache.slide.store.file sounds good to me. Be sure
 to have the Apache license in all headers when you contribute the files,
 please. Might be best to create an issue in bugzilla and attach the
 files. I will check them in to the CVS then...

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: Can WebDAV servlet serve non-slide-managed filesystem?

2004-09-08 Thread alon salant
Either/both sound fine. I'd like to resolve the issue with not seeing
length and modificationDate when creating a file, but I've honestly
had enough of tracing through slide. Maybe I'll get to it later on. If
you have some good direction about what I am missing, I will certainly
add it in.

Regarding your questions: for files I see no modificationDate and a 0
byte file size, for folders just no modificationDate. This is in my
Win XP DAV client. I thought that maybe I need to update these
properties in the NodeRevisionDescriptor passed in to
storeRevisionContent( ) but this did not seem to do the trick.

Regarding contributing, I just added some basic docs to my
implementation so they are ready to go. How do you want to do this? I
assume they need a minor refactor to go in the org.apache.slide.store
package namespace. Where do you want to put em? An existing package?
org.apache.slide.store.file?

Alon


On Tue, 07 Sep 2004 23:10:20 +0200, Oliver Zeigermann
[EMAIL PROTECTED] wrote:

 If you need any help, especially with issue 1, or are ready to
 contribute the store, let me know...

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: Can WebDAV servlet serve non-slide-managed filesystem?

2004-09-07 Thread alon salant
I'd be happy to contribute.

 I was wondering where do properties go to?

That I'm not sure what your question means may be enough of an answer for you.

I try to map as many of the object properties as I can for
retrieveRevisionDescriptor( ) but never write properties back to the
filesystem - I'm not sure if there are any that I could write to the
file system. It looks like I could write lastModified. Are there other
properties of significance that I am leaving out?

I set creationDate to the modificationDate b/c I don't have access to
creationDate through java.io.File. I figure that's a better date than
nothing.

A couple open issues that I'd appreciate feedback on:

1. An issue I have been unable to resolve (and is perhaps related to
your question) is that when I create a file through WebDAV, my WebDAV
client (Win XP) does not display the file with its correct content
length or modificationDate. If I force a refresh of the directory
display, I see the correct values. Any thoughts on this?

2. Caching - it looks like slide uses ehcache. Is it possible to
control the cache parameters? How? I find that my WebDAV client does
not consistently pick up changes to the filesystem backing the store.
That is, changes that take place directly on the filesystem.

3. Resource type for createObject( ) - see the javadoc comment in the
SimpleFileStore implementation. Basically, I always create a directory
in createObject( ) b/c I can't tell if the object is supposed to be a
file or collection. Only once storeRevisionContent( ) is called do I
know that the object is supposed to be a file - so I remove the
directory and create the file with the content. This seems like an odd
way to handle this but I'm not sure of an alternative.

Alon


On Tue, 07 Sep 2004 08:48:29 +0200, Oliver Zeigermann
[EMAIL PROTECTED] wrote:
 Hi Alon!
 
 This looks like nice work. I was wondering where do properties go to? Or
   do you only map resource type, content length and dates as done in
 SimpleFileStore (you seem to mix up creation and modification time there?).
 
 Anyway, wouldn't you consider donating this store implementation to the
 Slide community? This way more people could benift and maybe contribute
 to it?
 
 Oliver
 
 
 
 alon salant wrote:
  http://cvs.sourceforge.net/viewcvs.py/photospace/slidespace/WEB-INF/src/photospace/slide/
 
  AbstractSimpleFileStore implements ContentStore, NodeStore,
  RevisionDescriptorStore, RevisionDescriptorsStore, no-ops most of the
  interface methods, and declares abstract those that you need to
  implement to get basic create/remove/update/delete for files and
  directories.
 
  CountdownStore presents nested directories 10 .. 1 and a file 0.txt in
  the directory 1. This structure is defined in code. You can get some
  funky things to happen by trying to change this structure through a
  webdav client since this implementation seems to support all
  operations but does not preserve state.
 
  SimpleFileStore is my effort to create a slide store that simply
  serves an existing filesystem directory. It's working with some minor
  issues that I'll get in to in a later post.
 
  I created a stripped down webapp to work on this stuff. You can check
  out the module slidespace following the instructions on
  http://sourceforge.net/cvs/?group_id=113626 right in to your webapps
  directory if you want to run the two stores.
 
  $ cvs -d:pserver:[EMAIL PROTECTED]:/cvsroot/photospace co slidespace
  $ cd slidespace
  $ ant
 
  Alon

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: Can WebDAV servlet serve non-slide-managed filesystem?

2004-09-06 Thread alon salant
http://cvs.sourceforge.net/viewcvs.py/photospace/slidespace/WEB-INF/src/photospace/slide/

AbstractSimpleFileStore implements ContentStore, NodeStore,
RevisionDescriptorStore, RevisionDescriptorsStore, no-ops most of the
interface methods, and declares abstract those that you need to
implement to get basic create/remove/update/delete for files and
directories.

CountdownStore presents nested directories 10 .. 1 and a file 0.txt in
the directory 1. This structure is defined in code. You can get some
funky things to happen by trying to change this structure through a
webdav client since this implementation seems to support all
operations but does not preserve state.

SimpleFileStore is my effort to create a slide store that simply
serves an existing filesystem directory. It's working with some minor
issues that I'll get in to in a later post.

I created a stripped down webapp to work on this stuff. You can check
out the module slidespace following the instructions on
http://sourceforge.net/cvs/?group_id=113626 right in to your webapps
directory if you want to run the two stores.

$ cvs -d:pserver:[EMAIL PROTECTED]:/cvsroot/photospace co slidespace
$ cd slidespace
$ ant

Alon


On Sun, 5 Sep 2004 17:30:22 +0530, Girish Nagaraj [EMAIL PROTECTED] wrote:
 Alon,
 
 I am also working on hooking up a database document repository as a
 store with slide. I have spent quite sometime stepping through the
 TxFile store implementation and have got some idea of what goes on.
 
 If possible, could you please send me the bare bones implementation
 of the store you wrote where the node structure was defined in the
 code so that I can start with it.
 
 Thanks,
 Girish
 
 [Quoting your mail from the archive as I have lost the original email :-(   ]
 
 
 
 alon salant wrote:
 Alright. Lots of progress now
 
 I've pretty much got things working. I first got a virtual store
 working - implemented a few of the store interface methods to support
 webdav browsing through a node structure simply defined in code.
 Definitely took a bit of fiddling to figure out what need to be
 returned for retrieveRevisionDescriptors and
 retrieveRevisionDescriptor but finally got it all set.
 
 -
 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]



Re: Can WebDAV servlet serve non-slide-managed filesystem?

2004-09-03 Thread alon salant
Alright. Lots of progress now.

I've pretty much got things working. I first got a virtual store
working - implemented a few of the store interface methods to support
webdav browsing through a node structure simply defined in code.
Definitely took a bit of fiddling to figure out what need to be
returned for retrieveRevisionDescriptors and
retrieveRevisionDescriptor but finally got it all set.

I removed all access restrictions with an objectnode entry in data:

  objectnode classname=org.apache.slide.structure.SubjectNode uri=/simple
permission action=all subject=all inheritable=true/
  /objectnode

Nice.

From here it actually was straight forward to call to the filesystem
to implement the needed read/write/delete implementations.

But I am now finding that I get Forbidden messages from the WebDAV
servlet for PUT, DELETE, MOVE, MKCOL methods. The only methods in my
implementation that are being called when these WebDAV methods are
executing are retrieveOject,  retrieveRevisionDescriptor,
retrieveRevisionDescriptors. Could it be something in the
NodeRevisionDescriptor that I am/am not creating that is preventing
this or is it authentication/ACL configuration of some kind? Do I need
to set the owner on the NodeRevisionDescriptor?

I get the same behavior when I map my store to the /files
configuration in the Domain.sample file. But with /files mapped as it
comes in Domain.sample, I do not have the same permissions problem.

Do I need to exclude the scope of my store from version control in Domain.xml?

I've been stepping through the code and there are tons of checks to
SecurityImpl.checkPermissions( ) sometimes I see my config (listed
above) in there.

Alon

On Wed, 01 Sep 2004 23:10:38 -0700, James Mason [EMAIL PROTECTED] wrote:
 Forgot to point out that the value of resourcetype should be
 collection/.
 
 -James
 
 
 
 James Mason wrote:
  'twould be nice were this easier (or at least better documented). It
  looks like you're on the right track, though.
 
  I think you'll need to set the DAV:resourcetype property at a minimum.
  Relevant line from JNDIPrincipalStore:
 
  props.put(
  DAV:resourcetype,
  new NodeProperty(resourcetype, resourceType, DAV:, , false));
 
  I'm not positive, but I think the key for the hashtable (props) is
  significant.
 
  Other than that there are a few properties you'll probably want to
  return for files (size, modification date, etc).
 
  -James
 
  alon salant wrote:
 
  Deploying an additional scope seems to work fine.
 
  It looks like I need to implement both RevisionDescriptorStore and
  RevisionDescriptorsStore. Deploying with the Transient versions
  deployed fine, but when trying to browse with the XP webdav client, I
  got RevisionNotFoundExceptions for the uri of the resource.
 
  So I tried just implementing
  RevisionDescriptorsStore.retrieveRevisionDescriptors( ) as it is in
  the JNDIPrincipalStore, but then I got Exceptions from
  TransientDescriptorStore which seems to depend on the existence of
  TransientDescriptorsStore (not sure about that one).
 
  So I stubbed out both RevisionDescriptorStore and
  RevisionDescriptorsStore. It looks like I need to implement
  RevisionDescriptorStore.retrieveRevisionDescriptor( ). I implemented a
  simple version that returns a new NodeRevisionDescriptor with its date
  properties set. My /files node shows up as a 0 byte file in my webdav
  browser, not a folder.
 
  I am not sure about how to propertly create a NodeRevisionDescriptor -
  which properties should be set folders, and which for files. Any
  hints?
 
  Am I off track here?
 
  Alon
 
  On Tue, 31 Aug 2004 09:10:36 -0700, James Mason [EMAIL PROTECTED]
  wrote:
 
  alon,
  Sorry I didn't think of this earlier. It will probably be easier, at
  least initialy, to have two store configured in your domain. Leave the
  default store in place with a scope of /, and add your store with a
  scope of /files. This way you won't have to mess with the data
  section of the domain, and you won't have to worry about returning
  ActionNodes.
 
  Once you have your store working you can decide how you want to handle
  the other information. It will probably be simplest to setup some basic
  permissions in your domain then map the webdav servlet to only server
  the /files node, but other options are available.
 
  -James
 
 
 
  alon salant wrote:
 
  Okay, I've partially answered one of my questions.
 
  Playing around and reading the config more carefully, I replaced the
  sample data element configuration with
 
  data
   objectnode classname=org.apache.slide.structure.SubjectNode
  uri=/
 permission action=all subject=all inheritable=true/
   /objectnode
  /data
 
  and can now directory browse through the webdav servlet. All I see is
  an empty root directory which is what I expect based on my initial
  SimpleFileStore implementation.
 
  Mapping a web folder from win xp is claiming that the folder you
  entered does not appear to be valid but I have

Re: Can WebDAV servlet serve non-slide-managed filesystem?

2004-09-01 Thread alon salant
Deploying an additional scope seems to work fine.

It looks like I need to implement both RevisionDescriptorStore and
RevisionDescriptorsStore. Deploying with the Transient versions
deployed fine, but when trying to browse with the XP webdav client, I
got RevisionNotFoundExceptions for the uri of the resource.

So I tried just implementing
RevisionDescriptorsStore.retrieveRevisionDescriptors( ) as it is in
the JNDIPrincipalStore, but then I got Exceptions from
TransientDescriptorStore which seems to depend on the existence of
TransientDescriptorsStore (not sure about that one).

So I stubbed out both RevisionDescriptorStore and
RevisionDescriptorsStore. It looks like I need to implement
RevisionDescriptorStore.retrieveRevisionDescriptor( ). I implemented a
simple version that returns a new NodeRevisionDescriptor with its date
properties set. My /files node shows up as a 0 byte file in my webdav
browser, not a folder.

I am not sure about how to propertly create a NodeRevisionDescriptor -
which properties should be set folders, and which for files. Any
hints?

Am I off track here?

Alon

On Tue, 31 Aug 2004 09:10:36 -0700, James Mason [EMAIL PROTECTED] wrote:
 alon,
 Sorry I didn't think of this earlier. It will probably be easier, at
 least initialy, to have two store configured in your domain. Leave the
 default store in place with a scope of /, and add your store with a
 scope of /files. This way you won't have to mess with the data
 section of the domain, and you won't have to worry about returning
 ActionNodes.
 
 Once you have your store working you can decide how you want to handle
 the other information. It will probably be simplest to setup some basic
 permissions in your domain then map the webdav servlet to only server
 the /files node, but other options are available.
 
 -James
 
 
 
 alon salant wrote:
  Okay, I've partially answered one of my questions.
 
  Playing around and reading the config more carefully, I replaced the
  sample data element configuration with
 
  data
objectnode classname=org.apache.slide.structure.SubjectNode uri=/
  permission action=all subject=all inheritable=true/
/objectnode
  /data
 
  and can now directory browse through the webdav servlet. All I see is
  an empty root directory which is what I expect based on my initial
  SimpleFileStore implementation.
 
  Mapping a web folder from win xp is claiming that the folder you
  entered does not appear to be valid but I have not looked in to this
  yet.
 
  I am curious to know what of of the namespace configuration element is
  required for what I am trying to do.
 
  Alon
 
  On Tue, 31 Aug 2004 00:06:29 -0700, alon salant [EMAIL PROTECTED] wrote:
 
 I've decided to take an initial step of stubbing out my
 SimpleFileStore implementation and deploying it in my webapp.
 
 I started with the Domain.sample file from the 2.1b1 distribution and
 modified the namespace definition as follows:
 
 definition
   store name=files
 nodestore classname=photospace.slide.SimpleFileStore
   parameter name=rootpathstore/metadata/parameter
 /nodestore
 contentstore classname=photospace.slide.SimpleFileStore
   parameter name=rootpathstore/content/parameter
 /contentstore
 securitystore
 classname=org.apache.slide.store.mem.TransientSecurityStore/
 lockstore classname=org.apache.slide.store.mem.TransientLockStore/
 revisiondescriptorsstore
 classname=org.apache.slide.store.mem.TransientDescriptorsStore/
 revisiondescriptorstore
 classname=org.apache.slide.store.mem.TransientDescriptorStore/
   /store
   scope match=/ store=files/
 /definition
 
 SimpleFileStore implements NodeStore and ContentStore. This
 configuration deploys without error.
 
 
 Is SubjectNode an
 appropriate ObjectNode implementation to return from retrieveObject(
 )?
 
 Yes.
 
 I did find that retrieveObject( ) needs to return an ActionNode not
 SubjectNode for NamespaceConfig.getActionNode( ) which was being
 called in slide startup. I was getting a ClassCastException. So should
 I always return an ActionNode from retrieveObject( )? What's the
 difference from a SubjectNode?
 
 I have the slide WebDAV servlet configured and starting up without
 errors and with directory browsing turned on. However, when I browse
 to the servlet url, I get a 403 and a single log line from slide:
 
   http-8080-Processor25, 30-Aug-2004 23:43:47, unauthenticated, GET,
 403 Forbidden, 47 ms, /
 
 Note that I have not removed the sample namespace configuration or
 data from the Domain.sample file that I started with. Reading this
 file, I'm not sure what is necessary and what does not apply. I'm
 guessing that most of the configuration is necessary and that the info
 in the data element can go. Correct?
 
 Any thoughts on how to get past my 403?
 
 Alon
 
 
  
  -
  To unsubscribe, e-mail: [EMAIL PROTECTED]
  For additional commands, e-mail: [EMAIL PROTECTED

Re: Can WebDAV servlet serve non-slide-managed filesystem?

2004-08-31 Thread alon salant
I've decided to take an initial step of stubbing out my
SimpleFileStore implementation and deploying it in my webapp.

I started with the Domain.sample file from the 2.1b1 distribution and
modified the namespace definition as follows:

definition
  store name=files
nodestore classname=photospace.slide.SimpleFileStore
  parameter name=rootpathstore/metadata/parameter
/nodestore
contentstore classname=photospace.slide.SimpleFileStore
  parameter name=rootpathstore/content/parameter
/contentstore
securitystore
classname=org.apache.slide.store.mem.TransientSecurityStore/
lockstore classname=org.apache.slide.store.mem.TransientLockStore/
revisiondescriptorsstore
classname=org.apache.slide.store.mem.TransientDescriptorsStore/
revisiondescriptorstore
classname=org.apache.slide.store.mem.TransientDescriptorStore/
  /store
  scope match=/ store=files/
/definition

SimpleFileStore implements NodeStore and ContentStore. This
configuration deploys without error.

  Is SubjectNode an
  appropriate ObjectNode implementation to return from retrieveObject(
  )?
 
 Yes.

I did find that retrieveObject( ) needs to return an ActionNode not
SubjectNode for NamespaceConfig.getActionNode( ) which was being
called in slide startup. I was getting a ClassCastException. So should
I always return an ActionNode from retrieveObject( )? What's the
difference from a SubjectNode?

I have the slide WebDAV servlet configured and starting up without
errors and with directory browsing turned on. However, when I browse
to the servlet url, I get a 403 and a single log line from slide:

  http-8080-Processor25, 30-Aug-2004 23:43:47, unauthenticated, GET,
403 Forbidden, 47 ms, /

Note that I have not removed the sample namespace configuration or
data from the Domain.sample file that I started with. Reading this
file, I'm not sure what is necessary and what does not apply. I'm
guessing that most of the configuration is necessary and that the info
in the data element can go. Correct?

Any thoughts on how to get past my 403?

Alon

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: Can WebDAV servlet serve non-slide-managed filesystem?

2004-08-31 Thread alon salant
Okay, I've partially answered one of my questions.

Playing around and reading the config more carefully, I replaced the
sample data element configuration with

data
  objectnode classname=org.apache.slide.structure.SubjectNode uri=/
permission action=all subject=all inheritable=true/
  /objectnode
/data

and can now directory browse through the webdav servlet. All I see is
an empty root directory which is what I expect based on my initial
SimpleFileStore implementation.

Mapping a web folder from win xp is claiming that the folder you
entered does not appear to be valid but I have not looked in to this
yet.

I am curious to know what of of the namespace configuration element is
required for what I am trying to do.

Alon

On Tue, 31 Aug 2004 00:06:29 -0700, alon salant [EMAIL PROTECTED] wrote:
 I've decided to take an initial step of stubbing out my
 SimpleFileStore implementation and deploying it in my webapp.
 
 I started with the Domain.sample file from the 2.1b1 distribution and
 modified the namespace definition as follows:
 
 definition
   store name=files
 nodestore classname=photospace.slide.SimpleFileStore
   parameter name=rootpathstore/metadata/parameter
 /nodestore
 contentstore classname=photospace.slide.SimpleFileStore
   parameter name=rootpathstore/content/parameter
 /contentstore
 securitystore
 classname=org.apache.slide.store.mem.TransientSecurityStore/
 lockstore classname=org.apache.slide.store.mem.TransientLockStore/
 revisiondescriptorsstore
 classname=org.apache.slide.store.mem.TransientDescriptorsStore/
 revisiondescriptorstore
 classname=org.apache.slide.store.mem.TransientDescriptorStore/
   /store
   scope match=/ store=files/
 /definition
 
 SimpleFileStore implements NodeStore and ContentStore. This
 configuration deploys without error.
 
   Is SubjectNode an
   appropriate ObjectNode implementation to return from retrieveObject(
   )?
 
  Yes.
 
 I did find that retrieveObject( ) needs to return an ActionNode not
 SubjectNode for NamespaceConfig.getActionNode( ) which was being
 called in slide startup. I was getting a ClassCastException. So should
 I always return an ActionNode from retrieveObject( )? What's the
 difference from a SubjectNode?
 
 I have the slide WebDAV servlet configured and starting up without
 errors and with directory browsing turned on. However, when I browse
 to the servlet url, I get a 403 and a single log line from slide:
 
   http-8080-Processor25, 30-Aug-2004 23:43:47, unauthenticated, GET,
 403 Forbidden, 47 ms, /
 
 Note that I have not removed the sample namespace configuration or
 data from the Domain.sample file that I started with. Reading this
 file, I'm not sure what is necessary and what does not apply. I'm
 guessing that most of the configuration is necessary and that the info
 in the data element can go. Correct?
 
 Any thoughts on how to get past my 403?
 
 Alon


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: Can WebDAV servlet serve non-slide-managed filesystem?

2004-08-29 Thread alon salant
Okay, I've started to do my homework with the 2.1b1 source and javadoc
and have a few questions.

When you say You should be able to use the Memory stores (also 2.1)
for the other *Store interface that you don't implement. I'm not sure
what you mean. Which stores are these? And how are you suggesting that
I use them? In my final domain configuration or somehow in my
implementation?

It looks like I can extend AbstractServiceBase for some of the service
basics. I'll no-op the XAResource methods. I assume that I don't want
to extend AbstractService b/c of its XAResource implementation.

It looks like I'm should implement NodeStore to manage directories.
Correct? createObject( ), removeObject( ), retrieveObject( ) seem
obvious. storeObject( ) is less so. I'm not sure what an update to a
folder would mean. Is this safe to no-op? Is SubjectNode an
appropriate ObjectNode implementation to return from retrieveObject(
)? Do I add the directory contents (files and directories) as
SubjectNode children themselves?

For ContentStore, create/remove/retrieve/storeRevisionContent seems
like straightforward file operations. Anything I should look out for
here?

What is a good way to test my implementation? Plug it in to my
Domain.xml file and see if it works? Anything better than that?

Thanks for your help,

Alon


On Fri, 27 Aug 2004 17:02:06 -0700, James Mason [EMAIL PROTECTED] wrote:
 NodeStore and ContentStore should be enough for what you're wanting. You
 may also need to implement NodeRevisionDescriptorsStore (note the extra
 's'), but that one's a gimme.
 
 Take a look at the JNDIPrincipalStore from the 2.1 milestones for an
 example of Store that doesn't implement most of the features :). You
 should be able to use the Memory stores (also 2.1) for the other *Store
 interface that you don't implement. This will let you have the other
 features, the data just won't persist between restarts.
 
 
 
 -James
 
 alon salant wrote:
  I'm definitely game to try.
 
  http://jakarta.apache.org/slide/javadoc/org/apache/slide/store/Store.html
 
  Are we talking about implementing the Store interface with no-ops for
  many of the methods?
 
  Alon
 
  On Thu, 26 Aug 2004 23:43:39 -0700, James Mason [EMAIL PROTECTED] wrote:
 
 Alon,
 I know what you mean. You know if you're not needing anything fancy it
 shouldn't be that hard to write a really simple filesystem Store for
 Slide. You could probably ignore locking, metadata, security and
 transactions, and since those are the complicated bits it should go
 quite fast :). I can try to walk you through it if you're interested.
 
 -James
 
 
 
 alon salant wrote:
 
 Thanks for confirming my understanding.
 
 I'm hoping to have WebDAV running within my webapp because I already
 manage user authentication in Java and would like to apply the same
 container-managed security my WebDAV implementation. I'm actually
 surprised not to find a simple webdav servlet impementation
 independent of application server platform or framework (slide).
 
 Alon
 
 On Wed, 25 Aug 2004 22:46:05 -0700, James Mason [EMAIL PROTECTED] wrote:
 
 
 Alon,
 
 I can't think of any way to get Slide to do this (maybe someone else
 can, though). The TxFile Store implementation uses xml files to store
 the structure of the repository, so I don't see any way to get this to
 use an existing structure in the filesystem.
 
 You could write a really Store implementation that either ignores
 metadata or stores it in some sort of .meta file.
 
 You might also look into using Apache HTTP Server's mod_dav module. It
 should do what you need and is very cross-platform.
 
 -James
 
 
 
 alon salant wrote:
 
 
 I've been reading the slide docs, have set up the slide server and
 have WebDAV working for accessing files in slide.
 
 I have been unable to definitively answer the following question.
 Hopefully someone on this list can answer it.
 
 Can the slide WebDAV servlet be configured to serve an existing
 directory on the filesystem?
 
 What I have found is that you can set up a slide filestore and store
 files in it, but you cannot create a slide filestore from an existing
 filesystem directory. Slide needs to store all kinds of metadata to do
 its job and the webdav servlet can only serve a slide filestore. Is
 this right?
 
 If not, what would I need to do to get the slide webdav servlet
 serving say, /home/alon/public_html/, where I have a bunch of
 directories and files in that location already? I understand that a
 limited set of the WebDAV protocol will be supported.
 
 I've also looked at the tomcat webdav servlet but it has several
 issues. First, it can only serve the webapp root in which it is
 loaded. It is also dependent on many tomcat core classes. I would like
 to be able to deploy on a range of application servers.
 
 Thanks,
 
 Alon
 
 -
 To unsubscribe, e-mail: [EMAIL PROTECTED]
 For additional commands, e-mail: [EMAIL PROTECTED

Re: Can WebDAV servlet serve non-slide-managed filesystem?

2004-08-27 Thread alon salant
I'm definitely game to try.

http://jakarta.apache.org/slide/javadoc/org/apache/slide/store/Store.html

Are we talking about implementing the Store interface with no-ops for
many of the methods?

Alon

On Thu, 26 Aug 2004 23:43:39 -0700, James Mason [EMAIL PROTECTED] wrote:
 Alon,
 I know what you mean. You know if you're not needing anything fancy it
 shouldn't be that hard to write a really simple filesystem Store for
 Slide. You could probably ignore locking, metadata, security and
 transactions, and since those are the complicated bits it should go
 quite fast :). I can try to walk you through it if you're interested.
 
 -James
 
 
 
 alon salant wrote:
  Thanks for confirming my understanding.
 
  I'm hoping to have WebDAV running within my webapp because I already
  manage user authentication in Java and would like to apply the same
  container-managed security my WebDAV implementation. I'm actually
  surprised not to find a simple webdav servlet impementation
  independent of application server platform or framework (slide).
 
  Alon
 
  On Wed, 25 Aug 2004 22:46:05 -0700, James Mason [EMAIL PROTECTED] wrote:
 
 Alon,
 
 I can't think of any way to get Slide to do this (maybe someone else
 can, though). The TxFile Store implementation uses xml files to store
 the structure of the repository, so I don't see any way to get this to
 use an existing structure in the filesystem.
 
 You could write a really Store implementation that either ignores
 metadata or stores it in some sort of .meta file.
 
 You might also look into using Apache HTTP Server's mod_dav module. It
 should do what you need and is very cross-platform.
 
 -James
 
 
 
 alon salant wrote:
 
 I've been reading the slide docs, have set up the slide server and
 have WebDAV working for accessing files in slide.
 
 I have been unable to definitively answer the following question.
 Hopefully someone on this list can answer it.
 
 Can the slide WebDAV servlet be configured to serve an existing
 directory on the filesystem?
 
 What I have found is that you can set up a slide filestore and store
 files in it, but you cannot create a slide filestore from an existing
 filesystem directory. Slide needs to store all kinds of metadata to do
 its job and the webdav servlet can only serve a slide filestore. Is
 this right?
 
 If not, what would I need to do to get the slide webdav servlet
 serving say, /home/alon/public_html/, where I have a bunch of
 directories and files in that location already? I understand that a
 limited set of the WebDAV protocol will be supported.
 
 I've also looked at the tomcat webdav servlet but it has several
 issues. First, it can only serve the webapp root in which it is
 loaded. It is also dependent on many tomcat core classes. I would like
 to be able to deploy on a range of application servers.
 
 Thanks,
 
 Alon
 
 -
 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]
 
 
 
 
  -
  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]
 


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: Can WebDAV servlet serve non-slide-managed filesystem?

2004-08-26 Thread alon salant
Thanks for confirming my understanding.

I'm hoping to have WebDAV running within my webapp because I already
manage user authentication in Java and would like to apply the same
container-managed security my WebDAV implementation. I'm actually
surprised not to find a simple webdav servlet impementation
independent of application server platform or framework (slide).

Alon

On Wed, 25 Aug 2004 22:46:05 -0700, James Mason [EMAIL PROTECTED] wrote:
 Alon,
 
 I can't think of any way to get Slide to do this (maybe someone else
 can, though). The TxFile Store implementation uses xml files to store
 the structure of the repository, so I don't see any way to get this to
 use an existing structure in the filesystem.
 
 You could write a really Store implementation that either ignores
 metadata or stores it in some sort of .meta file.
 
 You might also look into using Apache HTTP Server's mod_dav module. It
 should do what you need and is very cross-platform.
 
 -James
 
 
 
 alon salant wrote:
  I've been reading the slide docs, have set up the slide server and
  have WebDAV working for accessing files in slide.
 
  I have been unable to definitively answer the following question.
  Hopefully someone on this list can answer it.
 
  Can the slide WebDAV servlet be configured to serve an existing
  directory on the filesystem?
 
  What I have found is that you can set up a slide filestore and store
  files in it, but you cannot create a slide filestore from an existing
  filesystem directory. Slide needs to store all kinds of metadata to do
  its job and the webdav servlet can only serve a slide filestore. Is
  this right?
 
  If not, what would I need to do to get the slide webdav servlet
  serving say, /home/alon/public_html/, where I have a bunch of
  directories and files in that location already? I understand that a
  limited set of the WebDAV protocol will be supported.
 
  I've also looked at the tomcat webdav servlet but it has several
  issues. First, it can only serve the webapp root in which it is
  loaded. It is also dependent on many tomcat core classes. I would like
  to be able to deploy on a range of application servers.
 
  Thanks,
 
  Alon
  
  -
  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]
 


-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Can WebDAV servlet serve non-slide-managed filesystem?

2004-08-25 Thread alon salant
I've been reading the slide docs, have set up the slide server and
have WebDAV working for accessing files in slide.

I have been unable to definitively answer the following question.
Hopefully someone on this list can answer it.

Can the slide WebDAV servlet be configured to serve an existing
directory on the filesystem?

What I have found is that you can set up a slide filestore and store
files in it, but you cannot create a slide filestore from an existing
filesystem directory. Slide needs to store all kinds of metadata to do
its job and the webdav servlet can only serve a slide filestore. Is
this right?

If not, what would I need to do to get the slide webdav servlet
serving say, /home/alon/public_html/, where I have a bunch of
directories and files in that location already? I understand that a
limited set of the WebDAV protocol will be supported.

I've also looked at the tomcat webdav servlet but it has several
issues. First, it can only serve the webapp root in which it is
loaded. It is also dependent on many tomcat core classes. I would like
to be able to deploy on a range of application servers.

Thanks,

Alon

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]