jackrabbit-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Matthew Short <msh...@tacitknowledge.com>
Subject Re: OCM Node Definitions
Date Wed, 01 Jul 2009 20:38:53 GMT

Hrm.  I think an analogy/metaphor might help understand the CND vs OCM 
annotation issue.

The CND specification and language allows for specifying constraints and 
relationships between 'stuff' in the JCR.  Its a bit like throwing a 
constraint on an RDBMS table with DDL, although a better idea would be 
to create a  class of tables that share the same constraints and foreign 

OCM operates at a level or tier above the JCR, similar to ORM tools.  Of 
course, all the varied ways of defining and typing objects apply, with 
much more flexibility than the JCR specs.  But you don't get the 
namespace enforcement at the storage layer - which means a second tool 
that doesnt use your OCM implementation could violate constraints and 
namespaces established in your OCM implementation.

One of the questions I like to ask teams when starting projects is: 
Should we handle constraints at the storage layer or persistence layer?  
And which constraints where? 

Juan Pereyra wrote:
> Hi all,
> Here goes another question about the OCM. According to the documentation, one would define
new namespaces and new nodetypes as part of an CND configuration. However, I noticed that
most things that you define on the CND file, you could define them as annotations (i.e. jcrSuperTypes,
etc.). Trying to get OCM to load the new types from annotations I got to the AnnotationDescriptorReader
class, which JavaDoc is this:
> <code>
> /**
>  * Helper class that reads the xml mapping file and load all class descriptors into memory
(object graph)
>  *
>  * @author <a href="mailto:christophe.lombart@gmail.com">Lombart Christophe </a>
>  * @author : <a href="mailto:boni.g@bioimagene.com">Boni Gopalan</a>
>  *
>  */
> public class AnnotationDescriptorReader implements DescriptorReader
> </code>
> However, the class reads annotation descriptors, not an XML, and interestingly enough,
the JavaDoc is identical to the one in the class DigesterDescriptorReader.
> So, summarizing, is it possible to load namespace definitions without the CND or an XML?
just with annotations? Everything that's needed seems to be there already.
> Many thanks guys!
> Juan

View raw message