I'm new to the forum so I hope this doesn't sound too dumb or general, but I'm having a hard time understanding CMS written in Java. I haven't seen too much documentation about how to build a CUSTOM JCR CMS - I haven't even seen a JackRabbit User Guide. I also want to get away from using available CMS apps because I'm trying to learn the architecture by writing as much of my own code as possible. I'm choosing to start with JCR (JSR-170) and JackRabbit, mySQL DB, Tomcat 7 and Eclipse Indigo as the core development platform. I want a standardized, highly customizable platform, so my first question is this platform the right choice?
Next difficulty comes in understanding the Content Repository. I'd like this to be in mySQL. I'd also like to wite my own classes and JSP to give a simple admin function access to the repository but I haven't seen many examples of documentation of a simple JSP admin to access the repository (and I don't mean using the JackRabbit Webdav or stand alone server apps as a quick solution - I mean examples of how a developer can write custom classes and corresponding JSPs to access and manage the repository).
Ultimately, I'd like a CMS that has an MVC architecture, with as much of the app as possible to be written in java and JSP. I'm also looking into frameworks like Struts and Spring, but I just notice the configuration overheads in those frameworks are potentially more time consuiming than writing a more 'native' type of app. I'm sure it's possible to write an MVC CMS using mostly Java and JSP, but I can't find much in the way of books or online material that walks through how to build an end-to-end MVC CMS.
Hopefully this forum can shed some light since I'm sure I'm missing some key information here and would really appreciate any advice.
If you're an end user of a CMS, or are writing a CSM geared towards end users, using JCR directly is probably not best approach. JCR would be used under the hood by a CMS that you would customize as appropriate for your users.
I'm writing this for an end user and from your response I'm guessing that JCR isn't suitable for user-friendly CMS interfaces. In this case I'd like to consider writing a native java CMS. So I guess my next question is if there's any guides, books or materials about how to build an end-to-end CMS using native java? Alternatively, do you think it's better to download existing apps (ie: AlFresco, Hippo, JackRabbit) and customize them using JCR? Thanks, J
No no no, you misunderstood. What I meant to say is that JCR is a back-end technology - it concerns itself with storing data somewhere. That should be totally transparent to the end user. To you as the CMS developer, it matters a good deal. But the repository should be far away from the GUI, so the end user would never know.
But you're right that there are quite a few quite capable open source CMSes written in Java out there (some of which support JCR and some of which that don't). They are highly customizable, so you should indeed ask yourself if you might be better off starting with ones of those. The standard bearers are OpenCms, Alfresco, Magnolia and dotCMS.