jackrabbit-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Kenneth Yue <Kenneth....@Sun.COM>
Subject Re: [Fwd: Which RepositoryFactory for WebDAV?]
Date Mon, 01 Dec 2008 23:36:35 GMT
Alexander Klimetschek wrote:
> Hi Ken!
> On Mon, Dec 1, 2008 at 5:40 AM, Kenneth Yue <Kenneth.Yue@sun.com> wrote:
>> I would really appreciate if you could do that ASAP.
> Just a short reminder: This is an open-source project which means: a)
> people spend their limited time on it for the great idea of
> open-source software, b) it is *not* a paid support contract with a
> defined response-time and finally c) using open-source libraries means
> to get involved in the project, at least by building it yourself and
> patching it to your needs, which might come in handy for the project
> itself.
> Therefore I'd recommend not to ask people for deliveries as if you
> were their manager.

It certainly wasn't my intention to treat Angela as my subordinate.  If 
my request came across as a demand, I apologize.

Look, I'm working on another FOSS project too.  I'm familiar with the 
work I'm doing.  However, I have not been involved in the development of 
Jackrabbit, so it will be awfully inefficient for me to go in and spend 
countless hours of time trying to figure out how the current Jackrabbit 
code works, how it's organized, what its architecture is, etc. in order 
to come up with a RepositoryFactory for spi2dav.

I was really surprised to find out that the server side of JCR remoting 
over WebDAV is released but there is no client code for it (which makes 
JCR remoting over WebDAV pretty much useless).

If I were to work on this today, this is the approach I'll make.  Please 
let me know if this makes sense (all of these are just guessworks so I 
could be completely off-base):

1. Try to understand what the SPI architecture is.  I suppose it's an 
implementation of JCR using SPI (what does this interface look like?) 
and then there are multiple implementations of SPI.  One of that will be 
using WebDAV as the remote protocol to communicate with the JCR WebDAV 
Servlet.  Another will be using RMI (which I'm not interested in using).

2. Try to understand what a RepositoryFactory is.  There are a couple of 
examples.  One is the BindableRepositoryFactory and another is 
ClientRepositoryFactory.  There are probably more.  I have to study 
these as examples to create my own.

3. There are at least two approaches for creating the RepositoryFactory 
for SPI.  The first one is to have just one that takes a parameter for 
what type of SPI implementation to use (WebDAV or RMI).  The other 
approach is to have different classes that return different 
RepositoryImpls that use different SPI implementations.  Oh wait, if 
there is really just one JCR2SPI implementation, then the second 
approach doesn't make sense.

All of these are not rocket science.  Giving enough time, maybe a few 
weeks/months (which I don't really have right now), anyone can do it. 
As you can imagine, trying to read and understand all those classes, how 
they interact, takes a long time.

On the other hand, Angela has been working on this project for a long 
time (I suppose) and definitely is familiar with the Jackrabbit code. 
With the other RepositoryFactory examples that she has, she could 
probably create one for SPI2WebDAV in a few hours.  :-)  Again, this 
RepositoryFactory she checks into sandbox doesn't have to be 
stable/tested, just something I can start using for the most basic 
scenario to continue my development I'll be very happy.  I can help 
debugging and fixing things as I get more familiar with the code, but as 
of now I'm not even sure how to start or if my "approach" above makes 
any sense.

Thanks for the good work so far.  I really appreciate it.


P.S. ASAP is not a "defined response time."  :-)

> Thanks,
> Alex

View raw message