Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I'm evaluating some NoSQL solutions for a project of mine and JCR popped up during my searches as a document store. But it seems somehow of an obscure niche which didn't have the impact its designers hoped for.

I'm interested in the technology, but so far there does not seem to be a lot of resources out there to show it's potential (there is some info on the Jackrabbit site, but otherwise, pretty much scarce info).

Hopefully someone in the SE community could share from their experience with this technology.

What are its advantages/disadvantages? In what situations does this technology perform best?

share|improve this question
up vote 4 down vote accepted

I studied a bit about JCR eons ago. It's a nifty Java API to model a document repository, with a hierarchy, metadata, versioning, etc., that is, a nice model for CMS backend. There are quite a few implementations, notably the open source JCR, but some "enterprise CMS companies" had their own products based on JCR. Jackrabbit for instance uses an underlying SQL database.

Unfortunately, the JCR ecosystem doesn't seem to be very lively. So probably the work it would save you would probably be offset by the difficulty of hiring people who know it, the maturity of the libraries, etc. Some promising stuff exists, such as Sling, which is a nice web framework on top of JCR which might be a good foundation to build CMS-ey sites.

I would take a look at JCR; if the things it implements are stuff you need, it might be worth adopting it if you find a decent opensource implementation (Jackrabbit).

share|improve this answer

It looks like JCR is just a generic interface/API that a third-party could implement (similar to JMS). What you'd need to do is search for third party JCR support which it appears, your link on Wikipedia gives a few examples.

If you are creating an application that a customer would install on premise and needs to integrate with multiple document stores, JCR might be the path for you. However, if you're managing the stack from top to bottom, I'd say pick a store directly and use it directly for the time being.

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.