InfoQ

InfoQ

News

My Bookmarks

Login or Register to enable bookmarks for unlimited time.

The content has been bookmarked!

There was an error bookmarking this content! Please retry.

XWiki 1.0: Extensible Java-based wiki/application platform

Posted by Abhay Bakshi on Jun 29, 2007

Sections
Process & Practices,
Development
Topics
Collaboration ,
Java
Tags
Wiki ,
XWiki
XWiki.com recently launched the first version of its enterprise wiki and application platform, written in Java and released under LGPL license. Its development platform features allow creating collaborative web applications and also provide packaged applications built on top of the platform (second generation wiki).   XWiki 1.0 launched last month, but there have been almost 10,000 deployments to date.

Next generation of wikis have been established with products like Confluence, Jotspot (bought by Google), XWiki, projectforum et al.

InfoQ spoke to Vincent Massol - one of core committers of XWiki - regarding XWiki's vision, its platform-specific features, competition it faces, and support that it seeks:

Vision:
  • When you download XWiki, you can build on top of the XWiki platform (as opposed to most wikis out there where you get a fixed wiki when you download the product).
  • Move to a component oriented architecture so that it's easier to reuse all the building bricks for creating collaborative applications and for swapping in other implementations for components.
  • Platform-specific features:
    XWiki is doing CMS from a direction different from that of "proper" CMS tools. The way we view it is that people like to use a wiki for its unstructured data and the ability to easily add information without bothering too much about categorizing it. By opposition CMS tools usually require that you have a clear vision of what you want from the onset, and accordingly create structure for holding that data. Both types of tools are needed as complementary but XWiki offers a tool which you can start using as a standard wiki and when some of your data need some structure, XWiki can accomodate it and you're not forced to buy a separate application that has no interaction with the wiki.
    XWiki developers can take advantage of scripting languages Velocity and Groovy. XWiki's scripting feature and its data model allow development of web applications at various levels. As a Java developer, one may also extend XWiki by developing XWiki Java plugin classes. As of this writing, the XWiki team is also working on portlet integration to install XWiki as a JSR 168 Portlet in any Portal.

    Competition:
    The main differentiators with products like JotSpot are probably that XWiki is Open Source and targeted at the Enterprise market. The fact that Google bought Jotspot is good news for XWiki as it proves there's interest in that space.
    Support:
    There are currently about 8-9 active committers with many contributors answering to questions, sending patches and suggesting improvements on XWiki lists. But, XWiki team is looking for more committers and also contributors who can contribute script snippets to put in XWiki pages, macros, plugins and applications. We need more skins coming from the community.
    Since 2005, XWiki has received support from Google through the Summer of Code program. 

    Related Sponsor

    In today’s hyper-competitive world, later may be too late to adopt Agile development and this Roadmap for Success will help you get started. Download "Agile Development: A Manager's Roadmap for Success" now!

    11 comments

    Watch Thread Reply

    Great product by Kito Mann Posted
    Looks good... by Jason Carreira Posted
    Re: Looks good... by Vincent Massol Posted
    Re: Looks good... by Vincent Massol Posted
    Re: Looks good... by Jens Schumacher Posted
    Re: Looks good... by Vincent Massol Posted
    How does XWiki compare to TWiki? by Hans Grüber Posted
    Re: How does XWiki compare to TWiki? by Vincent Massol Posted
    Re: How does XWiki compare to TWiki? by Guillaume Laforge Posted
    "Information refactoring"? by Igor Kolomiets Posted
    Re: by Vincent Massol Posted
    1. Back to top

      Great product

      by Kito Mann

      From what I've seen, xWiki is an excellent product. Also, 1.1 is currently in development...

    2. Back to top

      Looks good...

      by Jason Carreira

      Looks pretty cool...

      How would you compare it to Confluence?

      I like the ability to script and call out from the pages using Velocity, but can you restrict that separate from editing rights?

    3. Back to top

      How does XWiki compare to TWiki?

      by Hans Grüber

      Has anybody got any experience to tell the two apart?

      I have tried to compare them using www.wikimatrix.org/compare/TWiki+Confluence+Soc... and they look very similar, but TWiki's plugin list is overwhelming and seems to get deployed a lot (many success stories).

      Which project has the most momentum? Google support probably matters some?

    4. Back to top

      "Information refactoring"?

      by Igor Kolomiets

      It's interesting that you mentioned that most of the wiki products require you to

      have a clear vision of what you want from the onset, and accordingly create structure for holding that data
      and it may take some time for you to come up with a good/natural structure for your data, so
      when some of your data need some structure, XWiki can accomodate it
      Cool! But now it's absolutely right time to ask: Is there such thing as "Information refactoring" (something that would be similar to "code refactoring") - a set of well-defined patterns to perform a common operations to change the way data/information is structured? Would it be amazing to have such tool? :)

    5. Back to top

      Re: Looks good...

      by Vincent Massol

      Hi Jason,

      The way it works is that the XWiki API is divided into 2: standard API that anyone having edit rights can call and more dangerous APIs for which you need to have programming rights. As you guessed, this is a right separate from the edit rights. Admins have it and it's possible to give to certain users. Programming rights is always required for writing Groovy scripts.

      In summary:
      * For velocity: you can call a subset of the api with edit rights, you need programming rights for more "dangerous" APIs
      * For Groovy: you always needs programming rights

      -Vincent

    6. Back to top

      Re: How does XWiki compare to TWiki?

      by Vincent Massol

      Hi Hans,

      There was a recent thread on comparing XWiki with TWiki on the XWiki mailing list:
      www.nabble.com/xwiki-vs-twiki-tf3956100.html#a1...
      www.nabble.com/Re%3A-xwiki-vs-twiki...CASE-CLOS...

      Not sure what you mean by google support but we currently have some Google Summer of Code project and one of them is about Google Docs integration. See www.xwiki.org/xwiki/bin/view/GoogleSummerOfCode/ for a list of the 7 GSOC project underway.

      Hope it helps,
      -Vincent

    7. Back to top

      Re: Looks good...

      by Vincent Massol

      Jason,

      Re confluence, I think it can be summarized as follows:
      - Confluence provides a single wiki. This wiki is very nice: nice features, nice UI, nice L&F. Perfect for getting started quickly if your interest is in "standard" wiki (i.e. collaborative editing of content which I call "first generation wiki")
      - XWiki provides a platform for creating collaborative applications ("second generation wiki"), the wiki being one such application. XWiki distributes a default wiki. To make a comparison this exactly like Eclipse. Eclipse is a platform for developing applications. The IDE (Eclipse JDT) is an example of such an application and was initially considered a demo of what could be done with Eclipse. Our default wiki is the same. It's a demo. However, exactly like Eclipse JDT has become a first class IDE, we've been working on transforming our default wiki into a first class wiki. We believe we've now reached a good state with XWiki 1.0. The focus of XWiki 1.1 is to continue on that path.

      To summarize even more:
      - Confluence: very good first generation wiki
      - XWiki: very customizable, more flexibility, platform

      With XWiki, in addition to being a standard wiki, it's very easy to develop web sites (having a public face and an internal more wiki like face) and to use it as a lightweight CMS too.

      I hope this is a fair comparison :)
      -Vincent

    8. Back to top

      Re:

      by Vincent Massol

      Hi Igor,

      We do have a set of tools to help with "Information Refactoring":
      - strong search engine, including ability to search in Objects
      - renaming of pages including renaming of backlinks
      - more important: strong API to manipulate documents and their contents. This API can be used to create new documents, create attachments, find links in pages, move content around, etc.

      Thanks
      -Vincent

    9. Back to top

      Re: How does XWiki compare to TWiki?

      by Guillaume Laforge

      Has anybody got any experience to tell the two apart?


      I like Confluence a lot and use it on a regular basis, it's a great wiki, but... it's just a wiki. You can obviously write nice plugins for it, but in the end, you can't build full-blown applications on top of it. On the other hand, XWiki is more than just a wiki, as it's a real application platform on top of which you can write apps.

      A while back, I needed a wiki with some advanced data structures and a little logic for automatically organizing content, metadata, documents, and XWiki was clearly the sole platform that would let me create this mixed Wiki / CRUD application I had to write. I just needed a few days to familiarize myself with the underlying API, and to get up to speed to write this application.

      I've had a great experience using this technology, and it makes sense to call it a second generation wiki engine, and I even prefer calling it an application platform as it's so easy to create mixed document/CRUD-driven applications on top of it.

      Congratulations to the XWiki team for bringing such an advanced product!

    10. Back to top

      Re: Looks good...

      by Jens Schumacher

      Vincent,

      I haven't really used XWiki apart from taking a brief look at it and playing around for 5 minutes. Therefore I can't give a good comparison between the two products. However looking at the feature list of XWiki I can't figure out why Confluence is labeled as a "first generation wiki" and XWiki as a "second generation wiki".

      The fact that you can use velocity and other script languages in the page directly is pretty nice, but probably only useful for developers. I found that many users are already challenged using simple macros in the page. In most cases this is because they lack the technical background and are still used to write in Word. However, in Confluence you can achieve something similar with User Macros allowing you to access java objects via Velocity.

      Confluence is very flexible and can be heavily customized if you know Java and Velocity. The number of Plugins available for Confluence grows every week and ranges from simple content macros to completely new components.

      Cheers,
      Jens

    11. Back to top

      Re: Looks good...

      by Vincent Massol

      Jens,

      ... Then it means xwiki.org doesn't do a good job of showing the applications you can build on top of the XWiki platform. I'm going to work on improving that in the coming weeks. Actually xwiki.org itself is using XWiki and is made of about 15 small applications. For example the References space is such an application (www.xwiki.org/xwiki/bin/view/References/). You can create references, search for them, edit them, and display them in a table as it's down in the space home page. This is a good example of a simple application.

      But to give you a better visual idea of what can be achieved with a little more work, check out the XWiki Watch screenshots at www.xwiki.com/xwiki/bin/view/Solutions/XWikiWatch. XWiki Watch is a social/collaborative feed reader built 100% on the XWiki platform.

      Obviously we don't expect casual users of the wiki to be developing such applications and this XWiki Watch example is extreme. However small applications like the References page I mentioned above are easily done by power users (those admins/champions/experienced users setting up the wiki for others to use) and you'd be surprised by what non developers can achieve (actually this References applications has been developed inside the wiki by a non developer who has never coded anything before ;)).

      Cheers,
      -Vincent

    Educational Content

    New-age Transactional Systems - Not Your Grandpa's OLTP

    John Hugg discusses high volume transaction processing applications with high and low frequency profiles, and how VoltDB can be used for that purpose.

    Cool Code

    Kevlin Henney examines code samples to see what can be learned from them starting from the premise that one won’t write great code unless he knows how to read it.

    Collaboration: At the Extremities of Extreme

    Jason Ayers share the observations he made watching a team of developers collaborating in real time on the same code base, pushing XP, pair programming and continuous integration to their extremes.

    Yesod Web Framework

    Michael Snoyman presents Yesod, a web framework written in Haskell and containing a web server, templating, ORM, libraries (templating, gravatar, etc.).

    Transactions without Transactions

    Richard Kreuter and Kyle Banker on how to avoid classical RDBMS transactional systems by using compensation mechanisms, transactional messaging or transactional procedures.

    Attila Szegedi on JVM and GC Performance Tuning at Twitter

    Attila Szegedi talks about performance tuning Java and Scala programs at Twitter: how to approach GC problems, the importance of asynchronous I/O, when to use MySQL/Cassandra/Redis, and much more.

    10 tips on how to prevent business value risk

    One category of risk that project teams need to ensure they address is business value failure – delivering a product that fails to provide value for the business investor.

    Interview: Software Systems Architecture: Working With Stakeholders Using Viewpoints and Perspectives

    InfoQ spoke to the authors of Software Systems Architecture on a couple of new topics, the System Context viewpoint and Agile, which have been added to the second edition.