jackrabbit-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Johann Sorel <johann.so...@geomatys.com>
Subject Re: [jr3] Wrapped intelligent objects
Date Wed, 17 Feb 2010 22:51:14 GMT
Alexander Klimetschek wrote:
> On Wed, Feb 17, 2010 at 21:58, Johann Sorel <johann.sorel@geomatys.com> wrote:
>> Sorry to kick in the discussion, I made an implementation of JCR last
>> septembre for our geographic information system.
>> While doing it I found one annoying point in the current specification.
>> If you can take a minute to read the following.
>> As you know all, jcr is designed to manage datas of basic types : double,
>> string, boolean, stream ...and so on.
>> That solves most needs for any kind of storage system. But in some cases
>> like ours we also store what I would
>> call "intelligent" objects, like mathematic functions, coordinate systems ,
>> objects that have more then just properties
>> fields, they have capabilities (methods to make it simple).
>> I believe most of you have already made a bit of Swing before, there is a
>> class MutableTreeNode with a getUserObject()
>> method used to retrieve the real object hiden behind the node.
>> My suggestion would be to have a similar approach in JCR. something like
>> unwrap() to acces the intelligent object on the node
>> if there is one of course.
>> JCR is great but infortunatly we seen that we can do nothing else then
>> copying informations, make statistics or search based on properties.
>> Which is mostly useless for us. We need to be able to access the objects
>> hidden behind the nodes,
>> objects that follow whatever else specification (GeoAPI specification in our
>> case) so that we can work with them.
>> I hope you see the point here.
> Did you try Object Content Mapping (OCM) with JCR (eg. Jackrabbit OCM)?
> In the end, the objects you want to store have fields that boil down
> to the basic properties (and if sth doesn't fit well, there is always
> string, which can be searched). Real object databases would be close
> to what you have in mind, but they always have the advantage that the
> data and fields/properties are not very visible, ie. there are no
> generic, standardized ways to look at the data, independent from the
> specific programming language they are designed for.
We only use jackrabbit JCR commun module, and we don't intent to use any 
module or we will lose all our cache structure (duplicate would be more 
The problem is not the storage anyway.

let's take an exemple :

Imagine Liferay for exemple, 2 companies manage somehow to expose 
in liferay by adding each one a plugin. thoses repositories are now 
visible by any portlet in liferay. Each
repository have geographic datas clearly defined by a well knowned Node 

Now you add a mapping jsf portlet made by a third company that can 
access thoses repository and can render
any object that match this node type. problem is, the attributs are not 
enough to render a map, he needs acces to
the hidden object, objects that follow another specification.
But unfortunatly he can't since not method on the JCR node interface can 
give him this object.

Using JCR is a bit like being in front of a no entrance bunker, 
informations are exposed through a small perfectly formatted window.
The bunker has a big sign writen : "hospital", ho! great I'm a doctor, I 
can talk my own language (specification) with them (100times more 
efficient) but how do I get in ? there is no entrance.
I believe there is a need for this door otherwise JCR will be 
incompatible with any other specification.

sorry if my english is not perfect.

johann sorel

View raw message