You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@jackrabbit.apache.org by Sandro Böhme <sa...@gmx.de> on 2005/05/09 21:17:34 UTC

JCR mapping proposal

Object / JCR repository mapping tools
------------------------------------------------

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

Introduction
---------------
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.

Features
-----------

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

Community
--------------

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  ;-) .

regards,

Christophe and Sandro



Re: JCR mapping proposal

Posted by Jukka Zitting <jz...@yukatan.fi>.
Hi,

Christophe Lombart wrote:
> Correct, we are just thinking about this kind of tools. There is not
> yet "interesting" code.
> Of course, we can work more on a prototype (in the Graffito area) and
> than see later with the Jackrabbit team. Our main goal is to know if
> there is an interest and why not some contribution from the Jackrabbit
> team.

Good. I'd be very interested at least in participating in design
discussions and perhaps also in the implementation.

BR,

Jukka Zitting



Re: JCR mapping proposal

Posted by Christophe Lombart <ch...@gmail.com>.
On 5/10/05, Jukka Zitting <jz...@yukatan.fi> wrote:

> I had a look at the Graffito subproject, but it seems to be at a very
> early stage. Would you be willing to make a working prototype before
> moving the project to the Jackrabbit source tree?

Correct, we are just thinking about this kind of tools. There is not
yet "interesting" code.
Of course, we can work more on a prototype (in the Graffito area) and
than see later with the Jackrabbit team. Our main goal is to know if
there is an interest and why not some contribution from the Jackrabbit
team.

Thanks, 
Christophe

Re: JCR mapping proposal

Posted by Sandro Böhme <s....@inovex.de>.
Jukka Zitting wrote:
> I'm currently working on opposite mappings (providing JCR adapters for
> custom data models), but I might be able to help you in some way.

I would be glad if you could help us.

 > I assume you'd need
> Jackrabbit committer access if and when the mapping tool is to be
> developed as a Jackrabbit subproject.

It would not fail on my agreement ;-).

Just for not disappointing people, I have very limited private time. But 
I will do my very best to proceed with the project.

Regards,

Sandro

> 
> BR,
> 
> Jukka Zitting
> 
> 
> 


Re: JCR mapping proposal

Posted by Jukka Zitting <jz...@yukatan.fi>.
Hi,

Sandro Böhme wrote:
> Object / JCR repository mapping tools

Cool!

I'm currently working on opposite mappings (providing JCR adapters for
custom data models), but I might be able to help you in some way.

> As this project especially needs JCR knowledge, probably an independent
> 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.

+1

As Stefano said a few months ago, Jackrabbit should be "the project
where you go for JCR-related technologies", and thus having the mapping
tool as a Jackrabbit subproject would be a good thing.

I had a look at the Graffito subproject, but it seems to be at a very
early stage. Would you be willing to make a working prototype before
moving the project to the Jackrabbit source tree? I assume you'd need
Jackrabbit committer access if and when the mapping tool is to be
developed as a Jackrabbit subproject.

BR,

Jukka Zitting



Re: JCR mapping proposal

Posted by Christophe Lombart <ch...@gmail.com>.
In the Graffito project ( http://incubator.apache.org/graffito/ - see
the subproject jcr mapping)  but it is quite limited :-) We are
looking for new developers interesting by this kind of tools.

Christophe 

On 5/10/05, Brian Moseley <bc...@osafoundation.org> wrote:
> Sandro Böhme wrote:
> > Object / JCR repository mapping tools
> 
> great to see somebody moving forward in this area! does any code exist yet?
>

Re: JCR mapping proposal

Posted by Brian Moseley <bc...@osafoundation.org>.
Sandro Böhme wrote:
> Object / JCR repository mapping tools

great to see somebody moving forward in this area! does any code exist yet?