Question

I need to design a CMS system for an university project for a team with inexperienced java developers. I looked into the different options(especially Apache Jackrabbit and JCR) but I am not sure what to use. We have to develop web interface for the DMS where one can upload document and fill custom set of properties to it (the properties are the same for all documents). I am not sure if my team will be able to work with Jackrabbit.

Is using a database for storing documents in Base64 encoding an option?

I plan to use JSF, JPA, hibernate, EJB and JBoss AS,

The system has to be able to:

  • Free product or 3rd party library etc. which is easy to use from inexperienced devs;
  • Store documents;
  • Support versions;
  • Support archiving (low priority);
  • Support set of properties i.e. documentDescription: "some txt goes here".
Was it helpful?

Solution

From my exprience JCR itself is too lowlevel to be used by a team of inexperienced developers. You could use jcrom for object mapping, but I cannot say that it is easy or flawless.

Martin Fowler wrote that CMS is one of the applications for document oriented NoSQL databases. You could try to use MongoDB with Morphia for object mapping. I found it very easy to use and deploy (again from my experience to start with MongoDB is easier than to start with JCR). While documentation for both jcrom and Morphia is far from perfect, I find Morphia much easier to use.

For storing files you can use use GridFS.

But beware that if you use MongoDB instead of JCR you will not have transactions and versioning. If you do not transactions and you will try to use MongoDB you will have to implement some transactions by yourself, which can be not very easy.

P.S. I am not sure if you can use JPA/Hibernate for JCR. From my research I found only two implementations of object mapping for JCR: jcrom and some OM implemmentation from Apache Jackrabbit (JCR implementation).

OTHER TIPS

Hippo could be a project that meets your needs. It's open source. With an enterprise subscription you'll be able to meet your archiving requirement.

An example of a university site build with Hippo is the site of the University of Amsterdam.

If you need only CMS, you could try CUBA Platform. I think it's the very cool platform for intranet or CMS projects.

This framework based on Vaadin and Spring technologies. By the way, it's opensource!

Also, you can see demo CMS for Public Library

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top