The Nuxeo development team is happy to announce the release of Nuxeo EP and DM 5.3.2, the open source ECM Platform and Document Management application.
As you can guess from the version number, this is a maintenance release
that includes mainly bug fixes, but also numerous improvements, and some refactoring. Some of these improvements provide the power behind the upcoming new versions of Nuxeo Case Management Framework (Nuxeo CMF 1.1) and Nuxeo Digital Asset Management (Nuxeo DAM 1.1) that are built upon Nuxeo EP and DM.
Nevertheless, more than 300 Jira tickets have been resolved between Nuxeo DM 5.3.1 (that was released exactly 4 months ago) and 5.3.2.
The upgrade from 5.3.1 to 5.3.2 should be easy, see the upgrade notes below for more details.
Detailed release content
New configuration system
A limitation of the configuration system in Nuxeo 5.3.1 and prior versions was
that each platform upgrade needed the system administrator to reconfigure the
data sources and other system-level configuration files.
We have listened to our own sys admin (who was complaining about that when
upgrading Nuxeo Cloud instances) and have changed the way configuration resources are handled.
Basically, the software packages (EAR or WAR for DM, DAM, CMF ...)
don't include anymore resources for system level configuration.
These configuration files are now handled by a template system that:
allows you to easily change configuration (for example change the
storage configuration from a given database brand to another one);
allows for easy upgrades (since the new EAR or WAR won't overwrite
your custom config).
One of the direct advantages of this new system is that you can now very easily switch from the default embedded storage to a production-ready storage (for instance, PostgreSQL or Oracle).
You can find a detailed description of the new configuration system here.
New Tag Service implementation
The Tag Service has been completely integrated with the VCS (repository) core.
As a side effect, this means that Nuxeo Core can now handle low level
relations and this opens the way for more efficient queries on the Tags
and Relations.
These changes will be leveraged in the 5.4 release of DM.
Based on extensive benchmarks we did with 10s of millions and 100s of millions of documents in one repository, we've introduced new low level optimizations inside our VCS repository implementation.
We've also worked to improve Oracle database support and have ported our
security optimizations (already available on PostgeSQL) to Oracle.
Some of the VCS improvements won't be fully visible until we ship version 5.4 in Q4 2010, but the infrastructure work has been done and this opens the way for new features in the next release.
Packaging and installers
We have also worked on improving the way Nuxeo DM is delivered to the
end users that want to test the platform.
These improvements includes:
a new MS Windows installer including a small monitor and new Nuxeo control panel;
a ready to run virtual machine image (to run Nuxeo DM in VirtualBox or VMWare).
More translations
Thanks to the help of our community, we have a new translation to Polish (by Adam Lozy), as well as many improvements to the translations we had before: Arabic, Basque, Catalan, Chinese, English, French, Galician, German, Italian, Japanese, Polish, Portuguese, Brazilian, Russian, Spanish and Vietnamese.
Upgrade Notes
Code migration
5.3.2 is fully backward compatible with 5.3.1 (no compat package is needed).
So, you should have no issues with running your custom code against 5.3.2. If you have any problems, you can contact Nuxeo Support.
Packaging
The packaging system is basically the same as the one used in 5.3.1.
The only change that may have an impact involves resources that are now managed by
the new template system.
This means that resources are no longer embedded inside the EAR but
handled in a separated templates directory.
This makes changing configurations easier (like switching from H2 to
PostgreSQL) and will also allow for upgrades without having to redo all
custom system configurations.
The goal for this release was to extend the scope of the capabilities of configuration with Nuxeo Studio - and to ensure the usability of Nuxeo Studio to meet your integration projects.
We are happy with the results and are looking forward to getting your feedback! You can now implement document workflows, add custom traceability in any automation chain, let the user download files you created in chains, leverage the vocabulary labels to automatically build title of documents or update whatever metadata.
Furthermore, starting from the soon-to-be released Nuxeo DM 5.3.2, every automation chain you do in Nuxeo Studio will be exposed as a REST webservice - and Nuxeo Studio allows you to filter the access to those webservices.
Finally we did a lot regarding the usability and industrialization of the Nuxeo Studio development process: Versioning control of your configuration project, project version tagging, configuration project history, integration with Maven...
For testing this release, I used the scenario of tender management: implementing features such as worklow validation for tender pieces, publishing of the tender, downloading of all the published tender pieces of documents at one time, filling audit table for statics... Even though this is the third release I've worked on, I am impressed and surprised of how quickly you get the configuration done! Many thanks to the Nuxeo Studio team, which is already on track for the 1.4 shot, with exciting new features - can't wait to tell you more about it, stay tuned!
While the official release note is available - release note contains full details -we provide some key highlights and items to note here:
Main new operations:
Create task: You can now create and assign tasks to users from an operation chain. The "create task" operation is very configurable: you can choose which date, which comment, which directive you want, and also the assignment behavior. You can also compute, in the automation chain, the list of persons you want to assign the task too. Last but not least, you can bind automation chains to accept or reject events, thus designing a complete document workflow process.
Get users and groups: This new operation resolves all the users and groups having a given permission on a document. This is very useful, in conjunction with the previous "Create task" operation.
Get Principal emails: This operation returns emails of users having a given permission on a document. Can be used in conjunction with the "Send email" operation to send custom notifications.
Log Event in Audit: Thanks to this operation, you can now feed audit trail with custom events. If you provide a particular validation chain, you can add this operation in the end so that you add an entry in the document history, to log the execution of this particular chain.
Download file: This user interface operation enables you to provide buttons whose effect is to download a file in the end, that file containing a specific document, or a zip of a document selection, or a pdf transformation, or whatever you need!
Rest binding for Automation chains
Operations and automation chains are now bound to a REST API. As a direct result, you can use Nuxeo Studio to implement a custom REST API for you project - with not even one line of java code! See About the automation rest service for more information on using those webservices.
Better usability of Nuxeo Studio in integration projects
Projects are now under source control system: We integrated Git so that it is possible to commit configuration states, restore previous configuration states, tag specific versions of your project, be able to realize difference between versions and see history of the configuration. You will now be able to control what you sent in qualification, what is in development, etc... Also, it will make it easier to work as a team around a Nuxeo Studio project, as you can easily follow what happens.
Nuxeo Studio now integrates with Maven. If your project needs side eclipse development in addition to your Nuxeo Studio configuration, you can declare the Nuxeo Studio plugin as a dependency of your global development project, using Maven:
The "1.0" version corresponds to a tag on your Nuxeo Studio project.
When building your project, Maven will automatically download from the Nuxeo Connect platform your customization.
You can leverage System properties, for instance, to differentiate values depending on whether it is a dev, qualification or production platform. Nuxeo EP allows system properties values, which are properties defined in "properties files" in the config folder of your Nuxeo instance. A sample property file is the "notification.properties" where you store the url of your server to include it in email notifications. Now all those properties are loaded in Content automation context, and thus can be used in scripting instructions.
Various improvement/fixes:
Filter elements by path, make the "summary tab" visible for folderish types, make the "create documents " appear, be able to translate a vocabulary ID in its label (thanks to a scripting function), and make it possible to configure the fixed part of the advanced search...
We are happy to announce a new release of our ECM platform, Nuxeo EP, and the collaborative document management application built with the platform, Nuxeo DM. The version number for the platform and for Nuxeo DM is the same, 5.3.1. It is available today and we encourage all our customers and partners to upgrade. We encourage all our customers and partners to upgrade.
This new release mainly brings improvements and bug fixes to the software. We have improved existing components and services, but very few new API have been added. This new version is fully backward compatible, hence upgrade is painless and requires no data migration or code change (see upgrade notes below).
Major improvements:
The CMIS connector is now included by default.
OpenSocial support has been improved and upgraded (with OpenSocial 0.9 and OAuth support); more compatibility testing.
The default user interface is more configurable thanks to generalized usage of Layouts (and Nuxeo Studio).
Our storage engine (VCS) has been improved and optimized for higher data volumes.
See below for a more detailed description of this release's content.
Detailed release content
Security / UserManager
Computed group support
Default UserManager implementation now supports computed virtual groups.
Superuser configuration
The configuration to define the "administrator" global group (i.e.: role) has been extended.
You can now easily:
define your own "administrators" group
define several single Administrator users
JSF UI Framework
Layouts (forms/views)
The layout system is now used for:
document listings
summary screen
This makes the JSF UI more easily configurable.
As a side effect, Nuxeo Studio will now be able to let you customize document listing and summary screen content.
Widgets
More UI widgets have been packaged to be used in forms / views (ex: tags, comments, relations, user suggestion, etc.).
This provides better compliance with the JAX-RS standard and also allows deploying pure JAX-RS applications on top of Nuxeo.
Test framework
Thanks to the new test Framework included in Nuxeo Runtime (Junit 4 / Guice / WebDriver), you can now unit test Web Engine applications. See below for more details.
Storage / VCS
VCS is our document storage engine based on a relational database back-end.
Improved storage adapter for Oracle DB
Several small issues with VCS and hibernate have been solved to improve Oracle support. Improved performances thanks to some low-level optimizations.
Extended cluster support for VCS
VCS clustering is now available on all DB backends: H2, PostgreSQL, Oracle, MySQL, MS-SQL Server.
Query improvements
The NXQL query language has now support for:
ordered folders
ILike
NOT BETWEEN (bug fix)
Default indexing configuration
The default indexing configuration now leverages the supports for multiple full-text indexes.
one index for title
one index for description
one index for all text content
This makes the advanced search screen more powerful.
CMIS
Nuxeo has been working both on the specification effort on the CMIS (Content Management Interoperability Standard) standard, on a Java library under the auspices of the Apache Software Foundation (project Chemistry), and on the implementation of CMIS on top of a Nuxeo content application.
You can find more information on CMIS support on this wiki page.
Chemistry
Chemistry and the nuxeo-chemistry module now provide a better support for CMIS 1.0 in Nuxeo:
getDescendants and getFolderTree are now advertised, deleteTree works
allowable actions are now provided
regular support of Nuxeo documents that are in the trash (they are hidden from CMIS)
content streams are readable and writable for all documents that support them
CMISQL:
JOIN support has been improved
SELECT * now follows the spec
CONTAINS, IN_TREE and IN_FOLDER are now allowed
CMISQL can now easily be used from Java code in a Nuxeo application
partial SOAP server support with UsernameToken authentication
many bug fixes
CMIS support in Nuxeo DM
Nuxeo DM now comes with the CMIS connector by default.
OpenSocial / Dashboard
Shindig 1.1 and OpenSocial 0.9
Nuxeo OpenSocial integration is now based on Apache Shindig 1.1 that provides OpenSocial 0.9 standard support.
New gadgets in the Dashboard
The Nuxeo Dashboard now provides additionnal gadgets that can be used to customize your dashboard.
OAuth support
Nuxeo is now an OAuth consumer: this means you can have a gadgets that consume data from an external server supporting OAuth standard.
This has been successfully tested agains Atlassian Confluence 3 and Jira 4.
See [here] for more details.
Packaging
5.3.1 comes with new distributions profiles:
Nuxeo DM (including CMIS) on JBoss 4.2.
"Core CMIS Server" (a lightweight Tomcat packaging with Nuxeo Core and the CMIS connector).
Nuxeo DM on Tomcat with transaction management and pooling support (aka JTA/JCA).
We have generalized the use of nuxeo-distribution-tools which combines Ant flexibility and simplicity with power of Maven artifacts management.
This simplified packaging system is based on Ant XML syntax and usable either as a Maven plugin, as an Ant task, or as a standalone command.
There are no impacting changes on the storage structure.
If you want to leverage the new default indexing configuration (separated full-text index for title and description) you will have to update your reprository configuration (or use the one provided with 5.3.1) and build the new indexes.
Configuration
The opensocial.properties file format has been changed in 5.3.1, so you may need to use the one provided in 5.3.1 rather that trying to upgrade the one used in 5.3.
Dashboard
Dasboard initialized in 5.3.0 need to be migrated to 5.3.1.
You can use a simple nuxeo-shell script for that
Standards for Social Business: Support for OpenSocial allows the creation of gadgets to build web mashups within enterprise applications. Nuxeo DM 5.3 can serve as both publisher of gadgets as well as be an OpenSocial container, allowing the Nuxeo DM repository to host and participate in enterprise mashups.
Windows Sharepoint Services support: Access Nuxeo DM 5.3 via Microsoft Sharepoint for basic library services. Native integration with Windows Explorer ensures information workers can use familiar browsing habits to access Nuxeo DM content and perform common file operations. Microsoft Office integration allows files to be opened or saved directly to/from Nuxeo DM and lets users see information about their content directly from the Document Panel in Microsoft Office.
Federated publishing: Centrally control and publish content to remote Nuxeo applications, file systems, HTTP servers, web portals, and more thanks to a pluggable and unified Publishing Service. It is suited to deployments with a distributed information architecture, balancing ease of publication with requirements to for content control.
Tagging Services: Enhanced metadata capabilities ensures information workers can categorize their content in ways that make sense for average users. Tagging recommendations and tag cloud support enrich an organization's ability to describe and retrieve their information assets.
New Performance Record for Large Deployments: Faster search and retrieval benchmarks for Nuxeo DM repositories holding several million items for hundreds of concurrent users using inexpensive commodity hardware specifications.
Email Capture Enhancements for MS Exchange and Gmail: Improved support for email folders. Fetch email from Microsoft Exchange or Gmail to/from the Nuxeo DM 5.3 email archive folders to ensure contextual management of business communication.
CMIS Support: Ensure true interoperability across multiple ECM, ERP and search systems, Nuxeo DM 5.3 offers a CMIS Server via an add-on component, based on the CMIS draft 0.62.
Search/Indexing Improvements: Granular metadata search and indexing allows users to find and retrieve content based on one or more fields.
Improved Developer Productivity: Several enhancements have been made to make the experience of developing on top of the Nuxeo platform more productive and enjoyable.
From 5.2.1 to 5.3
Our initial plan was to release a 5.2.1 at the beginning of the summer.
But, for good or for bad, we were very busy working on customer projects and missed the windows of opportunity to make a release at the time.
So when we finally could focus on making a new public release of Nuxeo DM, we realized that we had done too much work to just call it a simple maintenance release.
That's why this present release is numbered 5.3.
In parallel, critical fixes have been back-ported in 5.2 as a service pack (Nuxeo 5.2 SP1).
Full backward compatibility
This release introduces new services and APIs, but we did not break any existing API.
This means that developments done against 5.2 should run without major problems against a 5.3.
Unlike the 5.1->5.2 migration that required compatibility packages, the 5.2->5.3 migration should be completely pain-less (see below).
Additional features in Nuxeo DM
As always, we tried to include in Nuxeo DM as many useful features as possible.
Nevertheless, all the new features provided by Nuxeo EP are not directly visible in Nuxeo DM 5.3.
There are several reasons for this:
the Nuxeo DM distribution is already pretty big
some of the technical infrastructure improvements can not be simply demonstrated
This means that new features in Nuxeo EP:
have been included by default in DM when it makes sense
are available as add-ons in the other cases
For the features released as add-ons, all necessary new APIs in Nuxeo DM are already part of 5.3.
What's new in 5.3?
Web features
During the last months we've worked with our partners and customers on several intranet and portal projects.
This means a lot of small improvements have been made to WebEngine and the Theme engine.
Tag Service
You can now add tags to Nuxeo Documents and:
search documents based on their tags
navigate the document database via a tag cloud
The tag service is only available when using VCS storage.
In the middle term, it could become a feature of Nuxeo Core.
Here is a demo:
Blogs
We finally released a simple Blog implementation using WebEngine framework.
This blog is a simple example of how Documents can be managed in the back-office (in the default JSF WebApp) and accessed via a public Web interface.
WebWidgets
The Theme engine of 5.3 comes with support for WebWidgets.
It allows to include UWA JavaScript widgets containers in the Themes.
WebWidgets are very close to OpenSocial gadgets (see below). In the future we will make converge these 2 javascript portlets models.
Because OpenSocial and WebWidgets are providing very similar features, WebWidgets are not part of the default packaging.
OpenSocial
Contributed by the community
If you were at last year's Nuxeo DevDay conference, you probably know that Damien Metzler [video proof] and his team from Leroy Merlin have been working on Nuxeo WebEngine and OpenSocial for some months now.
You can find more informations about their work on [Damien's blog].
They contributed a lot of their work on the integration of OpenSocial in Nuxeo:
Apache Shindig (OpenSocial server) as a Nuxeo Service
GWT based OpenSocial gadget container
WebEngine based OpenSocial portal
Integration of Shindig with Nuxeo's authentication and user management
Gadget persistence API based on Nuxeo's DocumentManager
Some slides about Nuxeo and OpenSocial:
Nuxeo 5.3 integration
Based on the work contributed by Damien's team, we rebuilt the Dashboard using the GWT gadget container and Nuxeo's REST API.
Basically, all most previously available portlets are still here but now:
users can customize their dashboard
add/remove new portlets (gadgets)
change layout
it's very easy to add specific gadgets
(HTML + JavaScript, instead of JSF + Nuxeo Themes)
Here is a video showing their work in action:
Currently, OpenSocial integration into DM is limited to Gadgets. It does not expose all the infrastructure work already done, nor does it exposes all advantages we can gain from the OpenSocial standard.
In the next months, we expect to also take advantage of OpenSocial social features.
Multi-instance management
Remote Publishing
The publishing service has been replaced by a completely new Publisher Service.
The new API lets you publish a Nuxeo Document to an abstract tree.
This tree could be:
a local Nuxeo Sections tree (as before)
a Section tree hosted on a remote Nuxeo server
a filesystem tree
a custom tree pointing to an external application
This service was designed to support decentralized publishing in Nuxeo, but can also be used to publish Nuxeo document to a existing portal or web site.
Nuxeo Replication
This new add-on provides an application-level replication service.
It is used to replicate changes (Documents, Audit, Directories...) from one Nuxeo instance to another.
Because this replication is managed at the application level, you can decide which part of your data you want to replicate. This replication scope is typically defined by a NXQL request.
This service has already been used to:
provide an offline client based on Jetty DM bundle
(replicate only the documents accessible by the user).
provide staging between several Nuxeo instances
(push a whole tree to staging).
Windows integration
Browser and Office helpers
Since we are not .NET and MSOffice experts, LiveEdit and MSIE plugin have always been a pain to package.
The good news is that we found someone to help us with this, and as a first step, we did a big code cleanup, some bug fixes and all .Net builds were now integrated in the CI chain.
As a consequence, it will be easier to maintain and improve these plugins.
Any feedback on these plugins will be helpful: we don't have many MSIE and MSOffice users on site.
WSS Extensions
Windows SharePoint Services (WSS) is a set of protocols published by Microsoft that describe how SharePoint communicates with the rest of the Microsoft world.
WSS has a broad scope and contains different technologies (FrontPage extensions, WebDAV, CAML, WebServices...).
For implementing WSS extensions for Nuxeo, we focussed of the interfaces exposed by SharePoint to client applications like MS-Office and Windows Explorer.
The goal is to let MS-Office and Explorer talk to a Nuxeo server as if it was a SharePoint server.
Since part of the work is boring protocol implementation (like implementing Front Page extensions), the Nuxeo WSS extensions are implemented by two separated module:
a generic handler that does not rely on Nuxeo framework code and provides a SPI (Service Provider Interface)
the Nuxeo WSS backend which implements the SPI on top of the Nuxeo EP services (Repository, Relations, Workflow, UserManager)
In order to use WSS you will need MS-Office 2003 or 2007.
See the screencast below for these features in action:
VCS improvements
Nuxeo 5.2 was the first version to ship with VCS, or "Visible Content Store", our SQL-based backend for Nuxeo.
Nuxeo 5.3 comes with a lot of improvements of VCS.
Performances
We did a lot of performances testing on VCS, using FunkLoad (our open source functional and load testing toolkit) and the importer (see below).
Based on our results and on the feedbacks from support, we did some performance improvements.
Security checks: low-level security checks have been optimized so that even filtering several millions of documents can be very quick.
Path-based queries: VCS now manages a new "ancestors" table that allows quick queries on the path.
Proxies optimizations: proxies search now avoids costly joins.
Thanks to these optimizations, browsing and searching on a repository with several millions of documents is not an issue, even with a cheap server.
Indexing
In addition of the CMIS Join support (see below), VCS now supports multiple fulltext indexes.
Database support
VCS has now been tested "in real life" with several database vendors.
We fixed a lot of small issues related to specific vendors.
Nuxeo DM is now completely CI tested (unit tests and functional testing) against target DBs.
New APIs
Some new APIs have been introduced to manage import and replication.
Nuxeo DocumentManager now support CMIS queries (including JOINS).
CMIS
We are actively working on Chemistry and CMIS, the public review of CMIS 1.0 has just started.
We will publish a demo server based on Chemistry + Nuxeo in a few weeks.
This tool provides a way to migrate JCR based repositories to VCS.
This add-ons contains 2 parts:
one exporter (JCR on 5.1.6 and 5.2)
one importer (VCS on 5.3)
Documentation about data migration is available here.
Improving the developer experience
Jetty / Tomcat support for DM
Nuxeo distribution now supports deploying Nuxeo DM on Jetty and Tomcat.
These distributions does not include any Java EE supports (Transactions, EJB3, JCA...), but provide the same ECM features.
These packagings are mainly targeted to development environment since startup is significantly faster than a complete JEE container (less than 40s for full startup).
In the near future (one month), we will add a Transaction Manager to the tomcat package, this will make the tomcat package completly ready for production.
JBoss speed-up
The JBoss deployer has been optimized to start faster. A full Nuxeo DM startup on a laptop with JBoss takes now 1m45 instead of 2m30.
NB: this speed improvement should be very significant on windows boxes having an virus scanner intercepting all file system accesses.
Seam Hot reload support
Seam components hot reload is now supported.
This can significantly improve development speed when using the JSF framework.
GWT integration in Nuxeo has been improved so that you can now run GWT Application in hosted most with a bundled Nuxeo server deployed inside Eclipse as a Jetty server.
It is now easier to build a GWT app that uses Nuxeo Platform:
in development mode, eveything is integrated into Eclipse
we provide a single API jar for all Nuxeo services
We're the friendly employees of Nuxeo, a leading open source software vendor, which develops a complete Enterprise Content Management (ECM) software platform to help companies better produce, process, publish, archive, expose and find their information from digital assets to transactional documents.
Recent Comments
Our tweets