jcr in 10 minutes
DESCRIPTION
Slides of my short talk at http://www.nosqloakland.org/TRANSCRIPT
![Page 1: JCR In 10 Minutes](https://reader034.vdocuments.site/reader034/viewer/2022042614/5550fc5fb4c90501448b4c6a/html5/thumbnails/1.jpg)
JCR in 15 minutesBertrand DelacrétazSenior Developer, R&D, Day Software, www.day.comASF [email protected]: http://grep.codeconsult.chtwitter: @bdelacretaz
Slides revision: 2009-11-01Slides theme design: David NueschelerSlides at http://x42.ch/01.10.01
The Ultimate Content Store?
![Page 2: JCR In 10 Minutes](https://reader034.vdocuments.site/reader034/viewer/2022042614/5550fc5fb4c90501448b4c6a/html5/thumbnails/2.jpg)
JCR
JCR = Java Content Repository API
JSR-170 / JSR-283
Everything Is Content - and JCR manages it as trees of Nodes and Properties, using rich data types.
![Page 3: JCR In 10 Minutes](https://reader034.vdocuments.site/reader034/viewer/2022042614/5550fc5fb4c90501448b4c6a/html5/thumbnails/3.jpg)
JCR
JCR = Java Content Repository API
JSR-170 / JSR-283
Everything Is Content - and JCR manages it as trees of Nodes and Properties, using rich data types.
silver
![Page 4: JCR In 10 Minutes](https://reader034.vdocuments.site/reader034/viewer/2022042614/5550fc5fb4c90501448b4c6a/html5/thumbnails/4.jpg)
`oåíÉåí=RÉéoëáíoêó=Ñoê=g~î~qj=íÉÅÜåoäoÖó=^mfpéÉÅJiÉ~ÇWa~ó=poÑíï~êÉpí~íìëW=cáå~ä=RÉäÉ~ëÉ=NTJàìåJOMMR
gpRJNTM
bñéÉêí=dêoìéW
The JCR spec
![Page 5: JCR In 10 Minutes](https://reader034.vdocuments.site/reader034/viewer/2022042614/5550fc5fb4c90501448b4c6a/html5/thumbnails/5.jpg)
bñéÉêí=dêoìéW
gpRJNTM gpRJOUP
`oåíÉåí=RÉéoëáíoêó=Ñoê=g~î~qj=íÉÅÜåoäoÖó=^mf=îOKMpéÉÅJiÉ~ÇWa~ó=poÑíï~êÉpí~íìëW=cáå~ä=RÉäÉ~ëÉ=NQJëÉéíJOMMV
The JCR spec
![Page 6: JCR In 10 Minutes](https://reader034.vdocuments.site/reader034/viewer/2022042614/5550fc5fb4c90501448b4c6a/html5/thumbnails/6.jpg)
![Page 7: JCR In 10 Minutes](https://reader034.vdocuments.site/reader034/viewer/2022042614/5550fc5fb4c90501448b4c6a/html5/thumbnails/7.jpg)
What’s JCR?
![Page 8: JCR In 10 Minutes](https://reader034.vdocuments.site/reader034/viewer/2022042614/5550fc5fb4c90501448b4c6a/html5/thumbnails/8.jpg)
What’s JCR?
“The API should be a standard, implementation independent, way to access content bi-directionally on a granular level to a content repository.”
![Page 9: JCR In 10 Minutes](https://reader034.vdocuments.site/reader034/viewer/2022042614/5550fc5fb4c90501448b4c6a/html5/thumbnails/9.jpg)
What’s JCR?
“The API should be a standard, implementation independent, way to access content bi-directionally on a granular level to a content repository.” ?
![Page 10: JCR In 10 Minutes](https://reader034.vdocuments.site/reader034/viewer/2022042614/5550fc5fb4c90501448b4c6a/html5/thumbnails/10.jpg)
What’s JCR?
“The API should be a standard, implementation independent, way to access content bi-directionally on a granular level to a content repository.” ?
![Page 11: JCR In 10 Minutes](https://reader034.vdocuments.site/reader034/viewer/2022042614/5550fc5fb4c90501448b4c6a/html5/thumbnails/11.jpg)
Best of both worlds.
data base filesystem
content repository
read
write
hier-archiesstreams
locking accesscontrol
integrity structure
tx query
un-structured“full-text” sort
orderversion
ingobser-vation
multi-value
![Page 12: JCR In 10 Minutes](https://reader034.vdocuments.site/reader034/viewer/2022042614/5550fc5fb4c90501448b4c6a/html5/thumbnails/12.jpg)
Best of both worlds.
data base filesystem
content repository
read
write
hier-archiesstreams
locking accesscontrol
integrity structure
tx query
un-structured“full-text” sort
orderversion
ingobser-vation
multi-value
![Page 13: JCR In 10 Minutes](https://reader034.vdocuments.site/reader034/viewer/2022042614/5550fc5fb4c90501448b4c6a/html5/thumbnails/13.jpg)
Known compliant Repositories
![Page 14: JCR In 10 Minutes](https://reader034.vdocuments.site/reader034/viewer/2022042614/5550fc5fb4c90501448b4c6a/html5/thumbnails/14.jpg)
Known compliant Repositories
Apache Jackrabbit Oracle XML DBExo
ECMS PlatformMicrosoft
Sharepoint OpenText Livelink
Day CRX IBM FileNet P8 Xythos Repository Alfresco ECM Vignette V7
Interwoven Repository IBM CM EMC Documentum
How many
RDBMS vendors
do you need?+hundreds of TCKsregistered
* *
*
*
* using third party connector
*
![Page 15: JCR In 10 Minutes](https://reader034.vdocuments.site/reader034/viewer/2022042614/5550fc5fb4c90501448b4c6a/html5/thumbnails/15.jpg)
Some known JCR Applications
![Page 16: JCR In 10 Minutes](https://reader034.vdocuments.site/reader034/viewer/2022042614/5550fc5fb4c90501448b4c6a/html5/thumbnails/16.jpg)
Sourcemix Sourcemix
Percussion Rhythmix Lutece
Portal
QuickWCM WCMS
Jahia Framework
Hippo CMS
InfoQ Online CommunityNuxeo ECM
Sakai E-learning
TYPO3 v5.0 WCMGX WebManager
Exo ECMS Platform
Liferay Enterprise Portal
Artifactory Maven Proxy
IBM FileNet WebSiteManagerApache James
medic-2-medic mapofmedicine
Day Communiqué WCMS
Apache Tapestry
Day Communique Collab
QSLabs ComplianceApache
Cocoon
Alfresco ECMSApache Sling
Mindquarry Collaboration
Day Communique DAMmagnolia WCMS
JBoss Portal
Some known JCR Applications
Sun OpenPortal Interface 21
Spring Framework
Fast Enterprise SearchOracle PortalBEA Portal
![Page 17: JCR In 10 Minutes](https://reader034.vdocuments.site/reader034/viewer/2022042614/5550fc5fb4c90501448b4c6a/html5/thumbnails/17.jpg)
Sourcemix Sourcemix
Percussion Rhythmix Lutece
Portal
QuickWCM WCMS
Jahia Framework
Hippo CMS
InfoQ Online CommunityNuxeo ECM
Sakai E-learning
TYPO3 v5.0 WCMGX WebManager
Exo ECMS Platform
Liferay Enterprise Portal
Artifactory Maven Proxy
IBM FileNet WebSiteManagerApache James
medic-2-medic mapofmedicine
Day Communiqué WCMS
Apache Tapestry
Day Communique Collab
QSLabs ComplianceApache
Cocoon
Alfresco ECMSApache Sling
Mindquarry Collaboration
Day Communique DAMmagnolia WCMS
JBoss Portal
Some known JCR Applications
Sun OpenPortal Interface 21
Spring Framework
Fast Enterprise SearchOracle PortalBEA Portal
![Page 18: JCR In 10 Minutes](https://reader034.vdocuments.site/reader034/viewer/2022042614/5550fc5fb4c90501448b4c6a/html5/thumbnails/18.jpg)
JCR code excerptRepository repository = new TransientRepository();Session session = repository.login(...);
// Create contentNode root = session.getRootNode();Node hello = root.addNode("hello");Node world = hello.addNode("world");
world.setProperty("message", "Hello, World!");session.save();
// Retrieve contentNode node = root.getNode("hello/world");print(node.getPath());print(node.getProperty("message").getString());
![Page 19: JCR In 10 Minutes](https://reader034.vdocuments.site/reader034/viewer/2022042614/5550fc5fb4c90501448b4c6a/html5/thumbnails/19.jpg)
Content models
![Page 20: JCR In 10 Minutes](https://reader034.vdocuments.site/reader034/viewer/2022042614/5550fc5fb4c90501448b4c6a/html5/thumbnails/20.jpg)
JCR == NoSQL ?Not as “webscaly” as other NoSQL systems today. Growing in this direction.
Offers a lot in terms of application infrastructure.
Pragmatic solution for today, and not everybody needs webscale!
![Page 21: JCR In 10 Minutes](https://reader034.vdocuments.site/reader034/viewer/2022042614/5550fc5fb4c90501448b4c6a/html5/thumbnails/21.jpg)
@apache:
Jackrabbit JCR repository
Sling applications layer
JCR == NoSQL ?Not as “webscaly” as other NoSQL systems today. Growing in this direction.
Offers a lot in terms of application infrastructure.
Pragmatic solution for today, and not everybody needs webscale!