SlideShare ist ein Scribd-Unternehmen logo
1 von 16
Downloaden Sie, um offline zu lesen
A JCR view of the world                                                                1


        A JCR view of the world
               a-jcr-folder
                     a-subfolder
                            a-jcr-node
                            propertyA : Nodes have 0..N properties
                            anotherProperty : Another value
        Everything is content, everything is a tree

        Bertrand Delacretaz , Senior Developer, Adobe CQ5 team.
        Apache Software Foundation member and (current) director
        @bdelacretaz - http://grep.codeconsult.ch

        Berlin Buzzwords 2012
        Powered by Apache Sling (content and rendering) and deck.js
        (presentation)




http://localhost:4502/content/bb12.html                              1 juin 2012 14:18:09
A JCR view of the world                                                         2


        JCR?




        Java API for content repositories (JSR 283)

        A big tree of nodes and properties.

        Rich infrastructure for content-based applications.




http://localhost:4502/content/bb12.html                       1 juin 2012 14:18:09
A JCR view of the world                                                         3


        JCR Explorer




        Java API for content repositories (JSR 283)

        A big tree of nodes and properties.

        Rich infrastructure for content-based applications.




http://localhost:4502/content/bb12.html                       1 juin 2012 14:18:09
A JCR view of the world                                                                    4


        A basic website page
               my-page
                   jcr:content
                   jcr:text : This is the text of the page.
                   jcr:title : Title of my page
                           images
                                  image_1.jpg

                                   image_2.jpg

        The jcr:content subnode will later act as a container for more
        complex content structures.




http://localhost:4502/content/bb12.html                                  1 juin 2012 14:18:09
A JCR view of the world                                                                    5


        A more realistic page
               /content /my-site/my-page
                     jcr:content
                     jcr:title : Title of my page
                             content -blocks
                                    block_1

                                   block_2

                            images
                                 first-image.jpg
                                        original .jpg

                                          renditions
                                                first-image-212x43.jpg

                                               first-image-512x83.jpg

        Uses JCR observation to generate renditions when original image is
        uploaded.

        The first-image node is a folder, not just a file. A "micro-tree" of
        content.




http://localhost:4502/content/bb12.html                                  1 juin 2012 14:18:09
A JCR view of the world                                                                  6


        A print queue
               print-queue -example
                     incoming
                          printjob _20120524 _1502

                      printers
                            canonMP640
                                 done

                                   printjob _20120524 _1458

                            Laserjet 5M

                      rejected
                            printjob _20120524 _1458

        Jobs arrive under "incoming" and move under a printer's node while
        they are executed. Remember unix spooling?

        The "rejected" folder holds jobs that could not be executed.




http://localhost:4502/content/bb12.html                                1 juin 2012 14:18:09
A JCR view of the world                                                                    7


        Defining virtual hosts
               /etc/map/http
                     www_geometrixx _de
                     sling:internalRedirect : /content /geometrixx /de
                     sling:match : www.geometrixx .de/$
                     www_geometrixx _fr
                     sling:internalRedirect : /content /geometrixx /fr
                     sling:match : www.geometrixx .fr/$
        Obvious, transparent...no explanation needed




http://localhost:4502/content/bb12.html                                  1 juin 2012 14:18:09
A JCR view of the world                                     8


        Adobe CQ5's content structure
               content
                    geometrixx _en

               libs
                      wcm/mobile
                          config

                            install

               apps
                      wcm/mobile
                          install

               etc
                      virtual-hosts

               var
                      compiled-scripts

        Looks familiar?




http://localhost:4502/content/bb12.html   1 juin 2012 14:18:09
A JCR view of the world                                                                  9


        Code and configurations
               /apps/my-app
                    install
                           a-bundle .jar

                            sling.get.servlet .jar

                      config
                            o.a.sling.GET.config

                      config.dev
                            o.a.sling.logging .config

        Sling's JCR installer detects and installs bundles, configs and other
        resources.

        Scary? Extremely useful - with access controls of course.




http://localhost:4502/content/bb12.html                                1 juin 2012 14:18:09
A JCR view of the world                                                                 10


        A workflow model
               /etc/workflow/models/my-model
               jcr:description : Please approve ...
               jcr:title : Content Approval
                       states
                             state_1
                                  preconditions

                                   transitions

                            state_2
                                 preconditions

                                   transitions

        Useful JCR features: versioning, access control, observation, ...

        Semi-generic editor is relatively easy to implement.




http://localhost:4502/content/bb12.html                                1 juin 2012 14:18:09
A JCR view of the world                                                                          11


        Workflow instances
               /var/workflow/instances
                     year2012
                           month03
                                day24
                                     wf_45f23c
                                     modelPath : /etc/models/approve _content
                                     wf_45f23d

                                   day25
                                       wf_6534ef

                      year2011

        Under /var for distinct access control and lifecycle.

        Purge old workflows? Delete year2011 folder.




http://localhost:4502/content/bb12.html                                         1 juin 2012 14:18:09
A JCR view of the world                                                                 12


        Ingesting assets
               /var/public/incoming
                     some_image.jpg

                      invalid .pdf

               /var/assets /to-validate
                     image-to-check.jpg

               /content /assets
                     year2012
                           month04
                                validated _image.jpg

               /var/readonly /rejected
                     other_invalid .pdf

        Watch the incoming folder using JCR observation

        Validate , accept and route assets based on content, filenames, etc.

        Only incoming folder needs to be writable by users.




http://localhost:4502/content/bb12.html                                1 juin 2012 14:18:09
A JCR view of the world                                                                13


        Slingbucks sample: ordering coffee
               /content /slingbucks
                     private
                            confirmed -orders
                                  order_b45627

                                   order_f32136

                      public
                            order_c325421
                            coffeeType : espresso
                            cupSize : tall
        Access control requirements for the private/public folders is obvious.

        Orders move from public to private, as if passed over the counter
        (using JCR observation).




http://localhost:4502/content/bb12.html                               1 juin 2012 14:18:09
A JCR view of the world                                                              14


        Slingbucks sample: coffee options
               /content /slingbucks
                     coffee -type
                            capuccino

                            espresso

                      cup-type
                           small

                            medium
                            price_factor : 1.4
                            name_fr : Moyenne
                            name_en : Medium
        Options are defined in content, updates are dynamically applied.

        Access control defines who can modify options.




http://localhost:4502/content/bb12.html                             1 juin 2012 14:18:09
A JCR view of the world                                                 15


        Thanks for your attention - I'm @bdelacretaz




http://localhost:4502/content/bb12.html                1 juin 2012 14:18:09
A JCR view of the world                                    16




http://localhost:4502/content/bb12.html   1 juin 2012 14:18:09

Weitere ähnliche Inhalte

Ähnlich wie A JCR view of the world: everything is content, everything is a tree!

Spring intro classes-in-mumbai
Spring intro classes-in-mumbaiSpring intro classes-in-mumbai
Spring intro classes-in-mumbai
vibrantuser
 
What Big Data Folks Need to Know About DevOps
What Big Data Folks Need to Know About DevOpsWhat Big Data Folks Need to Know About DevOps
What Big Data Folks Need to Know About DevOps
Matt Ray
 

Ähnlich wie A JCR view of the world: everything is content, everything is a tree! (20)

Openshift operator insight
Openshift operator insightOpenshift operator insight
Openshift operator insight
 
Components now!
Components now! Components now!
Components now!
 
J2me step by step
J2me step by stepJ2me step by step
J2me step by step
 
Modules and EmbedJS
Modules and EmbedJSModules and EmbedJS
Modules and EmbedJS
 
Java 9 / Jigsaw - LJC / VJUG session (hackday session)
Java 9 / Jigsaw - LJC / VJUG session (hackday session)Java 9 / Jigsaw - LJC / VJUG session (hackday session)
Java 9 / Jigsaw - LJC / VJUG session (hackday session)
 
Java in a world of containers
Java in a world of containersJava in a world of containers
Java in a world of containers
 
Java in a World of Containers - DockerCon 2018
Java in a World of Containers - DockerCon 2018Java in a World of Containers - DockerCon 2018
Java in a World of Containers - DockerCon 2018
 
Kubernetes - Why It's Cool & Why It Maaters
Kubernetes - Why It's Cool & Why It MaatersKubernetes - Why It's Cool & Why It Maaters
Kubernetes - Why It's Cool & Why It Maaters
 
Introduction to Spring Framework and Spring IoC
Introduction to Spring Framework and Spring IoCIntroduction to Spring Framework and Spring IoC
Introduction to Spring Framework and Spring IoC
 
Gnizr Architecture (for developers)
Gnizr Architecture (for developers)Gnizr Architecture (for developers)
Gnizr Architecture (for developers)
 
Corba 2
Corba 2Corba 2
Corba 2
 
Spring
SpringSpring
Spring
 
A Glance At The Java Performance Toolbox
A Glance At The Java Performance ToolboxA Glance At The Java Performance Toolbox
A Glance At The Java Performance Toolbox
 
Spring intro classes-in-mumbai
Spring intro classes-in-mumbaiSpring intro classes-in-mumbai
Spring intro classes-in-mumbai
 
What Big Data Folks Need to Know About DevOps
What Big Data Folks Need to Know About DevOpsWhat Big Data Folks Need to Know About DevOps
What Big Data Folks Need to Know About DevOps
 
Oracle 12c Launch Event 02 ADF 12c and Maven in Jdeveloper / By Aino Andriessen
Oracle 12c Launch Event 02 ADF 12c and Maven in Jdeveloper / By Aino Andriessen Oracle 12c Launch Event 02 ADF 12c and Maven in Jdeveloper / By Aino Andriessen
Oracle 12c Launch Event 02 ADF 12c and Maven in Jdeveloper / By Aino Andriessen
 
Serverless Container with Source2Image
Serverless Container with Source2ImageServerless Container with Source2Image
Serverless Container with Source2Image
 
Serverless containers … with source-to-image
Serverless containers  … with source-to-imageServerless containers  … with source-to-image
Serverless containers … with source-to-image
 
JVMs in Containers - Best Practices
JVMs in Containers - Best PracticesJVMs in Containers - Best Practices
JVMs in Containers - Best Practices
 
A docker love story
A docker love storyA docker love story
A docker love story
 

Mehr von Bertrand Delacretaz

Mehr von Bertrand Delacretaz (20)

VanillaJS & the Web Platform, a match made in heaven?
VanillaJS & the Web Platform, a match made in heaven?VanillaJS & the Web Platform, a match made in heaven?
VanillaJS & the Web Platform, a match made in heaven?
 
Surviving large online communities with conciseness and clarity
Surviving large online communities with conciseness and clarity Surviving large online communities with conciseness and clarity
Surviving large online communities with conciseness and clarity
 
Repoinit: a mini-language for content repository initialization
Repoinit: a mini-language for content repository initializationRepoinit: a mini-language for content repository initialization
Repoinit: a mini-language for content repository initialization
 
The Moving House Model, adhocracy and remote collaboration
The Moving House Model, adhocracy and remote collaborationThe Moving House Model, adhocracy and remote collaboration
The Moving House Model, adhocracy and remote collaboration
 
GraphQL in Apache Sling - but isn't it the opposite of REST?
GraphQL in Apache Sling - but isn't it the opposite of REST?GraphQL in Apache Sling - but isn't it the opposite of REST?
GraphQL in Apache Sling - but isn't it the opposite of REST?
 
Open Source Changes the World!
Open Source Changes the World!Open Source Changes the World!
Open Source Changes the World!
 
How to convince your left brain (or manager) to follow the Open Source path t...
How to convince your left brain (or manager) to follow the Open Source path t...How to convince your left brain (or manager) to follow the Open Source path t...
How to convince your left brain (or manager) to follow the Open Source path t...
 
L'Open Source change le Monde - BlendWebMix 2019
L'Open Source change le Monde - BlendWebMix 2019L'Open Source change le Monde - BlendWebMix 2019
L'Open Source change le Monde - BlendWebMix 2019
 
Shared Neurons - the Secret Sauce of Open Source communities?
Shared Neurons - the Secret Sauce of Open Source communities?Shared Neurons - the Secret Sauce of Open Source communities?
Shared Neurons - the Secret Sauce of Open Source communities?
 
Sling and Serverless, Best Friends Forever?
Sling and Serverless, Best Friends Forever?Sling and Serverless, Best Friends Forever?
Sling and Serverless, Best Friends Forever?
 
Serverless - introduction et perspectives concrètes
Serverless - introduction et perspectives concrètesServerless - introduction et perspectives concrètes
Serverless - introduction et perspectives concrètes
 
State of the Feather - ApacheCon North America 2018
State of the Feather - ApacheCon North America 2018State of the Feather - ApacheCon North America 2018
State of the Feather - ApacheCon North America 2018
 
Karate, the black belt of HTTP API testing?
Karate, the black belt of HTTP API testing?Karate, the black belt of HTTP API testing?
Karate, the black belt of HTTP API testing?
 
Open Source at Scale: the Apache Software Foundation (2018)
Open Source at Scale: the Apache Software Foundation (2018)Open Source at Scale: the Apache Software Foundation (2018)
Open Source at Scale: the Apache Software Foundation (2018)
 
They don't understand me! Tales from the multi-cultural trenches
They don't understand me! Tales from the multi-cultural trenchesThey don't understand me! Tales from the multi-cultural trenches
They don't understand me! Tales from the multi-cultural trenches
 
Prise de Décisions Asynchrone, Devoxx France 2018 (avec vidéo)
Prise de Décisions Asynchrone, Devoxx France 2018 (avec vidéo)Prise de Décisions Asynchrone, Devoxx France 2018 (avec vidéo)
Prise de Décisions Asynchrone, Devoxx France 2018 (avec vidéo)
 
Project and Community Services the Apache Way
Project and Community Services the Apache WayProject and Community Services the Apache Way
Project and Community Services the Apache Way
 
La Fondation Apache - keynote au Paris Open Source Summit 2017
La Fondation Apache - keynote au Paris Open Source Summit 2017La Fondation Apache - keynote au Paris Open Source Summit 2017
La Fondation Apache - keynote au Paris Open Source Summit 2017
 
Asynchronous Decision Making - FOSS Backstage 2017
Asynchronous Decision Making - FOSS Backstage 2017Asynchronous Decision Making - FOSS Backstage 2017
Asynchronous Decision Making - FOSS Backstage 2017
 
Building an Apache Sling Rendering Farm
Building an Apache Sling Rendering FarmBuilding an Apache Sling Rendering Farm
Building an Apache Sling Rendering Farm
 

Kürzlich hochgeladen

Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 

Kürzlich hochgeladen (20)

ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
Bajaj Allianz Life Insurance Company - Insurer Innovation Award 2024
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 

A JCR view of the world: everything is content, everything is a tree!

  • 1. A JCR view of the world 1 A JCR view of the world a-jcr-folder a-subfolder a-jcr-node propertyA : Nodes have 0..N properties anotherProperty : Another value Everything is content, everything is a tree Bertrand Delacretaz , Senior Developer, Adobe CQ5 team. Apache Software Foundation member and (current) director @bdelacretaz - http://grep.codeconsult.ch Berlin Buzzwords 2012 Powered by Apache Sling (content and rendering) and deck.js (presentation) http://localhost:4502/content/bb12.html 1 juin 2012 14:18:09
  • 2. A JCR view of the world 2 JCR? Java API for content repositories (JSR 283) A big tree of nodes and properties. Rich infrastructure for content-based applications. http://localhost:4502/content/bb12.html 1 juin 2012 14:18:09
  • 3. A JCR view of the world 3 JCR Explorer Java API for content repositories (JSR 283) A big tree of nodes and properties. Rich infrastructure for content-based applications. http://localhost:4502/content/bb12.html 1 juin 2012 14:18:09
  • 4. A JCR view of the world 4 A basic website page my-page jcr:content jcr:text : This is the text of the page. jcr:title : Title of my page images image_1.jpg image_2.jpg The jcr:content subnode will later act as a container for more complex content structures. http://localhost:4502/content/bb12.html 1 juin 2012 14:18:09
  • 5. A JCR view of the world 5 A more realistic page /content /my-site/my-page jcr:content jcr:title : Title of my page content -blocks block_1 block_2 images first-image.jpg original .jpg renditions first-image-212x43.jpg first-image-512x83.jpg Uses JCR observation to generate renditions when original image is uploaded. The first-image node is a folder, not just a file. A "micro-tree" of content. http://localhost:4502/content/bb12.html 1 juin 2012 14:18:09
  • 6. A JCR view of the world 6 A print queue print-queue -example incoming printjob _20120524 _1502 printers canonMP640 done printjob _20120524 _1458 Laserjet 5M rejected printjob _20120524 _1458 Jobs arrive under "incoming" and move under a printer's node while they are executed. Remember unix spooling? The "rejected" folder holds jobs that could not be executed. http://localhost:4502/content/bb12.html 1 juin 2012 14:18:09
  • 7. A JCR view of the world 7 Defining virtual hosts /etc/map/http www_geometrixx _de sling:internalRedirect : /content /geometrixx /de sling:match : www.geometrixx .de/$ www_geometrixx _fr sling:internalRedirect : /content /geometrixx /fr sling:match : www.geometrixx .fr/$ Obvious, transparent...no explanation needed http://localhost:4502/content/bb12.html 1 juin 2012 14:18:09
  • 8. A JCR view of the world 8 Adobe CQ5's content structure content geometrixx _en libs wcm/mobile config install apps wcm/mobile install etc virtual-hosts var compiled-scripts Looks familiar? http://localhost:4502/content/bb12.html 1 juin 2012 14:18:09
  • 9. A JCR view of the world 9 Code and configurations /apps/my-app install a-bundle .jar sling.get.servlet .jar config o.a.sling.GET.config config.dev o.a.sling.logging .config Sling's JCR installer detects and installs bundles, configs and other resources. Scary? Extremely useful - with access controls of course. http://localhost:4502/content/bb12.html 1 juin 2012 14:18:09
  • 10. A JCR view of the world 10 A workflow model /etc/workflow/models/my-model jcr:description : Please approve ... jcr:title : Content Approval states state_1 preconditions transitions state_2 preconditions transitions Useful JCR features: versioning, access control, observation, ... Semi-generic editor is relatively easy to implement. http://localhost:4502/content/bb12.html 1 juin 2012 14:18:09
  • 11. A JCR view of the world 11 Workflow instances /var/workflow/instances year2012 month03 day24 wf_45f23c modelPath : /etc/models/approve _content wf_45f23d day25 wf_6534ef year2011 Under /var for distinct access control and lifecycle. Purge old workflows? Delete year2011 folder. http://localhost:4502/content/bb12.html 1 juin 2012 14:18:09
  • 12. A JCR view of the world 12 Ingesting assets /var/public/incoming some_image.jpg invalid .pdf /var/assets /to-validate image-to-check.jpg /content /assets year2012 month04 validated _image.jpg /var/readonly /rejected other_invalid .pdf Watch the incoming folder using JCR observation Validate , accept and route assets based on content, filenames, etc. Only incoming folder needs to be writable by users. http://localhost:4502/content/bb12.html 1 juin 2012 14:18:09
  • 13. A JCR view of the world 13 Slingbucks sample: ordering coffee /content /slingbucks private confirmed -orders order_b45627 order_f32136 public order_c325421 coffeeType : espresso cupSize : tall Access control requirements for the private/public folders is obvious. Orders move from public to private, as if passed over the counter (using JCR observation). http://localhost:4502/content/bb12.html 1 juin 2012 14:18:09
  • 14. A JCR view of the world 14 Slingbucks sample: coffee options /content /slingbucks coffee -type capuccino espresso cup-type small medium price_factor : 1.4 name_fr : Moyenne name_en : Medium Options are defined in content, updates are dynamically applied. Access control defines who can modify options. http://localhost:4502/content/bb12.html 1 juin 2012 14:18:09
  • 15. A JCR view of the world 15 Thanks for your attention - I'm @bdelacretaz http://localhost:4502/content/bb12.html 1 juin 2012 14:18:09
  • 16. A JCR view of the world 16 http://localhost:4502/content/bb12.html 1 juin 2012 14:18:09