SlideShare a Scribd company logo
XWiki
                 A collaborative development platform runtime based
                                 on the wiki paradigm




                                                       Copyright (c) Vincent Massol - 2011
September 2011
Agenda

•   What is XWiki?

•   Development Capabilities

•   Why use XWiki?

•   QA




                               Copyright (c) Vincent Massol - 2011
What is XWiki?


            Copyright (c) Vincent Massol - 2011
Is it a first gen Wiki?




                 Copyright (c) Vincent Massol - 2011
Is it a first gen Wiki?




       Not only!
                   Copyright (c) Vincent Massol - 2011
Is it an Advanced Wiki?




                 Copyright (c) Vincent Massol - 2011
Is it an Advanced Wiki?




        Not only!
                    Copyright (c) Vincent Massol - 2011
It’s a dev platform!




... and a lot more...   Copyright (c) Vincent Massol - 2011
It’s a dev platform!




... and a lot more...   Copyright (c) Vincent Massol - 2011
It’s a dev platform!




... and a lot more...   Copyright (c) Vincent Massol - 2011
It’s a dev platform!




... and a lot more...   Copyright (c) Vincent Massol - 2011
It’s a dev platform!




... and a lot more...   Copyright (c) Vincent Massol - 2011
It’s a dev platform!




... and a lot more...   Copyright (c) Vincent Massol - 2011
It’s a dev platform!




... and a lot more...   Copyright (c) Vincent Massol - 2011
It’s a dev platform!




... and a lot more...   Copyright (c) Vincent Massol - 2011
It’s a dev platform!




... and a lot more...   Copyright (c) Vincent Massol - 2011
It’s a dev platform!




... and a lot more...   Copyright (c) Vincent Massol - 2011
It’s a dev platform!




... and a lot more...   Copyright (c) Vincent Massol - 2011
It’s a dev platform!




... and a lot more...   Copyright (c) Vincent Massol - 2011
It’s a dev platform!




... and a lot more...   Copyright (c) Vincent Massol - 2011
It’s a dev platform!




... and a lot more...   Copyright (c) Vincent Massol - 2011
It’s a dev platform!




... and a lot more...   Copyright (c) Vincent Massol - 2011
It’s a dev platform!




... and a lot more...   Copyright (c) Vincent Massol - 2011
It’s a dev platform!




... and a lot more...   Copyright (c) Vincent Massol - 2011
XWiki Platform




... for developing (collaborative) web applications
                                                      Copyright (c) Vincent Massol - 2011
Multiple Usages




             Copyright (c) Vincent Massol - 2011
Long tail of Apps
                      Excel of the
                         Web




              Copyright (c) Vincent Massol - 2011
Development
 Capabilities


            Copyright (c) Vincent Massol - 2011
Scripting in Pages (1/2)
                                                                                     Demo
{{groovy}}
@Grab(group='org.codehaus.groovy.modules.http-builder',
  module='http-builder', version='0.5.1')
import groovyx.net.http.*

def http = new HTTPBuilder( 'http://nexus.xwiki.org/nexus/' )
def resp = http.get( path: 'service/local/repositories')

println "|=Name|=Type|=Location"
resp.data."repositories-item".each() {
  println "|${it.name}|${it.repoType}|${it. contentResourceURI}"
}
{{/groovy}}




                                               Copyright (c) Vincent Massol - 2011
Scripting in Pages (2/2)
                                                                                     Demo
{{velocity}}
#set ($xwql = "where doc.content like '%welcome%'")
#foreach ($item in $services.query.xwql($xwql).execute())
  #if ($request.confirm == "1")
     #set ($itemDoc = $xwiki.getDocument($item))
     $itemDoc.setContent($itemDoc.getContent().replaceAll(
       "welcome", "bienvenue"))
     $itemDoc.save("Replaced bienvenue")
     * [[$item>>$item]] replaced!
  #else
     * [[$item>>$item]]
  #end
#end

[[Replace "welcome" by "bienvenue">>?confirm=1]]
{{/velocity}}



                                               Copyright (c) Vincent Massol - 2011
Adding MetaData
• Ability to associate arbitrary                                Demo
  data to any wiki page
  • Enable structure in the wiki
  • Enable Application development
• Future: Application Within Minutes

                                   Copyright (c) Vincent Massol - 2011
Wiki Macros
                                Demo




          Copyright (c) Vincent Massol - 2011
Skinning & Theming
                   Demo




              Copyright (c) Vincent Massol - 2011
Components                                                        Demo

@ComponentRole
public interface Macro
{
    List<Block> execute();
}

@Component
@Named("message")
@Singleton
public class MessageMacro implements Macro
{
     @Inject
     private Execution execution;

       @Inject
       @Named("box")
       private Macro boxMacro;

       public List<Block> execute()
       {
          ...
       }
}

META-INF/components.txt
org.xwiki.rendering.internal.macro.message.MessageMacro




                                                          Copyright (c) Vincent Massol - 2011
extensions.xwiki.org




               Copyright (c) Vincent Massol - 2011
Why use XWiki?


           Copyright (c) Vincent Massol - 2011
Pros (1/2)

•    Iterative, Need-based development
•    Continuous Delivery
    • Online immediately (no deployment
      needed)
•   Works from day one, immediate feedbacks


                                  Copyright (c) Vincent Massol - 2011
Pros (2/2)
• Work collaboratively on creating
  applications
 • Designers can style while devs create
    logic
• Open source
• Strong and meritocratic community
                                 Copyright (c) Vincent Massol - 2011
Cons
• Save code in SCM
 • ... but SVN Application
• Low integration with existing dev tools
 • ... but XEclipse
 • ... but WebDAV
• Not an official standard
 • Higher “risk”, less trained devs, etc
                                 Copyright (c) Vincent Massol - 2011
Q&A




      Me
       Copyright (c) Vincent Massol - 2011
Vincent Massol
vincent@xwiki.com
skype: vmassol
http://about.me/vmassol

http://xwiki.org
http://xwiki.com


                          Copyright (c) Vincent Massol - 2011

More Related Content

PDF
Leading a Community-Driven Open Source Project
PPTX
Minarets English 10 and 11 for 2010-2011
PDF
Minarets High School Staff Intro Slideshow
PPT
Minarets Ag Mechanics for 2010-2011
PDF
WebRTC and XWiki
PDF
Minarets Protocols and Lifestyle
PDF
XWiki: A perfect match for collaboration in the Open Cloud
PPT
Moodle And Wiki
Leading a Community-Driven Open Source Project
Minarets English 10 and 11 for 2010-2011
Minarets High School Staff Intro Slideshow
Minarets Ag Mechanics for 2010-2011
WebRTC and XWiki
Minarets Protocols and Lifestyle
XWiki: A perfect match for collaboration in the Open Cloud
Moodle And Wiki

Similar to XWiki: A web development runtime platform (20)

PDF
A web development runtime platform based on the wiki paradigm
PDF
XWiki: A web dev runtime for writing web apps @ FOSDEM 2014
PDF
XWiki: The web's Swiss Army Knife
PDF
StackEngine Demo - Boston
PDF
Distributed wikis
PDF
StackEngine Demo - Docker Austin
PDF
Evolution ofversioncontrolinopensource
ODP
Evolution of Version Control In Open Source
PDF
Docker Enables DevOps - Boston
PPTX
Creating Packages that Run Anywhere with Chef Habitat
PDF
StackEngine Problem Space Demo
PDF
Yet another DSL for cross platforms mobile development
PDF
Keep calms and Docker On ... Innotech
PDF
Storm Worm - Malware 2.0
PPTX
Vilius Lukošius - Decomposing distributed monolith with Node.js (WIX.com)
PPT
(In)Security Implication in the JS Universe
PPTX
Jist tutorial semantic wikis and applications
PDF
DIY: Computer Vision with GWT.
PDF
DIY- computer vision with GWT
PPT
XWiki: A platform for collaborative apps
A web development runtime platform based on the wiki paradigm
XWiki: A web dev runtime for writing web apps @ FOSDEM 2014
XWiki: The web's Swiss Army Knife
StackEngine Demo - Boston
Distributed wikis
StackEngine Demo - Docker Austin
Evolution ofversioncontrolinopensource
Evolution of Version Control In Open Source
Docker Enables DevOps - Boston
Creating Packages that Run Anywhere with Chef Habitat
StackEngine Problem Space Demo
Yet another DSL for cross platforms mobile development
Keep calms and Docker On ... Innotech
Storm Worm - Malware 2.0
Vilius Lukošius - Decomposing distributed monolith with Node.js (WIX.com)
(In)Security Implication in the JS Universe
Jist tutorial semantic wikis and applications
DIY: Computer Vision with GWT.
DIY- computer vision with GWT
XWiki: A platform for collaborative apps
Ad

More from XWiki (20)

PPTX
Applications Open Source pour Entreprise
PDF
Livre blanc : gestion collaborative de contenus dans le secteur public
PDF
Livre blanc : gestion collaborative de contenus dans le secteur public
PDF
L'intranet collaboratif Aelia : l'étude de cas
PDF
An collaborative intranet: the Aelia case study
PDF
La base de connaissance de la FNAB
PDF
Collaborative Watch: the AFP case study
PDF
Une solution de veille partagée et collaborative : le cas de l'AFP
PDF
Créer ses applications métier : le cas DCNS
PDF
La base de connaissances du CNFPT
PDF
Documentation of an application revamping program: the Capgemini case study
PDF
Documentation d'un programme de rénovation applicative : le cas Capgemini
PDF
Base de connaissance : le cas CAPHC
PDF
Knowledge Exchange Network: the CAPHC use case
PDF
La plateforme IWA : retour d'expérience
PDF
How DCNS creates its own business applications
PDF
Ressources pédagogiques en ligne
PDF
L'intranet collaboratif Fidelia Assistance
PDF
Documentation produit : le cas Easyvista
PDF
Documentation and Knowledge management: the EasyVista's use case
Applications Open Source pour Entreprise
Livre blanc : gestion collaborative de contenus dans le secteur public
Livre blanc : gestion collaborative de contenus dans le secteur public
L'intranet collaboratif Aelia : l'étude de cas
An collaborative intranet: the Aelia case study
La base de connaissance de la FNAB
Collaborative Watch: the AFP case study
Une solution de veille partagée et collaborative : le cas de l'AFP
Créer ses applications métier : le cas DCNS
La base de connaissances du CNFPT
Documentation of an application revamping program: the Capgemini case study
Documentation d'un programme de rénovation applicative : le cas Capgemini
Base de connaissance : le cas CAPHC
Knowledge Exchange Network: the CAPHC use case
La plateforme IWA : retour d'expérience
How DCNS creates its own business applications
Ressources pédagogiques en ligne
L'intranet collaboratif Fidelia Assistance
Documentation produit : le cas Easyvista
Documentation and Knowledge management: the EasyVista's use case
Ad

Recently uploaded (20)

PPT
Module 1.ppt Iot fundamentals and Architecture
PDF
A Late Bloomer's Guide to GenAI: Ethics, Bias, and Effective Prompting - Boha...
PDF
August Patch Tuesday
PDF
Hybrid model detection and classification of lung cancer
PDF
NewMind AI Weekly Chronicles – August ’25 Week III
PDF
Video forgery: An extensive analysis of inter-and intra-frame manipulation al...
PDF
1 - Historical Antecedents, Social Consideration.pdf
PDF
Getting Started with Data Integration: FME Form 101
PDF
WOOl fibre morphology and structure.pdf for textiles
PDF
DP Operators-handbook-extract for the Mautical Institute
PDF
Hybrid horned lizard optimization algorithm-aquila optimizer for DC motor
PPTX
Web Crawler for Trend Tracking Gen Z Insights.pptx
PDF
Enhancing emotion recognition model for a student engagement use case through...
PDF
From MVP to Full-Scale Product A Startup’s Software Journey.pdf
PPTX
observCloud-Native Containerability and monitoring.pptx
PPTX
Tartificialntelligence_presentation.pptx
PPTX
The various Industrial Revolutions .pptx
PDF
Architecture types and enterprise applications.pdf
PDF
How ambidextrous entrepreneurial leaders react to the artificial intelligence...
PDF
CloudStack 4.21: First Look Webinar slides
Module 1.ppt Iot fundamentals and Architecture
A Late Bloomer's Guide to GenAI: Ethics, Bias, and Effective Prompting - Boha...
August Patch Tuesday
Hybrid model detection and classification of lung cancer
NewMind AI Weekly Chronicles – August ’25 Week III
Video forgery: An extensive analysis of inter-and intra-frame manipulation al...
1 - Historical Antecedents, Social Consideration.pdf
Getting Started with Data Integration: FME Form 101
WOOl fibre morphology and structure.pdf for textiles
DP Operators-handbook-extract for the Mautical Institute
Hybrid horned lizard optimization algorithm-aquila optimizer for DC motor
Web Crawler for Trend Tracking Gen Z Insights.pptx
Enhancing emotion recognition model for a student engagement use case through...
From MVP to Full-Scale Product A Startup’s Software Journey.pdf
observCloud-Native Containerability and monitoring.pptx
Tartificialntelligence_presentation.pptx
The various Industrial Revolutions .pptx
Architecture types and enterprise applications.pdf
How ambidextrous entrepreneurial leaders react to the artificial intelligence...
CloudStack 4.21: First Look Webinar slides

XWiki: A web development runtime platform

  • 1. XWiki A collaborative development platform runtime based on the wiki paradigm Copyright (c) Vincent Massol - 2011 September 2011
  • 2. Agenda • What is XWiki? • Development Capabilities • Why use XWiki? • QA Copyright (c) Vincent Massol - 2011
  • 3. What is XWiki? Copyright (c) Vincent Massol - 2011
  • 4. Is it a first gen Wiki? Copyright (c) Vincent Massol - 2011
  • 5. Is it a first gen Wiki? Not only! Copyright (c) Vincent Massol - 2011
  • 6. Is it an Advanced Wiki? Copyright (c) Vincent Massol - 2011
  • 7. Is it an Advanced Wiki? Not only! Copyright (c) Vincent Massol - 2011
  • 8. It’s a dev platform! ... and a lot more... Copyright (c) Vincent Massol - 2011
  • 9. It’s a dev platform! ... and a lot more... Copyright (c) Vincent Massol - 2011
  • 10. It’s a dev platform! ... and a lot more... Copyright (c) Vincent Massol - 2011
  • 11. It’s a dev platform! ... and a lot more... Copyright (c) Vincent Massol - 2011
  • 12. It’s a dev platform! ... and a lot more... Copyright (c) Vincent Massol - 2011
  • 13. It’s a dev platform! ... and a lot more... Copyright (c) Vincent Massol - 2011
  • 14. It’s a dev platform! ... and a lot more... Copyright (c) Vincent Massol - 2011
  • 15. It’s a dev platform! ... and a lot more... Copyright (c) Vincent Massol - 2011
  • 16. It’s a dev platform! ... and a lot more... Copyright (c) Vincent Massol - 2011
  • 17. It’s a dev platform! ... and a lot more... Copyright (c) Vincent Massol - 2011
  • 18. It’s a dev platform! ... and a lot more... Copyright (c) Vincent Massol - 2011
  • 19. It’s a dev platform! ... and a lot more... Copyright (c) Vincent Massol - 2011
  • 20. It’s a dev platform! ... and a lot more... Copyright (c) Vincent Massol - 2011
  • 21. It’s a dev platform! ... and a lot more... Copyright (c) Vincent Massol - 2011
  • 22. It’s a dev platform! ... and a lot more... Copyright (c) Vincent Massol - 2011
  • 23. It’s a dev platform! ... and a lot more... Copyright (c) Vincent Massol - 2011
  • 24. It’s a dev platform! ... and a lot more... Copyright (c) Vincent Massol - 2011
  • 25. XWiki Platform ... for developing (collaborative) web applications Copyright (c) Vincent Massol - 2011
  • 26. Multiple Usages Copyright (c) Vincent Massol - 2011
  • 27. Long tail of Apps Excel of the Web Copyright (c) Vincent Massol - 2011
  • 28. Development Capabilities Copyright (c) Vincent Massol - 2011
  • 29. Scripting in Pages (1/2) Demo {{groovy}} @Grab(group='org.codehaus.groovy.modules.http-builder', module='http-builder', version='0.5.1') import groovyx.net.http.* def http = new HTTPBuilder( 'http://nexus.xwiki.org/nexus/' ) def resp = http.get( path: 'service/local/repositories') println "|=Name|=Type|=Location" resp.data."repositories-item".each() { println "|${it.name}|${it.repoType}|${it. contentResourceURI}" } {{/groovy}} Copyright (c) Vincent Massol - 2011
  • 30. Scripting in Pages (2/2) Demo {{velocity}} #set ($xwql = "where doc.content like '%welcome%'") #foreach ($item in $services.query.xwql($xwql).execute()) #if ($request.confirm == "1") #set ($itemDoc = $xwiki.getDocument($item)) $itemDoc.setContent($itemDoc.getContent().replaceAll( "welcome", "bienvenue")) $itemDoc.save("Replaced bienvenue") * [[$item>>$item]] replaced! #else * [[$item>>$item]] #end #end [[Replace "welcome" by "bienvenue">>?confirm=1]] {{/velocity}} Copyright (c) Vincent Massol - 2011
  • 31. Adding MetaData • Ability to associate arbitrary Demo data to any wiki page • Enable structure in the wiki • Enable Application development • Future: Application Within Minutes Copyright (c) Vincent Massol - 2011
  • 32. Wiki Macros Demo Copyright (c) Vincent Massol - 2011
  • 33. Skinning & Theming Demo Copyright (c) Vincent Massol - 2011
  • 34. Components Demo @ComponentRole public interface Macro {     List<Block> execute(); } @Component @Named("message") @Singleton public class MessageMacro implements Macro {    @Inject    private Execution execution;    @Inject    @Named("box")    private Macro boxMacro;    public List<Block> execute()    {       ...    } } META-INF/components.txt org.xwiki.rendering.internal.macro.message.MessageMacro Copyright (c) Vincent Massol - 2011
  • 35. extensions.xwiki.org Copyright (c) Vincent Massol - 2011
  • 36. Why use XWiki? Copyright (c) Vincent Massol - 2011
  • 37. Pros (1/2) • Iterative, Need-based development • Continuous Delivery • Online immediately (no deployment needed) • Works from day one, immediate feedbacks Copyright (c) Vincent Massol - 2011
  • 38. Pros (2/2) • Work collaboratively on creating applications • Designers can style while devs create logic • Open source • Strong and meritocratic community Copyright (c) Vincent Massol - 2011
  • 39. Cons • Save code in SCM • ... but SVN Application • Low integration with existing dev tools • ... but XEclipse • ... but WebDAV • Not an official standard • Higher “risk”, less trained devs, etc Copyright (c) Vincent Massol - 2011
  • 40. Q&A Me Copyright (c) Vincent Massol - 2011