0% found this document useful (0 votes)
174 views

Content-Management With Apache Jack Rabbit

This document provides an overview of content management using Apache Jackrabbit. It discusses Jackrabbit's features such as content modeling best practices, references and search capabilities, and advanced features like versioning, personalization, and authentication. The presentation encourages using Jackrabbit to manage all types of application content and provides advice on topics like namespace usage, content hierarchies, and search performance.

Uploaded by

rohitjandial
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
174 views

Content-Management With Apache Jack Rabbit

This document provides an overview of content management using Apache Jackrabbit. It discusses Jackrabbit's features such as content modeling best practices, references and search capabilities, and advanced features like versioning, personalization, and authentication. The presentation encourages using Jackrabbit to manage all types of application content and provides advice on topics like namespace usage, content hierarchies, and search performance.

Uploaded by

rohitjandial
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 22

Content Management with

Apache Jackrabbit

Jukka Zitting
Day Software
(862)
2

Overview

What to expect What not to expect


> Apache Jackrabbit > Source code
> JCR content modeling > Live demo
> Best practices > Business perspective
> Things to watch for > Management perspective
> Engineering perspective
3

Agenda

> Apache Jackrabbit

> Basic content modeling

> References and search

> Advanced features

> Summary and questions


4

Apache Jackrabbit

> JSR 170 reference implementation


> Apache TLP since 2006
> Looking back
– 1.0: April 2006
– 1.1: October 2006
– 1.2: January 2007
– 1.3: April 2007
> Looking forward (tentative)
– 1.4: 2007
– 2.0: 2008 (JCR 2.0 RI)
[email protected]
> Components
– Core, API, RMI, WebDAV, webapp, JCA, … http://jackrabbit.apache.org/
5

Apache Jackrabbit: Words of advice

> Read (or browse) the JCR specification


– jcr-1.0.jar included
> Getting started with Jackrabbit
– jackrabbit-webapp: Drop-in deployment
– First Hops: Embedded repository
– Take your time
> Resources
– Mailing lists: Excellent support, but may delay you
– Website: Some good parts, but not complete or very well structured
– Wiki: End user experience (especially for JBoss)
– FAQ: outdated
– Issue tracker: Good response time
6

Agenda

> Apache Jackrabbit

> Basic content modeling

> References and search

> Advanced features

> Summary and questions


7

Introducing JCR Tunes

> JCR example application


– “How to implement a music store or library with JCR?”
– Designed to showcase JCR features and best practices
– JCR book in progress
> Store and manage individual “tunes”, optionally organized in albums, etc.
> Support alternative views like predefined genres, or more ad-hoc searches
> Integrated handling of reviews, cover images, and other related content
> Staged publishing and timed releases of tunes or albums
> Personalization for things like settings, favorites, personal play-lists, etc.
> Extensibility and flexibility
8

Starting point: Leverage the standard node types

Type hierarchy Content hierarchy

nt:hierarchyNode

nt:folder

nt:file

nt:linkedFile

nt:resource
9

Bottom-up modeling: Content types

my:album > nt:folder


- artist (string)
my:review > nt:file
- release date (date)
- author (string)
- star rating (long)
my:tune > nt:file
- artist (string)
- release date (date)

my:resource > nt:resource


- codec (string)
- bitrate (long)
10

Top-down modeling: Content hierarchies

Label Label

Band Label

Album Album Band

Reviews Tune Tune Images Tune

Reviews Images
11

Content Modeling: Words of advice

> Namespaces
– Use a single namespace per company or application
– Use a reasonably unique namespace prefix
– Prefixed names for structured content
– Default namespace for unstructured content
> Use an application root node, /my:content
– Good for searching, backup, and migration
> Avoid flat hierarchies
– User interface complexity
– Jackrabbit performance
> Content-driven design
– Design your content before your application
12

Agenda

> Apache Jackrabbit

> Basic content modeling

> References and search

> Advanced features

> Summary and questions


13

Alternative Views: References

tags tunes playlists

Rock Classic Tune Top 10 Picks

Tune link link link


14

Alternative Views: Search

Looking for XPath SQL


Latest /jcr:root/my:tunes//element(*,my:tune) SELECT * FROM my:tune
releases [@released > xs:dateTime(‘…’)] WHERE
jcr:path LIKE ‘/my:tunes/%’
AND released > DATE ‘…’

Reviews /jcr:root/my:tunes//element(*,my:review) SELECT * FROM my:review


with /jcr:content[jcr:contains(.,’…’)] WHERE
keywords
jcr:path LIKE ‘/my:tunes/%’
AND CONTAINS(*,‘…’)
15

Alternative Views: Words of advice

> Moderate use of references


– Circular references only within a subtree
– Plan for backup and content migration
– Jackrabbit performance: max 10k references to a single node
> Best search performance when selecting a small subset of content
> No joins or aggregate searches
> Full text indexing of binary properties only for jcr:data in nt:resource nodes
> Formatting date queries
– ISO 8601 as the string format
– session.getValueFactory().createValue(Calendar.getInstance()).getString()
> JCR 2.0: Query Object Model? Mandatory SQL?
16

Agenda

> Apache Jackrabbit

> Basic content modeling

> References and search

> Advanced features

> Summary and questions


17

Staged Publishing: Versioning

Version store

Staging Live
18

Personalization

tunes users

Tune John Jane

Tune tunes favorites playlists

link link
19

Authentication and Authorization

> Java Authentication and Authorization Services (JAAS)


– Mostly the authentication part is currently used by Jackrabbit
– Pluggable authentication components
– Support for single sing-on
> Custom AccessManager interface in Jackrabbit
– Pluggable authorization components
– The default implementation supports only global read, write, and admin
access
– More advanced implementations are proprietary
> Repository-level authentication and authorization applies to all clients
– Better than application-level authorization
20

Agenda

> Apache Jackrabbit

> Basic content modeling

> References and search

> Advanced features

> Summary and questions


21

Last words

> Everything is content


– Application content
– HTML pages, CSS and JavaScript files, static images
– JSP pages, Java classes and libraries
– Documentation, resource bundles, etc.
– With versioning, export/import, full text search, etc.
> Web-friendly
– Trivial URI mapping
– WebDAV access for free
– Dispatch on node type, not on URI path
> In your application?
Jukka Zitting http://www.day.com/
Day Software [email protected]

Apache Jackrabbit http://jackrabbit.apache.org/


[email protected]

Apache Software Foundation http://www.apache.org/

You might also like