We have released today Nuxeo EP 5.4, which includes the following packages:
- Nuxeo DM (Document Management) [more info]
- Nuxeo CAP (Content Application Platform) [more info]
- Nuxeo Core Server [more info]
- Improved the packaging and deployment models
(including support for JBoss AS 5.1).
- New Administration Center, Update Center and Marketplace.
- Repository improvements including better CMIS support (based on Chemistry/OpenCMIS)
Detailed release content
This 5.4 release comes with significant infrastructure improvements.
The main goals of these improvements are:
- To be able to support more deployment targets.
- To be able to run on containers with little or no modifications.
The Nuxeo dependencies management system has been changed:
- to be more compliant with OSGi.
- to be more consistent.
Deployment-time dependencies are no longer declared at the MANIFEST level, unless this is really meaningful for OSGi deployment.
This means the
deployment-fragment.xmlfiles now hold all the deployment dependencies information (there is no more need to worry about classloader issues in Java and JEE deployments).
All standard Nuxeo Bundles have been migrated to this new model, but a compatibility mode is also provided.
We have also worked on simplifying how the Nuxeo platform can be deployed on JEE server like JBoss.
Basically, we have reduced the configuration changes and upgrades needed at the application server level to deploy Nuxeo.
To do that, we have aligned Nuxeo JEE deployment on JBoss AS 5.1, thus reducing the upgrade needs (Nuxeo's JBoss 4.3 was indeed massively updated and patched).
Nuxeo can now be deployed on JBoss AS 5.1 / EAP 5.01 in 2 modes:
- dynamic EAR:
- exploded EAR that can support dynamic addition of components and configuration
- single external deployer lib
- static EAR:
- solid EAR with fixed configuration
- no external nuxeo lib needed
While redefining how Nuxeo is deployed on JBoss AS, we have also aligned the JBoss packaging with the Tomcat packaging, so now all distributions use the same logic for assembly and deployment.
Because JBoss AS 5.1 is consumes significantly more memory than the previous version, we switched the default distribution to be the Tomcat one.
This distribution does not contains an EJB3 container, but:
- we have integrated a JTA transaction manager and a JCA connector (so it's safe and efficient)
- it uses far less memory than the full JEE deployment
- it starts a lot faster (which is important for the development and test phases)
OSGi deployment compatibility
MANIFESTfiles of Nuxeo Bundles have been aligned on the OSGi spec so that they can be used by an OSGi runtime like Eclipse Equinox to deploy and run Nuxeo components.
This was already the case for some bundles on Nuxeo EP, but the support has been extended to all platform bundles except the some Web Layer components.
We are currently finishing the setup of OSGi repository for third party libs and working on the best procedure to allow to run and develop with Nuxeo EP using both Java/Maven and OSGi modes.
Now that the infrastructure work has been done, the additional documentation and tools should be available is a few weeks.
Third party lib upgrade
As a side effect of the JBoss AS 5.1 alignment, this 5.4 release comes with upgrades for several third-party libraries used by the framework:
- JBoss Seam
- RichFaces / JSF / Facelets / JSTL
This upgrade provides several advantages:
- Nuxeo patches are not needed anymore
(we upgraded to version where the bugs are corrected)
- No more need to upgrade / patch the libraries in the application server
(we aligned on JBoss AS 5.1)
- Leverage new features available
(Oracle 11 support in Hibernate, Seam RSS and Excel generation...)
So to summarize the gains of this infrastructure work, Nuxeo DM 5.4 now has:
- A clean JBoss packaging that can be used on a vanilla JBoss AS 5.1
- Support for static EAR deployment that opens the way for supporting many more application servers
- Support for deployment on OSGi environments like Eclipse Equinox
Content Repository (Nuxeo Core)
As usual, this new release of Nuxeo DM comes with some improvements inside Nuxeo Core (the Nuxeo Content Repository).
Among the different changes, the main ones are:
Nuxeo 5.4 introduces a new versioning model that supports explicit check-in and check-out.
From the Nuxeo DM web interface changes are very small, but some low level API were added:
- you can now have Documents that are only checked in (not checked out "live" documents)
- it's now very easy to use the "private working copy" model
This new explicit versioning model was introduced for two reasons:
- some projects wanted to have explicit check-in / check-out actions
- it provides a better mapping for CMIS
Query and Indexing
Queries (NXQL) have been enhanced with support for additional features:
- ILIKE (case-insensitive LIKE) can now be used with multi-valued properties
ecm:fulltextsearches can be done in a single query
- the fulltext query syntax has been extended to support OR,
negation, and phrase search for databases that support it
- you can now make negation comparisons on a path (
ecm:path <> '...')
VCS Client mode
The VCS back-end (Nuxeo's native SQL store) now supports a client-server mode, where a Nuxeo instance can access via http to a remote VCS repository in a very efficient way:
- Transactions are propagated and all clients have Read/Write access
- The VCS Client acts as a proxy cache to the remote repository
JCR support discontinued
We have decided to discontinue the support of the JCR Backend starting with the 5.4 version.
This decision is driven by the following facts:
- All the people (that we are aware of) running recent version of a Nuxeo distribution are using the VCS Backend
- Some crucial features are only available in VCS (Clustering, Tagging, Join Queries, Core Relations, VCS Client...)
- JSR-170 is not the preferred interoperability solution now that CMIS is available
Now that only VCS is supported, it allows us to have true UTF-8 path segments and document names so that CMIS and FileSystem level binding have less problems with Name vs Title mismatch.
Nuxeo 5.4 now includes the new CMIS java implementation provided by the Apache Chemistry project: OpenCMIS.
This new binding provides a broader support for the CMIS standard:
- versioning support
- audit support
- better CMISQL query support (including JOINs and fulltext search)
- better document names
- full AtomPub and SOAP bindings
If you want to run interoperability tests against your own CMIS client, you can use the http://cmis.demo.nuxeo.org demo server.
UI and customization
Nuxeo 5.4 comes with additional or improved tools to help you easily customize your Nuxeo Application.
Widgets, Layouts and Content Views
The Widgets and Layouts system has been improved:
- More properties on layouts to handle column selection
- Easier Studio configuration and documentation thanks to widget types export information
- Better AJAX refresh and dynamic generation of layouts
A demo site showcasing these improvements is available at http://layout.demo.nuxeo.org/
In addition, Nuxeo EP 5.4 introduces a new concept: Content Views.
Content Views provide a single concept to define and configure:
- A parametrized query
- A form to enter parameters for the query
- Result columns selection, associated layout and batching size
Content views are used to manage all folder listings and well and advanced search.
For more details about Content views, please see the online documentation.
This is also the infrastructure used to built Faceted Search.
Content views are configurable via XML and via Nuxeo Studio so that you can easily customize the search and result screens.
The Content Views and Layout system have been designed as generic as possible, so in the next months we will introduce:
- Content View support for Audit entries and Directories
- Content View and layout support in GWT and WebEngine
- RSS, ATOM, CSV and Excel exports on Content Views via dedicated layouts
The final goal is to have one concept and one configuration tool for most screens.
You can already find on the market place the [TODO: "Smart Search" link] addon that uses Content Views to provide smart folders.
Nuxeo DM now integrates a new navigation system (based on Content Views): Faceted Search.
This new tools allows you to:
- Navigate via search and easily refine your search
- Save your searches
- Share your saved searches
- Easily adapt the search facets to your business needs
(via Content Views and Studio)
You can consult the user documentation for more details about this new feature.
The theme editor has been deeply redesigned in order to be easier to use.
Several customization levels are now provided:
- Presets selection (via Theme banks)
- CSS edition
- Full featured theme editor (including canevas and fragments)
To learn more about the new Theme Editor, you can read the NXthemes blog.
Administration and addons management
The 5.4 release comes with a new Admin Center where we added all the new administration related features.
Update center and marketplace for addons
The Update Center is really one of the corner stones of this new release of the platform.
We have built Nuxeo EP as a very modular platform so that you can easily deploy additional components and configurations.
Nuxeo Update Center is basically a way to easily leverage this powerful characteristic.
If you look at our source repository you will see a lot of available addons and sandbox projects for Nuxeo EP. Some addons have also been developed by partners or our cummunity, and are available in other repositories.
The main problem until now was that you have to build them and install them "by hand" in your instance.
With Nuxeo Update center, we are able to make theses additional features easily accessible.
The package installation system manages all the required work for you:
- Download the package
- Check and download required dependencies if needed
- Run the installation
- Hot-reload when applicable
- Provide uninstall procedure
We expect to publish via the Marketplace a lot of the existing addons and sandbox projects.
In addition, Nuxeo Update center will also be used to provide update packages such as:
- Back-ports of patches and performance improvements
- Previews of upcoming new features
Of course Marketplace is also open to everyone wanting to provide new Nuxeo addons.
Among the numerous projects using the Nuxeo platform, we know that some of you have developed great plugins that could benefit the community.
We will provide tools and support for those who are interested in publishing their addons.
When used in conjunction with Nuxeo Studio, the Update Center allows you to easily download and install your Studio Project.
This provides a efficient solution for both:
- Rapid development and testing cycle with Nuxeo Studio
- Easy deployment solution
In the future, we may expand the Update Center system so that it can be used to deploy project-specific packages on a dedicated instance group.
Anyway, this is just the beginning and you are all welcome to test and play with this Update Center and the Marketplace, and also to give us feedback about them.
The Admin Center also integrates some of the monitoring features we have developed for projects:
- Event bus statistic collection
(Useful for detecting bad listeners and monitor event bus activity)
- Extensible Probe system
(Useful to check availability for some services and collect metrics about you Nuxeo based application)
- Status management
(Useful to enable/disable high level services)
In the future, more and more monitoring and administration tools will be made available via the Marketplace and the Update Center.
Improved the configuration templating system
Nuxeo configuration templates have been improved and extended:
- update for JBoss 5 compliance
- update for Tomcat compliance (with new standardized structure)
- new templates for Tomcat: PostgreSQL, Oracle, MsSQL (MS-SQL Server)
- new templates for JBoss: MsSQL (MS-SQL Server)
- new templates properties: cluster options, parsed files extensions
- allow use of other JBoss configuration than "default"
- ability to deploy resources anywhere in the server using
- templates files to be parsed are configurable, allowing use of template to deploy binaries for example
- JBoss templates use the
nuxeo.data.dirproperty (like Tomcat templates) instead of
- ability to change binaries directory
- manageable from the Admin Center
The templates properties are now configurable from a web interface inside the Admin Center.
You can now directly change the templates properties without directly editing files on the server.
This provides, for example, an easy way to do simple configuration changes like:
- Select the Database config (easy switch to PostgreSQL or Oracle storage)
- SMTP settings
- OpenOffice.org server configuration
More than 150 tasks where closed for this release, among them we can state:
Nuxeo EP now integrates a new version of JODConverter that includes a complete manager for an OpenOffice.org process pool.
WebEngines application are now by default fully stateless and transaction aware.
Content Automation improvements
Some additions have been made to Content Automations, in particular in the scope of the new Nuxeo Document Routing service.
Java 6 support only
We discontinue support for Java 5 starting with this release.
5.4 is backward compatible with 5.3.2 (no compat package is needed).
Packaging and dependencies
There are some changes in the bundles packaging and dependencies declaration.
Please see http://doc.nuxeo.com/display/NXDOC53/Migration+to+5.4+and+JBoss+5 for a step-by-step guide.
This release was made possible thanks to the hard work of the whole Nuxeo development team and to many external contributions (ideas, bug reports, bug fixes, translations, code contribution) from our customers, partners and community.
Overall, 450 tasks and issues have been closed in the course of this iteration, which is a new record!
Come to Nuxeo World next week where we will discuss with our community in greater details all the new features of the Nuxeo EP 5.4 release, as well as brainstorm our plans for the next major release, scheduled for 2011.