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 JackrabbitJukka Zitting
 
Content Management With Apache Jackrabbit
Content Management With Apache JackrabbitContent Management With Apache Jackrabbit
Content Management With Apache JackrabbitJulien Lamande
 
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

Traction part 2 - EOS Model JAX Bridges.
Traction part 2 - EOS Model JAX Bridges.Traction part 2 - EOS Model JAX Bridges.
Traction part 2 - EOS Model JAX Bridges.Anamaria Contreras
 
Fordham -How effective decision-making is within the IT department - Analysis...
Fordham -How effective decision-making is within the IT department - Analysis...Fordham -How effective decision-making is within the IT department - Analysis...
Fordham -How effective decision-making is within the IT department - Analysis...Peter Ward
 
Cybersecurity Awareness Training Presentation v2024.03
Cybersecurity Awareness Training Presentation v2024.03Cybersecurity Awareness Training Presentation v2024.03
Cybersecurity Awareness Training Presentation v2024.03DallasHaselhorst
 
Call Us 📲8800102216📞 Call Girls In DLF City Gurgaon
Call Us 📲8800102216📞 Call Girls In DLF City GurgaonCall Us 📲8800102216📞 Call Girls In DLF City Gurgaon
Call Us 📲8800102216📞 Call Girls In DLF City Gurgaoncallgirls2057
 
Buy gmail accounts.pdf Buy Old Gmail Accounts
Buy gmail accounts.pdf Buy Old Gmail AccountsBuy gmail accounts.pdf Buy Old Gmail Accounts
Buy gmail accounts.pdf Buy Old Gmail AccountsBuy Verified Accounts
 
MAHA Global and IPR: Do Actions Speak Louder Than Words?
MAHA Global and IPR: Do Actions Speak Louder Than Words?MAHA Global and IPR: Do Actions Speak Louder Than Words?
MAHA Global and IPR: Do Actions Speak Louder Than Words?Olivia Kresic
 
1911 Gold Corporate Presentation Apr 2024.pdf
1911 Gold Corporate Presentation Apr 2024.pdf1911 Gold Corporate Presentation Apr 2024.pdf
1911 Gold Corporate Presentation Apr 2024.pdfShaun Heinrichs
 
PB Project 1: Exploring Your Personal Brand
PB Project 1: Exploring Your Personal BrandPB Project 1: Exploring Your Personal Brand
PB Project 1: Exploring Your Personal BrandSharisaBethune
 
Innovation Conference 5th March 2024.pdf
Innovation Conference 5th March 2024.pdfInnovation Conference 5th March 2024.pdf
Innovation Conference 5th March 2024.pdfrichard876048
 
APRIL2024_UKRAINE_xml_0000000000000 .pdf
APRIL2024_UKRAINE_xml_0000000000000 .pdfAPRIL2024_UKRAINE_xml_0000000000000 .pdf
APRIL2024_UKRAINE_xml_0000000000000 .pdfRbc Rbcua
 
NewBase 19 April 2024 Energy News issue - 1717 by Khaled Al Awadi.pdf
NewBase  19 April  2024  Energy News issue - 1717 by Khaled Al Awadi.pdfNewBase  19 April  2024  Energy News issue - 1717 by Khaled Al Awadi.pdf
NewBase 19 April 2024 Energy News issue - 1717 by Khaled Al Awadi.pdfKhaled Al Awadi
 
Kenya Coconut Production Presentation by Dr. Lalith Perera
Kenya Coconut Production Presentation by Dr. Lalith PereraKenya Coconut Production Presentation by Dr. Lalith Perera
Kenya Coconut Production Presentation by Dr. Lalith Pereraictsugar
 
Memorándum de Entendimiento (MoU) entre Codelco y SQM
Memorándum de Entendimiento (MoU) entre Codelco y SQMMemorándum de Entendimiento (MoU) entre Codelco y SQM
Memorándum de Entendimiento (MoU) entre Codelco y SQMVoces Mineras
 
International Business Environments and Operations 16th Global Edition test b...
International Business Environments and Operations 16th Global Edition test b...International Business Environments and Operations 16th Global Edition test b...
International Business Environments and Operations 16th Global Edition test b...ssuserf63bd7
 
8447779800, Low rate Call girls in Shivaji Enclave Delhi NCR
8447779800, Low rate Call girls in Shivaji Enclave Delhi NCR8447779800, Low rate Call girls in Shivaji Enclave Delhi NCR
8447779800, Low rate Call girls in Shivaji Enclave Delhi NCRashishs7044
 
8447779800, Low rate Call girls in Saket Delhi NCR
8447779800, Low rate Call girls in Saket Delhi NCR8447779800, Low rate Call girls in Saket Delhi NCR
8447779800, Low rate Call girls in Saket Delhi NCRashishs7044
 
Chapter 9 PPT 4th edition.pdf internal audit
Chapter 9 PPT 4th edition.pdf internal auditChapter 9 PPT 4th edition.pdf internal audit
Chapter 9 PPT 4th edition.pdf internal auditNhtLNguyn9
 
TriStar Gold Corporate Presentation - April 2024
TriStar Gold Corporate Presentation - April 2024TriStar Gold Corporate Presentation - April 2024
TriStar Gold Corporate Presentation - April 2024Adnet Communications
 

Dernier (20)

Traction part 2 - EOS Model JAX Bridges.
Traction part 2 - EOS Model JAX Bridges.Traction part 2 - EOS Model JAX Bridges.
Traction part 2 - EOS Model JAX Bridges.
 
Fordham -How effective decision-making is within the IT department - Analysis...
Fordham -How effective decision-making is within the IT department - Analysis...Fordham -How effective decision-making is within the IT department - Analysis...
Fordham -How effective decision-making is within the IT department - Analysis...
 
Cybersecurity Awareness Training Presentation v2024.03
Cybersecurity Awareness Training Presentation v2024.03Cybersecurity Awareness Training Presentation v2024.03
Cybersecurity Awareness Training Presentation v2024.03
 
Call Us 📲8800102216📞 Call Girls In DLF City Gurgaon
Call Us 📲8800102216📞 Call Girls In DLF City GurgaonCall Us 📲8800102216📞 Call Girls In DLF City Gurgaon
Call Us 📲8800102216📞 Call Girls In DLF City Gurgaon
 
Japan IT Week 2024 Brochure by 47Billion (English)
Japan IT Week 2024 Brochure by 47Billion (English)Japan IT Week 2024 Brochure by 47Billion (English)
Japan IT Week 2024 Brochure by 47Billion (English)
 
Buy gmail accounts.pdf Buy Old Gmail Accounts
Buy gmail accounts.pdf Buy Old Gmail AccountsBuy gmail accounts.pdf Buy Old Gmail Accounts
Buy gmail accounts.pdf Buy Old Gmail Accounts
 
MAHA Global and IPR: Do Actions Speak Louder Than Words?
MAHA Global and IPR: Do Actions Speak Louder Than Words?MAHA Global and IPR: Do Actions Speak Louder Than Words?
MAHA Global and IPR: Do Actions Speak Louder Than Words?
 
1911 Gold Corporate Presentation Apr 2024.pdf
1911 Gold Corporate Presentation Apr 2024.pdf1911 Gold Corporate Presentation Apr 2024.pdf
1911 Gold Corporate Presentation Apr 2024.pdf
 
PB Project 1: Exploring Your Personal Brand
PB Project 1: Exploring Your Personal BrandPB Project 1: Exploring Your Personal Brand
PB Project 1: Exploring Your Personal Brand
 
Innovation Conference 5th March 2024.pdf
Innovation Conference 5th March 2024.pdfInnovation Conference 5th March 2024.pdf
Innovation Conference 5th March 2024.pdf
 
APRIL2024_UKRAINE_xml_0000000000000 .pdf
APRIL2024_UKRAINE_xml_0000000000000 .pdfAPRIL2024_UKRAINE_xml_0000000000000 .pdf
APRIL2024_UKRAINE_xml_0000000000000 .pdf
 
NewBase 19 April 2024 Energy News issue - 1717 by Khaled Al Awadi.pdf
NewBase  19 April  2024  Energy News issue - 1717 by Khaled Al Awadi.pdfNewBase  19 April  2024  Energy News issue - 1717 by Khaled Al Awadi.pdf
NewBase 19 April 2024 Energy News issue - 1717 by Khaled Al Awadi.pdf
 
Kenya Coconut Production Presentation by Dr. Lalith Perera
Kenya Coconut Production Presentation by Dr. Lalith PereraKenya Coconut Production Presentation by Dr. Lalith Perera
Kenya Coconut Production Presentation by Dr. Lalith Perera
 
Memorándum de Entendimiento (MoU) entre Codelco y SQM
Memorándum de Entendimiento (MoU) entre Codelco y SQMMemorándum de Entendimiento (MoU) entre Codelco y SQM
Memorándum de Entendimiento (MoU) entre Codelco y SQM
 
International Business Environments and Operations 16th Global Edition test b...
International Business Environments and Operations 16th Global Edition test b...International Business Environments and Operations 16th Global Edition test b...
International Business Environments and Operations 16th Global Edition test b...
 
8447779800, Low rate Call girls in Shivaji Enclave Delhi NCR
8447779800, Low rate Call girls in Shivaji Enclave Delhi NCR8447779800, Low rate Call girls in Shivaji Enclave Delhi NCR
8447779800, Low rate Call girls in Shivaji Enclave Delhi NCR
 
Enjoy ➥8448380779▻ Call Girls In Sector 18 Noida Escorts Delhi NCR
Enjoy ➥8448380779▻ Call Girls In Sector 18 Noida Escorts Delhi NCREnjoy ➥8448380779▻ Call Girls In Sector 18 Noida Escorts Delhi NCR
Enjoy ➥8448380779▻ Call Girls In Sector 18 Noida Escorts Delhi NCR
 
8447779800, Low rate Call girls in Saket Delhi NCR
8447779800, Low rate Call girls in Saket Delhi NCR8447779800, Low rate Call girls in Saket Delhi NCR
8447779800, Low rate Call girls in Saket Delhi NCR
 
Chapter 9 PPT 4th edition.pdf internal audit
Chapter 9 PPT 4th edition.pdf internal auditChapter 9 PPT 4th edition.pdf internal audit
Chapter 9 PPT 4th edition.pdf internal audit
 
TriStar Gold Corporate Presentation - April 2024
TriStar Gold Corporate Presentation - April 2024TriStar Gold Corporate Presentation - April 2024
TriStar Gold Corporate Presentation - April 2024
 

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/