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 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="rootpath">store/metadata</parameter> </nodestore> <contentstore classname="photospace.slide.SimpleFileStore"> <parameter name="rootpath">store/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]
--------------------------------------------------------------------- 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]
