CQ5 and Sling overview

Bertrand Delacretaz
Bertrand DelacretazPrincipal Scientist at Adobe
cq5 and Sling
overview
 Bertrand Delacrétaz
 Senior Developer, R&D, Day Software, www.day.com
 Apache Software Foundation Member
 http://grep.codeconsult.ch - twitter: @bdelacretaz - bdelacretaz@apache.org
 Logica Geneva monthly developer meeting, February 2010
 slides revision: 2010-02-25


CQ5 and Sling                                                                  1
overview                                                                       Bertrand Delacrétaz
Basel, Switzerland headquarters
           (~80 people, ~150 worldwide)
           Munich        “Day allows us to quickly


          London
                         and reliably deliver content
                         to our entire McFamily,                      content-centric
                         helping us to be flexible and
                         drive new opportunities.”                      products
           Newport
           Beach, CA     Steve Wilson, Senior
                         Director of Web
          Toronto
                         Communications,
                         McDonald’s                                       (everything is content)

www.day.com
                                              Swiss open source
                                            award / business / 2008

note the 3-letter domain name:
we’ve been doing this for a while...
                                                        Strong ties to the Apache Software Foundation
2001

2001



        2009

                                                            Roy T. Fielding and David Nuescheler,
Survived tough times (SWX:DAYN)                                    “Mr. REST” and “Mr. JCR”
What              is cq5?
content management system
   no database? No SQL? everything is content
                                                  fun to use
    digital assets              OSGi applications framework
            JCR repository
                               Marketing dept. loves IT dept.?
CQ5 and Sling
overview
cq5: welcome
cq5: content tree
cq5: page editing
cq5: visual workflow
cq5: multivariate testing

                                  User provides 3 (N) possible
                                  banner designs (drag & drop)




     cq5 provides statistics on
     impressions and click-
     through rates -> helps
     selecting the best banner.
cq5: zero-install IDE
content
                structures
     no database? No SQL?    everything is content


            JCR repository
CQ5 and Sling
overview
geometrixx page content
              /content
               /geometrixx
                /en
                 /company
                   /jcr:content
                     /par
                      /title
blog design content




    /etc/designs/blog/kubrick/jcr:content
code content!


                /libs
                  /cq
                    /code
                     /install
                       /xyz.jar
dynamic java modules (OSGi)
Apache
       Sling
Apache Software Foundation       open source
     script == servlet           open development
Applications layer for JCR repositories   OSGi-based
HTTP                                    debugger       filesystem     browser



       content administration UI


     standard        custom servlets                           WebDAV      Sling OSGi
     servlets        and components                             server       console
                                                javascript
                                                   JSP
  resource      servlet/script     JSR 223        Ruby
 resolution      resolution        scripting     Velocity
                                                  etc..
                                                                 Apache Sling framework

                                   OSGi framework
                                    (Apache Felix)
                                       JSR-170 API

                                          JCR
                                        content
CQ5/Sling                              repository
                                                           storage
                                                         components
architecture
HTTP                                    debugger       filesystem   browser



       content administration UI


     standard        custom servlets                           WebDAV     Sling OSGi
     servlets        and components                             server      console
                                                javascript
                                                   JSP
  resource      servlet/script     JSR 223        Ruby
 resolution      resolution        scripting     Velocity
                                                  etc..


                                   OSGi framework
                                    (Apache Felix)
                                       JSR-170 API


                                          JCR

open source?
                                       repository          storage
                                                         components
you bet!
OSGi?
  OSGi is great for modularity

  Fosters better structured code

  Dynamic services and plugins

  Tooling needs to improve, but usable

  OSGi skills? - OSGi way of thinking is new...

  Asynchronous startup can be problematic if
  using declarative services

CQ5 and Sling
overview                                          Bertrand Delacrétaz
Sling blog
46 lines of code
Sling POST servlet
  # POST to Sling
  curl -F title=hi http://localhost:8888/foo
  -> 200 OK

  # GET created node in json format
  curl http://localhost:8888/foo.tidy.json
  {
    "jcr:primaryType": "nt:unstructured",
    "title": "hi"
  }
                               POST ters se t
                                       e
                                param operties
                                 node pr

CQ5 and Sling                              20
overview                                    Bertrand Delacrétaz
blog step 1: create content
      <form method="POST">
         Title:
         <input type="text" name="title"/>
         Text:
         <textarea name="text"></textarea>
         <input type="submit" value="save"/>
         <input type="hidden"
                name=":redirect" value="*"/>
      </form>
                                     Form e fields
                                      dri ve th model
CQ5 and Sling
                                        ontent
                                                        21
overview                               c                 Bertrand Delacrétaz
blog step 2: retrieve content
 <script src="/system/sling.js"></script>
 <form method="POST">
   ...(as in step 1)...
 </form>

 <!-- set form fields to current node values -->
 <script>Sling.wizard();</script>




                                  t CRU(D)
                           Instan
CQ5 and Sling                                22
overview                                      Bertrand Delacrétaz
blog step 3: navigation
   <ul>
     <li>
        <a href="/content/blog/*">[Create post]</a>
     </li>
     <script>
        var posts = Sling.getContent("/content/blog", 2);
        for(var post in posts) {
           document.write(
             "<li><a href=’” + post + "'>"
             + posts[post].title + "</a></li>");
         }
     </script>
   </ul>


CQ5 and Sling                                      23
overview                                            Bertrand Delacrétaz
we’ve got a blog!
html form + Sling wizard() + Sling.getContent()
more info?
www.day.com/cq5
www.day.com/crx (free download)
sling.apache.org
jackrabbit.apache.org
felix.apache.org
slideshare.net/bdelacretaz
CQ5 and Sling
overview                   Bertrand Delacrétaz
This slide deck is licensed under the
Creative Commons Attribution-Noncommercial-Share Alike 3 license.
            Copyright (C) 2010, Bertrand Delacretaz
1 of 26

Recommended

Frontend Application Architecture, Patterns, and Workflows by
Frontend Application Architecture, Patterns, and WorkflowsFrontend Application Architecture, Patterns, and Workflows
Frontend Application Architecture, Patterns, and WorkflowsTreasure Data, Inc.
4K views33 slides
RESTful Web Applications with Apache Sling by
RESTful Web Applications with Apache SlingRESTful Web Applications with Apache Sling
RESTful Web Applications with Apache SlingBertrand Delacretaz
8.2K views43 slides
Build Your Own CMS with Apache Sling by
Build Your Own CMS with Apache SlingBuild Your Own CMS with Apache Sling
Build Your Own CMS with Apache SlingBob Paulin
15.8K views43 slides
Comparing Hot JavaScript Frameworks: AngularJS, Ember.js and React.js - Sprin... by
Comparing Hot JavaScript Frameworks: AngularJS, Ember.js and React.js - Sprin...Comparing Hot JavaScript Frameworks: AngularJS, Ember.js and React.js - Sprin...
Comparing Hot JavaScript Frameworks: AngularJS, Ember.js and React.js - Sprin...Matt Raible
68.4K views170 slides
Introduction to Sightly and Sling Models by
Introduction to Sightly and Sling ModelsIntroduction to Sightly and Sling Models
Introduction to Sightly and Sling ModelsStefano Celentano
10.4K views41 slides
JCR and Sling Quick Dive by
JCR and Sling Quick DiveJCR and Sling Quick Dive
JCR and Sling Quick DivePaolo Mottadelli
3.4K views21 slides

More Related Content

What's hot

GitBucket: The perfect Github clone by Scala by
GitBucket: The perfect Github clone by ScalaGitBucket: The perfect Github clone by Scala
GitBucket: The perfect Github clone by Scalatakezoe
26.7K views37 slides
Choosing the best JavaScript framework/library/toolkit by
Choosing the best JavaScript framework/library/toolkitChoosing the best JavaScript framework/library/toolkit
Choosing the best JavaScript framework/library/toolkitHristo Chakarov
2.5K views35 slides
Building Real World Application with Azure by
Building Real World Application with AzureBuilding Real World Application with Azure
Building Real World Application with Azuredivyapisces
225 views38 slides
RESTFul development with Apache sling by
RESTFul development with Apache slingRESTFul development with Apache sling
RESTFul development with Apache slingSergii Fesenko
1.1K views24 slides
Flash And Dom by
Flash And DomFlash And Dom
Flash And DomMike Wilcox
10.5K views40 slides
Developing realtime apps with Drupal and NodeJS by
Developing realtime apps with Drupal and NodeJS Developing realtime apps with Drupal and NodeJS
Developing realtime apps with Drupal and NodeJS drupalcampest
9.8K views33 slides

What's hot(20)

GitBucket: The perfect Github clone by Scala by takezoe
GitBucket: The perfect Github clone by ScalaGitBucket: The perfect Github clone by Scala
GitBucket: The perfect Github clone by Scala
takezoe26.7K views
Choosing the best JavaScript framework/library/toolkit by Hristo Chakarov
Choosing the best JavaScript framework/library/toolkitChoosing the best JavaScript framework/library/toolkit
Choosing the best JavaScript framework/library/toolkit
Hristo Chakarov2.5K views
Building Real World Application with Azure by divyapisces
Building Real World Application with AzureBuilding Real World Application with Azure
Building Real World Application with Azure
divyapisces225 views
RESTFul development with Apache sling by Sergii Fesenko
RESTFul development with Apache slingRESTFul development with Apache sling
RESTFul development with Apache sling
Sergii Fesenko1.1K views
Flash And Dom by Mike Wilcox
Flash And DomFlash And Dom
Flash And Dom
Mike Wilcox10.5K views
Developing realtime apps with Drupal and NodeJS by drupalcampest
Developing realtime apps with Drupal and NodeJS Developing realtime apps with Drupal and NodeJS
Developing realtime apps with Drupal and NodeJS
drupalcampest9.8K views
Here Be Dragons - Debugging WordPress by Rami Sayar
Here Be Dragons - Debugging WordPressHere Be Dragons - Debugging WordPress
Here Be Dragons - Debugging WordPress
Rami Sayar2K views
Using Web Standards to create Interactive Data Visualizations for the Web by philogb
Using Web Standards to create Interactive Data Visualizations for the WebUsing Web Standards to create Interactive Data Visualizations for the Web
Using Web Standards to create Interactive Data Visualizations for the Web
philogb3.4K views
Bringing Interactivity to Your Drupal Site with Node.js Integration by Acquia
Bringing Interactivity to Your Drupal Site with Node.js IntegrationBringing Interactivity to Your Drupal Site with Node.js Integration
Bringing Interactivity to Your Drupal Site with Node.js Integration
Acquia7.3K views
Modular JavaScript in an OSGi World - S Mak by mfrancis
Modular JavaScript in an OSGi World - S MakModular JavaScript in an OSGi World - S Mak
Modular JavaScript in an OSGi World - S Mak
mfrancis6.3K views
Transforming Front-End Disaster Code™ Into A Maintainable Masterpiece by Dan Gribbin
Transforming Front-End Disaster Code™ Into A Maintainable MasterpieceTransforming Front-End Disaster Code™ Into A Maintainable Masterpiece
Transforming Front-End Disaster Code™ Into A Maintainable Masterpiece
Dan Gribbin11K views
Building and Managing Projects with Maven by Khan625
Building and Managing Projects with MavenBuilding and Managing Projects with Maven
Building and Managing Projects with Maven
Khan625334 views
Moving from PHP to a nodejs full stack CMS by Make & Build
Moving from PHP to a nodejs full stack CMSMoving from PHP to a nodejs full stack CMS
Moving from PHP to a nodejs full stack CMS
Make & Build3K views
jQuery Conference 2012 keynote by dmethvin
jQuery Conference 2012 keynotejQuery Conference 2012 keynote
jQuery Conference 2012 keynote
dmethvin20.4K views
Building an E-commerce website in MEAN stack by divyapisces
Building an E-commerce website in MEAN stackBuilding an E-commerce website in MEAN stack
Building an E-commerce website in MEAN stack
divyapisces8.1K views
Play! Framework for JavaEE Developers by Teng Shiu Huang
Play! Framework for JavaEE DevelopersPlay! Framework for JavaEE Developers
Play! Framework for JavaEE Developers
Teng Shiu Huang14.3K views
RESTful OSGi Web Applications Tutorial - Khawaja S Shams & Jeff Norris by mfrancis
RESTful OSGi Web Applications Tutorial - Khawaja S Shams & Jeff NorrisRESTful OSGi Web Applications Tutorial - Khawaja S Shams & Jeff Norris
RESTful OSGi Web Applications Tutorial - Khawaja S Shams & Jeff Norris
mfrancis1.3K views
Single Page Applications - Desert Code Camp 2012 by Adam Mokan
Single Page Applications - Desert Code Camp 2012Single Page Applications - Desert Code Camp 2012
Single Page Applications - Desert Code Camp 2012
Adam Mokan1.8K views
Mean Stack - An Overview by Naveen Pete
Mean Stack - An OverviewMean Stack - An Overview
Mean Stack - An Overview
Naveen Pete1K views

Viewers also liked

Introduction to CQ5 by
Introduction to CQ5Introduction to CQ5
Introduction to CQ5Michele Mostarda
33.3K views25 slides
Adobe CQ5 for Developers - Introduction by
Adobe CQ5 for Developers - IntroductionAdobe CQ5 for Developers - Introduction
Adobe CQ5 for Developers - IntroductionTekno Point
7.9K views14 slides
Adobe AEM CQ5 - Developer Introduction by
Adobe AEM CQ5 - Developer IntroductionAdobe AEM CQ5 - Developer Introduction
Adobe AEM CQ5 - Developer IntroductionYash Mody
12.2K views14 slides
Adobe Experience Manager 6 Certificaton by
Adobe Experience Manager 6 CertificatonAdobe Experience Manager 6 Certificaton
Adobe Experience Manager 6 CertificatonRatna Kumar Kotla
274 views1 slide
SocialAnalyticsとCQ5がスゴイ by
SocialAnalyticsとCQ5がスゴイSocialAnalyticsとCQ5がスゴイ
SocialAnalyticsとCQ5がスゴイMakoto Shimizu
1.8K views31 slides
Rapid RESTful Web Applications with Apache Sling and Jackrabbit by
Rapid RESTful Web Applications with Apache Sling and JackrabbitRapid RESTful Web Applications with Apache Sling and Jackrabbit
Rapid RESTful Web Applications with Apache Sling and JackrabbitCraig Dickson
8.3K views17 slides

Viewers also liked(9)

Adobe CQ5 for Developers - Introduction by Tekno Point
Adobe CQ5 for Developers - IntroductionAdobe CQ5 for Developers - Introduction
Adobe CQ5 for Developers - Introduction
Tekno Point7.9K views
Adobe AEM CQ5 - Developer Introduction by Yash Mody
Adobe AEM CQ5 - Developer IntroductionAdobe AEM CQ5 - Developer Introduction
Adobe AEM CQ5 - Developer Introduction
Yash Mody12.2K views
SocialAnalyticsとCQ5がスゴイ by Makoto Shimizu
SocialAnalyticsとCQ5がスゴイSocialAnalyticsとCQ5がスゴイ
SocialAnalyticsとCQ5がスゴイ
Makoto Shimizu1.8K views
Rapid RESTful Web Applications with Apache Sling and Jackrabbit by Craig Dickson
Rapid RESTful Web Applications with Apache Sling and JackrabbitRapid RESTful Web Applications with Apache Sling and Jackrabbit
Rapid RESTful Web Applications with Apache Sling and Jackrabbit
Craig Dickson8.3K views
Adobe Analytics 2015: 異常値の原因を自動検出&CRMデータ統合 by Makoto Shimizu
Adobe Analytics 2015: 異常値の原因を自動検出&CRMデータ統合Adobe Analytics 2015: 異常値の原因を自動検出&CRMデータ統合
Adobe Analytics 2015: 異常値の原因を自動検出&CRMデータ統合
Makoto Shimizu3.6K views
Apache Sling : JCR, OSGi, Scripting and REST by Carsten Ziegeler
Apache Sling : JCR, OSGi, Scripting and RESTApache Sling : JCR, OSGi, Scripting and REST
Apache Sling : JCR, OSGi, Scripting and REST
Carsten Ziegeler12.4K views
AEM 6.1 User Interface Customization by Christian Meyer
AEM 6.1 User Interface CustomizationAEM 6.1 User Interface Customization
AEM 6.1 User Interface Customization
Christian Meyer10.4K views

Similar to CQ5 and Sling overview

Why we (Day) open source most of our code by
Why we (Day) open source most of our codeWhy we (Day) open source most of our code
Why we (Day) open source most of our codeBertrand Delacretaz
1.2K views29 slides
StrongLoop Overview by
StrongLoop OverviewStrongLoop Overview
StrongLoop OverviewShubhra Kar
2.3K views44 slides
Java @ Cloud - Setor Público SP by
Java @ Cloud - Setor Público SPJava @ Cloud - Setor Público SP
Java @ Cloud - Setor Público SPIlan Salviano
234 views30 slides
End-to-end HTML5 APIs - The Geek Gathering 2013 by
End-to-end HTML5 APIs - The Geek Gathering 2013End-to-end HTML5 APIs - The Geek Gathering 2013
End-to-end HTML5 APIs - The Geek Gathering 2013Alexandre Morgaut
5.7K views41 slides
Building assets on the fly with Node.js by
Building assets on the fly with Node.jsBuilding assets on the fly with Node.js
Building assets on the fly with Node.jsAcquisio
3.4K views14 slides
Dynamic Languages Web Frameworks Indicthreads 2009 by
Dynamic Languages Web Frameworks Indicthreads 2009Dynamic Languages Web Frameworks Indicthreads 2009
Dynamic Languages Web Frameworks Indicthreads 2009Arun Gupta
1.3K views61 slides

Similar to CQ5 and Sling overview(20)

StrongLoop Overview by Shubhra Kar
StrongLoop OverviewStrongLoop Overview
StrongLoop Overview
Shubhra Kar2.3K views
Java @ Cloud - Setor Público SP by Ilan Salviano
Java @ Cloud - Setor Público SPJava @ Cloud - Setor Público SP
Java @ Cloud - Setor Público SP
Ilan Salviano234 views
End-to-end HTML5 APIs - The Geek Gathering 2013 by Alexandre Morgaut
End-to-end HTML5 APIs - The Geek Gathering 2013End-to-end HTML5 APIs - The Geek Gathering 2013
End-to-end HTML5 APIs - The Geek Gathering 2013
Alexandre Morgaut5.7K views
Building assets on the fly with Node.js by Acquisio
Building assets on the fly with Node.jsBuilding assets on the fly with Node.js
Building assets on the fly with Node.js
Acquisio3.4K views
Dynamic Languages Web Frameworks Indicthreads 2009 by Arun Gupta
Dynamic Languages Web Frameworks Indicthreads 2009Dynamic Languages Web Frameworks Indicthreads 2009
Dynamic Languages Web Frameworks Indicthreads 2009
Arun Gupta1.3K views
Introduction and hacking OpenStack, Pycon India by Atul Jha
Introduction and hacking OpenStack,  Pycon IndiaIntroduction and hacking OpenStack,  Pycon India
Introduction and hacking OpenStack, Pycon India
Atul Jha2K views
Make easier Integration of your services with Fuse Solutions - RedHat 2013 by Charles Moulliard
Make easier Integration of your services with Fuse Solutions - RedHat 2013Make easier Integration of your services with Fuse Solutions - RedHat 2013
Make easier Integration of your services with Fuse Solutions - RedHat 2013
Charles Moulliard3.5K views
IBM Think Session 8598 Domino and JavaScript Development MasterClass by Paul Withers
IBM Think Session 8598 Domino and JavaScript Development MasterClassIBM Think Session 8598 Domino and JavaScript Development MasterClass
IBM Think Session 8598 Domino and JavaScript Development MasterClass
Paul Withers1K views
The next step from Microsoft - Vnext (Srdjan Poznic) by Geekstone
The next step from Microsoft - Vnext (Srdjan Poznic)The next step from Microsoft - Vnext (Srdjan Poznic)
The next step from Microsoft - Vnext (Srdjan Poznic)
Geekstone131 views
Cloud standards interoperability: status update on OCCI and CDMI implementations by Florian Feldhaus
Cloud standards interoperability: status update on OCCI and CDMI implementationsCloud standards interoperability: status update on OCCI and CDMI implementations
Cloud standards interoperability: status update on OCCI and CDMI implementations
Florian Feldhaus1.2K views
It is not HTML5. but ... / HTML5ではないサイトからHTML5を考える by Sadaaki HIRAI
It is not HTML5. but ... / HTML5ではないサイトからHTML5を考えるIt is not HTML5. but ... / HTML5ではないサイトからHTML5を考える
It is not HTML5. but ... / HTML5ではないサイトからHTML5を考える
Sadaaki HIRAI3.6K views
Wakanda: NoSQL for Model-Driven Web applications - NoSQL matters 2012 by Alexandre Morgaut
Wakanda: NoSQL for Model-Driven Web applications - NoSQL matters 2012Wakanda: NoSQL for Model-Driven Web applications - NoSQL matters 2012
Wakanda: NoSQL for Model-Driven Web applications - NoSQL matters 2012
Alexandre Morgaut14.5K views
(2018) Webpack Encore - Asset Management for the rest of us by Stefan Adolf
(2018) Webpack Encore - Asset Management for the rest of us(2018) Webpack Encore - Asset Management for the rest of us
(2018) Webpack Encore - Asset Management for the rest of us
Stefan Adolf1.1K views
20200303 AWS Black Belt Online Seminar AWS Cloud Development Kit (CDK) by Amazon Web Services Japan
20200303 AWS Black Belt Online Seminar AWS Cloud Development Kit (CDK)20200303 AWS Black Belt Online Seminar AWS Cloud Development Kit (CDK)
20200303 AWS Black Belt Online Seminar AWS Cloud Development Kit (CDK)

More from Bertrand Delacretaz

VanillaJS & the Web Platform, a match made in heaven? by
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?Bertrand Delacretaz
18 views23 slides
Surviving large online communities with conciseness and clarity by
Surviving large online communities with conciseness and clarity Surviving large online communities with conciseness and clarity
Surviving large online communities with conciseness and clarity Bertrand Delacretaz
59 views20 slides
Repoinit: a mini-language for content repository initialization by
Repoinit: a mini-language for content repository initializationRepoinit: a mini-language for content repository initialization
Repoinit: a mini-language for content repository initializationBertrand Delacretaz
233 views31 slides
The Moving House Model, adhocracy and remote collaboration by
The Moving House Model, adhocracy and remote collaborationThe Moving House Model, adhocracy and remote collaboration
The Moving House Model, adhocracy and remote collaborationBertrand Delacretaz
258 views31 slides
GraphQL in Apache Sling - but isn't it the opposite of REST? by
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?Bertrand Delacretaz
665 views22 slides
Open Source Changes the World! by
Open Source Changes the World!Open Source Changes the World!
Open Source Changes the World!Bertrand Delacretaz
318 views24 slides

More from Bertrand Delacretaz(20)

VanillaJS & the Web Platform, a match made in heaven? by Bertrand Delacretaz
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 by Bertrand Delacretaz
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 by Bertrand Delacretaz
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 by Bertrand Delacretaz
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? by Bertrand Delacretaz
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?
How to convince your left brain (or manager) to follow the Open Source path t... by Bertrand Delacretaz
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 by Bertrand Delacretaz
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? by Bertrand Delacretaz
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?
Serverless - introduction et perspectives concrètes by Bertrand Delacretaz
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 by Bertrand Delacretaz
State of the Feather - ApacheCon North America 2018State of the Feather - ApacheCon North America 2018
State of the Feather - ApacheCon North America 2018
Open Source at Scale: the Apache Software Foundation (2018) by Bertrand Delacretaz
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)
Bertrand Delacretaz3.8K views
They don't understand me! Tales from the multi-cultural trenches by Bertrand Delacretaz
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) by Bertrand Delacretaz
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)
Bertrand Delacretaz1.1K views
La Fondation Apache - keynote au Paris Open Source Summit 2017 by Bertrand Delacretaz
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 by Bertrand Delacretaz
Asynchronous Decision Making - FOSS Backstage 2017Asynchronous Decision Making - FOSS Backstage 2017
Asynchronous Decision Making - FOSS Backstage 2017
Bertrand Delacretaz8.6K views

Recently uploaded

"Quality Assurance: Achieving Excellence in startup without a Dedicated QA", ... by
"Quality Assurance: Achieving Excellence in startup without a Dedicated QA", ..."Quality Assurance: Achieving Excellence in startup without a Dedicated QA", ...
"Quality Assurance: Achieving Excellence in startup without a Dedicated QA", ...Fwdays
33 views39 slides
MemVerge: Memory Viewer Software by
MemVerge: Memory Viewer SoftwareMemVerge: Memory Viewer Software
MemVerge: Memory Viewer SoftwareCXL Forum
118 views10 slides
Beyond the Hype: What Generative AI Means for the Future of Work - Damien Cum... by
Beyond the Hype: What Generative AI Means for the Future of Work - Damien Cum...Beyond the Hype: What Generative AI Means for the Future of Work - Damien Cum...
Beyond the Hype: What Generative AI Means for the Future of Work - Damien Cum...NUS-ISS
28 views35 slides
Future of Learning - Yap Aye Wee.pdf by
Future of Learning - Yap Aye Wee.pdfFuture of Learning - Yap Aye Wee.pdf
Future of Learning - Yap Aye Wee.pdfNUS-ISS
38 views11 slides
CXL at OCP by
CXL at OCPCXL at OCP
CXL at OCPCXL Forum
208 views66 slides
"Role of a CTO in software outsourcing company", Yuriy Nakonechnyy by
"Role of a CTO in software outsourcing company", Yuriy Nakonechnyy"Role of a CTO in software outsourcing company", Yuriy Nakonechnyy
"Role of a CTO in software outsourcing company", Yuriy NakonechnyyFwdays
40 views21 slides

Recently uploaded(20)

"Quality Assurance: Achieving Excellence in startup without a Dedicated QA", ... by Fwdays
"Quality Assurance: Achieving Excellence in startup without a Dedicated QA", ..."Quality Assurance: Achieving Excellence in startup without a Dedicated QA", ...
"Quality Assurance: Achieving Excellence in startup without a Dedicated QA", ...
Fwdays33 views
MemVerge: Memory Viewer Software by CXL Forum
MemVerge: Memory Viewer SoftwareMemVerge: Memory Viewer Software
MemVerge: Memory Viewer Software
CXL Forum118 views
Beyond the Hype: What Generative AI Means for the Future of Work - Damien Cum... by NUS-ISS
Beyond the Hype: What Generative AI Means for the Future of Work - Damien Cum...Beyond the Hype: What Generative AI Means for the Future of Work - Damien Cum...
Beyond the Hype: What Generative AI Means for the Future of Work - Damien Cum...
NUS-ISS28 views
Future of Learning - Yap Aye Wee.pdf by NUS-ISS
Future of Learning - Yap Aye Wee.pdfFuture of Learning - Yap Aye Wee.pdf
Future of Learning - Yap Aye Wee.pdf
NUS-ISS38 views
CXL at OCP by CXL Forum
CXL at OCPCXL at OCP
CXL at OCP
CXL Forum208 views
"Role of a CTO in software outsourcing company", Yuriy Nakonechnyy by Fwdays
"Role of a CTO in software outsourcing company", Yuriy Nakonechnyy"Role of a CTO in software outsourcing company", Yuriy Nakonechnyy
"Role of a CTO in software outsourcing company", Yuriy Nakonechnyy
Fwdays40 views
Future of Learning - Khoong Chan Meng by NUS-ISS
Future of Learning - Khoong Chan MengFuture of Learning - Khoong Chan Meng
Future of Learning - Khoong Chan Meng
NUS-ISS31 views
Samsung: CMM-H Tiered Memory Solution with Built-in DRAM by CXL Forum
Samsung: CMM-H Tiered Memory Solution with Built-in DRAMSamsung: CMM-H Tiered Memory Solution with Built-in DRAM
Samsung: CMM-H Tiered Memory Solution with Built-in DRAM
CXL Forum105 views
How to reduce cold starts for Java Serverless applications in AWS at JCON Wor... by Vadym Kazulkin
How to reduce cold starts for Java Serverless applications in AWS at JCON Wor...How to reduce cold starts for Java Serverless applications in AWS at JCON Wor...
How to reduce cold starts for Java Serverless applications in AWS at JCON Wor...
Vadym Kazulkin70 views
Business Analyst Series 2023 - Week 3 Session 5 by DianaGray10
Business Analyst Series 2023 -  Week 3 Session 5Business Analyst Series 2023 -  Week 3 Session 5
Business Analyst Series 2023 - Week 3 Session 5
DianaGray10165 views
Photowave Presentation Slides - 11.8.23.pptx by CXL Forum
Photowave Presentation Slides - 11.8.23.pptxPhotowave Presentation Slides - 11.8.23.pptx
Photowave Presentation Slides - 11.8.23.pptx
CXL Forum126 views
"Thriving Culture in a Product Company — Practical Story", Volodymyr Tsukur by Fwdays
"Thriving Culture in a Product Company — Practical Story", Volodymyr Tsukur"Thriving Culture in a Product Company — Practical Story", Volodymyr Tsukur
"Thriving Culture in a Product Company — Practical Story", Volodymyr Tsukur
Fwdays40 views
PharoJS - Zürich Smalltalk Group Meetup November 2023 by Noury Bouraqadi
PharoJS - Zürich Smalltalk Group Meetup November 2023PharoJS - Zürich Smalltalk Group Meetup November 2023
PharoJS - Zürich Smalltalk Group Meetup November 2023
Noury Bouraqadi113 views
"How we switched to Kanban and how it integrates with product planning", Vady... by Fwdays
"How we switched to Kanban and how it integrates with product planning", Vady..."How we switched to Kanban and how it integrates with product planning", Vady...
"How we switched to Kanban and how it integrates with product planning", Vady...
Fwdays61 views
The details of description: Techniques, tips, and tangents on alternative tex... by BookNet Canada
The details of description: Techniques, tips, and tangents on alternative tex...The details of description: Techniques, tips, and tangents on alternative tex...
The details of description: Techniques, tips, and tangents on alternative tex...
BookNet Canada110 views
.conf Go 2023 - How KPN drives Customer Satisfaction on IPTV by Splunk
.conf Go 2023 - How KPN drives Customer Satisfaction on IPTV.conf Go 2023 - How KPN drives Customer Satisfaction on IPTV
.conf Go 2023 - How KPN drives Customer Satisfaction on IPTV
Splunk86 views
Web Dev - 1 PPT.pdf by gdsczhcet
Web Dev - 1 PPT.pdfWeb Dev - 1 PPT.pdf
Web Dev - 1 PPT.pdf
gdsczhcet52 views

CQ5 and Sling overview

  • 1. cq5 and Sling overview Bertrand Delacrétaz Senior Developer, R&D, Day Software, www.day.com Apache Software Foundation Member http://grep.codeconsult.ch - twitter: @bdelacretaz - bdelacretaz@apache.org Logica Geneva monthly developer meeting, February 2010 slides revision: 2010-02-25 CQ5 and Sling 1 overview Bertrand Delacrétaz
  • 2. Basel, Switzerland headquarters (~80 people, ~150 worldwide) Munich “Day allows us to quickly London and reliably deliver content to our entire McFamily, content-centric helping us to be flexible and drive new opportunities.” products Newport Beach, CA Steve Wilson, Senior Director of Web Toronto Communications, McDonald’s (everything is content) www.day.com Swiss open source award / business / 2008 note the 3-letter domain name: we’ve been doing this for a while... Strong ties to the Apache Software Foundation 2001 2001 2009 Roy T. Fielding and David Nuescheler, Survived tough times (SWX:DAYN) “Mr. REST” and “Mr. JCR”
  • 3. What is cq5? content management system no database? No SQL? everything is content fun to use digital assets OSGi applications framework JCR repository Marketing dept. loves IT dept.? CQ5 and Sling overview
  • 8. cq5: multivariate testing User provides 3 (N) possible banner designs (drag & drop) cq5 provides statistics on impressions and click- through rates -> helps selecting the best banner.
  • 10. content structures no database? No SQL? everything is content JCR repository CQ5 and Sling overview
  • 11. geometrixx page content /content /geometrixx /en /company /jcr:content /par /title
  • 12. blog design content /etc/designs/blog/kubrick/jcr:content
  • 13. code content! /libs /cq /code /install /xyz.jar
  • 15. Apache Sling Apache Software Foundation open source script == servlet open development Applications layer for JCR repositories OSGi-based
  • 16. HTTP debugger filesystem browser content administration UI standard custom servlets WebDAV Sling OSGi servlets and components server console javascript JSP resource servlet/script JSR 223 Ruby resolution resolution scripting Velocity etc.. Apache Sling framework OSGi framework (Apache Felix) JSR-170 API JCR content CQ5/Sling repository storage components architecture
  • 17. HTTP debugger filesystem browser content administration UI standard custom servlets WebDAV Sling OSGi servlets and components server console javascript JSP resource servlet/script JSR 223 Ruby resolution resolution scripting Velocity etc.. OSGi framework (Apache Felix) JSR-170 API JCR open source? repository storage components you bet!
  • 18. OSGi? OSGi is great for modularity Fosters better structured code Dynamic services and plugins Tooling needs to improve, but usable OSGi skills? - OSGi way of thinking is new... Asynchronous startup can be problematic if using declarative services CQ5 and Sling overview Bertrand Delacrétaz
  • 20. Sling POST servlet # POST to Sling curl -F title=hi http://localhost:8888/foo -> 200 OK # GET created node in json format curl http://localhost:8888/foo.tidy.json { "jcr:primaryType": "nt:unstructured", "title": "hi" } POST ters se t e param operties node pr CQ5 and Sling 20 overview Bertrand Delacrétaz
  • 21. blog step 1: create content <form method="POST"> Title: <input type="text" name="title"/> Text: <textarea name="text"></textarea> <input type="submit" value="save"/> <input type="hidden" name=":redirect" value="*"/> </form> Form e fields dri ve th model CQ5 and Sling ontent 21 overview c Bertrand Delacrétaz
  • 22. blog step 2: retrieve content <script src="/system/sling.js"></script> <form method="POST"> ...(as in step 1)... </form> <!-- set form fields to current node values --> <script>Sling.wizard();</script> t CRU(D) Instan CQ5 and Sling 22 overview Bertrand Delacrétaz
  • 23. blog step 3: navigation <ul> <li> <a href="/content/blog/*">[Create post]</a> </li> <script> var posts = Sling.getContent("/content/blog", 2); for(var post in posts) { document.write( "<li><a href=’” + post + "'>" + posts[post].title + "</a></li>"); } </script> </ul> CQ5 and Sling 23 overview Bertrand Delacrétaz
  • 24. we’ve got a blog! html form + Sling wizard() + Sling.getContent()
  • 25. more info? www.day.com/cq5 www.day.com/crx (free download) sling.apache.org jackrabbit.apache.org felix.apache.org slideshare.net/bdelacretaz CQ5 and Sling overview Bertrand Delacrétaz
  • 26. This slide deck is licensed under the Creative Commons Attribution-Noncommercial-Share Alike 3 license. Copyright (C) 2010, Bertrand Delacretaz