spencer.c wrote:

1)  Are JCRs typically used as the sole persistence mechanism in an
application, or used along side a traditional DBMS?  The primary feature in
my application manages files and as such seems like a good match for the JCR
format, which will handle much of the heavy lifting for me.  On the other
hand, trying to store some of the information in the JCR just doesn't seem
to fit right, like logging events or storing workflow information.  I guess
my question boils down to, do I feel this way because I'm still unfamiliar
with using a JCR, or is it a legitimate feeling and I should plan on using
another DBMS in addition to Jackrabbit for managing the info?

Well, if I your applications focus is on reading data and you don't need to quickly aggregate data (like SQLs "group by", "avg", "sum", etc) I would put my whole data into a JCR. If you need high performance concurrent write/read operations Jackrabbit might not be the best choice as of now. In your described scenario I would definitely store workflow information in the JCR. If you expect a lot of event to be written I would probably store that information in a separate storage (db, filesystem ...). Before deciding I would do a benchmark with some real data. If possible I would stick with JCR to keep your application architecture uniformly.

2)  I have had a hard time finding realistic permission examples for
Jackrabbit.  The examples I have found demo how to use simple credentials
and log in, but I need to handle things like per directory permissions for
users and groups.  Is there some documentation that would help speed up my
learning curve?  Specifically dealing with per directory permissions and
permissions that change during the lifecycle of a file for groups of users.

Have a look at http://jackrabbit.apache.org/api/1.3/org/apache/jackrabbit/core/security/AccessManager.html
.
All you need to do is implement this interface to build your own access control mechanism. You can configure Jackrabbit to use your access manager in the repository.xml.

Cheers,
Christoph

Reply via email to