jackrabbit-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Sandro Böhme <sandro.boe...@gmx.de>
Subject JCR mapping proposal
Date Mon, 09 May 2005 19:17:34 GMT
Object / JCR repository mapping tools

Authors : Sandro Boehme (sandro.boehme at gmx.de), Christophe Lombart 
(christophe.lombart at gmail.com)

The scope of the project is the mapping and the decoration of an
arbitrary Java class structure to a JCR item type structure.
This enables arbitrary java class models to use the functionality
provided by a JCR implementation. The persistence manager
class acts as a proxy for JCR-capable classes to hand over JCR
functionalities from Java model objects to JCR nodes.

The intention of the project is to be data centric, to support a model
driven architecture and to be very easy to use.

The data centric approach makes it easier for different applications to
use the unified content provided by the repository.
It is archived with the configuration file containing the mappings,
decorations and the converter class name(s).
Full model driven architecture will not be supported in the first step
because we need more investigation for that issue.
With well chosen defaults it should be possible to use the JCR
funtionality with a minimum of mapping and decoration
information. For the sake of an easy use it is also planned to support
xdoclet and maybe annotations.


In short term :

- Transparent persistence: Persistent classes don't have to inherit from 
a persistent base class or to implement an interface.
- The Object / JCR  mapping is defined in an XML Repository. Later, we 
plan to support JDK annotations.
- Map class names to JCR node types
- Map class attributes to node properties or subnode.
- Map class associations (eg. a page contains news) to subnode. Support 
any kind of collection or maps for 1-n associations.
- Lazy loading - Proxy support
- Simple query language based on the JCR query features (maybe we have 
to explain more how to make some queries)
- Implement an AOP cache within different cache strategies. The caching 
stategy is defined in the config xml file.
- pluggable node type registration for different JCR implementations

Later, we plan :
- Use JDK annotation and/or xdoclet
- Strong caching mechanism


We can expect that a lot of CMS developers will be interested by this 
kind of tools.
This framework gives the possibility to migrate any CMS application 
smoothly to the JCR technology.
Futhermore, it gives more abstraction between the content repository and 
the application itself.

As this project especially needs JCR knowledge, probably an indepedent
subproject of Jackrabbit using the Jackrabbit mailing list would be the 
perfect place. It would also be natural for a developer to look for a JCR 
mapping tool in the Jackrabbit project. At the moment it is hosted in the 
Graffito project so it will not become an orphan if it is not possible to 
host it in Jackrabbit  ;-) .


Christophe and Sandro

View raw message