Hi, On 6/19/07, bilobag <[EMAIL PROTECTED]> wrote:
I am in the beginning stages of a web based CMS tool using JSF, Spring and Jackrabbit. Please give any design advice you may have for the following questions:
Chiming in a bit late...
1) I have 3 node types. Content, book, magazine. Book and magazine extend the content type. They all have some common properties and some different properties. Now I first thought about creating wrapper classes that just wrap the Node object and provide getters/setters for any properties I have for each nodeType. However, I am unsure if this is a good idea possibly because of locking and concurrency issues. I don't know if its a better idea to have data transfer objects instead to move data to/from the front end. However, its more work to have to copy the propertys to/from the DTO objects back into the node, but it could be the safer design.
When possible I typically try to avoid extra layers on top of JCR. Unlike relational databases, JCR is actually quite "OO-friendly" so the need for an DAO/DTO layer is not that big. Typically such a layer just ends up limiting the available functionality. I'm not against the OCM tool as is, I think it is very useful when you already have an existing object model to be persisted, but if you get to start from scratch then I would rather recommend directly using JCR. My favourite way of working with JCR is to treat nodes as stateful resources, and my code as a set of stateless operations to be applied on those resources. Such an approach is very "web-friendly". BR, Jukka Zitting
