Nuxeo Platform provides several solutions to let you customize and extend the platform:
- use Nuxeo Studio to do your configurations and extensions via a Web UI,
- write XML files to configure Nuxeo and deploy new plugins,
- develop your own extensions and plugins.
Choosing the right solution depends on:
- your requirements:
if you want to customize your Nuxeo application, Nuxeo Studio should do all the work for you. But if you want to develop a very specific service or component, you will have to write code;
- your profile:
in order to develop extensions to Nuxeo you need to be able to write some Java code.
Using Nuxeo Studio
If you are not used to customizing Nuxeo, you should give a try to Nuxeo Studio, a visual environment to configure your Nuxeo DM, DAM or CMF instance.
Doing XML configuration
Inside the Nuxeo Platform, you can configure a lot of stuff via simple XML files.
We advise you to give first a glance at all the Nuxeo EP wiki domain, so that you get a global idea of the architecture of the product. In particular, you should have a look at the Component model overview that will explain you how the platform is built.
Then, you will need to know:
- what can be configured inside the platform (what extension points exist);
- what contributions are already deployed in the Nuxeo distribution you use.
If you want to go further and configure other aspects of Nuxeo, you don't need to get the source code, you can simply browse the Platform Explorer Site that let you browse:
For each item, you can have access to description, XML definition and samples.
For an example, you can have a look at this Sample Link.
When you are not creating a real Nuxeo Plugin (i.e. a JAR), XML configuration files should:
- be copied in the "config" directory (
- have a filename ending with
- have a unique component identifier.
By default, XML files contributed in the "config" directory are loaded only when the server starts, so you need to restart the server to see your changes.
If you want to go further (or just prefer coding), you can of course use Java to build a new Nuxeo component.
One of the key points is that you don't need Nuxeo source code to do that:
- you don't need to have Nuxeo source code to be able to write a plugin,
- you don't need to rebuild Nuxeo to deploy your plugin.
Nuxeo Java components are deployed the same way as XML components are deployed, you just have to package the JAR correctly, copy it in the right location and restart the server.
In order to start coding you basically have 2 options:
The Tutorial (draft) - HTML (also known as the 'Learning Nuxeo DM' Guide).
This tutorial shows you how to extend and customize Nuxeo's "out of the box" functionalities in a step-by-step fashion.
The source code for the tutorial is held in the Nuxeo Subversion repository. Although the tutorial links to the source code in each chapter, it's listed again here for convenience:
- Source Code for Chapter 5: Your First Bundle
- Source Code for Chapter 6: Improving The Upcoming UI
- Source Code for Chapter 7: Internationalization And Localization
- Source Code for Chapter 8: Events And Event Listeners
- Source Code for Chapter 9: XMap And Logging
- Source Code for Chapter 10: Users and Groups
- Source Code for Chapter 11: Access Control And Security
- Source Code for Chapter 12: Relations And A Bit Of Content
To check out the source code from the Nuxeo Subversion repository you'll need the Subversion client installed. Once installed you can check out each chapter's source code by entering at the command line (for example):
svn export command checks out all the source for the lesson-bundle chapter into a directory called lesson-bundle, without any of the accompanying .svn files.
The sample project
In addition to the Nuxeo Tutorial, there is a sample project outlined in chapter 3 ('Getting started') of the Nuxeo DM Reference Book:
- HTML (Chapter 3 only)
The sample chapter builds on the tutorial, and illustrates a number of additional examples.
The source code for the sample project can be found in the Nuxeo Mercurial repository at the following link:
To check the sample code out from this remote repository onto your local machine, you will need to have Mercurial installed. Once you have Mercurial you can run:
This creates a directory on your local machine called "nuxeo-sample-project" which contains all the source code for Nuxeo the sample project.
The Mercurial repository contains branches such as '5.2' and '5.3'. You can see these branches by entering:
Check which branch you are in by entering in:
You can change branches by running for example (if you are currently in the 5.3 branch, and want to switch to the 5.2 branch):