Hi,

Well, your mileage may vary :-)

In my experience, JCR is a wonderful and easy API to use. Still having
proper Java Objects to work on and to delegate loading and unloading to an
OCM layer helps me a lot - in terms of typing, fail safeness and not having
to worry about checked exceptions which are not thrown in most cases anyway.

And by the way, using an OCM with proper objects also helps a lot ensuring
the integrity of the data managed, as there is a single point of control
regarding how the data is accessed. Again, your mileage may vary, but as
code tends to grow, this should be seriously considered.

Regards
Felix

On 6/20/07, Jukka Zitting <[EMAIL PROTECTED]> wrote:

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

Reply via email to