Can WebDAV servlet serve non-slide-managed filesystem?
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?
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]
Re: Can WebDAV servlet serve non-slide-managed filesystem?
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]
Re: Can WebDAV servlet serve non-slide-managed filesystem?
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]
Re: Can WebDAV servlet serve non-slide-managed filesystem?
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?
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] - 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?
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 o
Re: Can WebDAV servlet serve non-slide-managed filesystem?
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: store/metadata store/content 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?
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 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: > > > > > store/metadata > > > store/content > > classname="org.apache.slide.store.mem.TransientSecurityStore"/> > > classname="org.apache.slide.store.mem.TransientDescriptorsStore"/> > classname="org.apache.slide.store.mem.TransientDescriptorStore"/> > > > > > 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?
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 of "/", and add your store with a scope of "/files". This way you won't have to mess with the 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 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: store/metadata store/content 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] - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: Can WebDAV servlet serve non-slide-managed filesystem?
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 of "/", and add your store with a > scope of "/files". This way you won't have to mess with the > 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 > > > > > > > > > > > > > > > > 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: > >> > >> > >> > >> > >> store/metadata > >> > >> > >> store/content > >> > >> >>classname="org.apache.slide.store.mem.TransientSecurityStore"/> > >> > >> >>classname="org.apache.slide.store.mem.TransientDescriptorsStore"/> > >> >>classname="org.apache.slide.store.mem.TransientDescriptorStore"/> > >> > >> > >> > >> > >>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] > > > > > > > > - > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > > - To unsub
Re: Can WebDAV servlet serve non-slide-managed filesystem?
'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 of "/", and add your store with a scope of "/files". This way you won't have to mess with the 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 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: store/metadata store/content 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] - 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?
Forgot to point out that the value of resourcetype should be "". -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 of "/", and add your store with a scope of "/files". This way you won't have to mess with the 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 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: store/metadata store/content classname="org.apache.slide.store.mem.TransientSecurityStore"/> classname="org.apache.slide.store.mem.TransientDescriptorsStore"/> classname="org.apache.slide.store.mem.TransientDescriptorStore"/> 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?
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 entry in : 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 > "". > > -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 of "/", and add your store with a > >>> scope of "/files". This way you won't have to mess with the > >>> 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 > > > uri="/"> > > > > > 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
Re: Can WebDAV servlet serve non-slide-managed filesystem?
It sounds like the acl might be getting messed up somehow. You can check this by using the command line client to execute the acl method on a resource in your Store. A quick fix would probably be to disable security in your slide.properties file. Unless you're maintaining a list of users and roles in Slide having security on is rather meaningless. This won't actually fix the problem, but it should make it go away :). You can also turn versioning off if you don't need it. That speeds things up a little too. -James 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. I removed all access restrictions with an entry in : 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 "". -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 of "/", and add your store with a scope of "/files". This way you won't have to mess with the 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 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
Re: Can WebDAV servlet serve non-slide-managed filesystem?
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]
Re: Can WebDAV servlet serve non-slide-managed filesystem?
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?
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 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] - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: Can WebDAV servlet serve non-slide-managed filesystem?
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?
alon salant wrote: I'd be happy to contribute. Great :) 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. I see. I was thinking about random properties like meta data you can set with the PROPPATCH method: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/e2k3/e2k3/_webdav_proppatch.asp and well yes, I am a MS fan ;) However, not big issue not to set them... 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? I remember I had this problem as well, when I did another store implementation. What values are displayed? Zero? Maybe MS tries to store other properties, I seem to remember something like this... I am so forgetful these days... If you really want to go for it, try and trace the WebDAV communication with the default file store and then yours with the same requests and look for the differences. I would love to do myself, but am a bit short of time right now :( 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. AFAIK ehcache is only used by the JNDI store. The rest of Slide uses some custom transactional caching stuff. I understand your problem. The cache would need to know when the file system changes in order to refresh. I do not think there is a way to get this done. ehcache has an option to invalidate entries after a certain amount of time. This would ne nice for Slide's cache just as well. For now, if you really need to to pick up the changes disable global caching completely. To do this set the caching mode to "cluster" with parameter "cache-mode" in Domain.xml. The parameter must be set for the complete store like cluster ... ... 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. This sounds rather reasonable to me. If it works, keep it like this... If you need any help, especially with issue 1, or are ready to contribute the store, let me know... Thanks, Oliver 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
Re: Can WebDAV servlet serve non-slide-managed filesystem?
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? I remember I had this problem as well, when I did another store implementation. What values are displayed? Zero? Maybe MS tries to store other properties, I seem to remember something like this... I am so forgetful these days... Here's a list of known problems with MS WebFolders: http://greenbytes.de/tech/webdav/webfolder-client-list.html. I'm not seeing anything like you describe, but I can say for certain that WebFolders caches a great deal on the client. It's often quite frustrating. 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. AFAIK ehcache is only used by the JNDI store. The rest of Slide uses some custom transactional caching stuff. I understand your problem. The cache would need to know when the file system changes in order to refresh. I do not think there is a way to get this done. ehcache has an option to invalidate entries after a certain amount of time. This would ne nice for Slide's cache just as well. For now, if you really need to to pick up the changes disable global caching completely. To do this set the caching mode to "cluster" with parameter "cache-mode" in Domain.xml. The parameter must be set for the complete store like cluster ... ... You can also override cacheResults() in AbstractServiceBase to return false (the JNDI store does this). This prevents Oliver's cache from grabbing your data. If you do this, I highly recommend you implement your own caching mechanism unless your Store is blazingly fast. Slide accesses a Store multiple times for a single retrieval, so lack of a cache can really slow things down. As for ehcache, I believe Oliver is right. I used it for the JNDI store, but I don't think it's used anywhere else. On idea, though. If you can pick up changes to the file system somehow you can notify the cache in ExtendedStore that the object has changed. ExtendedStore.removeObjectFromCache() method is what you'd need there. -James - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: Can WebDAV servlet serve non-slide-managed filesystem?
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?
alon salant wrote: 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. OK, maybe others can help once the store is inside of Slide. That's one of the good things when it is actually part of Slide :) 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? 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... Oliver - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: Can WebDAV servlet serve non-slide-managed filesystem?
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]