Introducing JCR


sep-2010
David Nuescheler
Introductions


David Nuescheler Chief Technology Officer
david@day.com

                                                 ...
Day Software
Introducing JCR 1.0                                  Beyond the Spec
History, Adoption, Usage.
                           ...
JCR.


  “The API should be a standard,
  implementation independent,
  way to access content bi-
  directionally on a gra...
A Content Repository!?

                     CONTENT REPOSITORY

           FEATURES OF AN                                ...
When to use?



permissions    binaries
   search JCR   read-most
   versions    unstructured
                            ...
Reality Check!


                        Task


   write a “JSP snippet” that lists all the
      documents in a folder by...
Reality Check
List all documents in a folder
                                                                             ...
Beyond the Spec
RI & TCK




  The S
 300 pec:    Apache Jackrabbit:
     Pages    more than a reference
             impl...
JSR-170: Some Specifics

 Took about 4 years
 Investment for Day ~30 man years of work to complete (Spec, TCK & RI)
 Fi...
Java Only?


                 Question?


    “A Content Repository Standard,
       sure, but why Java ‘only’?”
Why Java…

 …because of its standardizing body: The JCP.


 Good track record with respect to implementations and finish...
Introducing JCR Catalyst




  WEB      apache
                    JCR
  APP       sling
The Web and Content?




               REST -> Roy T. Fielding


                                                       l...
Industry Standards


  170

  283

                     16
Tracking success




                   17
Known Compliant Repositories
(* partially using 3rd party connectors)




                                           Exo  ...
Some known JCR Applications


                                                                                 Fast
  BEA ...
Introducing JCR 1.0                                  Beyond the Spec
History, Adoption, Usage.
                           ...
JSR-283: Some Specifics

 Took about 4 years
 Investment for Day ~30 man years of work to complete (Spec, TCK & RI)
 St...
Backwards Compatible.


           NEW




              100%
                  & IMP
     BACKWA             ROVE
       ...
Reorganized.


           NEW




              100DEL & BINDING
                  & IMP
     BACKWA             ROVE
    ...
Bundled.


           NEW




              100DEL & BINDING
                  & IMP
     BACKWA             ROVE
        ...
Favorites.




 10
Query extensions




                       AQM
                         JQOM
   NEW


#1 QUER
         & IMP
            ...
Query extensions




                       +JOIN
   NEW
         & IMP

#1 QUER
               ROVE



               2.0...
Query extensions




                   -XPATH
                       *well, still available but deprecated
              ...
Access Control Management




                   +ACL
                  +POLICY
 NEW & IM
         PROVED

#2 ACL
        ...
Retention Policy & Hold




        +RETENTION
        +LEGAL HOLD
 NEW
       & IMP
             ROVE

#3 RM
            ...
Simple versioning




              +LINEAR
             VERSIONING
             2.0
               ED
  NEW & IMPROV

#4 ...
Lifecycle Management




                     +BPM
                       Allows to express and introspect Lifecycle statu...
Nodetype Registration




            +REGISTER
            NODETYPES
    NEW
          & IMP
                ROVE
#6 NODE...
New property & nodetypes


                              +mix:title
              +URL            +mix:created
           ...
Workspace Management




          +CREATE &
          REMOVE WS
               2.0
           PROVED
  NEW & IM

#8 WORKS...
Shareable nodes




                   +GRAPH
                     Multi-filing. Nodes can have multiple parents.



     ...
Journalling Observation




      +DELTA SINCE?
    NEW
          & IMP         what changed since I last checked?
#10 JOU...
Introducing JCR 1.0                                  Beyond the Spec
History, Adoption, Usage.
                           ...
Beyond the Spec.


            NEW
                  & IMP
     APACHE             ROVE

     NEW & PJACKRABBIT
          ...
Beyond the Spec.


            NEW
                  & IMP
     APACHE             ROVE

     NEW & PJACKRABBIT
          ...
FrOScamp Zurich: Introducing JCR - 2010
Upcoming SlideShare
Loading in …5
×

FrOScamp Zurich: Introducing JCR - 2010

2,419 views

Published on

Introducing JCR. Presentation for the Hackfest at FrOScamp in Zurich.

1 Comment
1 Like
Statistics
Notes
No Downloads
Views
Total views
2,419
On SlideShare
0
From Embeds
0
Number of Embeds
5
Actions
Shares
0
Downloads
9
Comments
1
Likes
1
Embeds 0
No embeds

No notes for slide

FrOScamp Zurich: Introducing JCR - 2010

  1. 1. Introducing JCR sep-2010 David Nuescheler
  2. 2. Introductions David Nuescheler Chief Technology Officer david@day.com David Nuescheler JSR-170 Spec Lead jsr-170-comments@jcp.org David Nuescheler Jackrabbit Committer / Member uncled@apache.org David Nuescheler TC Member / CMIS-JCR Liaison david@day.com
  3. 3. Day Software
  4. 4. Introducing JCR 1.0 Beyond the Spec History, Adoption, Usage. Real-life use... 1 2 3 JCR 2.0 Evolution, What’s new?
  5. 5. JCR. “The API should be a standard, implementation independent, way to access content bi- directionally on a granular level to a content repository.”
  6. 6. A Content Repository!? CONTENT REPOSITORY FEATURES OF AN FEATURES OF A RDBMS FILESYSTEM Transactions, Query, Structure, Integrity Binaries, Hierarchy, Locking, Access Control + ALL THE OTHER GOOD STUFF YOU ALWAYS WANTED Data First, Versioning, Full-text, Multi-Value, Sort-Order, Observation
  7. 7. When to use? permissions binaries search JCR read-most versions unstructured 7
  8. 8. Reality Check! Task write a “JSP snippet” that lists all the documents in a folder by “title”. ...Code Snipp ets courtesy JSR- 70 Ex 1 of the early pert-Group :
  9. 9. Reality Check List all documents in a folder ession); <% new LAPI_DOCUMENTS(s LAPI_D OCUMENTS documents = new LLValue(); LLValue childTable = , s(volumeID, folderID <% documents.ListObject UMENTS.P ERM_SEE, childTable); null, null, LAPI_DOC lues(); childCount = node.getContent ildTable.enumerateVa Count(); Enum eration children = ch for(int i=0;i<childCount;i reElements()) { ++) { while(children.hasMo alue)e.nextElement() ; IContent child = node.getC LLValue child = (LLV JCR API ontent(i); toString("Name"); Property title = child.get PropertyByName("Title"); String title = child. %><%= title.getValue() %>< % br/><% %><%= title %><br/>< } %> <% } <% NodeIterator children = node.getNodes(); %> <% fndocs = new IFnObj while (children.hasNext()) { ile erator children = page.getPages(); PageIt wh (chi fnfold (idmFo lderCo Set er.get DualProxy( Conten ts Node child = children.nextNode();ldren.hasNext()) extPage(); Page child = children .n { int nu derCon Property title = child.getProperty("Title"); mDocs ntent. Container toplevel = for (i = fndo idmFol child.getContent(); nt i = cs.get tentDo Atom title = toplevel Count( .getAtom("Title"); 1; IFnDoc i <= numDocs ); umentD %><%=ntitle %><br /><% } %><%= title %><br /><% cume t )); ual fn ; i++) { new IF nD IFnPro ocumentDualP = pertie doc roxy(f } %> = %> tItem(new I IFnPro sD ndocs. pertyD ual propset ge Stri ng tit ual id fndo %><%= le = i mTitleProp = c.getPropert nteger(i))); ti dmTi pr ies ; if (co tle %><br/>< tleProp.getV opset<% etIte (); .g er.getDocuments()) mClean % alue() m("Tit cuments = new IDocumentsProxy(bind cleane up) ; ocuments dole"); ID r.rele { } ase(fn documents.cache(); (); +800 } doc); documents.getCount in t documentCount = { %> documentCount; i++) ByIndex(i)); for (int i = 0; i< ocumentProxy (documents.getItem document = new ID ment.getTitle() String title = docu ><% %><%= title %><br/ } %>
  10. 10. Beyond the Spec RI & TCK The S 300 pec: Apache Jackrabbit: Pages more than a reference implementation y nolog ility Kit: T ch atib e Comp 0 T sts e +100 10
  11. 11. JSR-170: Some Specifics  Took about 4 years  Investment for Day ~30 man years of work to complete (Spec, TCK & RI)  First JSR in History of the JCP with a true Open Source License (Apache Style)  Star Spec-Lead Award for process excellence  The OSS Reference Implementation “Jackrabbit” graduated to a Top Level Apache Project
  12. 12. Java Only? Question? “A Content Repository Standard, sure, but why Java ‘only’?”
  13. 13. Why Java…  …because of its standardizing body: The JCP.  Good track record with respect to implementations and finished specifications  Reference Implementations and Technology Compatibility Kit are mandatory  Efficient Specification Cycles  A lot of the JCR specification can still be applied other environments and languages
  14. 14. Introducing JCR Catalyst WEB apache JCR APP sling
  15. 15. The Web and Content? REST -> Roy T. Fielding ly JCR: Yours tru d 2005 rele a v1.0 rele ase ages sed y 162 p 2k +300 p ages
  16. 16. Industry Standards 170 283 16
  17. 17. Tracking success 17
  18. 18. Known Compliant Repositories (* partially using 3rd party connectors) Exo Microsoft Apache Jackrabbit Oracle XML DB ECMS Platform Sharepoint OpenText Livelink Day CRX IBM FileNet P8 Xythos Repository Alfresco ECM Vignette V7 Interwoven Saperion +hund reds o Repository IBM CM / Domino EMC Documentum Archive registe f TCKs red
  19. 19. Some known JCR Applications Fast BEA Portal Sun Oracle WebCenter Enterprise Search JBoss Portal Interface 21 OpenPortal Day Communique Spring Framework magnolia WCMS DAM Apache Sling Day Communique Alfresco ECMS Mindquarry Collab Collaboration Apache Tapestry QSLabs Apache Compliance Day Communiqué Cocoon WCMS IBM FileNet Artifactory medic-2-medic WebSiteManager Apache James Maven Proxy mapofmedicine Exo ECMS Platform TYPO3 GX WebManager v5.0 WCM InfoQ Hippo Liferay Nuxeo ECM Online Community CMS Enterprise Portal Jahia Sakai Percussion Framework E-learning Rhythmix QuickWCM Sourcemix WCMS Lutece Sourcemix Portal
  20. 20. Introducing JCR 1.0 Beyond the Spec History, Adoption, Usage. Real-life use... 1 2 3 JCR 2.0 Evolution, What’s new?
  21. 21. JSR-283: Some Specifics  Took about 4 years  Investment for Day ~30 man years of work to complete (Spec, TCK & RI)  Star Spec-Lead Award for process excellence  The OSS Reference Implementation “Apache Jackrabbit” Top Level Project
  22. 22. Backwards Compatible. NEW 100% & IMP BACKWA ROVE D COMPAT RDS IBLE Binary Compatible JSR-170 (JCR v1.0) Applications do not require modification Mixed environment supported (1.0 & 2.0 Apps)
  23. 23. Reorganized. NEW 100DEL & BINDING & IMP BACKWA ROVE D D % COMPAT RDS IMP ROVE & IBLE NEW MO Completely re-organized and clarified Specification Separate Content Repository model section Removed a lot of the Java Language specification
  24. 24. Bundled. NEW 100DEL & BINDING & IMP BACKWA ROVE D D % COMPAT RDS IMP ROVE & IBLE NEW MO NEW & IMPROVED OSGI BUNDLE Shipped jcr-2.0.jar is an OSGI Bundle Ready to deploy in an OSGI Container
  25. 25. Favorites. 10
  26. 26. Query extensions AQM JQOM NEW #1 QUER & IMP ROVE SQL 2.0 D Y Abstract Query Model Java Query Object Model (Java Binding) SQL Bindings
  27. 27. Query extensions +JOIN NEW & IMP #1 QUER ROVE 2.0 D Revamped Result-Set to allow for multiple nodes Y New and Improved query capabilities
  28. 28. Query extensions -XPATH *well, still available but deprecated * NEW & IMP Not enough support from the EG #1 QUER ROVE 2.0 D JQOM allows for many implementations Y Jackrabbit / CRX will support XPATH
  29. 29. Access Control Management +ACL +POLICY NEW & IM PROVED #2 ACL 2.0 Allows to set ACL and Access Control Policies
  30. 30. Retention Policy & Hold +RETENTION +LEGAL HOLD NEW & IMP ROVE #3 RM 2.0 D Support for interaction with RM systems Allows setting and introspection of Retention Policies and Holds
  31. 31. Simple versioning +LINEAR VERSIONING 2.0 ED NEW & IMPROV #4 SIMPLE Simplified Versioning Model to allow VERSIONING for ease of adoption.
  32. 32. Lifecycle Management +BPM Allows to express and introspect Lifecycle status NEW & IM and transitions. PROVED #5 LIFECYCLE 2.0
  33. 33. Nodetype Registration +REGISTER NODETYPES NEW & IMP ROVE #6 NODE 2.0 D MANAGE TYPE MENT Standardized way of registering new and modify registered Nodetypes
  34. 34. New property & nodetypes +mix:title +URL +mix:created +mix:lastModified +WEAK REFERENCE +mix:language +DECIMAL +mix:etag +nt:address NEW & IMPROVED #7 NEW PROPERTY & NODETYPES 2.0 Things we missed in JCR 1.0 applications
  35. 35. Workspace Management +CREATE & REMOVE WS 2.0 PROVED NEW & IM #8 WORKSPACE Standardized way of create and remove MANAGEMENT workspaces
  36. 36. Shareable nodes +GRAPH Multi-filing. Nodes can have multiple parents. 2.0 NEW & IMPROVED #9 SHAREABLE NODES
  37. 37. Journalling Observation +DELTA SINCE? NEW & IMP what changed since I last checked? #10 JOU ROVE 2.0 D RNALLIN OBSERVA G TION
  38. 38. Introducing JCR 1.0 Beyond the Spec History, Adoption, Usage. Real-life use... 1 2 3 JCR 2.0 Evolution, What’s new?
  39. 39. Beyond the Spec. NEW & IMP APACHE ROVE NEW & PJACKRABBIT 2.0 D ROVEN ;) Robust Code base Fully JCR 2.0 Compliant ;) More tooling than ever Established eco-system
  40. 40. Beyond the Spec. NEW & IMP APACHE ROVE NEW & PJACKRABBIT 2.0 D ROVEN ;) YST ATAL ING! C JCR APACHE SL Restful Web Framework Running on top of JCR Never build a JCR WebApp without it. Seriously!

×