SlideShare ist ein Scribd-Unternehmen logo
1 von 45
Downloaden Sie, um offline zu lesen
µjax in 30
 minutes

                   lars.trieloff@day.com
      weblogs.goshaky.com/weblogs/lars
µjax in 30
 minutes
   JCR m
        eets
    AJAX




                            lars.trieloff@day.com
               weblogs.goshaky.com/weblogs/lars
Lars Trieloff
•   Product Manager at Day
•   Author, Blogger, Open
    Source Code
    •   Apache Cocoon
    •   Mindquarry
    •   Goshaky
    •   DAX
µjax
content repository vs. ajax
µjax
           content repository vs. ajax




What’s JCR (elevator pitch)
Introducing µjax
                           silve
                                 r
µjax
           content repository vs. ajax




What’s JCR (elevator pitch)
Introducing µjax
                           silve
                                 r
What’s JCR?
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.”
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.”
                   ?
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.”
                   ?
Best of both worlds.
   database      fi les yste m




        content repositor y
Best of both worlds.
                     database                fi les yste m
                                                     hier-
         integ                                     archi
              rity       structu
                                re                      es
                                       read                  streams


         tx             query        write         locking
                                                               access
                                                              control



multi-
value                                                                 g
              un-
                                                             versionin
           structured     “full-     sort        obser-
                          text”      order       vation

                                content repositor y
Some known JCR Applications
Some known JCR Applications


                                                                           Fast
                                                                        Enterprise
 BEA Portal                                    Oracle Portal Interface 21 Search
                 Sun         JBoss Portal
             OpenPortal                         Day             Spring
                                          Communique          Framework
                                               DAM                        Day
 magnolia WCMS                                                      Communique
                       Apache Sling
                                         Mindquarry                      Collab
             Alfresco ECMS
                                       Collaboration        Apache Tapestry
                  QSLabs                Day
 Apache        Compliance         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
                              Online                Hippo                    Liferay
           Nuxeo ECM       Community                CMS                Enterprise Portal
                                           Jahia                Sakai
    Percussion                         Framework             E-learning
    Rhythmix            QuickWCM                                      Sourcemix
                         WCMS                    Lutece              Sourcemix
                                                  Portal
µjax
           content repository vs. ajax




What’s JCR (elevator pitch)
Introducing µjax
                           silve
                                 r
µjax
         content repository vs. ajax




What’s JCR
Introducing µjax
µjax
         content repository vs. ajax




What’s JCR
Introducing µjax
                         silve
                               r
Introducing µjax




Repository based AJAX
Introducing µjax

       JCR
Introducing µjax

       JCR
Introducing µjax
              JCR
Introducing µjax
                     JCR




    the other side
Introducing µjax
                                                               JCR




                                              the other side
   de
     ve
    h a lope
       t r
                  “i want to build webapps”

         a rs )
me ( l
Introducing µjax
                                                               JCR




                                              the other side
   de
     ve
    h a lope
       t r
                  “i want to build webapps”

         a rs )
me ( l
Introducing µjax
                                                               JCR




                                              the other side
   de
     ve
    h a lope
       t r
                  “i want to build webapps”

         a rs )
me ( l
Introducing µjax
                                   JCR
   de
     ve
    h a lope
       t r



         a rs )
me ( l                   silve
                               r




                  µjax
Introducing µjax
                                         JCR
   de
     ve
    h a lope
       t r



         a rs )
me ( l                       silve
                                   r




                      µjax
                    very simple
                    projection:
                  fits the bill
Introducing µjax
                                                    JCR
   de
     ve
    h a lope
       t r



         a rs )
me ( l                       silve
                                   r




                      µjax
                    very simple
                    projection:        “usecas
                  fits the bill         driven
                                               e”
Introducing µjax
 I   browser & ujax.js
     reading: json & resource GET’s
     writing: form-POST & GET
                         s      s
                                                  J2EE Web
                                                   Server
                                          3
                                      2
Browser                     I
                                               2 UjaxServlet.java
                                                 translating requests
                                                  to JCR calls
                                               3 JCR Compliant
                                                  Content Repository
Introducing µjax
 I   browser & ujax.js
     reading: json & resource GET’s
     writing: form-POST & GET
                         s      s
                                                         J2EE Web
                                                          Server
                                                  3
                                              2
Browser                     I
                       very simple js A               2 UjaxServlet.java
                                                        translating requests
                      read content, FoPI to              to JCR calls
                                       rms
                        to write conten
                                        t             3 JCR Compliant
                                                         Content Repository
Introducing µjax
 I   browser & ujax.js
     reading: json & resource GET’s
     writing: form-POST & GET
                         s      s
                                                             J2EE Web
                                                              Server
                                                  3
                                              2       handles all the h
                                                       particularly se
                                                                       eavy lifting,
                                                                        curity
Browser                     I                                                     16 t
                                                                                      ons



                       very simple js A                 2 UjaxServlet.java
                                                          translating requests
                      read content, FoPI to                   to JCR calls
                                       rms
                        to write conten
                                        t              3 JCR Compliant
                                                              Content Repository
Getting ready...




download a
          nd install      test & mount as a drive
hello, world.

                                                                                      tle>
                                                                             world</ti
                                                                       ello,
                                                <html> itle>µjax:h
                                                         <t
                                                 <head>                     /h2>
                                                  </he ad>         o, world<
                                                          <h 2>hell
                                                   <body>
                                                           >
                                                    </body
                                                           >
                                                     </html


    drag, drop, done
http://localhost:7402/
                      firststeps/0_hello.htm
                                            l
simple write example
                                                                                                   tle>
                                                                                      examp le</ti
                                                                                write
                                                                       simple
                                                <html> itle>µjax:                           OSTquot;>
                                                 <hea d><t                           hod=quot;P
                                                               y>              aquot; met
                                                        d><bod ion=quot;/mydat
                                                  </hea m act
                                                         or              -->
                                                   
 <f <!-- title >                           equot; />
                                                                        /h2
                                                   
 
 <h2>Title< textquot; name            =quot;Titl
                                                                          =quot;
                                                    
 
 <input type ion -->
                                                                           pt                        ionquot;>
                                                    
 
 <!-- descri on</h2>                   script
                                                                            ti             quot;De
                                                     
 
 <h2>Descrip s=quot;5quot; name=
                                                                             ow
                                                     
 
 <textarea r
                                                      
 
                area>
                                                                   </text -->
                                                                       olor
                                                                 <!-- c r</h2>
                                                       
 
 <h2>Colo                  orquot;>
                                                                               e=quot;Col redquot;>red
                                                        
 
 <select nam alue=quot;
                                                                                 v              >green
                                                         
    
        <option lue=quot;greenquot;
                                                         
    
 
 <option va
                                                                    
                                                          
 
 </select>

          write me!
http://localhost:7402/firs
                          tsteps/1_write.html
                                                           
 
 rm>
                                                           
 </
                                                            </body
                                                                  fo
                                                                   >
                                                                    >
                                                             </html
simple read example
                                                                                                 title>
                                                                                           mple</
                                                                                    ad exa
                                                                          simple re
                                               <html> itle>µjax:
                                                        <t
                                                <head>
                                                 </head
                                                         >                             cript
                                                                            ax.jsquot;></s
                                                  <body> pt src=quot;/rj                                           +'quot;>';
                                                      <scr  i                                ataquot;); +node.Color
                                                                                      (quot;/myd         :'
                                                       <s cri pt>          getContent round-color
                                                                   =Ujax.          backg
                                                        va r node div style=quot;
                                                                 v='<            ;
                                                         var di .write(div)
                                                                  nt
                                                          docume >
                                                                   pt
                                                           </scri ript>                 Title)
                                                                                               ;
                                                               2><sc            e(node.
                                                      
 <h cument.writ
                                                                d o
                                                                        ></h2>                     ion);
                                                             </script t>                    script
                                                                       rip             de.De
                                                         
    <p><sc nt.write(no
                                                                   docume p>
                                                                       pt></
                                                               </scri
                                                                    div>
                                                           
 </
            read me!
http://localhost:7402/firs
                          tsteps/2_read.html
                                                            </body
                                                             </html
                                                                    >
                                                                     >
add new entry
                                                                                           itle>
                                                                                     ple</t
                                                                               y exam
                                                                        w entr
                                                                  add ne
                                           <html> itle>µjax:
                                                  <t
                                            <head> body>                        es/*quot;         taquot;>
                                                                          /entri art/form-da
                                                   ><              mydata         p
                                             </head m action=quot;/ type=quot;multi
                                                   or               nc
                                              
 <f od=quot;POSTquot; e
                                                  meth
                                                                                       lequot; />
                                                              tle </h2> quot; name=quot;Tit
                                                       <h2>Ti ype=quot;text
                                               
 
 <input t                                             tarea>
                                                                                                  ></tex
                                                
 
                           2>            ptionquot;
                                                                  cription</h ame=quot;Descri
                                                         <h2>Des rows=quot;5quot; n
                                                 
 
 <textarea
                                                 
 
                                                                       /h2>
                                                           <h2> Color< =quot;Colorquot;>
                                                                         e             red
                                                  
 
 <select nam alue=quot;redquot;> green
                                                                           v            quot;>
                                                   
 
 
 <option alue=quot;green
                                                                           v
                                                   
 
 
 <option
                                                    
 
 </select>
                                                    
 
                                      agequot;/>
             add new
http://localhost:7402/firststeps/3_addnew.html
                                                                      age</h2> equot; name=quot;Im
                                                               <h2>Im ype=quot;fil
                                                                <inp ut t
                                                                      nput t
                                                                             ype=quot;s
                                                                                   ubmitquot;
                                                                                         ></p>
                                                                   ><i
                                                       
   
 <p
                                                              form>
                                                       
 </
                                                       
                                                             >
                                                       </body
                                                              >
                                                        </html
list entries
                                                                                          itle>
                                                                                    ple</t
                                                                              s exam
                                                                  list entrie
                                         <html> itle>rjax:
                                                   t                                            squot;);
                                          <head><                                        /entrie
                                                                                   mydata
                                          [ ...]                            ent(quot;/
                                                                      etCont
                                           <s cript> ries=Ujax.g
                                                         t
                                                 var en
                                                     pt>
                                             </scri                                                                   quot;>');
                                                                                                                olor+'
                                              <div>                                                       ntry.C
                                                      t>              ries) {                      lor:'+e
                                               <scrip ar a in ent s[a];                      und-co
                                                                                       ackgro h3>');
                                                  for (v ntry=entrie iv style=quot;b le+'</
                                                
     var e .write('<d +entry.Tit
                                                              nt             >'            );
                                                       docume .write('<h2 Description
                                                               nt             y.
                                                        docume .write(entr
                                                                nt
                                                         docume
                                                                       ge) {
                                                                 ry.Ima
                                                          if(ent
                                                    [...] }
                                                                                  v>');
                                                                           ('</di
                                                                     .write

http://lo
         list entries
         calhost:7
                                                            document

                                                                                  </a>
                  402/first                         
 } >                   dd new
                           steps/4_l                        pt        tmlquot;>a
                                    ist.html        </scri quot;3_addnew.h
                                                             f=
                                                     <a hre
                                                      </div>
                                                              >
                                                       </body
                                                              >
                                                        </html
views
                                                 [...]
                                                        t>
                                                  <scrip wizard();
                                                      Ujax.
                                                          pt>
                                                   </scri
                                                    [...]




                                                                       rd();
                                                         ! Rja  x.w iza
                                                       !
                                                               ript>
resource or                                             ! </sc
http://l    iented urls
        ocalhost
                :7402/my
                        data/ent
                                ries.lis
                                        t.html
views
Dojo Integration




                er with less than 50 LOC
repository brows
µjax
         content repository vs. ajax




What’s JCR
Introducing µjax
µjax
         content repository vs. ajax




What’s JCR
Introducing µjax
                         silve
                               r
If you remember only 2 things.


I dev.day.com
  Download CRX and play with µjax.
2 keep an eye on “
                 apache sling”
If you remember only 2 things.


I dev.day.com
  Download CRX and play with µjax.
2 keep an eye on “
                 apache sling”
                                    riously!
                                  se

Weitere ähnliche Inhalte

Ähnlich wie µjax in 30 minutes (for Stockholm)

Web Content Management And Agile
Web Content Management And AgileWeb Content Management And Agile
Web Content Management And AgileValtech UK
 
Eb07 Day Communiqué Web Content Management En
Eb07 Day Communiqué Web Content Management EnEb07 Day Communiqué Web Content Management En
Eb07 Day Communiqué Web Content Management EnValtech
 
Valtech Days 2009 Paris Presentation: WCM in 2010 and an intro to CQ5
Valtech Days 2009 Paris Presentation: WCM in 2010 and an intro to CQ5Valtech Days 2009 Paris Presentation: WCM in 2010 and an intro to CQ5
Valtech Days 2009 Paris Presentation: WCM in 2010 and an intro to CQ5David Nuescheler
 
Practical Functional Javascript
Practical Functional JavascriptPractical Functional Javascript
Practical Functional JavascriptOliver Steele
 
Wakanda: NoSQL & SSJS for Model-driven Web Applications - SourceDevCon 2012
Wakanda: NoSQL & SSJS for Model-driven Web Applications - SourceDevCon 2012Wakanda: NoSQL & SSJS for Model-driven Web Applications - SourceDevCon 2012
Wakanda: NoSQL & SSJS for Model-driven Web Applications - SourceDevCon 2012Alexandre Morgaut
 
Wakanda: NoSQL for Model-Driven Web applications - NoSQL matters 2012
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 2012Alexandre Morgaut
 
Ram chinta hug-20120922-v1
Ram chinta hug-20120922-v1Ram chinta hug-20120922-v1
Ram chinta hug-20120922-v1Ram Chinta
 
Lessons Learned Integrating Cocoon, Jackrabbit And Solr
Lessons Learned Integrating Cocoon, Jackrabbit And SolrLessons Learned Integrating Cocoon, Jackrabbit And Solr
Lessons Learned Integrating Cocoon, Jackrabbit And SolrLars Trieloff
 
Realtime collaboration with Clojure - EuroClojure - Barcelona, 2015
Realtime collaboration with Clojure - EuroClojure - Barcelona, 2015Realtime collaboration with Clojure - EuroClojure - Barcelona, 2015
Realtime collaboration with Clojure - EuroClojure - Barcelona, 2015Leonardo Borges
 
Better Front-end Development in Atlassian Plugins
Better Front-end Development in Atlassian PluginsBetter Front-end Development in Atlassian Plugins
Better Front-end Development in Atlassian PluginsWojciech Seliga
 
Eclipse Gyrex OSGi based PaaS-Like Programming Stack - OSGi Cloud Workshop Ma...
Eclipse Gyrex OSGi based PaaS-Like Programming Stack - OSGi Cloud Workshop Ma...Eclipse Gyrex OSGi based PaaS-Like Programming Stack - OSGi Cloud Workshop Ma...
Eclipse Gyrex OSGi based PaaS-Like Programming Stack - OSGi Cloud Workshop Ma...mfrancis
 
Everyday tools and tricks for scaling Node.js
Everyday tools and tricks for scaling Node.jsEveryday tools and tricks for scaling Node.js
Everyday tools and tricks for scaling Node.jsNikolay Stoitsev
 
Ajax in AIR from On AIR Tour Europe
Ajax in AIR from On AIR Tour EuropeAjax in AIR from On AIR Tour Europe
Ajax in AIR from On AIR Tour EuropeAndreCharland
 
.NET Architects Day - DNAD 2011
.NET Architects Day - DNAD 2011.NET Architects Day - DNAD 2011
.NET Architects Day - DNAD 2011Fabio Akita
 
09 - Fábio Akita - Além do rails
09 - Fábio Akita - Além do rails09 - Fábio Akita - Além do rails
09 - Fábio Akita - Além do railsDNAD
 

Ähnlich wie µjax in 30 minutes (for Stockholm) (20)

Introducing JSR-283
Introducing JSR-283Introducing JSR-283
Introducing JSR-283
 
Web Content Management And Agile
Web Content Management And AgileWeb Content Management And Agile
Web Content Management And Agile
 
Agile Edge Valtech
Agile Edge ValtechAgile Edge Valtech
Agile Edge Valtech
 
Bcp seminar 0713_handsout
Bcp seminar 0713_handsoutBcp seminar 0713_handsout
Bcp seminar 0713_handsout
 
Eb07 Day Communiqué Web Content Management En
Eb07 Day Communiqué Web Content Management EnEb07 Day Communiqué Web Content Management En
Eb07 Day Communiqué Web Content Management En
 
Valtech Days 2009 Paris Presentation: WCM in 2010 and an intro to CQ5
Valtech Days 2009 Paris Presentation: WCM in 2010 and an intro to CQ5Valtech Days 2009 Paris Presentation: WCM in 2010 and an intro to CQ5
Valtech Days 2009 Paris Presentation: WCM in 2010 and an intro to CQ5
 
Practical Functional Javascript
Practical Functional JavascriptPractical Functional Javascript
Practical Functional Javascript
 
Wakanda: NoSQL & SSJS for Model-driven Web Applications - SourceDevCon 2012
Wakanda: NoSQL & SSJS for Model-driven Web Applications - SourceDevCon 2012Wakanda: NoSQL & SSJS for Model-driven Web Applications - SourceDevCon 2012
Wakanda: NoSQL & SSJS for Model-driven Web Applications - SourceDevCon 2012
 
Wakanda: NoSQL for Model-Driven Web applications - NoSQL matters 2012
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
 
Ram chinta hug-20120922-v1
Ram chinta hug-20120922-v1Ram chinta hug-20120922-v1
Ram chinta hug-20120922-v1
 
Lessons Learned Integrating Cocoon, Jackrabbit And Solr
Lessons Learned Integrating Cocoon, Jackrabbit And SolrLessons Learned Integrating Cocoon, Jackrabbit And Solr
Lessons Learned Integrating Cocoon, Jackrabbit And Solr
 
Realtime collaboration with Clojure - EuroClojure - Barcelona, 2015
Realtime collaboration with Clojure - EuroClojure - Barcelona, 2015Realtime collaboration with Clojure - EuroClojure - Barcelona, 2015
Realtime collaboration with Clojure - EuroClojure - Barcelona, 2015
 
Better Front-end Development in Atlassian Plugins
Better Front-end Development in Atlassian PluginsBetter Front-end Development in Atlassian Plugins
Better Front-end Development in Atlassian Plugins
 
Eclipse Gyrex OSGi based PaaS-Like Programming Stack - OSGi Cloud Workshop Ma...
Eclipse Gyrex OSGi based PaaS-Like Programming Stack - OSGi Cloud Workshop Ma...Eclipse Gyrex OSGi based PaaS-Like Programming Stack - OSGi Cloud Workshop Ma...
Eclipse Gyrex OSGi based PaaS-Like Programming Stack - OSGi Cloud Workshop Ma...
 
iForum 1004_handsout
iForum 1004_handsoutiForum 1004_handsout
iForum 1004_handsout
 
Everyday tools and tricks for scaling Node.js
Everyday tools and tricks for scaling Node.jsEveryday tools and tricks for scaling Node.js
Everyday tools and tricks for scaling Node.js
 
Ajax in AIR from On AIR Tour Europe
Ajax in AIR from On AIR Tour EuropeAjax in AIR from On AIR Tour Europe
Ajax in AIR from On AIR Tour Europe
 
Laszlo PyCon 2005
Laszlo PyCon 2005Laszlo PyCon 2005
Laszlo PyCon 2005
 
.NET Architects Day - DNAD 2011
.NET Architects Day - DNAD 2011.NET Architects Day - DNAD 2011
.NET Architects Day - DNAD 2011
 
09 - Fábio Akita - Além do rails
09 - Fábio Akita - Além do rails09 - Fábio Akita - Além do rails
09 - Fábio Akita - Além do rails
 

Mehr von Lars Trieloff

Putting the F in FaaS: Functional Compositional Patterns in a Serverless World
Putting the F in FaaS: Functional Compositional Patterns in a Serverless WorldPutting the F in FaaS: Functional Compositional Patterns in a Serverless World
Putting the F in FaaS: Functional Compositional Patterns in a Serverless WorldLars Trieloff
 
Serverless adventures with AWS Lambda and Clojure
Serverless adventures with AWS Lambda and ClojureServerless adventures with AWS Lambda and Clojure
Serverless adventures with AWS Lambda and ClojureLars Trieloff
 
Smartcon 2015 – Automated Decisions in the Supply Chain
Smartcon 2015 – Automated Decisions in the Supply ChainSmartcon 2015 – Automated Decisions in the Supply Chain
Smartcon 2015 – Automated Decisions in the Supply ChainLars Trieloff
 
Business Reasons for Predictive Applications
Business Reasons for Predictive ApplicationsBusiness Reasons for Predictive Applications
Business Reasons for Predictive ApplicationsLars Trieloff
 
ADDD (Automated Data Driven Decisions) – How To Make it Work
ADDD (Automated Data Driven Decisions) – How To Make it WorkADDD (Automated Data Driven Decisions) – How To Make it Work
ADDD (Automated Data Driven Decisions) – How To Make it WorkLars Trieloff
 
Automated decision making with predictive applications – Big Data Frankfurt
Automated decision making with predictive applications – Big Data FrankfurtAutomated decision making with predictive applications – Big Data Frankfurt
Automated decision making with predictive applications – Big Data FrankfurtLars Trieloff
 
Automated Decision making with Predictive Applications – Big Data Hamburg
Automated Decision making with Predictive Applications – Big Data HamburgAutomated Decision making with Predictive Applications – Big Data Hamburg
Automated Decision making with Predictive Applications – Big Data HamburgLars Trieloff
 
Automated Decision Making with Predictive Applications – Big Data Düsseldorf
Automated Decision Making with Predictive Applications – Big Data DüsseldorfAutomated Decision Making with Predictive Applications – Big Data Düsseldorf
Automated Decision Making with Predictive Applications – Big Data DüsseldorfLars Trieloff
 
Automated decision making with predictive applications – Big Data Brussels
Automated decision making with predictive applications – Big Data BrusselsAutomated decision making with predictive applications – Big Data Brussels
Automated decision making with predictive applications – Big Data BrusselsLars Trieloff
 
Automated decision making with predictive applications – Big Data Amsterdam
Automated decision making with predictive applications – Big Data AmsterdamAutomated decision making with predictive applications – Big Data Amsterdam
Automated decision making with predictive applications – Big Data AmsterdamLars Trieloff
 
Automated decision making using Predictive Applications – Big Data Paris
Automated decision making using Predictive Applications – Big Data ParisAutomated decision making using Predictive Applications – Big Data Paris
Automated decision making using Predictive Applications – Big Data ParisLars Trieloff
 
Automated decision making with big data – Big Data Vienna
Automated decision making with big data – Big Data ViennaAutomated decision making with big data – Big Data Vienna
Automated decision making with big data – Big Data ViennaLars Trieloff
 
Big Data Munich – Decision Automation and Big Data
Big Data Munich – Decision Automation and Big DataBig Data Munich – Decision Automation and Big Data
Big Data Munich – Decision Automation and Big DataLars Trieloff
 
10 Things I Learned About Pricing – Product Camp Berlin 2014
10 Things I Learned About Pricing – Product Camp Berlin 201410 Things I Learned About Pricing – Product Camp Berlin 2014
10 Things I Learned About Pricing – Product Camp Berlin 2014Lars Trieloff
 
Big Data Berlin – Automating Decisions is the Next Frontier for Big Data
Big Data Berlin – Automating Decisions is the Next Frontier for Big DataBig Data Berlin – Automating Decisions is the Next Frontier for Big Data
Big Data Berlin – Automating Decisions is the Next Frontier for Big DataLars Trieloff
 
The DNA of Marketing
The DNA of MarketingThe DNA of Marketing
The DNA of MarketingLars Trieloff
 
Cross community campaigns with CQ5
Cross community campaigns with CQ5Cross community campaigns with CQ5
Cross community campaigns with CQ5Lars Trieloff
 
Mastering the customer engagement ecosystem with CQ5
Mastering the customer engagement ecosystem with CQ5Mastering the customer engagement ecosystem with CQ5
Mastering the customer engagement ecosystem with CQ5Lars Trieloff
 
Advanced Collaboration And Beyond
Advanced Collaboration And BeyondAdvanced Collaboration And Beyond
Advanced Collaboration And BeyondLars Trieloff
 

Mehr von Lars Trieloff (20)

Putting the F in FaaS: Functional Compositional Patterns in a Serverless World
Putting the F in FaaS: Functional Compositional Patterns in a Serverless WorldPutting the F in FaaS: Functional Compositional Patterns in a Serverless World
Putting the F in FaaS: Functional Compositional Patterns in a Serverless World
 
Serverless adventures with AWS Lambda and Clojure
Serverless adventures with AWS Lambda and ClojureServerless adventures with AWS Lambda and Clojure
Serverless adventures with AWS Lambda and Clojure
 
Smartcon 2015 – Automated Decisions in the Supply Chain
Smartcon 2015 – Automated Decisions in the Supply ChainSmartcon 2015 – Automated Decisions in the Supply Chain
Smartcon 2015 – Automated Decisions in the Supply Chain
 
Business Reasons for Predictive Applications
Business Reasons for Predictive ApplicationsBusiness Reasons for Predictive Applications
Business Reasons for Predictive Applications
 
ADDD (Automated Data Driven Decisions) – How To Make it Work
ADDD (Automated Data Driven Decisions) – How To Make it WorkADDD (Automated Data Driven Decisions) – How To Make it Work
ADDD (Automated Data Driven Decisions) – How To Make it Work
 
Automated decision making with predictive applications – Big Data Frankfurt
Automated decision making with predictive applications – Big Data FrankfurtAutomated decision making with predictive applications – Big Data Frankfurt
Automated decision making with predictive applications – Big Data Frankfurt
 
Automated Decision making with Predictive Applications – Big Data Hamburg
Automated Decision making with Predictive Applications – Big Data HamburgAutomated Decision making with Predictive Applications – Big Data Hamburg
Automated Decision making with Predictive Applications – Big Data Hamburg
 
Automated Decision Making with Predictive Applications – Big Data Düsseldorf
Automated Decision Making with Predictive Applications – Big Data DüsseldorfAutomated Decision Making with Predictive Applications – Big Data Düsseldorf
Automated Decision Making with Predictive Applications – Big Data Düsseldorf
 
Automated decision making with predictive applications – Big Data Brussels
Automated decision making with predictive applications – Big Data BrusselsAutomated decision making with predictive applications – Big Data Brussels
Automated decision making with predictive applications – Big Data Brussels
 
Automated decision making with predictive applications – Big Data Amsterdam
Automated decision making with predictive applications – Big Data AmsterdamAutomated decision making with predictive applications – Big Data Amsterdam
Automated decision making with predictive applications – Big Data Amsterdam
 
Automated decision making using Predictive Applications – Big Data Paris
Automated decision making using Predictive Applications – Big Data ParisAutomated decision making using Predictive Applications – Big Data Paris
Automated decision making using Predictive Applications – Big Data Paris
 
Automated decision making with big data – Big Data Vienna
Automated decision making with big data – Big Data ViennaAutomated decision making with big data – Big Data Vienna
Automated decision making with big data – Big Data Vienna
 
Big Data Munich – Decision Automation and Big Data
Big Data Munich – Decision Automation and Big DataBig Data Munich – Decision Automation and Big Data
Big Data Munich – Decision Automation and Big Data
 
10 Things I Learned About Pricing – Product Camp Berlin 2014
10 Things I Learned About Pricing – Product Camp Berlin 201410 Things I Learned About Pricing – Product Camp Berlin 2014
10 Things I Learned About Pricing – Product Camp Berlin 2014
 
Big Data Berlin – Automating Decisions is the Next Frontier for Big Data
Big Data Berlin – Automating Decisions is the Next Frontier for Big DataBig Data Berlin – Automating Decisions is the Next Frontier for Big Data
Big Data Berlin – Automating Decisions is the Next Frontier for Big Data
 
The DNA of Marketing
The DNA of MarketingThe DNA of Marketing
The DNA of Marketing
 
Cross community campaigns with CQ5
Cross community campaigns with CQ5Cross community campaigns with CQ5
Cross community campaigns with CQ5
 
Mastering the customer engagement ecosystem with CQ5
Mastering the customer engagement ecosystem with CQ5Mastering the customer engagement ecosystem with CQ5
Mastering the customer engagement ecosystem with CQ5
 
Web Forms 2.0
Web Forms 2.0Web Forms 2.0
Web Forms 2.0
 
Advanced Collaboration And Beyond
Advanced Collaboration And BeyondAdvanced Collaboration And Beyond
Advanced Collaboration And Beyond
 

Kürzlich hochgeladen

How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Commit University
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfMounikaPolabathina
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024Lorenzo Miniero
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfPrecisely
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 

Kürzlich hochgeladen (20)

How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!Nell’iperspazio con Rocket: il Framework Web di Rust!
Nell’iperspazio con Rocket: il Framework Web di Rust!
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdf
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 
SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024SIP trunking in Janus @ Kamailio World 2024
SIP trunking in Janus @ Kamailio World 2024
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 

µjax in 30 minutes (for Stockholm)

  • 1. µjax in 30 minutes lars.trieloff@day.com weblogs.goshaky.com/weblogs/lars
  • 2. µjax in 30 minutes JCR m eets AJAX lars.trieloff@day.com weblogs.goshaky.com/weblogs/lars
  • 3. Lars Trieloff • Product Manager at Day • Author, Blogger, Open Source Code • Apache Cocoon • Mindquarry • Goshaky • DAX
  • 5. µjax content repository vs. ajax What’s JCR (elevator pitch) Introducing µjax silve r
  • 6. µjax content repository vs. ajax What’s JCR (elevator pitch) Introducing µjax silve r
  • 7.
  • 9. 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.”
  • 10. 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.” ?
  • 11. 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.” ?
  • 12. Best of both worlds. database fi les yste m content repositor y
  • 13. Best of both worlds. database fi les yste m hier- integ archi rity structu re es read streams tx query write locking access control multi- value g un- versionin structured “full- sort obser- text” order vation content repositor y
  • 14. Some known JCR Applications
  • 15. Some known JCR Applications Fast Enterprise BEA Portal Oracle Portal Interface 21 Search Sun JBoss Portal OpenPortal Day Spring Communique Framework DAM Day magnolia WCMS Communique Apache Sling Mindquarry Collab Alfresco ECMS Collaboration Apache Tapestry QSLabs Day Apache Compliance 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 Online Hippo Liferay Nuxeo ECM Community CMS Enterprise Portal Jahia Sakai Percussion Framework E-learning Rhythmix QuickWCM Sourcemix WCMS Lutece Sourcemix Portal
  • 16. µjax content repository vs. ajax What’s JCR (elevator pitch) Introducing µjax silve r
  • 17. µjax content repository vs. ajax What’s JCR Introducing µjax
  • 18. µjax content repository vs. ajax What’s JCR Introducing µjax silve r
  • 23. Introducing µjax JCR the other side
  • 24. Introducing µjax JCR the other side de ve h a lope t r “i want to build webapps” a rs ) me ( l
  • 25. Introducing µjax JCR the other side de ve h a lope t r “i want to build webapps” a rs ) me ( l
  • 26. Introducing µjax JCR the other side de ve h a lope t r “i want to build webapps” a rs ) me ( l
  • 27. Introducing µjax JCR de ve h a lope t r a rs ) me ( l silve r µjax
  • 28. Introducing µjax JCR de ve h a lope t r a rs ) me ( l silve r µjax very simple projection: fits the bill
  • 29. Introducing µjax JCR de ve h a lope t r a rs ) me ( l silve r µjax very simple projection: “usecas fits the bill driven e”
  • 30. Introducing µjax I browser & ujax.js reading: json & resource GET’s writing: form-POST & GET s s J2EE Web Server 3 2 Browser I 2 UjaxServlet.java translating requests to JCR calls 3 JCR Compliant Content Repository
  • 31. Introducing µjax I browser & ujax.js reading: json & resource GET’s writing: form-POST & GET s s J2EE Web Server 3 2 Browser I very simple js A 2 UjaxServlet.java translating requests read content, FoPI to to JCR calls rms to write conten t 3 JCR Compliant Content Repository
  • 32. Introducing µjax I browser & ujax.js reading: json & resource GET’s writing: form-POST & GET s s J2EE Web Server 3 2 handles all the h particularly se eavy lifting, curity Browser I 16 t ons very simple js A 2 UjaxServlet.java translating requests read content, FoPI to to JCR calls rms to write conten t 3 JCR Compliant Content Repository
  • 33. Getting ready... download a nd install test & mount as a drive
  • 34. hello, world. tle> world</ti ello, <html> itle>µjax:h <t <head> /h2> </he ad> o, world< <h 2>hell <body> > </body > </html drag, drop, done http://localhost:7402/ firststeps/0_hello.htm l
  • 35. simple write example tle> examp le</ti write simple <html> itle>µjax: OSTquot;> <hea d><t hod=quot;P y> aquot; met d><bod ion=quot;/mydat </hea m act or --> <f <!-- title > equot; /> /h2 <h2>Title< textquot; name =quot;Titl =quot; <input type ion --> pt ionquot;> <!-- descri on</h2> script ti quot;De <h2>Descrip s=quot;5quot; name= ow <textarea r area> </text --> olor <!-- c r</h2> <h2>Colo orquot;> e=quot;Col redquot;>red <select nam alue=quot; v >green <option lue=quot;greenquot; <option va </select> write me! http://localhost:7402/firs tsteps/1_write.html rm> </ </body fo > > </html
  • 36. simple read example title> mple</ ad exa simple re <html> itle>µjax: <t <head> </head > cript ax.jsquot;></s <body> pt src=quot;/rj +'quot;>'; <scr i ataquot;); +node.Color (quot;/myd :' <s cri pt> getContent round-color =Ujax. backg va r node div style=quot; v='< ; var di .write(div) nt docume > pt </scri ript> Title) ; 2><sc e(node. <h cument.writ d o ></h2> ion); </script t> script rip de.De <p><sc nt.write(no docume p> pt></ </scri div> </ read me! http://localhost:7402/firs tsteps/2_read.html </body </html > >
  • 37. add new entry itle> ple</t y exam w entr add ne <html> itle>µjax: <t <head> body> es/*quot; taquot;> /entri art/form-da >< mydata p </head m action=quot;/ type=quot;multi or nc <f od=quot;POSTquot; e meth lequot; /> tle </h2> quot; name=quot;Tit <h2>Ti ype=quot;text <input t tarea> ></tex 2> ptionquot; cription</h ame=quot;Descri <h2>Des rows=quot;5quot; n <textarea /h2> <h2> Color< =quot;Colorquot;> e red <select nam alue=quot;redquot;> green v quot;> <option alue=quot;green v <option </select> agequot;/> add new http://localhost:7402/firststeps/3_addnew.html age</h2> equot; name=quot;Im <h2>Im ype=quot;fil <inp ut t nput t ype=quot;s ubmitquot; ></p> ><i <p form> </ > </body > </html
  • 38. list entries itle> ple</t s exam list entrie <html> itle>rjax: t squot;); <head>< /entrie mydata [ ...] ent(quot;/ etCont <s cript> ries=Ujax.g t var en pt> </scri quot;>'); olor+' <div> ntry.C t> ries) { lor:'+e <scrip ar a in ent s[a]; und-co ackgro h3>'); for (v ntry=entrie iv style=quot;b le+'</ var e .write('<d +entry.Tit nt >' ); docume .write('<h2 Description nt y. docume .write(entr nt docume ge) { ry.Ima if(ent [...] } v>'); ('</di .write http://lo list entries calhost:7 document </a> 402/first } > dd new steps/4_l pt tmlquot;>a ist.html </scri quot;3_addnew.h f= <a hre </div> > </body > </html
  • 39. views [...] t> <scrip wizard(); Ujax. pt> </scri [...] rd(); ! Rja x.w iza ! ript> resource or ! </sc http://l iented urls ocalhost :7402/my data/ent ries.lis t.html
  • 40. views
  • 41. Dojo Integration er with less than 50 LOC repository brows
  • 42. µjax content repository vs. ajax What’s JCR Introducing µjax
  • 43. µjax content repository vs. ajax What’s JCR Introducing µjax silve r
  • 44. If you remember only 2 things. I dev.day.com Download CRX and play with µjax. 2 keep an eye on “ apache sling”
  • 45. If you remember only 2 things. I dev.day.com Download CRX and play with µjax. 2 keep an eye on “ apache sling” riously! se