Stefane Fermigier

Posts for category: Nuxeo

Tour the Nuxeo, stage 4: A video tour of the Nuxeo DM document management platform

| Comments

The Tour de France 2011 is already over (congratulations to Cadel Evans, Mark Cavendish, Samuel Sanchez and Pierre Roland, winners of the four distinctive jerseys this year), but the Tour de Nuxeo is far from over.

Let's move on today with a video tour of the Nuxeo DM platform. It is not too long (45 minutes overall) and will give you a pretty thorough view of what you can do with Nuxeo in terms of document management, as well as some insights on how the Nuxeo platform can be managed by systems and content administrators, and extended by developers to fit your specific business needs.

We have a dedicated page on where we've made it easy to navigate through the different chapters of this video tour. Or you can watch the following 7 videos in order below.

Nuxeo + Ubuntu = open source ECM for the masses

| Comments

I'm happy that we announced today that:

  • Our Nuxeo DM packages have been accepted in the Ubuntu "Partner" repository, so that it's even easier than before to install Nuxeo DM (and soon, other products from Nuxeo) on an Ubuntu Linux server.

  • Nuxeo is now a part of Canonical's "Software Partner Programme" and listed as a "software partner" on the Ubuntu site.

  • Canonical is now listed as a partner in our own partner directory.

  • More than 1/2 of our developers are using Ubuntu Linux on their main development machine, and 100% of our production servers are using either Debian or Ubuntu Linux (OK, that part was not it the official announcement, but it's the truth ;).

Tour de Nuxeo, Stage 3: The Nuxeo architecture

| Comments

As we've seen in stage 1 of this Tour de Nuxeo, Nuxeo EP is a platform that implements all the major services that are expected nowadays to manage content at an enterprise scale.

In today's stage, we're going to dive deeper into the technology that powers the Nuxeo platform, and show how its architecture was carefully chosen to answer the common needs of our customers and user community.

However, since Thierry Delprat, our fearless CTO, has already written extensively about the Nuxeo EP architecture, let me focus here on the points that I think need to be highlighted and refer you to his writings and slides (see below) for more details.

Tour de Nuxeo, Stage 2: What is Nuxeo?

| Comments

This is stage 2 of the 2011 "Tour de Nuxeo". Follow the link for the list of other stages.

"Nuxeo" is both a company and an open source project that aims at creating world-class technologies ("Nuxeo EP") and products ("Nuxeo DM", "Nuxeo DAM", etc.) for Enterprise Content Management.

Nuxeo, the company

Nuxeo is a company that I founded 10 years ago, in December 2000.

Our initial mission was to create open source "Web applications for better collaboration" (this was our first motto) - collaborative intranets, e-government websites - for a market that was comprised primarily of European public administrations (including several of the major French ministries).

In 2006, we did a full rewrite of our software stack using libraries and frameworks from the mature open source Java ecosystem, and started a business model migration from service company to open source software vendor.

Introducing the 2011 "Tour de Nuxeo"

| Comments

Photo credit: electropod on Flickr In honor of the 2011 Tour de France which started last saturday and will last until July 24th, we've decided to run in parallel a three week long "Tour de Nuxeo" to present the many faces of Nuxeo: Why use it? How to get started? How to leverage its basic and advanced functionalities? Etc.

Here's the list of all the "stages" for this year:

Tour de Nuxeo, Stage 1 - Why manage content?

| Comments

Photo credit: hada55 on Flickr This is stage 1 of the 2011 "Tour de Nuxeo". Follow the link for the list of other stages.

Enterprises and organizations face tremendous pressure to deal with an increasing amount of content, in terms of sheer volume (petabytes and beyond), number of content items (millions to billions of documents), and number of interaction points with either human personnel (inside or outside the organization) or automated systems.

In today's Tour de Nuxeo stage, we will have a look at the main challenges that face organizations that need to manage their content. But first, let's start by answering a simple question: What is content?

Nuxeo now incubated as an OW2 project

| Comments

A month ago, we became a member of the OW2 consortium, an international organization and ecosystem primarily devoted to producing open source middleware, integration and cloud computing software, most of them based on the Java platform.

Established as ObjectWeb in 2002, OW2 a major open source technological and business ecosystem, with 59 strategic and corporate members over 3 continents (mostly in France, USA - via its merger with the Open Solutions Alliance in 2009 -, Germany and China) and more than 1500 individual members.

Nuxeo Studio 2.0 available

| Comments

We have made available earlier this week version 2.0 of Nuxeo Studio, the configuration and customization environment for content applications based on the open source Nuxeo EP platform.

Here is the announcement

Nuxeo Studio 2.0 brings new important features, such as content views (which were introduced in Nuxeo EP 5.4 last november) configuration, widget configuration, user groups management, content transformation, as well as usability improvement thanks to the feedback of our users.

Several updates to the Nuxeo community sites

| Comments

We've been busy during the holidays updating the different Nuxeo community websites:

  • The forum (as I already announced) has moved to a new forum engine that should be more robust that the previous one:

  • The documentation site has a new home page with, we hope, a clearer roadmap to navigate through the documentation:

    We've also have written a new "beginner's page" (aka: "everything you need to know about Nuxeo in 5 minutes"):

    And a "business FAQ" that should be helpful when responding to a RFP:

    We're still busy updating other parts of the documentation.

  • There is now a "home page" that aggregates info from the community sites (forum, blogs and documentation), and also provides the key links for newcomers.

  • You can also subscribe to the RSS feed that provides updates similar to the "wall" provided by (with a bit of additional filtering):

I hope you will find these enhancements useful. Of course there might be some issues since everything is still new, so feel free to report (in the comments below, or in the mailing list / the forum) any problems or suggest enhancements.

The slides decks for my presentation at Nuxeo World are online

| Comments

The slide decks for the two presentations I did during Nuxeo World 2010 last week are now online on SlideShare (alongside all the other Nuxeo World 2010 presentations).

Towards Semantic ECM: Report on the IKS and Scribo Projects

In this presentation, done with my colleague Olivier Grisel, we've presented how semantic technologies can impact the ECM landscape, and showcased recent developments, based on collaborative R&D carried out with the Scribo and IKS consortia, that have been recently been integrated, as add-ons, to Nuxeo DM.

(You may prefer to download the slides directly in PDF form.)

This presentation kicked off our "Open Source Semantic ECM European Tour 2010", with another similar presentation scheduled tomorrow at the Semantic Co-Lab in Paris, and another one in two weeks during the IKS Early Adopters Workshop in Amsterdam.

Mobile ECM Apps with Nuxeo EP

In this presentation, which I did with my colleague Benjamin Jalon, we presented the results of recent experiments putting ECM on a mobile phone, using two radically different approaches: mobile web apps and mobile native apps.

(You may prefer to download the slides directly in PDF form.)

Watch this place for news about the availability of a Mobile ECM add-on for Nuxeo DM and possibly other Nuxeo products.

Gems from the Nuxeo TV Channel

| Comments

Update: has, in an incredibly unprofessional turn of events, decided to remove all of our content from their platform, with absolutely not notice and no way to get back our videos.

So most of the information below is now obsolete, and kept there only for reference. If you're looking for up-to-date content (unfortunately presented in a less engaging way), you should now head to this page on the Nuxeo resource center.

Given the way we've been treated by, I categorically recommend anyone to stay away from them if you're trying to do some serious business.

A sample Python library for the Nuxeo Content Automation JSON-RPC API

| Comments

I have created a sample Python library to illustrate the use of the Content Automation JSON-RPC API (described here:

The project, which is only illustrative and not officially supported by Nuxeo, lives here:

Here are the functions that have been implemented so far:

def create(self, ref, type, name=None, properties=None):
def update(self, ref, properties=None):
def setProperty(self, ref, xpath, value):
def delete(self, ref):
def getChildren(self, ref):
def getParent(self, ref):
def lock(self, ref):
def unlock(self, ref):
def move(self, ref, target, name=None):
def copy(self, ref, target, name=None):
def fetch(self, ref):
def query(self, query, language=None):
def getBlob(self, ref):
def attachBlob(self, ref, blob):

And here is a sample interactive session to illustrate its use:

% python
Python 2.6.5 (r265:79063, Jul 18 2010, 11:41:34)
[GCC 4.2.1 (Apple Inc. build 5659)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> URL = "http://localhost:8080/nuxeo/site/automation/"
>>> LOGIN = 'Administrator'
>>> PASSWD = 'Administrator'
>>> from nuxeoautomation import Client
>>> from pprint import pprint
>>> c = Client(URL)
>>> s = c.getSession(LOGIN, PASSWD)
>>> pprint(s.getChildren("/"))
{u'entity-type': u'documents',
 u'entries': [{u'entity-type': u'document',
               u'lastModified': u'2010-08-10T13:19:26Z',
               u'path': u'/default-domain',
               u'state': u'project',
               u'title': u'Default domain',
               u'type': u'Domain',
               u'uid': u'20a4bea1-e71a-47b6-86fd-c59e0a63d84d'}]}
>>> pprint(s.getChildren("/default-domain"))
{u'entity-type': u'documents',
 u'entries': [{u'entity-type': u'document',
               u'lastModified': u'2010-08-10T13:19:26Z',
               u'path': u'/default-domain/workspaces',
               u'state': u'project',
               u'title': u'Workspaces',
               u'type': u'WorkspaceRoot',
               u'uid': u'bc56455a-5345-440d-aa4e-31eed166e949'},
              {u'entity-type': u'document',
               u'lastModified': u'2010-08-10T13:19:26Z',
               u'path': u'/default-domain/sections',
               u'state': u'project',
               u'title': u'Sections',
               u'type': u'SectionRoot',
               u'uid': u'f8f7c052-cbb5-407b-8d19-3f2ec9e43efd'},
              {u'entity-type': u'document',
               u'lastModified': u'2010-08-10T13:19:26Z',
               u'path': u'/default-domain/templates',
               u'state': u'project',
               u'title': u'Templates',
               u'type': u'TemplateRoot',
               u'uid': u'cf1edd5a-2781-4b6b-aae7-310954da15f0'}]}
>>> pprint(s.create("/", "File", "First Doc"))
{u'entity-type': u'document',
 u'lastModified': u'2010-08-10T13:20:25Z',
 u'path': u'/First Doc',
 u'state': u'project',
 u'title': u'First Doc',
 u'type': u'File',
 u'uid': u'dafbf9c7-b870-4f39-830c-892469890072'}
>>> pprint(s.delete("dafbf9c7-b870-4f39-830c-892469890072"))

Two new releases this week, one more coming up next week

| Comments

There's nothing I like more in this business that a successful software or customer project launch.

So I'm specially happy this week, because we've had not one, but two important software releases, one of them being an new product launch, and we have another release coming up next week.

Nuxeo EP and DM 5.3.2

The first one was Nuxeo EP / DM 5.3.2, launched two days ago, a minor but rock solid release that closes more that 300 issues, and paves the way for a successful and feature-full 5.4 release planned for around October.

Still, it has some cool new features:

If you're curious about Nuxeo DM (specially Nuxeo DM 5.3), check out this episode of Nuxeo TV:

Nuxeo Correspondence 1.0

The second one is Nuxeo Correspondence Management (also called "Nuxeo Courrier" in French).

This is one of the first examples of an open source vertical application (which targets both public administrations and regulated industries).

Are you interested? You can read the product description, download the product to try it on your own (and by "the product" and "trying", I mean the full, supported, product, not a crippled down version that stops working after 30 days or doesn't contain the "enterprise" features or support without which nobody would dare put the software in production in a mission-critical context).

You may also want to take a look at Cheryl's blog post "Keeping Communication Open between Citizen and Government" that stresses the importance of Correspondence Management in the public sector.

Also, if you're curious about the source code, or if you want to help with development, localization, etc.: it's available in our mercurial repository here.

Many thanks to everyone who worked on this release (Alexandre Russel, Mariana Cedica, Laurent Doguin, Anahide Tchertchian, Lise Kemen, Solen Guitter).

Nuxeo Correspondence Management is based on Nuxeo Case Management Framework, and if you don't know what it is, you may want to check this episode of Nuxeo TV:

Nuxeo DAM 1.1

We have a new Nuxeo DAM release scheduled for next week, based on the robust Nuxeo EP 5.3.2.

If you don't know Nuxeo DAM yet, you can check out this episode of Nuxeo TV:

Why you should come to Nuxeo World next November

| Comments

Here's a short movie I made recently to give you an idea of what you should expect from Nuxeo World 2010 that will take place in Paris on November 17-18.

Note: a French version of the movie is also available.


Hi, I'm the founder of Nuxeo, a 10 year old company that is the specialist of open source ECM.

For me, Nuxeo World is a very import event, because it's the main gathering of the Nuxeo Community. Like every other open source communities, it is made of people that are really scattered around the world, who communicate through electronic newsletters or forums.

But for us, it is also important that we meet with every member of the community and we start discussing face to face the roadmap for the Nuxeo technologies, the main projects that have been carried out using them.

It is also important that we speak together during these two days, that we share a common vision of what Nuxeo is and what Nuxeo can become.

For me there are two main reasons to come to Nuxeo World.

The first one is the program: we have created a very high-level program with speakers from the core Nuxeo development teams, but also the main contributors to the Nuxeo project, and users that have created innovative projects in their own companies using the Nuxeo technologies.

With this program, people who are new to the Nuxeo technologies and community, but also people who are already experienced, will learn a lot of new information that will help them create new projects or products with the Nuxeo technologies.

The second reason it the whole idea of bringing people together, talking together, sharing ideas, making projects, with the goal of creating new products in the future with our technology.

Debian and Ubuntu packages available for Nuxeo DM 5.3.2 (stable)

| Comments

With Nuxeo DM 5.3.2 released just a few minutes ago, I'm happy to report that we now have stable packages for Debian Lenny (4.0) and Ubuntu Lucid Lynx (10.4 LTS).

To enjoy these packages using APT or Aptitude, just add the following lines to your /etc/apt/sources.list:

deb lucid partner
deb lucid releases

Then run:

apt-get install nuxeo-dm-tomcat # (or nuxeo-dm-jboss)

See my previous blog post on the same subject to learn how to report issues, ask for feature or contribute to the packaging code.

Updated 2010/12/13: with the 5.4.0 release of Nuxeo DM, the package name for Nuxeo DM to use in your apt-get install command is now just: nuxeo-dm.

New (experimental) Ubuntu packages for Nuxeo DM and DAM

| Comments

We've restarted work on Debian/Ubuntu packages.

To try the new packages on an Ubuntu Lucid (10.04) machine, you can add the following line at the end of your /etc/apt/sources.list :

deb lucid partner
deb lucid snapshots

Then you can run:

$ apt-get update
$ apt-get install nuxeo-dm-jboss

OR (at this point you can't have both DM and DAM on the same server, at least not running at the same time, unless you change the ports of one of the servers):

$ apt-get install nuxeo-dam-jboss

Currently only snapshots versions are provided, we need your help to test and make the system extra robust for when Nuxeo DM 5.3.2 will be released (in a few weeks).

We haven't tried (yet) the packages on other distros than Ubuntu Lucid, hopefully it will work without changes on a recent Debian and a few previous Ubuntu releases, but there might be some minor issues and we need your help to run the tests on other setups.

If you have bugs to fill, you can go to:

If you want to help fine-tune the packages, you can fetch the build scripts using Mercurial this way:

$ hg clone

Many thanks to Mathieu Guillaume and Julien Carsique for writing the new packaging scripts. There is some more work to do, but I'm sure the result will be great.

Please give us feedback, as this will keep us motivated to improve the packages!

Meet us at Solutions Linux in March, too

| Comments

Solutions Linux is the oldest and biggest trade show in France dedicated to the open source ecosystem. It's been happening every year in Paris since 1999 (it was called "Linux Expo", back then).

This year, Solutions Linux is happening at exactly the same time as Documation and OSBC, and we're spread thin between all these exciting events, but some of us will be hanging around Solutions Linux:

  • Olivier Grisel will give a presentation on "Large Scale data crunching with Hadoop MapReduce et Clojure" during the conferences' "developer track"

  • I will co-chair the same developer track

  • I will also take part in a roundtable on how the public and private sectors can work together to develop better software and content for the education system

Want to book an appointement with me during Solutions Linux? Drop me a mail:

Preliminary Nuxeo EP roadmap for 2010

| Comments

We have recently brainstormed internally and discussed with some of our customers and ECM analysts the roadmap for our planned improvements of Nuxeo EP.

View more presentations from Nuxeo - Open Source ECM.

In summary:

  1. We want to make it easier for “users” (in the largest sense, from end users to Java developers) to use the platform in ways that bring value to their businesses.

  2. Short term (Q1 and Q2 2010) technical improvements will include:

    • full CMIS support (icluding all the possible bells and whistles)
    • semantic features (auto-categorization and auto-tagging of content, named entities extraction, images clustering…)
    • better Windows server and desktop integration
    • rules, workflow and reporting
  3. We will improve developer experience by implementing extension points hot reload (for shorter compile/deploy/test cycles) and focussing on Nuxeo Studio.

  4. We will create new packaged profiles, or “distributions”, of Nuxeo EP + extensions, some as full-fledged applications targetting specific segments of the ECM space, such as Nuxeo RM (for Records Management), Nuxeo SDS (Structured Document Server) or Nuxeo Correspondence, and others as more technical components that can be easily embedded by systems integrators or ISVs in more complex product.

Read the slides for more information, then join the discussion on the community forum, or on the nuxeo-dev developers mailing list if you’d like to get involved with development of new features.

Everyone’s welcome to contribute.

Announcing the CMIS Shell (cmissh) - command-line client for CMIS

| Comments

We’ve been working recently on a CMIS command-line client, called “cmissh”, based on the Apache Chemistry client code.

We have decided to donate the code to the Apache Chemistry project, as there are no dependencies on Nuxeo code in it.

cmissh can be used interactively (with a nice autocompletion console) to explore and run CRUD operations on a CMIS server, or as a testing tool. We’ve included, for instance, a test script in the distribution, called ‘testscript’, that can be run against the Nuxeo demo server and will fail on errors. I’ve also been able to use cmissh against the Chemistry test server.

If you are busy, you can download a binary distribution (built just before the migration to Apache) from here:

(or look for a later build here:

and test it against our public CMIS demo server (available here: using the “testscript” script included in the distribution.

Here is a sample session:

SFs-macbook% cmissh
CMIS Shell by Nuxeo ( Type 'help' for help.
|:> help
Usage: help [command]

To get help of a specific command, type 'help name_of_command'.

List of available commands:

cat - Read the stream of the target document to the console
cd - Change working item
connect [open] - Open a new session
disconnect [close] - Close current session
dump [tree] - Dump a subtree
exit [bye|quit] - Exit
get [getstream] - Downloads the stream of the target document
help - Help
id - Identity of the specified entry
lcd - Change local working directory
lls [ll] - List local directory content
lpopd - Pop local directory stack
lpushd - Push local directory stack
lpwd - Print local working directory
ls - List entries in working directory
match - Fails if last command result doesn't match the pattern
mkdir - Create a folder given its name
mkfile [mkdoc] - Create a document of the given name
popd - Pop directory stack
propget - Print the value of the given property on the current context object
props - (Obsolete) Print the value of all the properties of the current context object
propset - Set the value of a property on the current context object
pushd - Push directory stack
put - Uploads the stream of the target document
pwd - Print working directory
rm [del] - Removes an object of the given name
setstream - Set the given file content as a stream on the current context object

|> connect

|> ls

|> cd default

|> ls

|> cd default-domain

|> ls

|> cd workspaces

|> ls

|> cd demo-workspace

|> ls

|> cd pictures

|> ls

|> put /Users/fermigier/Pictures/sf-square.jpg 

|> ls

|> propget sf-square.jpg
cmis:baseTypeId = cmis:document
cmis:changeToken = [null]
cmis:checkinComment = [null]
cmis:contentStreamFileName = sf-square.jpg
cmis:contentStreamId = [null]
cmis:contentStreamLength = [null]
cmis:contentStreamMimeType = [null]
cmis:createdBy = Administrator
cmis:creationDate = GregorianCalendar(2010-01-21T16:14:05.000+01:00)
cmis:isLatestMajorVersion = false
cmis:isLatestVersion = true
cmis:isMajorVersion = false
cmis:isVersionSeriesCheckedOut = false
cmis:lastModificationDate = GregorianCalendar(2010-01-21T16:14:05.000+01:00)
cmis:lastModifiedBy = Administrator
cmis:name = sf-square.jpg
cmis:objectId = 01e009cc-11fd-4f84-a710-5af9cc12a97c
cmis:objectTypeId = File
cmis:versionLabel = [null]
cmis:versionSeriesCheckedOutBy = [null]
cmis:versionSeriesCheckedOutId = [null]
cmis:versionSeriesId = 01e009cc-11fd-4f84-a710-5af9cc12a97c
dc:contributors = [Ljava.lang.String;@555c07d8
dc:coverage = [null]
dc:description = [null]
dc:expired = [null]
dc:format = [null]
dc:issued = [null]
dc:language = [null]
dc:rights = [null]
dc:source = [null]
dc:subjects = [null]
dc:title = sf-square.jpg
dc:valid = [null]
filename = [null]
icon = /icons/file.gif
icon-expanded = [null]
major_version = 1
minor_version = 0
size = [null]
uid = [null]

|> get sf-square.jpg
Object stream saved to local file: ./sf-square.jpg

|> lls

|> id
Object 0a37ffea-fd65-4e78-b3bc-074168dd99f9 of type PictureBook

|> quit

Damien Metzler on the benefits of contributing to the Nuxeo code base

| Comments

Damien Metlzer, who's with Leroy Merlin and has been working on OpenSocial integration in Nuxeo EP, has an extensive blog post about the history of this significant contribution to the Nuxeo EP code base.

Here are, according to him, some of the benefits of contributing to Nuxeo:

  • Our code is reviewed by Nuxeo Architects and well integrated in the core distribution.
  • We had to make the generic code generic, and make the specific parts plugin of it.  I really think its a proof a quality and that i made us ask for the good questions.
  • Apart from making the code generic, it did cost us nothing
  • I think that the value of a portal is the number of app you can integrate into it. Theorically we have all iGoogle gadgets that are integrable (and that makes a lot ;-) ). I other people contribute by making "Enterprise ready gadgets" on top of the Nuxeo Platform, we will gain benefit from it (if you want some ideas, call me ;-) )
  • As funny as it could be, as we have a Nuxeo Connect Support, we could post JIRA tickets about our own bugs (really funny :-p)

So once again, many thanks to you and your team on behalf of the Nuxeo community.

Video interview shot during the Open World Forum

| Comments

Here is a video interview of me shot by TiViPro during the recent Open World Forum un Paris.

Here is a rough transcript:

Nuxeo is the pioneer and leader of ECM. Our software is used by large companies throughout the world to help them manage all their documents and digital assets, such as images or emails.

Nuxeo is an open source vendor. That means we are developing a platform, a technology, in a completely open source and transparent way. Everyone can access our source code, make contributions and participate in our community. And we work with partners, such as systems integrators or vertical application vendors, to help them create specific applications that are used by the end users. These applications can deal with aspects such as collaboration, workflow, compliance on processes around documents. Since our technology is base on open source Java, it is very easy to set up, to customize and to extend for systems integrators, because a lot of people around the world already know the Java programming language, and there are a lot of supporting tools.

Nuxeo is quite satisfied by its current situation. We are selling new contracts every day in several different countries. We are growing, in France and in the USA, and we are looking for 15 new people to hire in our team.

A similar interview has also been conducted in French.

Témoignage OEM en vidéo - Nel Taurisson (SkinSoft)

| Comments

J’étais hier à une présentation de SkinMuseum, application de gestion de collections de musées dévelopées par la jeune entreprise innovante SkinSoft.

Nel Taurisson, responsable de la R&D chez SkinSoft, a accepté de répondre à mes question au cours d’une courte interview vidéo que vous trouverez ci-dessous.

Transcription de l’interview

Bonjour, je suis Nel Taurisson, je m’occupe de la R&D chez SkinSoft.

SkinSoft, c’est une société qui développe des applications sur la base de Nuxeo. Notre première application est une application de gestion de collections de musées. On va ensuite s’orienter vers des applications métiers: photothèque, médiathèque, bibliothèque.

Ca fait plus d’un an maintenant qu’on travaille en recherche et développement sur ce sujet. On est parti sur la base de Nuxeo, après avoir regardé de tous les côtés ce qu’on pouvait utiliser comme moteur. On est parti sur Nuxeo pour l’architecture de composants, pour l’architecture globale du produit, parce que c’est une plateforme sur laquelle on arrive très bien à développer, et parce qu’il y a une vraie communauté, qui marche bien, qui répond bien.

Voilà, c’est un beau produit et on essaye de faire de beaux produits avec.

"10 reasons why Nuxeo is using GlassFish" presentation

| Comments

Sun has launched GlassFish Portfolio yesterday.

During the pre-launch press conference in Paris, we’ve been invited by Sun to present how we are integrating GlassFish in our open source ECM technology stack. (Many thanks to Alexis for the invitation).

I outlined the top 10 reasons why GlassFish is a good match to both our open source business model and our technology needs:

  • 10: GlassFish Embedded
  • 9: Provisioning and administration (Update Center)
  • 8: Standard process (JCP), preview of cool technologies (JAX-RS, EJB 3.1 / Java EE 6)
  • 7: Interoperability (ex: Metro)
  • 6: Developers agility (short startup time, scripting support)
  • 5: Documentation, support
  • 4: Reference implementation of the Java EE 5 standard
  • 3: HK2 microkernel (modularity, OSGi, service orientation, dependency injection)
  • 2: Quality, enterprise-readiness, performance and scalability
  • 1: Momentum, open source community

The Slides are here:

View more presentations from nuxeo. (tags: nuxeo ecm)

Update: the video is also available (in French):

CMIS Update

| Comments

Florent Guillaume is in the US this week for the first face-to-face meeting of the CMIS working group since the project got accepted by OASIS a few months ago. We’ll get a clearer roadmap for the specification (which, last time I checked, was supposed to go gold by the end of 2009 or beginning of 2010).

A prototype miminal implementation of CMIS 0.5 (the most recent draft) on top of WebEngine, using all the power of JAX-RS annotations, is now publicly available (

Nuxeo Got an Award

| Comments

Nuxeo has been named “Company to Watch in 2009” by Intelligent Enterprise. “Strong community support” has been highlighted in the article, so thanks to everyone who is part of our project! (Full quote: “Already the leading open-source enterprise content management vendor in Europe, Nuxeo now has its sights set on the big US market. Expect to see its fast growth, strong community support and steady pace of innovation continue. “)

More information in this corporate announcement:

Upcoming Release

| Comments

We’re still working very hard on the 5.2 M4, which has been delayed one more week and should be ready by the end of this week.

Here are a few technical highlights of what’s coming soon:

  • The SQL repository will become the default repository in 5.2 (JCR storage will still be supported).

  • Workflow refactoring: the workflow API and implementation is being simplified, to be easier to use for developers.

  • Events refactoring: the event API and implementation is being simplified, to be easier to use for developers.

  • WebEngine: some refactoring to make it easier to use for developers (see a pattern here ;) ? ) Another huge improvement is that it is now possible to write the interaction classes in Java and have them hot-releaded by the server, increasing developers agility and pleasure.

  • Search refactoring: the Core is now responsible for search, the API has been simplified, Compass is gone.

  • A new “Converter” API that replaces the existing “Transformer” API, for content transformation.

  • GWT support.

  • Lots of other improvements, and new features, that will be presented in more details in the release notes.

More info about our plans for Nuxeo 5.2 in the slides and videos collections from the Nuxeo DevDay last December:

You can follow the commit flow on our Trac: and on the Jira:

Video, slides and transcript of my talk at the Nuxeo DevDay

| Comments

My keynote presentation at the Nuxeo DevDay last Monday was called “The Nuxeo Way: using open source to build a world-class open source ECM platform”. It was very enjoyable for me both to introduce the conference and to reflect on the first 8 years of Nuxeo.

The conference itself was for us a real success (the room was packed), and according to the feedback we got from the participants, everyone enjoyed the experience.

You will find below the slides, the video and a transcript of my talk.




A bit of history

Our company was started eight years ago, in 2000, and from 2002 to 2005 our product line was based on Zope. During that time, we learned quite a lot about ECM, open source, and how to build a proper architecture.

In 2005, we started to introduce Java technologies in our offering. We first did a very interesting project, based on Eclipse RCP. At the same time, we started an hybrid prototype mixing Zope and Java technologies. It actually did work out, but we quickly realized while doing this project that it was even better to switch completely to Java.

So, since 2006, we are fully Java based, and we don’t have plans to switch to another technology in the foreseeable future.

Goals and vision

Our original goal for the Nuxeo projects was to address the full scope of ECM applications.

Since we had to initially focus our resources on a smaller subset of this scope, we decided to start first by focussing on document management.

For these two reasons, we wanted an architecture that would be highly extensible so that we could easily add new modules to implement new functions over the lifetime of the project. We also wanted to make it easy for other people or companies to add their own value on top of the platform, hence enabling and sustaining the creation of a real ecosystem around the Nuxeo platform.

The technical vision to reach these goals was to build the platform on solid existing foundations instead of reinventing the wheel: standards (such as the JCR then, or now JCR2 or CMIS), and open source libraries and frameworks.

This is the real benefit of open source: to reuse what other people have built, and provide your own value, as new frameworks and components, on top of it.

During our journey from Zope to Java, we learned some very important lessons:

  • From the Zope era, we learned the value of component architectures and the basics of the ECM discipline. These are lessons, of course, that we remembered when designing the architecture of Nuxeo EP.

  • From the early RCP project, we learned about OSGi and extension points, which are now the foundation of our component architecture.

  • During the Java era, we experienced the value of standards. They are important, because they make it easier for partners such as systems integrators or ISVs to adopt our technology. We also learned that with the proper tools (such as a good IDE) and architecture, we can be as productive with Java as we were with Python, and provide better quality.

Process and tools

We also wanted to implement a robust software engineering process, with a strong focus on quality, and to make it transparent to our customers and to the community, to make it easier for you to participate in this process.

We also have an internal goal for this process, which is to improve collaboration between teams that are involved in working in custom projects for our clients, and those who work on the generic open source platform.

We started out early in the life on the company by adopting development practices from extreme programming (XP) and test-driven development (TDD). We found over time that it was needed to complement these practices with a discipline for project management that would be simple and easy to use, that would increase team efficiency and productivity, and that would be able to scale up, as our company is growing at a very fast pace (> 50% / year).

So we decided this year to introduce the Scrum development methodology, as it is the most popular and best documented agile methodology now, and that literature shows that it is really helpful in increasing productivity, quality and control over development schedules.

Of course, we are still using TDD with open source tools, such as JUnit for unit tests, Selenium for functional tests, and Hudson for continuous integration, that continuously monitor the quality of our products.

Other tools was are using now are also open source, with a few exceptions: Mercurial, which was introduced this year, for distributed source management (we believe this approach scales much better than the centralized SCM provided by Subversion); Maven, to manage dependencies, build, packaging and releases (it is a bit complex but very powerful and is quickly gaining acceptance in the Java development community); Jira, a non-open source task and issues management system, that helps us implementing the Scrum process.

Where do we go now?

Our work on the platform is driven first by evolving or emerging market needs, such as “enterprise 2.0”-style collaboration, mobility or moving storage and computing infrastructure to the cloud, etc.

We also listen a lot to developers feedback. We conducted a first developer survey last month, and got an overall satisfaction index of 3.8/5, which is already very good.

Here are a few more important facts discovered by this survey:

  • The strongest points of our platform, according to you: ease of installation, a large set of functionalities, and strong standards supports. As you remember, these were some of the main goals for us when designing the platform.

  • There are however areas for improvement, which we are working on now, mostly: usability and design for the default user interface, and documentation.

  • All of you are interested in Document Management and Search, and you also have strong interest in Records Management, Collaboration and Workflow.

  • From the technical side, you think our strongest points are our initial choice of technologies, our conceptual model, our architecture and our API. On the other hand, we need to work a little bit more on ease and speed of development, for instance by providing more tools for this, and, as I already said, on developers documentation.

  • According to the poll, your preferred deployment platforms for the server applications are open source Java EE application server: JBoss (81%) and GlassFish (64%), but also “lightweight” web containers such as Jetty (45%) or Tomcat (40%).

  • Your preferred DBMS are PostgreSQL over MySQL (83% vs. 56%), among open source options, and Oracle over MS-SQL (37% vs. 15%), for proprietary systems.

How can you get more involved?

The open source game goes two ways. We’re working very hard to provide you with the best possible open source ECM platform, but we also need your input on several points.

First of all, you can test the platform, and fill bug reports and requests for enhancements on the Jira.

You can discuss with us new APIs or other improvements to the platform, using the mailing list, the forum, the wiki or the Jira.

You can help us write better documentation, either by writing self-contained pieces of advice in the FAQs and HOWTOs, or by editing the Nuxeo Book or other bits of official documentation.

You can also create new translations. There are already 7 or 8 existing translations, and you can easily create a new one by translating a property file.

Of course, you can get involved in the coding side of the project by becoming a committer to the code base: fixing bugs, improving existing code or adding new functionalities.

The best way for you to become a committer is first to create patches and upload them to the Jira. Of course, these patches need to adhere to the Nuxeo coding standard, and will be reviewed by more senior committers before being actually committed to our code base.

If everything goes well, after a few accepted patches, you will get full access to the source code repository.

You can also work on your own side. Because it’s an open and extensible platform, you can own a bit of functionality and develop it on your own terms.

So, with our plugin architecture, you’ve got the choice: you can either work on your own forge or SVN, or we can host your project on our development environment.


Once again, thank you.

Thank you for coming to this conference, all 60 of you.

Thank you for everything you have contributed so far to the platform.

And thank you for your attention.

Program for Nuxeo Dev Day (Paris, 1st Dec.) is now online

| Comments

I’m happy to report that we’ve finished setting up the conference program for the first Nuxeo Developer Day in Paris, which will take place on 1st December, as a “community session” during the awesome Open World Forum 2008.

The conference will be a unique opportunity for you to meet and discuss with the Nuxeo core developers, and to exchange your experiences as users of the framework with fellow Nuxeo applications developers.

Only caveat: there are a limited number of available seats (50) and if you intend to attend (attendance is free, BTW), we ask you to say so by sending a mail to

First European Nuxeo Developer Day - Dec. 1 2008

| Comments

I’m pleased to announce that we are organizing, with the help of several other people, the first “big event” in the Nuxeo Community: the Nuxeo Developer Day.

It will take place during the “Open World Forum” event in Paris, on Dec. 1 2008.

The program is still under construction, but in any case I can promise it will be intense and will please even the most hardcore developers.

Here are some highlights:

  • What’s new in Nuxeo 5.2 (codenamed “Chicago”)
  • Roadmap for 2009 and beyond
  • Interoperability (including the emerging CMIS standard)
  • Several case studies from all across Europe (Spain, Sweden, UK…)
  • Technical talks about just about everything that is new or cool in Nuxeo 5.2:
    • The new Nuxeo Core / SQL repository
    • OpenSocial integration
    • WebEngine
    • RIA frontends (Flex, GWT…)
    • Glassfish integration
    • Nuxeo Runtime and OSGi
    • Nuxeo RCP
    • Mobile applications w/ Nuxeo
    • Semantic applications

All the talks will be given in English.

Attendance is free. Even lunch will be provided by the organizers ;)

However, as there are only a limited number of seats (50) in the room, we ask that you to register before the event (preferably ASAP).

You can do so by just sending me an email (

Or by registering on Facebook if you have an account there (you may also want to join the Nuxeo User Group on Facebook).

Note that the Open World Forum lasts for 2 days, so if you’re coming from far away, and are interested in the politics or economics of open source and innovation in Europe, you may also want to stay in Paris for the second day (Dec. 2).

First Release of Nuxeo WebEngine

| Comments

WebEngine is a lightweight, versatile, content-centric, open source web framework to quickly build and deliver next generation content-oriented web applications.

WebEngine relies on the Nuxeo content infrastructure (OSGi runtime, component architecture, document repository, ECM services, etc.) to provide a component-based programing model and a web development model for building componentized content-centric applications (such as wikis, blogs, content-oriented websites, etc.).

WebEngine relies heavily on the REST paradigm: URLs are mapped to the hierarchical content repository, content is accessed using GETs, user actions are GETs and POSTs, etc. Hence it’s very easy and straightforward to write RESTful apps using WebEngine.

WebEngine is fully extensible and componentized, thanks to OSGi (all components are OSGi bundles) and Nuxeo Runtime’s extension points.

WebEngine can run either standalone (with startup time <4s) using the Nuxeo Runtime launcher and the embedded Jetty 6, or in a full-blown Java EE app server such as JBoss. WebEngine can also be connected to any Nuxeo EP instance (and Nuxeo Core repository) and be used to expose / publish its content to the web.

Features highlights

  • Scripting (Groovy, JavaScript, Ruby, Python…) or Java code for business logic

  • Advanced content model

  • Leverage Nuxeo Platform’s ECM services

  • Smart URLs management

  • Powerful templating (based on the FreeMarker engine)

  • Wikitext renderer (using Wikimodel)

  • Open source under the LGPL license

Join the community!

Roadmap update for Nuxeo 5.2 aka "Chicago"

| Comments

We have just published a slide deck explaining our roadmap for the
next major release of the Nuxeo platform, currently labelled as “5.2”
and codenamed “Chicago”.

You can browse the slides online on SlideShare or download them as PDF.

Questions and discussions about this roadmap, as well as proposals for contributions, are of course very welcome. For this, we suggest that you subscribe to the forum or the mailing list.

Nuxeo EP released

| Comments

We have released Nuxeo EP earlier this week. This is a maintenance release primarily focussed on bug fixes and small improvements.

You can download it as


The changelog for this release is available.

Minor, but anyway noteworthy improvements include:

  • Nuxeo EP now works on a Java 6 JVM, which can lead to significant performance improvements (up to 100% for certain workloads, according to some internal benchmarks).

  • Full text indexing has been improved and made faster.

  • Some tweaks have been done to enable communication with the new (soon to be released and announced) “LiveEdit” plugin for Internet Explorer, Firefox and MS-Word.

Nuxeo 5.1 RC released - GA release scheduled for next week

| Comments

We have been so busy the last couple of months working on customers projects that the 5.1 release has slipped a bit, but I’m happy to report that we have just released Nuxeo 5.1 RC.

The final release (Nuxeo 5.1.0.GA) will be made next week, and then we’ll spend the rest of August:

  • finishing and polishing the Nuxeo Book.

  • planning and starting the next iteration of Nuxeo (5.2, cf. the current roadmap).

  • Working on new customers projects (including some that feature the Apogee Project which has already seen a recent surge of activity).

  • getting some holidays :)

Announcing Nuxeo Weekly News

| Comments

I have just published the second issue of Nuxeo Weekly News, the newsletter we have started to publish every monday to keep the Nuxeo community informed of what’s going on with the project, and to provide some insight about where we are heading.

For those who missed it, the first issue is still available.

I will appreciate any feedback (positive or negative) about it.

JBoss World Berlin 2006 slides on SlideShare

| Comments

I have recently published the slides for Nuxeo’s presentations at JBoss World Berlin on Slideshare,

First one, the business one, was called “Nuxeo - An Open Source ECM Vendor”, and is available here or just below:

The second one, the technical one, was called “Nuxeo EP 5 - A Seam Case Study”, it is also available just below:

Both presentation are also available more traditionnally as PDF here (technical one) and here (both of them)

Stangely, the technical presentation go 8 times as more hits that the business one ;)

Nuxeo 5 ECM project passes the 40 kloc mark

| Comments

The Nuxeo 5 code base, hosted on, has just reached the 40 kloc (= 40000 single lines of code, excluding comments and blank lines, as computed by the sloccount utility) tonight:

SLOC    Directory       SLOC-by-Language (Sorted)
9854    NXCore          java=9854
5211    NXRuntime       java=5211
4854    NXJCRConnector  java=4854
3430    NXThemesCore    java=3430
2301    Nuxeo           java=2245,jsp=56
1646    NXCoreFacade    java=1646
1356    NXCoreAPI       java=1356
1311    NXTransform     java=1311
1235    NXJBossRuntime  java=1235
1163    NXRelations     java=1163
937     NXThemesJsf     java=937
842     NXTransformPlugins java=842
741     NXMimeType      java=741
615     NXAction        java=615
476     NXPlatform      java=476
473     NXSQLDirectory  java=473
451     NXAudit         java=451
404     NXEvents        java=404
360     NXAdobeLiveCycle java=360
339     NXJobs          java=339
312     NXTypeManager   java=312
308     NXThemesJsfFilters java=308
302     NXServerCache   java=302
242     NXThemesJsfEditor java=242
207     NXContextInvalidationManager java=207
186     NXClientCache   java=186
178     NXJBossCache    java=178
169     NXDirectory     java=169
133     NXAuditClient   java=133
95      NXThemesFragments java=95

See also the Fisheye view.

Moreover, we are now listed regularly as one of the ten most active open source projects, in terms of daily commits, according to the CIA website.

Here is a screenshot from last week to prove it ;)

What a month! (Quick reflections two weeks after our Java switch)

| Comments

We announced our switch to Java two weeks ago. There was of course a lot of preparation before the announcement (besides just coding). That included: creating the new website, writing a FAQ, preparing slides, writing announcements for various media (InfoQ, TSS,…), and anticipating some discontent in the Zope community.

Well, two week after going public with the announcement, I’m glad to say that we are completely pleased with the way things went.

We already have released one of the key components of the platform, Nuxeo Runtime and are preparing to release Nuxeo Core this week. Overall, work on the project is going on at a steady pace and we are on track to meet the next milestones of our roadmap.

Our announcement got noticed both by the main Java sites, and countless blogs (including some in languages that we don’t understand without Google Translator).

There has been a little discontent, as expected, in the Zope community, but we mostly got some nice messages of people saying they understood our choice. The most heated discussions took place after Jean-Marc’s post (and its followups) supporting our change.

And, most importantly, we got many subscriptions to the mailing list, which shows there is a real interest in the developer community.

On the business side, we’ve had many calls from system integrators.

I’m especially glad to notice that in two weeks, we got contacts from several new systems integrators, telling us that, now we are using Java, they will be very happy to work with us on new projects. Consequence: we now have a commercial contact with 8 of the 10 leaders of ECM integration in France (some of them the french subsidies of international groups), as well as interesting partnership projects with a big name (I mean BIIIIG) software vendor (more on this another day).

Nouveau site "corporate"

| Comments

Youpi, nous avons un nouveau site.

La plateforme est du CPS 3.3.3 avec CPSSkins + WebPublisher + quelques customs.

Le design est de moi au depart, avec des contributions d'Eric et Arnaud.

Un grand merci a Eric pour son travail de "CPSSkinification" du design.

Si vous avez des commentaires ou des suggestions (sur les fonctions du site, ou sur le contenu), vous pouvez me les envoyer par mail (