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]
