Nuxeo/Blogs

Product & Development / All about the Nuxeo Platform, from strategy to feature highlights to dev tricks

Nuxeo EP 5.4 release notes

without comments

We have released today Nuxeo EP 5.4, which includes the following packages:

Release spotlights:

  • 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

Infrastructure improvements

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.

Dependencies management

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.xml files 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.

Deployment model

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

You can get more informations about this static EAR deployment here.

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

The MANIFEST files 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:

  • Hibernate
  • 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:

Versioning model

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
  • multiple ecm:fulltext searches 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
    (http://doc.nuxeo.com/display/NXDOC/Fulltext+queries)
  • 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.

CMIS

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.

Faceted Search

Nuxeo DM now integrates a new navigation system (based on Content Views): Faceted Search.

Screen shot 2010-11-09 at 2.36.56 PM

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.

Theme editor

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.

Screen shot 2010-11-09 at 2.24.24 PM

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.

Screen shot 2010-11-09 at 2.52.03 PM

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.

Monitoring

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 template_name.target property
  • templates files to be parsed are configurable, allowing use of template to deploy binaries for example
  • JBoss templates use the nuxeo.data.dir property (like Tomcat templates) instead of jboss.server.data.dir
  • 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.

Screen shot 2010-11-09 at 2.28.21 PM

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

Misc improvements

More than 150 tasks where closed for this release, among them we can state:

OOo integration

Nuxeo EP now integrates a new version of JODConverter that includes a complete manager for an OpenOffice.org process pool.

WebEngine improvements

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.

Upgrade notes

Code migration

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.

Acknowledgements

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!

Next steps

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.

November 9th, 2010 at 4:03 pm

Posted in Product & Development

Tagged with ,