SlideShare une entreprise Scribd logo
1  sur  22
Télécharger pour lire hors ligne
Content Management with
Apache Jackrabbit



Jukka Zitting
Day Software
(862)
2


Overview

What to ex pect               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)
    –   announce-
        subscribe@jackrabbit.apache.org
                                               http:/ / jackrabbit.apache.org/
>   Components
    – Core, API, RMI, WebDAV, webapp, JCA, …
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: Ex cellent support, but may delay you
  – Website: Some good parts, but not complete or very well structured
  – Wiki: End user ex perience (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.
> Ex tensibility and flex ibility
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
  –   Prefix ed 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 complex ity
  –   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


                      Tune
  Rock      Classic                      Top 10          Picks


                                      link        link           link
                               Tune
14


Alternative Views: Search

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

Reviews    / jcr:root/ my:tunes/ / element(*,my:re   SELECT * FROM my:review
with       view)                                     WHERE
keywords   / jcr:content[jcr:contains(.,’…’)]        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 index ing 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


                           tunes          favorites playlists
             Tune

                    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, ex port/ import, full tex t 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                      jukka.zitting@day.com



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

users@jackrabbit.apache.org


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

Contenu connexe

Tendances

Использование Elasticsearch для организации поиска по сайту
Использование Elasticsearch для организации поиска по сайтуИспользование Elasticsearch для организации поиска по сайту
Использование Elasticsearch для организации поиска по сайтуOlga Lavrentieva
 
RESTful Web Services with Jersey
RESTful Web Services with JerseyRESTful Web Services with Jersey
RESTful Web Services with JerseyScott Leberknight
 
20130310 solr tuorial
20130310 solr tuorial20130310 solr tuorial
20130310 solr tuorialChris Huang
 
Learning to code for startup mvp session 3
Learning to code for startup mvp session 3Learning to code for startup mvp session 3
Learning to code for startup mvp session 3Henry S
 
8b. Column Oriented Databases Lab
8b. Column Oriented Databases Lab8b. Column Oriented Databases Lab
8b. Column Oriented Databases LabFabio Fumarola
 
Apache Solr - Enterprise search platform
Apache Solr - Enterprise search platformApache Solr - Enterprise search platform
Apache Solr - Enterprise search platformTommaso Teofili
 
ElasticSearch: Найдется все... и быстро!
ElasticSearch: Найдется все... и быстро!ElasticSearch: Найдется все... и быстро!
ElasticSearch: Найдется все... и быстро!Alexander Byndyu
 
Decoupled Libraries for PHP
Decoupled Libraries for PHPDecoupled Libraries for PHP
Decoupled Libraries for PHPPaul Jones
 
Android App Development 06 : Network & Web Services
Android App Development 06 : Network & Web ServicesAndroid App Development 06 : Network & Web Services
Android App Development 06 : Network & Web ServicesAnuchit Chalothorn
 
Django Framework and Application Structure
Django Framework and Application StructureDjango Framework and Application Structure
Django Framework and Application StructureSEONGTAEK OH
 

Tendances (14)

Использование Elasticsearch для организации поиска по сайту
Использование Elasticsearch для организации поиска по сайтуИспользование Elasticsearch для организации поиска по сайту
Использование Elasticsearch для организации поиска по сайту
 
RESTful Web Services with Jersey
RESTful Web Services with JerseyRESTful Web Services with Jersey
RESTful Web Services with Jersey
 
20130310 solr tuorial
20130310 solr tuorial20130310 solr tuorial
20130310 solr tuorial
 
Learning to code for startup mvp session 3
Learning to code for startup mvp session 3Learning to code for startup mvp session 3
Learning to code for startup mvp session 3
 
JSON in Solr: from top to bottom
JSON in Solr: from top to bottomJSON in Solr: from top to bottom
JSON in Solr: from top to bottom
 
8b. Column Oriented Databases Lab
8b. Column Oriented Databases Lab8b. Column Oriented Databases Lab
8b. Column Oriented Databases Lab
 
Apache Solr - Enterprise search platform
Apache Solr - Enterprise search platformApache Solr - Enterprise search platform
Apache Solr - Enterprise search platform
 
Callimachus
CallimachusCallimachus
Callimachus
 
ElasticSearch: Найдется все... и быстро!
ElasticSearch: Найдется все... и быстро!ElasticSearch: Найдется все... и быстро!
ElasticSearch: Найдется все... и быстро!
 
Mavenppt
MavenpptMavenppt
Mavenppt
 
Decoupled Libraries for PHP
Decoupled Libraries for PHPDecoupled Libraries for PHP
Decoupled Libraries for PHP
 
Android App Development 06 : Network & Web Services
Android App Development 06 : Network & Web ServicesAndroid App Development 06 : Network & Web Services
Android App Development 06 : Network & Web Services
 
Django Framework and Application Structure
Django Framework and Application StructureDjango Framework and Application Structure
Django Framework and Application Structure
 
Dandelion 0.10.0
Dandelion 0.10.0Dandelion 0.10.0
Dandelion 0.10.0
 

En vedette

En vedette (7)

805
805805
805
 
916920
916920916920
916920
 
916920
916920916920
916920
 
Xavi b
Xavi bXavi b
Xavi b
 
unidad5-seccionaurea
unidad5-seccionaureaunidad5-seccionaurea
unidad5-seccionaurea
 
HOW TO HACK WECHAT BY COMPUTER
HOW TO HACK WECHAT BY COMPUTER HOW TO HACK WECHAT BY COMPUTER
HOW TO HACK WECHAT BY COMPUTER
 
84840 633555865548906250 (1)
84840 633555865548906250 (1)84840 633555865548906250 (1)
84840 633555865548906250 (1)
 

Similaire à 862

Content Management With Apache Jackrabbit
Content Management With Apache JackrabbitContent Management With Apache Jackrabbit
Content Management With Apache JackrabbitJulien Lamande
 
Content Management With Apache Jackrabbit
Content Management With Apache JackrabbitContent Management With Apache Jackrabbit
Content Management With Apache JackrabbitJukka Zitting
 
Rails and the Apache SOLR Search Engine
Rails and the Apache SOLR Search EngineRails and the Apache SOLR Search Engine
Rails and the Apache SOLR Search EngineDavid Keener
 
Maven introduction in Mule
Maven introduction in MuleMaven introduction in Mule
Maven introduction in MuleShahid Shaik
 
Content Storage With Apache Jackrabbit
Content Storage With Apache JackrabbitContent Storage With Apache Jackrabbit
Content Storage With Apache JackrabbitJukka Zitting
 
LuSql: (Quickly and easily) Getting your data from your DBMS into Lucene
LuSql: (Quickly and easily) Getting your data from your DBMS into LuceneLuSql: (Quickly and easily) Getting your data from your DBMS into Lucene
LuSql: (Quickly and easily) Getting your data from your DBMS into Luceneeby
 
Introducing the Jahia Log Analyzer
Introducing the Jahia Log AnalyzerIntroducing the Jahia Log Analyzer
Introducing the Jahia Log AnalyzerSerge Huber
 
Storm crawler apachecon_na_2015
Storm crawler apachecon_na_2015Storm crawler apachecon_na_2015
Storm crawler apachecon_na_2015ontopic
 
Getting Started with Rails on GlassFish (Hands-on Lab) - Spark IT 2010
Getting Started with Rails on GlassFish (Hands-on Lab) - Spark IT 2010Getting Started with Rails on GlassFish (Hands-on Lab) - Spark IT 2010
Getting Started with Rails on GlassFish (Hands-on Lab) - Spark IT 2010Arun Gupta
 
CTU June 2011 - Things that Every ASP.NET Developer Should Know
CTU June 2011 - Things that Every ASP.NET Developer Should KnowCTU June 2011 - Things that Every ASP.NET Developer Should Know
CTU June 2011 - Things that Every ASP.NET Developer Should KnowSpiffy
 
Play Framework and Activator
Play Framework and ActivatorPlay Framework and Activator
Play Framework and ActivatorKevin Webber
 
Training in Android with Maven
Training in Android with MavenTraining in Android with Maven
Training in Android with MavenArcadian Learning
 
Spark Saturday: Spark SQL & DataFrame Workshop with Apache Spark 2.3
Spark Saturday: Spark SQL & DataFrame Workshop with Apache Spark 2.3Spark Saturday: Spark SQL & DataFrame Workshop with Apache Spark 2.3
Spark Saturday: Spark SQL & DataFrame Workshop with Apache Spark 2.3Databricks
 
mjprof: Monadic approach for JVM profiling
mjprof: Monadic approach for JVM profilingmjprof: Monadic approach for JVM profiling
mjprof: Monadic approach for JVM profilingHaim Yadid
 

Similaire à 862 (20)

Content Management With Apache Jackrabbit
Content Management With Apache JackrabbitContent Management With Apache Jackrabbit
Content Management With Apache Jackrabbit
 
Content Management With Apache Jackrabbit
Content Management With Apache JackrabbitContent Management With Apache Jackrabbit
Content Management With Apache Jackrabbit
 
Maven
MavenMaven
Maven
 
Maven
MavenMaven
Maven
 
Rails and the Apache SOLR Search Engine
Rails and the Apache SOLR Search EngineRails and the Apache SOLR Search Engine
Rails and the Apache SOLR Search Engine
 
Maven introduction in Mule
Maven introduction in MuleMaven introduction in Mule
Maven introduction in Mule
 
Maven
MavenMaven
Maven
 
Maven
MavenMaven
Maven
 
Maven in Mule
Maven in MuleMaven in Mule
Maven in Mule
 
Content Storage With Apache Jackrabbit
Content Storage With Apache JackrabbitContent Storage With Apache Jackrabbit
Content Storage With Apache Jackrabbit
 
LuSql: (Quickly and easily) Getting your data from your DBMS into Lucene
LuSql: (Quickly and easily) Getting your data from your DBMS into LuceneLuSql: (Quickly and easily) Getting your data from your DBMS into Lucene
LuSql: (Quickly and easily) Getting your data from your DBMS into Lucene
 
JCR and ModeShape
JCR and ModeShapeJCR and ModeShape
JCR and ModeShape
 
Introducing the Jahia Log Analyzer
Introducing the Jahia Log AnalyzerIntroducing the Jahia Log Analyzer
Introducing the Jahia Log Analyzer
 
Storm crawler apachecon_na_2015
Storm crawler apachecon_na_2015Storm crawler apachecon_na_2015
Storm crawler apachecon_na_2015
 
Getting Started with Rails on GlassFish (Hands-on Lab) - Spark IT 2010
Getting Started with Rails on GlassFish (Hands-on Lab) - Spark IT 2010Getting Started with Rails on GlassFish (Hands-on Lab) - Spark IT 2010
Getting Started with Rails on GlassFish (Hands-on Lab) - Spark IT 2010
 
CTU June 2011 - Things that Every ASP.NET Developer Should Know
CTU June 2011 - Things that Every ASP.NET Developer Should KnowCTU June 2011 - Things that Every ASP.NET Developer Should Know
CTU June 2011 - Things that Every ASP.NET Developer Should Know
 
Play Framework and Activator
Play Framework and ActivatorPlay Framework and Activator
Play Framework and Activator
 
Training in Android with Maven
Training in Android with MavenTraining in Android with Maven
Training in Android with Maven
 
Spark Saturday: Spark SQL & DataFrame Workshop with Apache Spark 2.3
Spark Saturday: Spark SQL & DataFrame Workshop with Apache Spark 2.3Spark Saturday: Spark SQL & DataFrame Workshop with Apache Spark 2.3
Spark Saturday: Spark SQL & DataFrame Workshop with Apache Spark 2.3
 
mjprof: Monadic approach for JVM profiling
mjprof: Monadic approach for JVM profilingmjprof: Monadic approach for JVM profiling
mjprof: Monadic approach for JVM profiling
 

Plus de day

Performance Pack
Performance PackPerformance Pack
Performance Packday
 
Scala for scripting
Scala for scriptingScala for scripting
Scala for scriptingday
 
Scala4sling
Scala4slingScala4sling
Scala4slingday
 
Testing Zen
Testing ZenTesting Zen
Testing Zenday
 
Java Persistence Frameworks
Java Persistence FrameworksJava Persistence Frameworks
Java Persistence Frameworksday
 
Embrace OSGi Apache Con Europe2009
Embrace OSGi Apache Con Europe2009Embrace OSGi Apache Con Europe2009
Embrace OSGi Apache Con Europe2009day
 
Scripting Yor Java Application with BSF3
Scripting Yor Java Application with BSF3Scripting Yor Java Application with BSF3
Scripting Yor Java Application with BSF3day
 
Tarpm Clustering
Tarpm ClusteringTarpm Clustering
Tarpm Clusteringday
 
Tech Summit 08 Support Initiative
Tech Summit 08 Support InitiativeTech Summit 08 Support Initiative
Tech Summit 08 Support Initiativeday
 
Non Cms For Web Apps
Non Cms For Web AppsNon Cms For Web Apps
Non Cms For Web Appsday
 
Getting Into The Flow With Cq Dam
Getting Into The Flow With Cq DamGetting Into The Flow With Cq Dam
Getting Into The Flow With Cq Damday
 
Dispatcher Oom
Dispatcher OomDispatcher Oom
Dispatcher Oomday
 
Advanced Collaboration And Beyond
Advanced Collaboration And BeyondAdvanced Collaboration And Beyond
Advanced Collaboration And Beyondday
 
Wc Mand Connectors2
Wc Mand Connectors2Wc Mand Connectors2
Wc Mand Connectors2day
 
Jackrabbit Roadmap
Jackrabbit RoadmapJackrabbit Roadmap
Jackrabbit Roadmapday
 
Doc Book Vs Dita
Doc Book Vs DitaDoc Book Vs Dita
Doc Book Vs Ditaday
 
Doc Book Vs Dita Teresa
Doc Book Vs Dita TeresaDoc Book Vs Dita Teresa
Doc Book Vs Dita Teresaday
 
Apache Con Us2007 Sanselan
Apache Con Us2007 SanselanApache Con Us2007 Sanselan
Apache Con Us2007 Sanselanday
 
Apache Con Us2007 Jcr In Action
Apache Con Us2007 Jcr In ActionApache Con Us2007 Jcr In Action
Apache Con Us2007 Jcr In Actionday
 
Apache Con Us2007 Apachei Batis
Apache Con Us2007 Apachei BatisApache Con Us2007 Apachei Batis
Apache Con Us2007 Apachei Batisday
 

Plus de day (20)

Performance Pack
Performance PackPerformance Pack
Performance Pack
 
Scala for scripting
Scala for scriptingScala for scripting
Scala for scripting
 
Scala4sling
Scala4slingScala4sling
Scala4sling
 
Testing Zen
Testing ZenTesting Zen
Testing Zen
 
Java Persistence Frameworks
Java Persistence FrameworksJava Persistence Frameworks
Java Persistence Frameworks
 
Embrace OSGi Apache Con Europe2009
Embrace OSGi Apache Con Europe2009Embrace OSGi Apache Con Europe2009
Embrace OSGi Apache Con Europe2009
 
Scripting Yor Java Application with BSF3
Scripting Yor Java Application with BSF3Scripting Yor Java Application with BSF3
Scripting Yor Java Application with BSF3
 
Tarpm Clustering
Tarpm ClusteringTarpm Clustering
Tarpm Clustering
 
Tech Summit 08 Support Initiative
Tech Summit 08 Support InitiativeTech Summit 08 Support Initiative
Tech Summit 08 Support Initiative
 
Non Cms For Web Apps
Non Cms For Web AppsNon Cms For Web Apps
Non Cms For Web Apps
 
Getting Into The Flow With Cq Dam
Getting Into The Flow With Cq DamGetting Into The Flow With Cq Dam
Getting Into The Flow With Cq Dam
 
Dispatcher Oom
Dispatcher OomDispatcher Oom
Dispatcher Oom
 
Advanced Collaboration And Beyond
Advanced Collaboration And BeyondAdvanced Collaboration And Beyond
Advanced Collaboration And Beyond
 
Wc Mand Connectors2
Wc Mand Connectors2Wc Mand Connectors2
Wc Mand Connectors2
 
Jackrabbit Roadmap
Jackrabbit RoadmapJackrabbit Roadmap
Jackrabbit Roadmap
 
Doc Book Vs Dita
Doc Book Vs DitaDoc Book Vs Dita
Doc Book Vs Dita
 
Doc Book Vs Dita Teresa
Doc Book Vs Dita TeresaDoc Book Vs Dita Teresa
Doc Book Vs Dita Teresa
 
Apache Con Us2007 Sanselan
Apache Con Us2007 SanselanApache Con Us2007 Sanselan
Apache Con Us2007 Sanselan
 
Apache Con Us2007 Jcr In Action
Apache Con Us2007 Jcr In ActionApache Con Us2007 Jcr In Action
Apache Con Us2007 Jcr In Action
 
Apache Con Us2007 Apachei Batis
Apache Con Us2007 Apachei BatisApache Con Us2007 Apachei Batis
Apache Con Us2007 Apachei Batis
 

Dernier

Best Basmati Rice Manufacturers in India
Best Basmati Rice Manufacturers in IndiaBest Basmati Rice Manufacturers in India
Best Basmati Rice Manufacturers in IndiaShree Krishna Exports
 
Regression analysis: Simple Linear Regression Multiple Linear Regression
Regression analysis:  Simple Linear Regression Multiple Linear RegressionRegression analysis:  Simple Linear Regression Multiple Linear Regression
Regression analysis: Simple Linear Regression Multiple Linear RegressionRavindra Nath Shukla
 
Russian Faridabad Call Girls(Badarpur) : ☎ 8168257667, @4999
Russian Faridabad Call Girls(Badarpur) : ☎ 8168257667, @4999Russian Faridabad Call Girls(Badarpur) : ☎ 8168257667, @4999
Russian Faridabad Call Girls(Badarpur) : ☎ 8168257667, @4999Tina Ji
 
Event mailer assignment progress report .pdf
Event mailer assignment progress report .pdfEvent mailer assignment progress report .pdf
Event mailer assignment progress report .pdftbatkhuu1
 
Call Girls Navi Mumbai Just Call 9907093804 Top Class Call Girl Service Avail...
Call Girls Navi Mumbai Just Call 9907093804 Top Class Call Girl Service Avail...Call Girls Navi Mumbai Just Call 9907093804 Top Class Call Girl Service Avail...
Call Girls Navi Mumbai Just Call 9907093804 Top Class Call Girl Service Avail...Dipal Arora
 
Call Girls In Panjim North Goa 9971646499 Genuine Service
Call Girls In Panjim North Goa 9971646499 Genuine ServiceCall Girls In Panjim North Goa 9971646499 Genuine Service
Call Girls In Panjim North Goa 9971646499 Genuine Serviceritikaroy0888
 
VIP Call Girl Jamshedpur Aashi 8250192130 Independent Escort Service Jamshedpur
VIP Call Girl Jamshedpur Aashi 8250192130 Independent Escort Service JamshedpurVIP Call Girl Jamshedpur Aashi 8250192130 Independent Escort Service Jamshedpur
VIP Call Girl Jamshedpur Aashi 8250192130 Independent Escort Service JamshedpurSuhani Kapoor
 
Unlocking the Secrets of Affiliate Marketing.pdf
Unlocking the Secrets of Affiliate Marketing.pdfUnlocking the Secrets of Affiliate Marketing.pdf
Unlocking the Secrets of Affiliate Marketing.pdfOnline Income Engine
 
M.C Lodges -- Guest House in Jhang.
M.C Lodges --  Guest House in Jhang.M.C Lodges --  Guest House in Jhang.
M.C Lodges -- Guest House in Jhang.Aaiza Hassan
 
Grateful 7 speech thanking everyone that has helped.pdf
Grateful 7 speech thanking everyone that has helped.pdfGrateful 7 speech thanking everyone that has helped.pdf
Grateful 7 speech thanking everyone that has helped.pdfPaul Menig
 
VIP Call Girls In Saharaganj ( Lucknow ) 🔝 8923113531 🔝 Cash Payment (COD) 👒
VIP Call Girls In Saharaganj ( Lucknow  ) 🔝 8923113531 🔝  Cash Payment (COD) 👒VIP Call Girls In Saharaganj ( Lucknow  ) 🔝 8923113531 🔝  Cash Payment (COD) 👒
VIP Call Girls In Saharaganj ( Lucknow ) 🔝 8923113531 🔝 Cash Payment (COD) 👒anilsa9823
 
GD Birla and his contribution in management
GD Birla and his contribution in managementGD Birla and his contribution in management
GD Birla and his contribution in managementchhavia330
 
Enhancing and Restoring Safety & Quality Cultures - Dave Litwiller - May 2024...
Enhancing and Restoring Safety & Quality Cultures - Dave Litwiller - May 2024...Enhancing and Restoring Safety & Quality Cultures - Dave Litwiller - May 2024...
Enhancing and Restoring Safety & Quality Cultures - Dave Litwiller - May 2024...Dave Litwiller
 
Progress Report - Oracle Database Analyst Summit
Progress  Report - Oracle Database Analyst SummitProgress  Report - Oracle Database Analyst Summit
Progress Report - Oracle Database Analyst SummitHolger Mueller
 
Lucknow 💋 Escorts in Lucknow - 450+ Call Girl Cash Payment 8923113531 Neha Th...
Lucknow 💋 Escorts in Lucknow - 450+ Call Girl Cash Payment 8923113531 Neha Th...Lucknow 💋 Escorts in Lucknow - 450+ Call Girl Cash Payment 8923113531 Neha Th...
Lucknow 💋 Escorts in Lucknow - 450+ Call Girl Cash Payment 8923113531 Neha Th...anilsa9823
 
Yaroslav Rozhankivskyy: Три складові і три передумови максимальної продуктивн...
Yaroslav Rozhankivskyy: Три складові і три передумови максимальної продуктивн...Yaroslav Rozhankivskyy: Три складові і три передумови максимальної продуктивн...
Yaroslav Rozhankivskyy: Три складові і три передумови максимальної продуктивн...Lviv Startup Club
 
Ensure the security of your HCL environment by applying the Zero Trust princi...
Ensure the security of your HCL environment by applying the Zero Trust princi...Ensure the security of your HCL environment by applying the Zero Trust princi...
Ensure the security of your HCL environment by applying the Zero Trust princi...Roland Driesen
 
0183760ssssssssssssssssssssssssssss00101011 (27).pdf
0183760ssssssssssssssssssssssssssss00101011 (27).pdf0183760ssssssssssssssssssssssssssss00101011 (27).pdf
0183760ssssssssssssssssssssssssssss00101011 (27).pdfRenandantas16
 
Keppel Ltd. 1Q 2024 Business Update Presentation Slides
Keppel Ltd. 1Q 2024 Business Update  Presentation SlidesKeppel Ltd. 1Q 2024 Business Update  Presentation Slides
Keppel Ltd. 1Q 2024 Business Update Presentation SlidesKeppelCorporation
 

Dernier (20)

VVVIP Call Girls In Greater Kailash ➡️ Delhi ➡️ 9999965857 🚀 No Advance 24HRS...
VVVIP Call Girls In Greater Kailash ➡️ Delhi ➡️ 9999965857 🚀 No Advance 24HRS...VVVIP Call Girls In Greater Kailash ➡️ Delhi ➡️ 9999965857 🚀 No Advance 24HRS...
VVVIP Call Girls In Greater Kailash ➡️ Delhi ➡️ 9999965857 🚀 No Advance 24HRS...
 
Best Basmati Rice Manufacturers in India
Best Basmati Rice Manufacturers in IndiaBest Basmati Rice Manufacturers in India
Best Basmati Rice Manufacturers in India
 
Regression analysis: Simple Linear Regression Multiple Linear Regression
Regression analysis:  Simple Linear Regression Multiple Linear RegressionRegression analysis:  Simple Linear Regression Multiple Linear Regression
Regression analysis: Simple Linear Regression Multiple Linear Regression
 
Russian Faridabad Call Girls(Badarpur) : ☎ 8168257667, @4999
Russian Faridabad Call Girls(Badarpur) : ☎ 8168257667, @4999Russian Faridabad Call Girls(Badarpur) : ☎ 8168257667, @4999
Russian Faridabad Call Girls(Badarpur) : ☎ 8168257667, @4999
 
Event mailer assignment progress report .pdf
Event mailer assignment progress report .pdfEvent mailer assignment progress report .pdf
Event mailer assignment progress report .pdf
 
Call Girls Navi Mumbai Just Call 9907093804 Top Class Call Girl Service Avail...
Call Girls Navi Mumbai Just Call 9907093804 Top Class Call Girl Service Avail...Call Girls Navi Mumbai Just Call 9907093804 Top Class Call Girl Service Avail...
Call Girls Navi Mumbai Just Call 9907093804 Top Class Call Girl Service Avail...
 
Call Girls In Panjim North Goa 9971646499 Genuine Service
Call Girls In Panjim North Goa 9971646499 Genuine ServiceCall Girls In Panjim North Goa 9971646499 Genuine Service
Call Girls In Panjim North Goa 9971646499 Genuine Service
 
VIP Call Girl Jamshedpur Aashi 8250192130 Independent Escort Service Jamshedpur
VIP Call Girl Jamshedpur Aashi 8250192130 Independent Escort Service JamshedpurVIP Call Girl Jamshedpur Aashi 8250192130 Independent Escort Service Jamshedpur
VIP Call Girl Jamshedpur Aashi 8250192130 Independent Escort Service Jamshedpur
 
Unlocking the Secrets of Affiliate Marketing.pdf
Unlocking the Secrets of Affiliate Marketing.pdfUnlocking the Secrets of Affiliate Marketing.pdf
Unlocking the Secrets of Affiliate Marketing.pdf
 
M.C Lodges -- Guest House in Jhang.
M.C Lodges --  Guest House in Jhang.M.C Lodges --  Guest House in Jhang.
M.C Lodges -- Guest House in Jhang.
 
Grateful 7 speech thanking everyone that has helped.pdf
Grateful 7 speech thanking everyone that has helped.pdfGrateful 7 speech thanking everyone that has helped.pdf
Grateful 7 speech thanking everyone that has helped.pdf
 
VIP Call Girls In Saharaganj ( Lucknow ) 🔝 8923113531 🔝 Cash Payment (COD) 👒
VIP Call Girls In Saharaganj ( Lucknow  ) 🔝 8923113531 🔝  Cash Payment (COD) 👒VIP Call Girls In Saharaganj ( Lucknow  ) 🔝 8923113531 🔝  Cash Payment (COD) 👒
VIP Call Girls In Saharaganj ( Lucknow ) 🔝 8923113531 🔝 Cash Payment (COD) 👒
 
GD Birla and his contribution in management
GD Birla and his contribution in managementGD Birla and his contribution in management
GD Birla and his contribution in management
 
Enhancing and Restoring Safety & Quality Cultures - Dave Litwiller - May 2024...
Enhancing and Restoring Safety & Quality Cultures - Dave Litwiller - May 2024...Enhancing and Restoring Safety & Quality Cultures - Dave Litwiller - May 2024...
Enhancing and Restoring Safety & Quality Cultures - Dave Litwiller - May 2024...
 
Progress Report - Oracle Database Analyst Summit
Progress  Report - Oracle Database Analyst SummitProgress  Report - Oracle Database Analyst Summit
Progress Report - Oracle Database Analyst Summit
 
Lucknow 💋 Escorts in Lucknow - 450+ Call Girl Cash Payment 8923113531 Neha Th...
Lucknow 💋 Escorts in Lucknow - 450+ Call Girl Cash Payment 8923113531 Neha Th...Lucknow 💋 Escorts in Lucknow - 450+ Call Girl Cash Payment 8923113531 Neha Th...
Lucknow 💋 Escorts in Lucknow - 450+ Call Girl Cash Payment 8923113531 Neha Th...
 
Yaroslav Rozhankivskyy: Три складові і три передумови максимальної продуктивн...
Yaroslav Rozhankivskyy: Три складові і три передумови максимальної продуктивн...Yaroslav Rozhankivskyy: Три складові і три передумови максимальної продуктивн...
Yaroslav Rozhankivskyy: Три складові і три передумови максимальної продуктивн...
 
Ensure the security of your HCL environment by applying the Zero Trust princi...
Ensure the security of your HCL environment by applying the Zero Trust princi...Ensure the security of your HCL environment by applying the Zero Trust princi...
Ensure the security of your HCL environment by applying the Zero Trust princi...
 
0183760ssssssssssssssssssssssssssss00101011 (27).pdf
0183760ssssssssssssssssssssssssssss00101011 (27).pdf0183760ssssssssssssssssssssssssssss00101011 (27).pdf
0183760ssssssssssssssssssssssssssss00101011 (27).pdf
 
Keppel Ltd. 1Q 2024 Business Update Presentation Slides
Keppel Ltd. 1Q 2024 Business Update  Presentation SlidesKeppel Ltd. 1Q 2024 Business Update  Presentation Slides
Keppel Ltd. 1Q 2024 Business Update Presentation Slides
 

862

  • 1. Content Management with Apache Jackrabbit Jukka Zitting Day Software (862)
  • 2. 2 Overview What to ex pect 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. 3 Agenda > Apache Jackrabbit > Basic content modeling > References and search > Advanced features > Summary and questions
  • 4. 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) – announce- subscribe@jackrabbit.apache.org http:/ / jackrabbit.apache.org/ > Components – Core, API, RMI, WebDAV, webapp, JCA, …
  • 5. 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: Ex cellent support, but may delay you – Website: Some good parts, but not complete or very well structured – Wiki: End user ex perience (especially for JBoss) – FAQ: outdated – Issue tracker: Good response time
  • 6. 6 Agenda > Apache Jackrabbit > Basic content modeling > References and search > Advanced features > Summary and questions
  • 7. 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. > Ex tensibility and flex ibility
  • 8. 8 Starting point: Leverage the standard node types Type hierarchy Content hierarchy nt:hierarchyNode nt:folder nt:file nt:linkedFile nt:resource
  • 9. 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. 10 Top- down modeling: Content hierarchies Label Label Band Label Album Album Band Reviews Tune Tune Images Tune Reviews Images
  • 11. 11 Content Modeling: Words of advice > Namespaces – Use a single namespace per company or application – Use a reasonably unique namespace prefix – Prefix ed 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 complex ity – Jackrabbit performance > Content- driven design – Design your content before your application
  • 12. 12 Agenda > Apache Jackrabbit > Basic content modeling > References and search > Advanced features > Summary and questions
  • 13. 13 Alternative Views: References tags tunes playlists Tune Rock Classic Top 10 Picks link link link Tune
  • 14. 14 Alternative Views: Search Looking XPath SQL for Latest / jcr:root/ my:tunes/ / element(*,my:tu SELECT * FROM my:tune releases ne) WHERE [@released > xs:dateTime(‘…’)] jcr:path LIKE ‘/ my:tunes/ %’ AND released > DATE ‘…’ Reviews / jcr:root/ my:tunes/ / element(*,my:re SELECT * FROM my:review with view) WHERE keywords / jcr:content[jcr:contains(.,’…’)] jcr:path LIKE ‘/ my:tunes/ %’ AND CONTAINS(*,‘…’)
  • 15. 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 index ing 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. 16 Agenda > Apache Jackrabbit > Basic content modeling > References and search > Advanced features > Summary and questions
  • 17. 17 Staged Publishing: Versioning Version store Staging Live
  • 18. 18 Personalization tunes users Tune John Jane tunes favorites playlists Tune link link
  • 19. 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. 20 Agenda > Apache Jackrabbit > Basic content modeling > References and search > Advanced features > Summary and questions
  • 21. 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, ex port/ import, full tex t search, etc. > Web- friendly – Trivial URI mapping – WebDAV access for free – Dispatch on node type, not on URI path > In your application?
  • 22. Jukka Zitting http:/ / www.day.com/ Day Software jukka.zitting@day.com Apache Jackrabbit http:/ / jackrabbit.apache.org/ users@jackrabbit.apache.org Apache Software Foundation http:/ / www.apache.org/