Stefane Fermigier | 3 Feb 17:02
Gravatar

Nuxeo 5.2 M4 released!

Hi,

we've just released Nuxeo 5.2 M4. See below for the (biggest than ever!) release notes.

Many thanks to everyone who participated in this release!

This is the last milestone before 5.2 GA, expect a beta and a RC soon.

As always, your feedback is very welcome.

Enjoy,

  S.

--

Nuxeo 5.2 M4 has just been released.

This release the last milestone towards Nuxeo 5.2 which is still in active development, and due to be released at the end of February.

As such, you should consider it as experimental or unstable, and still use Nuxeo 5.1.6, available from http://www.nuxeo.org/sections/downloads/, for production, unless you have very specific needs and are willing to go though you own QA process or to work with us on making really sure that it fits your needs.

To try it out, grab the packages:

Or the installers:

Summary

Cleaner and leaner for developers, extra features for users!

Functional enhancements

  • Content Annotation Service: annotation document content and pictures (multi-GB ones), thanks to this in-browser HTML-based annotation technology, leveraging W3C Annotea.

  • Implementation of Microsoft Windows SharePoint Services 3.0 (WSS) for a native integration with MS Office and Windows desktops.

  • Virtual Navigation is now bundled by default and allows to browse the repository on several metadata axis.

  • Improved picture support: picture’s metadata extraction, picture libraries, in-browser crop/resize.

  • Theme Editor: added support for custom themes that can be created “through the web” and be stored without modifying the configuration of the application or needing a restart.

  • WebWorkspaces: expose workspaces on the web, exposing them as “dedicated collaborative mini-sites”, including document publishing, blogs and wikis.

Technical enhancements

  • Visible Content Store: new storage engine the repository (but continued support for Jackrabbit).

  • Improvement of WebEngine, the web framework for Content-Oriented Web Apps, now fully-based on JAX-RS and integrated with Eclipse IDE.

  • Advanced document conversion service, with improved caching and OpenOffice instances management (for office doc conversions).

  • Nuxeo Monitoring Services: access and expose monitoring data of components, accessible through HTTP and JMX.

  • Simplified and faster workflow service, leveraging jBPM properly and more integrated with the repository.

  • Cleaner, simpler event model (compatible with JMS, but JMS is not required).

  • Improved Audit Service, easier to customize and integrated with the new monitoring services.

Annotation Service

What’s new?

Nuxeo includes an annotation server based on the Annotea W3C standard. Users can use this service through the new “preview” tab of web UI. This enables users to annotate words or paragaphs of documents without modifying the actual content. Since Annotea is designed to handle annotation on HTML pages, the GWT Annotation client has been included in HTML preview screen.

Nuxeo’s implementation is compliant with Annotea standard (RDF based and Rest API), but we also provide specific extensions to:

  • handle annotations on images (select a fragment of picture instead of text fragment)
  • associate annotations with Documents and versions (Annotea only associates annotations to an URL)

More info

See the relevant chapter in the Nuxeo Book here: http://doc.nuxeo.org/5.2/books/nuxeo-book/html/annotation-service.html

Windows SharePoint Services

What’s new?

We have started implementing the “Windows SharePoint Services” protocols, namely WebDAV file upload / download and a small part of the WebServices.

This will give you native and transparent integration with MS-Windows and MS-Office, since both see Nuxeo EP as a SharePoint server.

Why is it good?

Basically, the Office integration doesn’t require anymore any other software installation. No need for addons or plugins to install in order to allow Office connects and works with Nuxeo.

Users can now:

  • open, create, save documents from Office to Nuxeo as easily as they can do with a SharePoint server
  • list the content of a workspace in Office

Virtual Navigation

The nuxeo virtual navigation plugin is now packaged with the release by default.

This allows the user to navigate the same content through many axes—not just the parent/child relationship that one expects for a set of files in directories.

With Virtual Navigation, the user may navigate by any axis, such as the “by country” or “by topic” options that are enabled by default. This navigation can also be used in conjunction with our user-defined vocabularies to enable navigation on any chosen set of dimensions.

More info

See the relevant chapter in the Nuxeo Book here: http://doc.nuxeo.org/5.2/books/nuxeo-book/html/vnavigation.html

Preview Support & Picture Support

Nuxeo now includes a preview service that is able to generate an HTML preview from Document stored in the Nuxeo content repository.

Depending on the configuration, preview can be generated from one or several files included in the Document.

Also depending on the configuration, the preview can be generated on the fly using converters or can be based on pre-processed files stored directly in the document.

Basically, the preview service is pluggable to allows definitions for each type of document and each mime-type as to how the HTML preview should be generated.

Preview is available for most common file types (MSOffice, OpenOffice, PDF) but also for pictures.

In order to manage big pictures (hi-def photos), the preview leverages Nuxeo’s tiling service and a GWT client that allows zooming and browsing into the image without needing to download the entire image at once.

Themes

The theme editor now requires Administrator privileges, protected themes against unwanted modifications by unprivileged users.

A significant effort has been put into simplifying the creation and the management of themes through the web, without requiring the application to be redeployed and the server restarted. This allows end-users who have sufficient privileges to create and save their own theme while the application is running.

Custom style presets, i.e. color, font, background properties, can now be created through the web. Previously they needed to be registered as static configuration files.

WebWorkspace

What is new?

This is the beta release of WebWorkspace that allows easy creation of web sites whose content lives in a Nuxeo repository. This feature is built on WebEngine and JSF and is visible in all Nuxeo workspaces. By just clicking a checkbox, you can enable access to the workspace from the web.

You can define:

  • the URL of the website
  • the template used for the content of the website
  • coming soon: you will be able to define it’s theme using Nuxeo’s theme editor

Visible Content Store

What has changed?

Although the repository API and high level features remain the same, we offer a new storage engine. In addition to the Jackrabbit store, we now offer a native engine for RDBMS databases: Visible Content Store™. The relational data model is based on the XSD schemas; this basically means that the RDB model is now fully compliant with the business domain model. We believe it’s a great technology and will enable a range of new apps and integration mechanisms for our customers.

Why is it better?

The data stored in the RDB is no longer cryptic and opaque, as it is with Jackrabbit’s mapping. This has a number of benefits for data processing:

  • you can see and debug your data in the SQL database,
  • you can do simple batch processing for mass import and export,
  • you can migrate your schemas easily,
  • you can plug any SQL-compliant reporting tool to do reports on top of the Nuxeo repository.

The Visible Content Store™ repository itself is also an important step because it opens the way for a lot of low level optimizations:

  • denormalization for speed,
  • per-database data structures (arrays, uuid types, indexes, full text),
  • per-database stored procedures for speedups,
  • it opens the way for extending our search model to also support efficient join with Relations and Audit,

Visible Content Store also opens the way for additional high-level features like tree-based versioning, mixins, user-defined schemas.

WebEngine

What has changed?

Nuxeo 5.2 M4 includes WebEngine RC2. WebEngine is a new web framework to create content-oriented web apps. It is now based on JAX-RS (Java API for Restful Services, aka JSR-311), making it an attractive tool to build RESTful services and applications on top of the platform.

  • Simplified the web module declaration and packaging
  • Full lazy loading of web modules.
  • Hot reload of Java classes residing inside WebEngine modules.
  • Eclipse plugin to develop webengine modules including:
  • A WebEngine project nature.
  • WebEngine server view that allows deploying WebEngine module projects on a remote WebEngine.
  • Starting a remote WebEngine in run or debug mode from eclipse. (Eclipse run configurations are used)
  • Transparent java classes reload on the remote WebEngine server as java sources are modified (and saved) in eclipse.
  • Modules can now be “headless” if they have no web GUI.
  • Groovy is still supported but is now not turned on default. Groovy code can also be hot-reloaded from the Eclipse UI.

The Eclipse plugin is available as an eclipse update site at http://download.nuxeo.org/nuxeo-ide/updates/snapshots/. It makes the development experience a real bliss for content-oriented apps developers!

Why is it better?

  • Allows much tighter, faster development loop for Java developers using WebEngine inside eclipse.
  • Allows easy creating of RESTful Web applications that integrate with the Nuxeo platform.
  • Headless modules can be used to implement REST-based web services that do not have a user interfaces.

Conversion Service

What has changed?

The Transformation Service had some API design issues that we wanted to fix.

This required defining a brand new interface, so we decided to create a new service name to avoid any confusion.

Why is it better?

  • API is now simpler: there are only “converters”, not transformers and plugins like previously.
  • It includes by default a cache system (caching transformation results)
  • data input/output is handled by BlobHolder interface, no more TransformDocument or plain Blob
  • ConversionAPI now provides an API to know if converter is available, this is useful when the converter depends on an external program that must be installed on the server (like OpenOffice server)

About compatibility

Transformer API is now deprecated and the old transform implementations and plugins have been removed from default distribution.

A tranformer-compat bundle is provided for compatibility.

Transformers API is still available, but the implementation now wraps calls to the ConversionService.

This means you can use the new Converters from the old Transformation service API.

All default included Transformers have been migrated to Converters with the same name.

Code that was using transformers should still work in 5.2.

If you have contributed Transformers, they will be available as Converters 
via the compatibility API, but you may have to change the Required-Bundle in the MANIFEST.MF of your bundle.

More info

See the relevant chapter in the Nuxeo Book here: http://doc.nuxeo.org/5.2/books/nuxeo-book/html/nuxeo-conversion.html

Monitoring Service

What’s new?

Nuxeo Runtime now includes a module to expose Nuxeo services and extension points via JMX. Each service can also expose the data is wants easily thanks to this new feature. An HTTP interface to browse exposed services and data is also providing to ensure maximum compatibility and integration capabilities with your monitoring systems.

Why is it good?

You can now use standard tools like the Java Management Console to monitor and administrate all services of Nuxeo’s platform.

More info

See the relevant chapter in the Nuxeo Book here: http://doc.nuxeo.org/5.2/books/nuxeo-book/html/nuxeo-management.html

Workflows

What has changed?

The Workflow service has been completely re-coded from scratch. It still uses jBPM, but the WFMC API on top of it has been removed.

Why is it better?

Defining workflows is now much easier: you only have to know jBPM, there is no longer a need to go through the WFMC mapping. The full power of the jBPM engine at your hands… ;-)

This also means that defining processes in Nuxeo is now straightforward for a jBPM-skilled developer, the JBPL definition holds more logic and you can use a jBPM visual editor to set up the process.

Moreover, the new service delivers higher performances on the UI side.

Next step: extend the JPDL expression language to expose more generic Nuxeo primitives, improving JBPL integration with the platform.

About compatibility

Existing workflows have been rewritten using the new service and are available in the UI.

But, there is no transparent upgrade (sorry for that), but it is still possible to deploy the old workflow stack on 5.2M4 to use existing processes without rewriting them.

Event Service

What has changed?

We now provides a new API and extension point system to:

  • fire events or event bundles
  • register event listeners

Previously, we had to different models: CoreEvents + CoreListeners / JMSEvents + Message Driven Beans. Starting with 5.2-M4, the model is now completely streamlined. JMS is still used when needed, but it’s now an implementation detail of the platform, and it’s transparent for the listeners.

Why is it better?

The API for sending an event is now far simpler, as well as unified.

Writing an EventListener is also simpler:

  • no need to write a Message Driven Bean (MDB)
  • no need to handle Authentication/Repository initialization
  • there are only 2 interfaces: EventListener / PostCommitEventListener
  • you can use a simple script!

EventListeners can now be:

  • synchronous: on the fly processing within the same transaction
  • postcommit synchronous: just after the commit in a new separated transaction
  • postcommit asynchronous

The new eventListener system also manages these transactions for you.

One of the key benefit of this simplification, is that JMS is no longer a required dependency: you can have asynchronous listeners without JMS.

Thus:

  • we can embed more services in a lightweight container (jetty, tomcat, gf3 prelude)
  • you can now easily unit test your EventListeners without requiring to setup a JMS service

About compatibility

We provide a nuxeo-core-event-compat package that re-enables old event system:

  • run transparently old CoreListeners
  • forward to the old JMS Topic
  • triggers old MDBs

If you need the old API for sending events/messages, just deploy the old nuxeo-platform-event-* packages.

More info

See the relevant chapter in the Nuxeo Book here: http://doc.nuxeo.org/5.2/books/nuxeo-book/html/nuxeo-events-5.2.html

Audit Service

What has changed?

Audit service is now far more easier to configure to get customized logs (infos to log on events), no need to contribute a Entity class; just configure your log format (XML) and we do the rest!

Audit service is now based on the EventService allowing it run in unit tests and inside lightweigtht containers (see below).

The Audit service is now integrated into the Nuxeo Management extensions, so you can get informations from Audit via JMX.

We also did some API cleanup.

Why is it better?

Configuring Audit log is now easy: you can now leverage this to build a custom application level log to monitor usage of the platform and build business reports on top of it.

About compatibility

If you haven’t customized your AuditLog format, migration is transparent (the system migrate the tables). If you have, you need to configure your audit log format in the new service first.

More info

See the relevant chapter in the Nuxeo Book here: http://doc.nuxeo.org/5.2/books/nuxeo-book/html/audit-service.html

Nuxeo Theme

Theme Engine

The Theme Engine can be used directly with WebEngine. This allows themes created under Nuxeo EP and running on JBoss to be reused in a pure WebEngine environment provided that new views have been defined:

Declared views now require a “template-engine” attribute:

<view name="breadcrumbs" template-engine="freemarker"> <format-type>widget</format-type> <template>widgets/breadcrumbs.ftl</template> </view>

If no “template-engine” attribute is specified, then “jsf-facelets” is assumed by default. This is meant for backward compatibility with existing Nuxeo EP applications.

You are invited to update your custom JSF view declarations to remove warnings at startup. Simply add: template-engine=”jsf-facelets” in your theme contribution file:

<view name="my widget" template-engine="jsf-facelets"> <format-type>widget</format-type> <template>widgets/my-widget.xhtml</template> </view>

Theme Editor

The Theme Editor application has been ported to WebEngine which allows it to run natively in both JSF and Freemarker environments.

Access to the theme editor requires Administrator privileges which means that themes are protected against unwanted modifications.

Large effort has been put into simplifying the creation and the management of themes through the web, without having to redeploy the application and to restart the server.

Custom themes created in the theme editor are thus stored in the temporary folder of the application server in:

/opt/jboss/server/default/data/NXRuntime/themes/ under JBOSS

and in:

/opt/nxserver/themes/ under Jetty and Glassfish

This allows end-users who have sufficient privileges to create and save their own theme while the application is already deployed.

Custom style presets, i.e. color, font, background properties, can also be created through the web. Previously they needed to be registered as static configuration files.

Custom presets are defined per theme. They are stored in the theme’s XML file under <presets>:

<?xml version="1.0" encoding="UTF-8"?> <theme description="" name="my-theme"> ... <presets> <preset category="font" name="default">14px Arial</preset> <preset category="background" name="button">url(/skin/app/img/bg-button.png)</preset> <preset category="color" name="blue">#009</preset> <preset category="color" name="light gray">#ccc</preset> </presets> ... </theme>

A Style Manager and a Preset Manager have been added to the Theme Editor to simplify the management of styles and presets.

Any color found in a theme which is not declared as a preset can be easily converted into a preset.

Indexing & Search

What has changed?

SearchService has been deprecated -> M4 does not depend on Compass/Lucene for indexing and search.

Complete indexing/query support (including full text) is now provide directly by the repository (on both VisibleSQL and JCR backends).

Why is it better?

  • This should fix the problems we have seen with Compass/Lucene locks
  • Complete indexing/query support even for embedded packagings (such as Jetty)

Compatibility

Full compatibility is providing, thanks to NXQL and a pass through in the previous SearchService (which actually requests the repository).

Nuxeo Directory UI

What has changed?

Default Users/Groups management screens now use the Layout Service for forms definition and rendering.

A new JSF component to handle a “suggestion box” on top of directories.

Why is it better?

You can now customize easily Users/Groups screens.

You can easily integrate users/groups or any directory search in your layouts or XHTML pages.

Misc additions

Command-line Service

Allows you to configure external command line tools that you want to use from within Nuxeo.

The service handles:

  • configuration of the command lines (with OS specific options if needed)
  • mapping of command I/O
  • API to test command availability
  • API to get installation message

OOo server daemon

OpenOffice.org server can now be managed by a Daemon hosted in Nuxeo.

The daemon provides:

  • automatic OOo installation discovery when possible
  • automatic OOo start: off / on Nuxeo startup / on first usage
  • OOo instance pooling

Addons that are now part of the default distribution

  • Preview service
  • Tiling service
  • Annotation service
  • Virtual Navigation
  • PictureBook and imaging services
--
Stefane Fermigier, Founder and Chairman, Nuxeo
Open Source, Java EE based, Enterprise Content Management (ECM)
Web: http://www.nuxeo.com/ - Tel: +33 1 40 33 79 87
New: follow me on Twitter: http://twitter.com/sfermigier

_______________________________________________
ECM mailing list
ECM@...
http://lists.nuxeo.com/mailman/listinfo/ecm

Gmane