25
Java Content Repository Gérer son contenu avec Jackrabbit Hugonnet Emmanuel Architecte J2EE Silverpeas emmanuel.hugonnet@silverpeas .com http://www.silverpeas.com http://www.ehsavoie.com http://www.twitter.com/ehsavoi

Java Content Repository avec Jackrabbit

Embed Size (px)

DESCRIPTION

Introduction à l'API Java Content repository dont l'(implémentation de référence est Apache Jackrabbit.

Citation preview

Page 1: Java Content Repository avec Jackrabbit

Java Content Repository

Gérer son contenu avec Jackrabbit

Hugonnet EmmanuelArchitecte [email protected]

http://www.silverpeas.comhttp://www.ehsavoie.comhttp://www.twitter.com/ehsavoie

Page 2: Java Content Repository avec Jackrabbit

Java Content Repository Page : Page : 22

Silverpeas : la cibleSilverpeas : la cible

Page 3: Java Content Repository avec Jackrabbit

Java Content Repository Page : Page : 33

Une architecture de « services »Une architecture de « services »

JCR

Page 4: Java Content Repository avec Jackrabbit

Java Content Repository Page : Page : 44

Principales références Principales références

Etat de Genève

CIRPP

Page 5: Java Content Repository avec Jackrabbit

Java Content Repository Page : Page : 55

Avant personnalisationAvant personnalisation

Page 6: Java Content Repository avec Jackrabbit

Java Content Repository Page : Page : 66

SilverpeasSilverpeas

Page 7: Java Content Repository avec Jackrabbit

Java Content Repository Page : Page : 77

SilverpeasSilverpeas

Page 8: Java Content Repository avec Jackrabbit

Java Content Repository Page : Page : 88

Qu'est ce qu'un Content Repository ?

Espace de stockage de donnéesContenu structuré et destructuréSupport de données de différentes taillesGestion des transactions, des verrous, des versions, recherche et indexation, observation

Page 9: Java Content Repository avec Jackrabbit

Java Content Repository Page : Page : 99

Respectant JSR

*de nombreux sont enregistrés auprès TCK Connecteurs Tiers

Page 10: Java Content Repository avec Jackrabbit

Java Content Repository Page : Page : 1010

Le JDBC du Contenu

Repository XML Repository Fichier Repository SGBD

ApplicationApplication

JCR API

Page 11: Java Content Repository avec Jackrabbit

Java Content Repository Page : Page : 1111

Le Meilleur des 2 Mondes

Page 12: Java Content Repository avec Jackrabbit

Java Content Repository Page : Page : 1212

Une Spécification à étages

Page 13: Java Content Repository avec Jackrabbit

Java Content Repository Page : Page : 1313

Structure Hiérarchique 1/2

Un ou plusieurs Workspace(s)Chaque Workspace se compose d'une arborescence d'Item(s)Un Item peut être soit un Node soit une PropertyUne Property est forcément une feuille et stocke l'informationUn Node structure le contenu

Page 14: Java Content Repository avec Jackrabbit

Java Content Repository Page : Page : 1414

Une structure hiérarchique 2/2

Hiérarchie des Types

nt:hierarchyNode

nt:folder

nt:file

nt:linkedFile

nt:resource

Hiérarchie du Contenu

Page 15: Java Content Repository avec Jackrabbit

Java Content Repository Page : Page : 1515

Exemple de données

Page 16: Java Content Repository avec Jackrabbit

Java Content Repository Page : Page : 1616

Un peu de code …

Page 17: Java Content Repository avec Jackrabbit

Java Content Repository Page : Page : 1717

Déploiement par Application

Page 18: Java Content Repository avec Jackrabbit

Java Content Repository Page : Page : 1818

Déploiement par Serveur

Page 19: Java Content Repository avec Jackrabbit

Java Content Repository Page : Page : 1919

Déploiement Externe

Page 20: Java Content Repository avec Jackrabbit

Java Content Repository Page : Page : 2020

Fonctionnalités Avancées Références

Rock

tags Titres

Titre

Titre

Pop Top 10

playlists

Choix

lienlienlien

Page 21: Java Content Repository avec Jackrabbit

Java Content Repository Page : Page : 2121

Fonctionnalités Avancées Recherche

Recherche XPath SQL

Date de Sortie

/jcr:root/slv:titres//element(*,slv:titre) [@sortie > xs:dateTime(‘…’)]

SELECT * FROM slv:titreWHERE jcr:path LIKE ‘/slv:titres/%’AND sortie > DATE ‘…’

Mot-clefs de la Critique

/jcr:root/slv:titres//element(*,slv:critique)/jcr:content[jcr:contains(.,’…’)]

SELECT * FROM slv:critiqueWHERE jcr:path LIKE ‘/slv:titres/%’AND CONTAINS(*,‘…’)

Page 22: Java Content Repository avec Jackrabbit

Java Content Repository Page : Page : 2222

Fonctionnalités Avancées Versioning

Version store

LiveStaging

Page 23: Java Content Repository avec Jackrabbit

Java Content Repository Page : Page : 2323

Fonctionnalités Avancées Observation

5 types d'évènement

NODE_ADDEDNODE_REMOVEDPROPERTY_ADDED PROPERTY_REMOVEDPROPERTY_CHANGED

Filtres possibles pour les ListenersOn a l'utilisateur et le chemin comme attributs de l'évènement

Page 24: Java Content Repository avec Jackrabbit

Java Content Repository Page : Page : 2424

JCR 2.0 JSR-283

Final Draft en cours de révisionXPath et SQL remplacés par Java Binding Query Object et SQL-2 (JOIN)ACL plus complètePossibilité de gérer les Workspaces et les typesDe nouveau types (binary notamment)Cycle de vie d'un contenu pour pouvoir l'associer à un workflowUn système de Versionning linéaireJournalisation des opérations pour l'ObservationCIMS : interopérabilité entre repositories JCR

Page 25: Java Content Repository avec Jackrabbit

Java Content Repository Page : Page : 2525

Questions