On Tue, 2004-10-12 at 08:48, Oliver Zeigermann wrote:
> James Mason schrieb:
> 
> > Awesome Oliver! I look forward to playing with this.
> 
> I expect to commit it later tonite my time (now it is almost 6 pm here).
> 
> > Where do you find the time? ;)
> 
> The development was funded :)

So that's the secret! :)

-James

> 
> Oliver
> 
> > -James
> > 
> > On Tue, 2004-10-12 at 02:17, Oliver Zeigermann wrote:
> > 
> >>Folks,
> >>
> >>if things work out the way I plan I will add the WebDAV Construction Kit 
> >>to the proposals section of the Slide CVS HEAD today.
> >>
> >>It contains classes that help you to make your proprietary system WebDAV 
> >>aware without much knowledge of either Slide and then also WebDAV to an 
> >>extend that it should work with the usual Windows, Mac and Linux clients.
> >>
> >>It emerged out of the experience that Slide's storing system is most 
> >>flexible and generic, but too complex for many people who just want to 
> >>add the WebDAV interface to their systems. Additionally, it contains a 
> >>JAAS login module that allows you to bypass Slide's user managerment and 
> >>the complete internal access checking. All this is done by your 
> >>proprietary system. This, however, is optional to you.
> >>
> >>All this is the largest hack I have ever done as it relies on many 
> >>implementation details and sequences of calls - at least it should be 
> >>the standard hack that will be maintained and adapted to Slide as we go 
> >>along. It is important to understand that all this works only when you 
> >>access Slide through its WebDAV interface and only if you restrict 
> >>yourself to the core WebDAV methods. It is likely not to work when you 
> >>use the native Slide interface. It will not work with ACL, BIND, SEARCH 
> >>and DeltaV methods.
> >>
> >>The main interfaces
> >>-------------------
> >>
> >>To make Slide work as your WebDAV layer you will have to implement a 
> >>single interface: org.apache.slide.simple.store.BasicWebdavStore. It 
> >>contains some call back methods which do not use any Slide classes 
> >>except for the exceptions, which I thought are pretty obvious and thus 
> >>it would have been silly to more or less clone them. Here they are for a 
> >>short reference - the complete ones I will check in will have much more 
> >>detailed documentation:
> >>
> >>- begin, commit, rollback: begins, commits, aborts a request / transaction
> >>- objectExists, isFolder, isResource: existence checks, collection vs. 
> >>content checks
> >>- createFolder, createResource: creation of a collection or a content 
> >>resource
> >>- removeObject: deletion of a collection or a content resource
> >>- setResourceContent, getResourceContent: storing and retrieval of a 
> >>content resource
> >>- getLastModified, getCreationDate, getResourceLength: retrieval of 
> >>basic meta data
> >>- getChildrenNames: retrieval of the children of a collection
> >>
> >>This is all Slide and WCK need to make basic WebDAV operations work. 
> >>There are optional extension interfaces that add full property access 
> >>and locking if your system supports them.
> >>
> >>The second main interface is even simpler and allows you to login into 
> >>Slide using your proprietary user database. The glue code will pass 
> >>session and connection information to your store as well. All this 
> >>allows to effectively bypass Slide's security code and leave this to 
> >>your system. All you have to implement are three methods of the 
> >>org.apache.slide.simple.authentication.SessionAuthenticationManager.
> >>
> >>- getAuthenticationSession (2x one with user/password one with user 
> >>only): asks if a certain user exists and authenticated itseld correctly 
> >>and if so an object that allows access to your system, i.e. a session or 
> >>connection or anything similiar, is passed back; in case the user has 
> >>already authenticated correctly before only the user with no password is 
> >>passed
> >>- closeAuthenticationSession: closes the session / terminates the 
> >>connection to your system
> >>
> >>Using this interface the glue code finds out if a user exists and 
> >>authenticated itself correctly and passes all relevant information to 
> >>the basic WebDAV store for you to make authenticated requests to your 
> >>system later. All this is optional, you still can use Slide's internal 
> >>security with your WebDAV store if this is not appropriate for you. For 
> >>your convenience there also is a connection pool available.
> >>
> >>Reference Implementation
> >>------------------------
> >>
> >>For the store, the session manager and the pooling connection manager 
> >>there are reference implementations to the file system to help you get 
> >>going. However, the ones for sessions and connection management are 
> >>dummies only as the file system neither needs sessions nor connections.
> >>The reference implementation of the store part and also parts of the 
> >>glue code are heavily inspired by the work of Alon who provided the 
> >>simple file store to us - so credit goes to Alon. The new implementation 
> >>of the file store extends Alon's in adding arbitrary properties 
> >>(optional) and locks (optional) and proper handling of access violations.
> >>
> >>Building
> >>--------
> >>
> >>WCK works with both the current versions of Slide 2.1 and the CVS HEAD 
> >>and comes with a build script that creates a full working web archive to 
> >>be deployed in Tomcat. Which one it will compile to and package with is 
> >>to be determined in build.properties. If this isn't obvious details will 
> >>  follow upon request. When WCK matures it might be possible to even 
> >>release it as a distribution of its own, but this is something to discuss.
> >>
> >>Bottom Line
> >>-----------
> >>
> >>What I need from you is feedback as detailed as possible if this suits 
> >>your needs our what should be changed resp. added to make this what you 
> >>need.
> >>
> >>Additionally, I am pretty sure I have forgotten the most important 
> >>parts, so remind me and ask for them, please...
> >>
> >>Finally, have in mind this is work in progress so changes to the API are 
> >>somewhat likely.
> >>
> >>Have fun checking this out and cheers
> >>
> >>Oliver
> >>
> >>---------------------------------------------------------------------
> >>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]

Reply via email to