[Main Index] [Thread Prev] [Thread Next] [Thread Index] [Date Prev] [Date Next] [Date Index]

JSR-170 & Jackrabbit



Salut,


	Nous avons déjà échangé quelques mails sur l'idée d'utiliser Lucene
dans les futurs versions de Marco-Polo, mais aussi sur la spécification
JSR-168 qui définit le concept de Portlet...

	Depuis le 11 Mai 2005 la version 1.0 de la spécification JSR 170 a été
publiée. Cette dernière est appelée Java Content Repository : JCR et a
pour but de normaliser les "Back-Office" de gestion de contenu. En
effet, le Java Community Process a constitué un groupe d'experts en
gestion de contenu afin de normaliser les différents concepts tels que
les "ContentNodes" (== EI) ...

	Cette spécification est en cours d'implémentation chez : Oracle, IBM,
Sun, BEA ... mais aussi chez Apache. En effet, un nouveau projet est
né : Jackrabbit. (AMHA ce n'est pas un lapin, mais plutôt un lièvre car
le projet avance a grande vitesse ;-)). J'ai effectué quelques tests sur
ce dernier et je pense qu'il regroupe pleins de bonnes idées ! En effet,
il permet de stocker des noeuds de contenu, de leur affecter des
propriétés qui supportent des valeurs textes, des champs multi-valués ou
encore des références vers d'autres noeuds ... Le versionning natif me
paraît également intéressant, imaginez de pouvoir versionner les EI ;-)
D'un point de vue technique il supporte les accès WebDAV, RMI, il est
transactionnel, il y a une abstraction du support de stockage, il
supporte les 2 langages définis dans la JSR-170 : XPath et SQL (avec
recherche floue). (En fait, il dispose d'un Lucene embarqué et les
requêtes XPath et SQL sont traduites au format Lucene. Bien entendu, on
peut envisager d'utiliser toutes la puissance de Lucene : recherche
approchée, indexation de PDF et autres, correction des orthographiques
des questions posées au moteur ...)

	Pour info, il y a déjà un projet CMS libre qui utilise jackrabbit :
http://www.magnolia.info, cependant il est très limité et leurs choix
d'implémentation sont très discutable ...

	En réfléchissant 2 minutes à "Comment sauvegarder les concepts définit
par Marco-Polo dans un JCR ?", voici le fruit de ma réflexion :

-------------------------------------------------------------------------------------------------------------
Marcopolo Directory Layout - Mapping to Java Content Repository defined
by JSR-170

|-- 
|-- template-models(MDP)
|   |   |-- auto-promos
|   |   |-- conseils
|   |   |-- produits
|   |   |   |-- template-model[0]
|   |   |   |   |--jcr:content
|   |   |   |-- template-model[1]
|   |   |   |   |--jcr:content
|   |   |   |-- template-model[2]
|   |   |   |   |--jcr:content
|
|-- content-requests
|   |   |-- rd
|   |   |   |-- guide-deco-2005
|   |   |   |   |-- content-request[0] - nt:query
|   |   |   |   |-- content-request[1] - nt:query
|   |   |   |   |-- content-request[2] - nt:query
|
|-- multimedia-elements
|   |-- flash
|   |-- pdf
|   |   |-- fiche-conseil
|   |   |   |-- multimedia-element[0]
|   |   |   |   |--jcr:content
|   |   |   |-- multimedia-element[1]
|   |   |   |   |--jcr:content
|   |-- url
|   |-- videos
|
|-- metadata-categories
|   |-- basa-vo
|   |-- contenu
|   |   |-- auto-promos
|   |   |-- conseils
|   |   |   |-- agenda-jardinier
|   |   |   |-- contact
|   |   |-- produits
|   |   |   |   |-- metadata[0]
|   |   |   |   |-- metadata[1]
|   |   |   |-- abat-jours
|   |   |   |   |-- metadata[0]
|   |   |   |   |-- metadata[1]
|   |   |   |   |-- metadata[2]
|   |   |   |-- abattants
|   |   |   |-- agraves
|   |   |-- librairie
|   |   |   |-- agraves
|
|-- nomenclature
|   |-- leroymerlin.fr
|   |   |-- auto-promos
|   |   |-- forums
|   |   |-- produits
|   |   |   |-- amenagement-exterieur
|   |   |   |-- atelier
|   |   |   |-- outillage
|   |   |   |-- peinture
|   |   |   |   |-- content-unit[0]
|   |   |   |   |-- content-unit[1]
|   |   |   |   |-- content-unit[2]
|   |   |   |   |-- link-struture[0]
|   |   |   |   |-- portal[0]
-------------------------------------------------------------------------------------------------------------

	J'ai également dessiné un petit diagramme de composant
(CompD1MarcolPoloBackOffice.png ci-joint) afin de représenter les
différents composants manipulés.


	Dans le cadre de l'implémentation du composant MMS (déjà évoqué sur
cette liste), je me suis aperçu que j'allais implémenter une solution
similaire non normalisée, j'ai donc ainsi commencé à utiliser cette API
et fin Août une première version des composants :
cms-nomenclature,cms-content-unit, cms-metadata-category et cms-request
devrait être disponible sur le cvs.open-model.org

	N'hésitez pas à donner votre avis, vos interrogations, vos
contributions ...

	Ci-joint les specifications du JCR : jsr170-1.0.pdf.


For non-french people, the message talks about how to build new
Marco-Polo version based on JSR-170 (jackrabbit implementation)
If you are interested about this subject, let us know. We'll 
follow the discussion in english.

Jérôme.

Jérôme BENOIS
benois@xxxxxxxxxxxxxxxxxxxx
16-24, rue Louis-Pasteur
92100 Boulogne-Billancourt
Tél : +33 1 47 12 99 91
Tél : +33 6 21 53 56 19

Attachment: CompD1MarcolPoloBackOffice.png
Description: PNG image

Attachment: signature.asc
Description: This is a digitally signed message part