You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@directory.apache.org by Alex Karasulu <ao...@bellsouth.net> on 2004/04/22 19:35:47 UTC

[JNDI] JNDI Provider for Webdav (RE: Please review 'Introduction404')

Hi,

// ---------------------------------------------------------------
// B A C K G R O U N D   F O R   L I S T 
// ---------------------------------------------------------------
//
// Oliver for the Slide team and I were discussing the possibility
// of writing a JNDI provider for WebDAV, DeltaV and eventually
// for Subversion.  We're thinking about a stackable provider where
// WebDAV is implemented first and the other protocols are stacked
// on top.
//
// We are trying to conceptualize the namespace possibilities and how 
// the content verses the properties(WebDAV)/attributes(JNDI) will 
// be presented.
//
// All that are interested are welcome to join the conversation!
// ---------------------------------------------------------------

> > A version tag might be used when specifying attributes via JNDI.
> > The LDAP namespace has a good example of this for languages.  Basically
> > when you specify an attribute you can give it the two character language
> > tag like so.  Just a stupid example of an attribute for some button
> label:
> >
> > button-label;lang-en: send
> > button-label;lang-fr: envoyer
> > button-lavel;lang-de: absenden
> > ...
> >
> > So if I am conducting a lookup I can specify some form of version number
> for
> > the lookup using a similar tagging scheme like so version-3456 where the
> > 3456 is the global version number for the subversion repository.
> 
> Hmmm. I do not quite understand... The above looks like access to
> attributes, is this right?

Yes.  Basically a context to an entry for example,

http://some.server.com/some/path/to/webdav/entry  

can have attributes associated with it.  Some of these attributes can be
system defined meaning they are created by the provider or the webdav
implementation lets presume for the moment.  Webdav's properties map 1:1 to
the JNDI attributes.  Say there is some JNDI provider specific content
attribute which is actually the stream of the webdav entry.  This attribute
can be looked up based on version using the tagging scheme above.   So for
example you could have:

content;version-1: [data]
...
content;version-9: [data]
content;version-10: [data]

And so on ...


> >
> >>What do you think?
> >
> >
> > Yeah I would tend to agree with starting off with WebDAV and building
> off
> > of that for both DeltaV and subversion.
> >
> > Personally my biggest incongruity between JNDI and WebDAV is how
> > to represent the data stream to actually read content.  I'm thinking
> > that this can be a specific attribute name in a DirContent like for
> > example "content".
> 
> I thought a simple lookup would do which returns an Object that holds
> the content. This may be the reason why I did not get your explanation
> how to access versions...

Yes that can be done as well.  Basically you can return a reference object
that encapsulates the streaming of the content.  Both approaches will work.

Alex