image/svg+xml

Escenic Content Engine Release Notes 5.7.0.149872

Table of Contents

Highlights
Improved performance when re-indexing Solr
Content type permissions
Improved preview function in Content Studio
Pinning list items
Read-only mode
Amazon S3 binary storage
Moving sections and section contents in Content Studio
Improved tag search
Other Additions and Improvements
Added support for a new pattern when defining the pretty url of an article
Added the possibility to retrieve the tag description in the presentation layer
Content Studio now shows publishing state of section pages
Logging for Content Studio HTML components
Solr upgraded to 4.6.0
XInclude supported in resource files
Content Studio can now open external Atom entries
Content Studio can search in an external system
First binary content type for a given MIME type is now default
Source and sourceId of persons and sections are now visible in Content Studio
Content Studio now supports round robin DNS
Exported section pages now contain publishing state
Exported Sections include source/sourceid
Publication creation with content now supports binaries
Content studio side panel buttons
Finer-grained section page locks
Performance monitor in Content Studio
New configuration layer for web applications
neo.xredsys.api.IOObject.lock() hardened
Alignment options for inline images
Automatic failover for import service
Info links on escenic-admin services page
Memcached client included in engine distribution
Content Studio related content area is now dockable
Increased memory in default content studio settings
Content Studio thread dump
Content Studio logging configuration
Content Studio performance summary
New Java API for managing tags
Added implementation of PresentationCollectionFieldValue for Tag and TagStructure in the presentation API
Unsupported JDK warning added to escenic-admin
Solved Problems
Improved section search
Redirection to image representations with pretty URLs now works
Related content items are refreshed immediately after adding new items
Lists are loaded immediately after opening them in Content Studio
Fixed possible StackOverflowError in ApplicationPresentationLoader
Fixed unnessary re-indexing of articles when importing sections
"Duplicate as Image" now works
Hardening of lock and release
Fixed problem with stale articles in cache when deleting a section
Fixed possible NullPointerException when accessing a PresentationArticle from outside of a Http request
Keyboard shortcut for publishing section pages now works
Fixed memory leak in XOMUtilities
Improved handling of non existing sections in collection fields
LRUCache no longer throws java.lang.IllegalArgumentException
Fixed problem making it impossible to use '\n' in section parameters
License web service includes all libraries
Fixed problem causing binary files not being moved to archive or error directory
Field arrays are now exported correctly
Stop-words list may now contain both uppercase and lowercase letters
Case-sensitive tagging now supported
Pre- and PostTransactionFilters now supported for all IOObjects
Improved display of inaccessible related content items
Removed content items now also removed from lists and inboxes
Deprecated methods removed
Configure research panels dialog layout fixed
Delete option now enabled in list context menu
Duplicate source/sourceID problem fixed
Content items with more than one set of field options can now be saved
Fixed problem with modified section parameters not being accessible in a TransactionFilter
Adding a content item to a section twice no longer fails
Editor synchronization improved in Content Studio
Content item section list now rendered properly
Default timeout now used when retrieving external content
API events now get sent correctly
Find/replace dialog focus improved
Added/removed authors can now be detected by transaction filters
Upgrade Instructions

Highlights

Improved performance when re-indexing Solr

Issue VF-5280

In previous versions, re-indexing Solr instance was slow. This performance has now been improved by applying several different changes:

* The engine-indexer-webservice will now return a batch of documents instead of only one document as before. This will reduce network overhead.

* The engine-indexer-webservice will now return Solr compatible XML instead of a XML format that later had to be transformed. This will reduce CPU usage.

* The indexer-webapp has become multithreaded. It will now by default use up to 6 threads. One for processing head, one for processing tail and 4 for re-indexing. When not re-indexing, the webapp will use 2 threads.

Benefit

Improved performance

Areas affected

indexer, performance, solr

Impact

Medium

Side effects

The added number of threads will increase both CPU usage and database load when re-indexing.

Upgrade tasks

[Phase 1] The XML format returned from engine-indexer-webservice has changed. Anyone using this webservice directly must change their code to reflect the new changes.

Content type permissions

Issue VF-5236

It is now possible to assign content type permissions to Content Studio users. That is, you can restrict a user's ability to read and write content items of specific types. A user may have the following access rights to a content type:

  • None, in which case the user will never see content items of this type when working in Content Studio.

  • Read, in which case the user will see content items of this type, but not be able to change them.

  • Write, in which case the user will have full read/write access to content items of this type.

This feature is particularly useful for hiding Widget Framework widgets from editorial users of Content Studio.

By default, users do not have access to any content types. Access rights can be assigned to users by using the person and user group editors in Web Studio. For details see http://docs.escenic.com/ece-pub-admin-guide/5.7/content_types.html.

It is also possible to give users global access to all existing and potentially future content types by assigning the user a global role. Two new global roles have been created for this purpose: one that grants global read access to all content types, and one that grants global write access to all content types. These roles are also assigned to users using Web Studio. For details see http://docs.escenic.com/ece-pub-admin-guide/5.7/global_roles.html.

Assigning the global write access role to all users effectively recreates the access rights users had prior to version 5.7.

When you create a new publication, the publication administrator is always assigned global read and write permissions to all content types.

Benefit

Improve usability

Areas affected

api, Content Studio, core, security

Impact

Medium

Upgrade tasks

[Phase 2] After upgrading from 5.6, users will not have access to any content types. To automatically grant all users access to all content types as before, you must:

1. Open this page in a browser: http://server/escenic-admin/browser/Global/com/escenic/upgrade/ContentTypePermissionService.

2. Change the publication property to a comma-separated list of publications you would like to upgrade. If you want to upgrade all publications, set the property to '*'.

3. Set the serviceEnabled property to true.

4. invoke doStartService and verify that the serviceRunning property is set to true.

5. Invoke upgradePublications.

The service then:

1. Creates a user group called ece57upgrade in all the publications you specified. (If you want you can set a different name for the group by setting the targetUserGroup property before you start the service).

2. Assigns the Write all content types global role to the user group.

3. Add all users in the publication to the group.

4. Assigns the Write all content types global role to the publication administrator.

Improved preview function in Content Studio

Issue VF-5246

Content Studio has a completely new, improved preview function for content items and section pages:

  • Previews are now displayed on a tab in the section page/content item editor. The old browser-based preview function is retained as an additional option.

  • The new previews are "device-sensitive" - you can switch between large, small and medium options to see how the page looks on different devices.

  • The large, small and medium options can each be set to a range of different resolutions, allowing you to preview many different device sizes.

  • A time control lets you preview a section page's appearance at different times in the future, so you can see the effects of planned publish/expiry events.

  • The preview tabs can be undocked into a separate window.

  • The available device resolutions can be configured system-wide by the system administrator.

For details, see http://docs.escenic.com/ece-content-studio-guide/5.7/using_the_preview_options.html.

For information about how configure preview device options, see http://docs.escenic.com/ece-server-admin-guide/5.7/configure_preview_device.html.

Benefit

improved usability

Areas affected

Content Studio

Impact

Low

Pinning list items

Issue VF-5146

It is now possible to pin items in Content Studio lists. A pinned item is fixed in position and will not move as result of other changes in the list. It will remain in position 3 until either it is unpinned or explicitly moved to a new position.

For further information, see http://docs.escenic.com/ece-content-studio-guide/5.7/using_a_list_editor.html.

Benefit

Improved functionality

Areas affected

Content Engine, Content Studio, web service

Impact

High

Read-only mode

Issue VF-5047

[Phase 1] It is now possible to configure the Content Engine to run in read-only mode. When running in read-only mode:

  • Mutex services (service that only run on one host) will not start

  • Write operations to the database will fail

You can use read-only mode to:

  • Ensure that presentation hosts do not make modifications to the database

  • Scale up the presentation layer by connecting presentation hosts to a read-only slave database

For further information, see http://docs.escenic.com/ece-server-admin-guide/5.7/read_only_mode.html.

Benefit

Improved security and scalability

Areas affected

core

Impact

Medium

Upgrade tasks

In order to simplify configuration, the database read and update connectors have been merged. You must therefore make the following changes.

On all your engine-hosts:

1 Log in as the user escenic.

2 Open /opt/tomcat/conf/context.xml and rename ECE_READ_DS to ECE_DS. Do the same for /opt/tomcat/conf/server.xml if necessary.

3 Add the value of the ECE_UPDATE_DS connection pool's maxActive setting to this pool's maxActive setting.

4 Remove the ECE_UPDATE_DS connection pool.

5 Save the file.

On one engine-host only:

1 Log in as the user escenic.

2 Open /etc/escenic/engine/common/neo/io/managers/ContentManager.properties.

3 Add the following new property:

dataConnector=/connector/DataConnector

4 Remove the readConnector and updateConnector properties

5 Save the file.

You usually only need to edit /etc/escenic/engine/common/neo/io/managers/ContentManager.properties on one machine because it is stored on a shared file system.

Amazon S3 binary storage

Issue VF-5090

It is now possible to use Amazon S3 as the primary storage for binary files. Shared S3 binary storage can be set up for multiple server instances instead of using NFS.

For further information, see http://docs.escenic.com/ece-server-admin-guide/5.7/storage_setup.html.

Benefit

Increased flexibility.

Areas affected

Content Engine

Impact

Low

Moving sections and section contents in Content Studio

Issue VF-4994

It is now possible to move sections in Content Studio. You can also move all the contents of a section to another section. For details, see http://docs.escenic.com/ece-content-studio-guide/5.7/Managing_Sections.html.

It is also possible to move sections via the Content Engine web service.

Benefit

Better administration.

Areas affected

Content Engine, Content Studio, web service

Impact

Medium

Improved tag search

Issue VF-5281

Content Studio tag search now uses Solr instead of the database, which is much faster.

Benefit

Improved performance

Areas affected

Content Engine, Content Studio, indexer, web service

Impact

Medium

Other Additions and Improvements

Added support for a new pattern when defining the pretty url of an article

Issue VF-5372

In previous versions, the URL of an article would normally not change when an article was updated. A side effect of this is that a high TTL would make the article being cached for a long time in both browser and CDNs.

To make it possible to use a high TTL and at the same time being able to quickly deliver updated versions , a new pattern named random has been added to the relative url of an article. When properly configured, a random fragment will be inserted in the url whenever the article is updated.

This feature is by default disabled, but can be enabled pr content type by adding {random} to the pretty url definition of a content type. For more information, see the Content Type reference

Benefit

Improved support for CDN

Areas affected

presentation

Impact

Low

Added the possibility to retrieve the tag description in the presentation layer

Issue VF-5366

In previous versions, the tag description was not easily accessible in the presentation layer. This has now been improved by adding a description property to neo.xredsys.presentation.PresentationTag. For more information, see the JavaDoc for this class.

Benefit

Improved usability

Areas affected

presentation layer

Impact

Low

Content Studio now shows publishing state of section pages

Issue VF-5363

In previous versions of Content Studio, the publishing state of section pages was not shown in section page editors. This problem has now been fixed.

Benefit

Improved usability

Areas affected

Content Studio

Impact

Low

Logging for Content Studio HTML components

Issue VF-5323

HTML / Javascript extensions added to Content Studio can now output messages to the Content Studio log file. For details see http://docs.escenic.com/ece-cs-plugin-guide/5.7/log_messages.html.

Benefit

Improved debugging support for developers

Areas affected

Content Studio

Impact

Low

Solr upgraded to 4.6.0

Issue VF-5336

Solr has been upgraded to a version 4.6.0

Benefit

Improved reliability

Areas affected

search

Impact

Low

XInclude supported in resource files

Issue VF-5312

Publication resources (content-type etc) are now pre-processed using XInclude (see http://www.w3.org/TR/xinclude/, which means that XInclude inclusion mark-up can be used to reduce duplication of content.

You can now use XInclude instead of the field-group element to re-use field and relation-type definitions.

Note that you can only include elements from the current file in this way: XInclude inclusion between files is not supported.

For further information see http://docs.escenic.com/ece-resource-ref/5.7/xinclude_support.html.

Benefit

Improved performance

Areas affected

Content Engine

Impact

Low

Content Studio can now open external Atom entries

Issue VF-5306

Content Studio has APIs that can open editors based on a URL. It expects the URL to return an Atom entry with a VDF payload. On receipt of a VDF payload it then retrieves the VDF model document referenced in the payload in order to understand the structure of the payload and to be able to display it.

In previous versions, Content Studio required the VDF model document to be supplied in an undocumented format that was only generated by the Content Engine, and it could therefore not handle VDF payloads from any other source. From version 5.7 this is no longer the case: Content Studio now accepts standard VDF model documents, and can therefore open content from other sources than the Content Engine, so long as they are supplied in the form of Atom entries with standard VDF payloads that reference standard VDF model documents.

Benefit

Content Studio can now be extended in new ways by working directly with content items that do not exist in Content Engine.

Areas affected

Content Studio

Impact

Low

Content Studio can search in an external system

Issue VF-5316

Content Studio's search function can now be easily extended to search external systems as well as the Content Engine. The external system must provide an OpenSearch (see http://www.opensearch.org/Home) interface.

Search results from external systems appear together with internal results. API hooks are provided to enable full integration of external results, so that they behave in a similar way to internal results, offering context menu options, supporting drag-and-drop and so on.

Benefit

Improved integration with external systems.

Areas affected

Content Studio

Impact

Low

First binary content type for a given MIME type is now default

Issue VF-5299

If a publication has several binary content types with the same mime type (image/jpeg, for example), then the first one to appear in the content-type resource is now the default, and will always be used when a binary object of that type is dropped into the Content Studio window. In previous versions, this behavior was undefined, and the content type used for dropped binary objects was not consistent.

Benefit

improved reliability

Areas affected

Content Studio

Impact

Low

Source and sourceId of persons and sections are now visible in Content Studio

Issue VF-5309

In previous versions, the source and sourceId of persons and sections were not visible in Content Studio. This issue has now been fixed. The web service now also supports creating persons and sections with source and sourceID. If no source/sourceId is provided, a default source and sourceID will be created for you.

Benefit

Improved usability

Areas affected

api, Content Studio, web-service

Impact

Low

Content Studio now supports round robin DNS

Issue VF-5304

Content Studio now supports round robin DNS. If the DNS entry for a server contains more than one IP addresses, Content studio will pick the first working IP address and stick to it.

Benefit

Load balancing and fail over for Content Studio servers.

Areas affected

Content Studio

Impact

Medium

Exported section pages now contain publishing state

Issue VF-5298

In previous versions of the Content Engine, exported section pages contained no information indicating whether or not they were pubished. This problem has now been fixed: the syndication format section-page element now has an activatedate attribute that is used to hold a section page's activation date property. This date can be used to determine the section page's current state.

Benefit

improved reliability

Areas affected

syndication

Impact

Low

Exported Sections include source/sourceid

Issue VF-5297

When exporting sections, content engine includes both the source and sourceID

Benefit

improved reliability.

Areas affected

syndication

Impact

Low

Publication creation with content now supports binaries

Issue VF-5173

In previous versions of the Content Engine, the creation of a publication using escenic-admin would fail if you supplied initial publication content in a .WAR file, and the content included binary content items. This problem has now been fixed.

Benefit

Improved Usability

Areas affected

syndication

Impact

Low

Content studio side panel buttons

Issue VF-5152

The vertical tabs used to select side panels in Content Studio have been replaced by graphical buttons.

The new button style applies both to the Content Studio's default side panels (Search, Sections and Clipboard) and to custom panels created using Content Studio's JavaScript API. Button icons are specified using a new argument added to the cs.createPanel() method. See http://docs.escenic.com/ece-cs-plugin-guide/5.7/requiring_objects.html for further details.

Benefit

Improved look and feel

Areas affected

Content Studio

Impact

Low

Finer-grained section page locks

Issue VF-5155

The Content Studio section page editor now locks the top level areas that make up a section page individually, rather that locking the whole section page. This means that several people can now work simultaneously on different areas of the same section page.

Benefit

Improved usability

Areas affected

Content Studio

Impact

Medium

Performance monitor in Content Studio

Issue VF-5154

The status bar of Content Studio now includes a performance monitor. It monitors the performance of Content Studio and displays a warning if performance problems arise. The user can display more information about the problem by clicking on the monitor.

Benefit

Improved usability

Areas affected

Content Studio

Impact

Medium

New configuration layer for web applications

Issue VF-5107

A new configuration layer has been added to the ApplicationBus of all web applications. The default location of the new configuration layer is

/etc/escenic/engine/webapp/context-path

where context-path is the context path of the web app. context-path must be lowercase. The new configuration layer is a dominant layer and overrides settings made in other configuration layers.

The Bus name displayed in escenic-admin has changed. It now displays the web application's context path, not the display name specified in web.xml. This makes it easier to distinguish between web applications that have the same display name.

The "service description" section in the component browser has been improved to display the same information both for components loaded from the Global layer and for components loaded from web application layers. This will make it easier to understand where a configuration comes from.

Benefit

Improved usability

Areas affected

configuration, nursery

Impact

Low

Upgrade tasks

[Phase 1] The name and url of a Bus in escenic-admin has changed. The name was previously fetched from the display-name element in web.xml, but is now created based on the context path of the webapp. The new name will always be "Webapp <context-path>" where the path is capitalized.

The name of the webservice.war will for instance change from "Webapp ECE Webservice Webapp" to "Webapp Webservice".

Anyone relying on these urls, for instance scripts, must be changed to reflect these changes.

neo.xredsys.api.IOObject.lock() hardened

Issue VF-5067

In previous versions of the Content Engine, neo.xredsys.api.IOObject.lock() would lock an object even if it was different from the version stored in the database. This could result in stored changes being overridden.

The lock() method has now been changed so that it will only lock up-to-date objects. If an attempt is made to lock a stale object then it throws an IllegalStateException.

A convenience method named lock(boolean pReloadIfNeeded) has been introduced to make it easy to lock and refresh an object if needed. Please see the JavaDoc for more information regarding this method.

Benefit

Improved reliability

Areas affected

api

Impact

Medium

Upgrade tasks

[Phase 1] neo.xredsys.api.IOObject.lock() now throws an IllegalStateException for stale objects. All code using this method should be reviewed and modified to handle this exception.

Alignment options for inline images

Issue VF-5068

In-line images can now be aligned by the Content Studio user. An in-line image's Properties dialog (accessed by right-clicking) will now by default contain an Alignment option. It is, however, possible to control whether or not this option is available (and also set a default value for it) by setting properties in a publication's content-type resource. The Alignment option's visibility can be set individually for each rich text field.

For further information, see http://docs.escenic.com/ece-content-studio-guide/5.7/inserting_inline_images.html and http://docs.escenic.com/ece-resource-ref/5.7/ih_inline.html.

Benefit

Better control over inline images directly through Content Studio

Areas affected

Content Studio

Impact

Medium

Automatic failover for import service

Issue VF-5013

You can now configure the import service to "fail over" automatically. The import service is enabled on multiple servers, but only runs on one of them. If, however, the service stops running on that server for any reason, then it is automatically started on one of the other servers and import continues.

The import service must be configured to read files from a shared file system in order for this mechanism to work.

See http://docs.escenic.com/ece-syndication-ref/5.7/enabling_import_failover.html for further information.

Benefit

Improved reliability

Areas affected

syndication

Impact

Low

Info links on escenic-admin services page

Issue VF-5005

The service names listed on the escenic-admin application's Services page can now include info links. Clicking on an info link displays information about the service. The links are used where necessary to provide useful information about services (such as deployment requirements).

Benefit

Improved usability

Areas affected

escenic-admin

Impact

Low

Memcached client included in engine distribution

Issue VF-4960

The latest Memcached java client is now included in the Escenic Content Engine distribution. You therefore no longer need to download the Memcached client separately.

Benefit

Easier installation

Areas affected

Content Engine, presentation layer

Impact

Low

Upgrade tasks

[Phase 1] Change the $class property in /com/danga/SockIOPool.properties to:

$class=com.whalin.MemCached.SockIOPool

Content Studio related content area is now dockable

Issue VF-4705

It is now possible to dock and undock the Related Content area displayed below the fields in content editors. For details, see http://docs.escenic.com/ece-content-studio-guide/5.7/undocking_the_related_content_area.html.

Benefit

Improved usability: by undocking the related content area, the user can increase the space available for displaying both the content item fields and related content.

Areas affected

Content Studio

Impact

Low

Increased memory in default content studio settings

Issue VF-4691

Increased memory in default content studio settings. Now new settings are as below

vmargs=-Xms256m -Xmx1024m

For users running Content Studio on 32-bit JVMs, the new settings can cause problems on start-up. If you see the following error when starting Content Studio:

Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit

then to permanently fix this problem you need to uninstall your 32-bit JVM and replace it with a 64-bit version. You can, however, work around it either by closing some other programs to free up memory, or else editing the downloaded Content Studio start-up file (the .jnlp file) and replacing

<j2se version="1.7.0_40+" java-vm-args="-Xms256m -Xmx1024m -XX:MaxPermSize=128m" href="http://java.sun.com/products/autodl/j2se"/>

with something like:

<j2se version="1.7.0_40+" java-vm-args="-Xms256m -Xmx512m -XX:MaxPermSize=128m" href="http://java.sun.com/products/autodl/j2se"/>

(that is, reducing the -Xmx value).

Benefit

performance

Areas affected

Content Studio

Impact

Low

Content Studio thread dump

Issue VF-4794

A Create thread dump option has been added to Content Studio's Debug menu, allowing thread dumps to be generated for diagnostic purposes. The Debug menu is hidden - see http://docs.escenic.com/ece-content-studio-guide/5.7/the_debug_menu.html for details.

Benefit

Improved diagnostics.

Areas affected

Content Studio

Impact

Low

Content Studio logging configuration

Issue VF-4795

A new logging configuration option has been added to the Content Studio Debug menu. It allows you to configure logging levels, and then outputs the resulting log records to a file. The Debug menu is hidden - see http://docs.escenic.com/ece-content-studio-guide/5.7/the_debug_menu.html for details.

Benefit

Improved diagnostics

Areas affected

Content Studio

Impact

Low

Content Studio performance summary

Issue VF-4796

Content Studio now periodically dumps a performance summary to its log.

Benefit

Improved diagnostics

Areas affected

Content Studio, web service

Impact

Medium

New Java API for managing tags

Issue VF-3334

A Java API for working with tags is now available. You can use it to create, update, delete and search for tags. For details, see http://docs.escenic.com/ece-javadoc/5.7/index.html?com/escenic/classification/package-summary.html

In addition, methods for retrieving and modifying a content item's tags have been added to the Article and ArticleTransaction interfaces (see http://docs.escenic.com/ece-javadoc/5.7/index.html?neo/xredsys/api/Article.html and http://docs.escenic.com/ece-javadoc/5.7/index.html?neo/xredsys/api/ArticleTransaction.html)

Benefit

Improved functionality

Areas affected

api, api_javadoc

Impact

Low

Added implementation of PresentationCollectionFieldValue for Tag and TagStructure in the presentation API

Issue VF-5435

In previous releases a collection field for Tag or TagStructure would return a generic PresentationCollectionFieldValue. The presentation API now has PresentationCollectionValue implementations for Tag and TagStructure which contains the PresentationTag and PresentationTagStructure.

Benefit

Extended presentation layer API

Areas affected

presentation layer

Impact

Low

Unsupported JDK warning added to escenic-admin

Issue VF-4122

The escenic-admin webapp now displays a warning on the System Properties page if an unsupported Java Development Kit (JDK) such as OpenJDK is installed on the server.

Benefit

Improved diagnostics

Areas affected

escenic-admin

Impact

Low

Solved Problems

Improved section search

Issue VF-5283

Section search in Content Studio content editor has been improved and now returns more accurate results.

Benefit

Improved usability.

Areas affected

indexer, web service

Impact

Medium

Redirection to image representations with pretty URLs now works

Issue VF-4998

In previous versions, the redirection of old URLs to new pretty URLs of image representations did not work properly: the request was redirected to the new image URL, not the new image representation URL. This problem has now been fixed.

Benefit

Correct behaviour

Areas affected

presentation

Impact

Low

Related content items are refreshed immediately after adding new items

Issue VF-5446

Previous versions of Content Studio would sometime not refresh related content items immediately after adding new items. It would wait for the next refresh schedule to come. The problem has now been fixed.

Benefit

Faster loading of related content items in Content Studio

Areas affected

Content Studio

Impact

Low

Lists are loaded immediately after opening them in Content Studio

Issue VF-5445

Previous versions of Content Studio would sometime not load lists immediately after opening them. It would wait for the next refresh schedule to come. The problem has now been fixed.

Benefit

Faster loading of lists in Content Studio

Areas affected

Content Studio

Impact

Low

Fixed possible StackOverflowError in ApplicationPresentationLoader

Issue VF-5432

In previous versions, invoking getPresentationPoolManager() on the ApplicationPresentationLoader could in rare cases cause a StackOverflowError. This issue has now been fixed.

Benefit

Improved reliability

Areas affected

presentation

Impact

Low

Fixed unnessary re-indexing of articles when importing sections

Issue VF-5433

In previous versions, adding a <directory> element when importing a section would make all articles in the updated section and it's subsections to be re-indexed. This would happen even though the value did not differ from the persisted value. The same would happen when updating the directoryName property in neo.xredsys.api.SectionTransaction. This has now been fixed by only re-indexing articles if the value actually changes.

Benefit

Improved performance.

Areas affected

api, syndication

Impact

Low

"Duplicate as Image" now works

Issue VF-5408

In previous versions, Content Studio's Duplicate as content-type option did not work for image content types. This problem has now been fixed..

Benefit

Correct behavior.

Areas affected

Content Studio

Impact

Low

Hardening of lock and release

Issue VF-5389

In previous versions, the ECELocks and ResourceLock database tables sometimes got out of sync. This could cause an object to appear as locked in Content Studio, but there were no way to unlock the object without going directly to the database. This problem has been fixed by rewriting the LockManager to only store locks in the ResourceLock table.

Benefit

Improved stability

Areas affected

api, core

Impact

Medium

Fixed problem with stale articles in cache when deleting a section

Issue VF-5371

In previous versions, deleting a section could cause several problems for articles with a reference to the deleted section:

  • Generating a checksum of the article could produce NullPointerExceptions

  • Retrieving sections using neo.xredsys.api.Article.getSections() could give back an array containing null references. This could again cause NullPointerExceptions other places

  • An article deserialized from Memcached could contain references to the deleted section and cause NullPointerExceptions in the templates

These problems has now been fixed

Benefit

Improved stability

Areas affected

core, presentation layer

Impact

Low

Fixed possible NullPointerException when accessing a PresentationArticle from outside of a Http request

Issue VF-5368

In previous versions, accessing any of the url properties of a PresentationArticle outside a Http request would cause a NullPointerException. This problem has now been fixed.

Benefit

Restored functionality

Areas affected

presentation layer

Impact

Low

Keyboard shortcut for publishing section pages now works

Issue VF-5362

In previous versions of Content Studio, the keyboard shortcut for publishing section pages (Ctrl+Shift+P or Cmd+Shift+P on Macs) did not work. This problem has now been fixed.

Benefit

Improved usability

Areas affected

Content Studio

Impact

Low

Fixed memory leak in XOMUtilities

Issue VF-5327

In previous versions, XOMUtilities had a memory leak causing several instances of nu.xom.Builder never being garbage collected. This memory leak has now been fixed.

Benefit

Improved stability

Areas affected

core

Impact

Low

Improved handling of non existing sections in collection fields

Issue VF-5324

In previous versions, a collection field containing a reference to a non existing section might cause the templates to fail with a NoSuchObjectException. This problem has now been fixed by changing PresentationArticle to only create a section collection field if the section actually exist. If the section does not exist, the templates will see an empty field.

Benefit

Improved stability

Areas affected

presentation layer

Impact

Low

LRUCache no longer throws java.lang.IllegalArgumentException

Issue VF-5243

In previous versions of the Content Engine, adding items to the LRUCache would sometimes fail with a java.lang.IllegalArgumentException. This would only happen when using Java 1.7.0_25 or later.

This problem has been fixed by using a different cache implementation.

Benefit

Improved stability

Areas affected

core

Impact

Medium

Upgrade tasks

[Phase 1] The property named 'throwCount' has been removed from the LRUCache implementation. This property has been removed from all default configuration files, but if it is present in one of your configuration layers it will give a warning when the server is bootstrapped. The warning will not cause any errors, but it is still recommended to remove it from all your configuration files.

As a side effect of the new cache implementation, code using the cache directly might need to change. The following steps are required:

1. A couple of methods has been removed from neo.util.cache.LRUCache. The methods are:

  • get/setThrowCount()

  • get/setPopularityContest()

  • remove/(CacheFilter)

Code using these methods must be rewritten to not use these methods anymore.

2. The method named 'doStartService' must be invoked before starting to use the cache. This is only required if you are creating your own instances of the cache.

Fixed problem making it impossible to use '\n' in section parameters

Issue VF-5252

In previous versions, section parameters with newlines were not properly escaped and the value could get lost. This problem has now been fixed.

Benefit

Improved reliability

Areas affected

core

Impact

Low

License web service includes all libraries

Issue VF-5238

The Content Engine's license web service now includes all libraries in use in the distribution.

Benefit

Improved reliability

Areas affected

web service

Impact

Low

Fixed problem causing binary files not being moved to archive or error directory

Issue VF-5218

In previous versions, an imported binary file would not be moved to the archive or error directory if the directory already contained a file with the same name. This issue has been fixed by changing the import to rename the file to <original_name>_<counter>.<extension> where <counter> is a number between 1 and 10. If there are more than 10 files with the same name, the import will give up and log an error.

Benefit

Improved stability

Areas affected

syndication

Impact

Low

Field arrays are now exported correctly

Issue VF-5226

[Phase 1] In previous versions, field arrays of type basic, boolean, number and date were exported in an incorrect XML format. This problem has now been fixed.

Benefit

Correct behaviour

Areas affected

export subsystem, syndication

Impact

Low

Upgrade tasks

In previous versions, arrays of fields were exported in the following format:

<field>
  <value><field>foo</field></value>
  <value><field>bar</field></value>
</field>

This format has been changed to

<field>
  <value>foo</value>
  <value>bar</value>
</field>

Any code that depends on the old XML format will need to be rewritten to reflect this change.

Stop-words list may now contain both uppercase and lowercase letters

Issue VF-5148

In previous versions of the Content Engine, the stop-words filter could fail to find some stop-words if the stop-words list contained both uppercase and lowercase letters. This problem has now been fixed.

Benefit

Correct behavior

Areas affected

engine-core, engine-presentation

Impact

Low

Case-sensitive tagging now supported

Issue VF-5133

Previous versions of the Content Engine did not support case-sensitive tagging with a MySQL database. It was, for example, not possible to tag content with either "Oslo" or "oslo". This problem has now been fixed.

Benefit

Improved usability

Areas affected

database

Impact

Medium

Pre- and PostTransactionFilters now supported for all IOObjects

Issue VF-5098

In previous versions of the Content Engine, PreTransactionFilter and PostTransactionFilter did not work for Person, UserGroup and AgreementInfo objects.

This issue has now been fixed.

Benefit

Correct behavior

Areas affected

api

Impact

Low

Improved display of inaccessible related content items

Issue VF-5034

Previous versions of Content Studio represented currently inaccessible related content items (related items to which the current user does not have access, for example) by the text Loading....

This policy has now been changed, and Content Studio will now always display the title, ID, state and content type of related content items, even if they cannot be opened. In the case of image content items, the image thumbnail is replaced by an error image.

Benefit

Improved usability

Areas affected

Content Studio, web service

Impact

Medium

Removed content items now also removed from lists and inboxes

Issue VF-5075

In previous versions of the Content Engine, when a content item was removed from a section it was not removed from the section's lists and inboxes as well. This problem has now been fixed.

Benefit

Correct behavior

Areas affected

api

Impact

Low

Deprecated methods removed

Issue VF-5030

The following methods, which have been deprecated since version 5.0 have now been removed:

  • neo.xredsys.api.Pool.getLayout

  • neo.xredsys.api.Pool.getLayoutId

  • neo.xredsys.api.Pool.getFrontpageLayout

  • neo.xredsys.api.Pool.getFrontpageLayoutId

  • neo.xredsys.api.Pool.setLayout

  • neo.xredsys.api.PoolTransaction.setLayoutId

  • neo.xredsys.api.PoolTransaction.setFrontpageLayoutId

In addition, the following methods are now deprecated and will throw an UnsupportedOperationException if called:

  • neo.xredsys.api.RelationLoader.getPoolLayout(int id)

  • neo.xredsys.api.RelationLoader.getPoolLayout(Pool pool)

In previous versions both methods returned null.

Benefit

improved usability

Areas affected

api

Impact

Low

Upgrade tasks

[Phase 1] Custom code using these methods must be rewritten.

Configure research panels dialog layout fixed

Issue VF-5028

In previous version of Content Studio, the Configure research panels dialog did not work properly when defining search research panels for publications with many content type groups. All content type groups were displayed on a single line, causing the dialog to potentially expand outside the window boundaries and render some buttons inaccessible.

This problem has now been fixed.

Benefit

Improved usability

Areas affected

Content Studio

Impact

Low

Delete option now enabled in list context menu

Issue VF-5017

In previous versions of Content Studio, the Delete option in a list's right-click context menu was always disabled. This problem has now been fixed and the option is enabled if deleting the list is currently allowed.

Benefit

Correct behaviour

Areas affected

Content Studio

Impact

Low

Duplicate source/sourceID problem fixed

Issue VF-4991

In previous versions, it was possible to create two content items with the same source and sourceId in the same publication. If this occurred, then neither content item could be edited in Content Studio and the problem could only by fixed by manually deleting one of the content items from the database.

This problem only arose if two threads tried to create the same content item at the same time. It could happen if a POST request from Content Studio timed out and the user tried to save the content item a second time.

The problem has been fixed by moving the source and sourceIDStr columns from the ArticleMetaContent database table to a new table called ArticleSourceIdentifier and adding new database constraint.

Benefit

Improved stability

Areas affected

engine-core

Impact

Medium

Upgrade tasks

[Phase 1] Since the source and sourceIDStr columns have been moved from ArticleMetaContent to ArticleSourceIdentifer, any custom code in your applications that directly access the old columns must be rewritten to take account of the change. The sourceIDStr column has also been renamed to sourceID.

Content items with more than one set of field options can now be saved

Issue VF-4942

In previous versions it was not possible to save a content item that had more than one set of field options: saving would fail with an Exception. This problem has now been fixed.

Benefit

Correct behavior

Areas affected

Content Studio, webservice

Impact

Low

Fixed problem with modified section parameters not being accessible in a TransactionFilter

Issue VF-3787

In previous versions, retrieving section parameters using SectionTransaction.getParameters() or SectionTransaction.getDeclaredParameters() returned the section's parameters prior to the transaction rather than what the section's parameters would be after completion of the transaction. This issue has now been fixed so that both getParameters() and getDeclaredParameters() reflect the changes made in the transaction.

In previous versions, invoking Article.getAuthors() inside a transaction filter returned the authors present in the database prior to the transaction, rather than the authors that would be present in the database after completion of the transaction. This made it impossible for a transaction filter to determine which authors were added or removed by a transaction. This problem has now been fixed.

Benefit

Improved usability

Areas affected

api

Impact

Low

Adding a content item to a section twice no longer fails

Issue VF-3774

In previous versions, adding a content item to the same section twice using ArticleTransaction.addToSection would fail due to a database constraint.

This problem has now been fixed. The addToSection method now checks first, and simply logs a warning if the content item has already been added to the section.

Benefit

Improved reliability

Areas affected

api

Impact

Low

Editor synchronization improved in Content Studio

Issue VF-5407

In previous versions of Content Studio, the content displayed in an editor was only refreshed once a minute. This meant that two users working simultaneously on the same content item would not see each other's changes immediately. This problem has now been fixed.

Benefit

Improved reliability

Areas affected

web-service

Impact

Low

Content item section list now rendered properly

Issue VF-5010

In previous versions of Content Studio, home section icon and state icons in content item section lists were not always displayed correctly if more than one content item was open.

This issue has now been fixed.

Benefit

Correct behavior

Areas affected

Content Studio

Impact

Low

Default timeout now used when retrieving external content

Issue VF-4921

In previous versions of the Content Engine, the ExternalContentManager component did not make proper use of its defaultTimeout property.

This problem has now been fixed. The ExternalContentManager component will now use its defaultTimeout property if it is larger than other applicable timeouts (the supplied timeout or refresh timeout).

It is therefore now possible for users of the ExternalContentManager component (such as the util:includeExtContent tag) to make use of the default timeout value.

Benefit

Correct behavior

Areas affected

presentation layer

Impact

Low

API events now get sent correctly

Issue VF-5483

In previous versions of the Content Engine, API event were occasionally not sent due to access control exceptions. This is no longer the case.

Benefit

Improved reliability.

Areas affected

Content Engine

Impact

Low

Find/replace dialog focus improved

Issue VF-4899

In previous versions of Content Studio, the Find/replace (Ctrl'+Alt+F) function dialog opened with the focus in the Search field. Now, it opens with the focus in the Replace field.

Benefit

Improved usability

Areas affected

Content Studio

Impact

Low

Added/removed authors can now be detected by transaction filters

Issue VF-1582

In previous versions, invoking Article.getAuthors() inside a transaction filter returned the authors present in the database prior to the transaction, rather than the authors that would be present in the database after completion of the transaction. This made it impossible for a transaction filter to determine which authors were added or removed by a transaction. This problem has now been fixed.

The same problem occurred when modifying users with Article.addRoleKeeper() or Article.removeRoleKeeper(). This problem has also been fixed.

Benefit

Improved usability

Areas affected

api

Impact

Low

Upgrade Instructions

You can upgrade to release 5.7.0.149872 from release 5.6.0.139045 or later. You can upgrade in one of two different ways:

You can, for example:

  1. Upgrade a single presentation server in read-only mode and test that your templates still work.

  2. Upgrade the remaining presentation servers.

  3. Upgrade your editorial servers.

  4. Finally, upgrade your database.

    At any stage in this process, you can revert your changes if problems arise. Be aware, however, that the database upgrade phase can only be rolled back in cases where SQL rollback scripts are supplied. In general, Escenic only supplies rollback scripts for the preceding one or two versions.

    Note that you will not have full access to all the new functionality in release 5.7.0.149872 until you complete the process by upgrading your database.

The two upgrade procedures are described below:

Single step upgrade

  1. Download the 5.7.0.149872 distribution to your assembly host and extract it from the ZIP file.

  2. Download the latest version of the assembly tool and extract it from the ZIP file.

  3. Either:

    • Edit your assembly tool's assemble.properties file, setting engine.root to point to the new location, or

    • If engine.root points to a symbolic link, update the symbolic link instead

  4. If you are upgrading from a release prior to 5.6.4.148892, check the Upgrade Instructions section in the Release Notes of all releases between your release and 5.6.4.148892, and carry out any "additional upgrade tasks" listed in them.

  5. If you have any custom Java code that depends on Escenic libraries, recompile it against version 5.7.

  6. Reassemble the Content Engine using the ece script by entering the following command:

    ece assemble
  7. Stop your application server(s).

  8. Redeploy the EAR file.

  9. If you are upgrading from a release prior to 5.6.4.148892, check the Upgrade Instructions section in the Release Notes of all releases between your release and 5.6.4.148892, and carry out any post-deployment tasks listed in them except for regenerating Solr indexes.

  10. Run the database upgrade scripts supplied for your database. If you are upgrading from a release prior to 5.6.4.148892, then you need to run any upgrade scripts for intervening releases before you run the scripts for release 5.7. You will find the scripts in the following folders:

    • engine-5.7.0.148571/contrib/database/sql/MySQL/upgrade/to-5.n.n

    • engine-5.7.0.148571/contrib/database/sql/Oracle/upgrade/to-5.n.n

    The script folders may contain both upgrade scripts and rollback scripts, in which case you should only run the upgrade scripts (the rollback scripts reverse the actions of the upgrade scripts should you need to revert to the old version).

  11. Check the list of Additional upgrade tasks and carry out any that are marked as phase 1 tasks and that you think are necessary for your site.

  12. Start your application servers again.

  13. Update your Solr index configurations by copying the following files from the Content Engine distribution to all your Solr instances:

    • engine/solr/conf/schema.xml

    • engine/solr/conf/solrconfig.xml

    • engine/solr/conf/xslt/solr_atom.xsl

    (If you have never modified the delivered index configuration in previous versions, then you can just copy the new versions of these files over the old ones. If you have modified the delivered configuration, then you will need to manually merge the new versions of these files with your existing versions.)

  14. Regenerate all Solr indexes. To regenerate the default Solr index used by Content Studio, open a browser, go to your-site/indexer-webapp/admin/ and click on the Reindex... link.

    Note that reindexing clears the old index and then creates a new one, which may take a long time (possibly hours). During this period, searches executed in Content Studio may therefore return incomplete results.

    Any other indexes you may have created must be regenerated in the same way using the indexer web applications you have created for them.

  15. Check the list of Additional upgrade tasks again, and this time carry out any that are marked as phase 2 tasks and that you think are necessary for your site.

Phased upgrade

  1. Download the 5.7.0.149872 distribution to your assembly host and extract it from the ZIP file.

  2. Download the latest version of the assembly tool and extract it from the ZIP file.

  3. Either:

    • Edit your assembly tool's assemble.properties file, setting engine.root to point to the new location, or

    • If engine.root points to a symbolic link, update the symbolic link instead

  4. If you are upgrading from a release prior to 5.6.4.148892, check the Upgrade Instructions section in the Release Notes of all releases between your release and 5.6.4.148892, and carry out any "additional upgrade tasks" listed in them.

  5. If you have any custom Java code that depends on Escenic libraries, recompile it against version 5.7.

  6. Reassemble the Content Engine using the ece script by entering the following command:

    ece assemble
  7. Stop one presentation server.

  8. Make the server you have stopped read-only (see http://docs.escenic.com/ece-server-admin-guide/5.7/read_only_mode.html for instructions on how to do this).

  9. Redeploy the EAR file on the presentation server you stopped.

  10. Start the stopped application server again.

  11. Verify that the upgraded server is producing acceptable output and that the upgrade has not broken any of your templates. If there are problems you can stop the server and revert it to 5.6.4.148892.

  12. If you have additional presentation servers you can now upgrade them as well by repeating steps 7 - 11. You can choose to skip step 8, so they are not read-only, or carry out step 8, in which case you will need to convert them back to read/write mode later.

  13. Repeat steps 7 to 11 (omitting step 8) for your editorial servers.

  14. Verify that everything is still working OK. If not, you can revert the servers to 5.6.4.148892.

  15. If you have any servers that are still running in read-only mode, stop them, revert them to read-write mode and start them again.

  16. You are now running version 5.7 against a version 5.6.4.148892 database. You can run in this mode without problems, but you will not be able to use any new 5.7 functionality that depends on the database upgrade. When you are ready to upgrade the database, continue with the remaining steps.

  17. Stop your servers.

  18. If you are upgrading from a release prior to 5.6.4.148892, check the Upgrade Instructions section in the Release Notes of all releases between your release and 5.6.4.148892, and carry out any post-deployment tasks listed in them (except for regenerating indexes) that are applicable to the server you are upgrading.

  19. Run the database upgrade scripts supplied for your database. If you are upgrading from a release prior to 5.6.4.148892, then you need to run any upgrade scripts for intervening releases before you run the scripts for release 5.7. You will find the scripts in the following folders:

    • engine-5.7.0.148571/contrib/database/sql/MySQL/upgrade/to-5.n.n

    • engine-5.7.0.148571/contrib/database/sql/Oracle/upgrade/to-5.n.n

    The script folders may contain both upgrade scripts and rollback scripts, in which case you should only run the upgrade scripts (the rollback scripts reverse the actions of the upgrade scripts should you need to revert to the old version).

  20. Check the list of Additional upgrade tasks and carry out any that are marked as phase 1 tasks and that you think are necessary for your site.

  21. Start your application servers again.

  22. Update your Solr index configurations by copying the following files from the Content Engine distribution to all your Solr instances:

    • engine/solr/conf/schema.xml

    • engine/solr/conf/solrconfig.xml

    • engine/solr/conf/xslt/solr_atom.xsl

    (If you have never modified the delivered index configuration in previous versions, then you can just copy the new versions of these files over the old ones. If you have modified the delivered configuration, then you will need to manually merge the new versions of these files with your existing versions.)

  23. Regenerate all Solr indexes. To regenerate the default Solr index used by Content Studio, open a browser, go to your-site/indexer-webapp/admin/ and click on the Reindex... link.

    Note that reindexing clears the old index and then creates a new one, which may take a long time (possibly hours). During this period, searches executed in Content Studio may therefore return incomplete results.

    Any other indexes you may have created must be regenerated in the same way using the indexer web applications you have created for them.

  24. Check the list of Additional upgrade tasks again, and this time carry out any that are marked as phase 2 tasks and that you think are necessary for your site.

  25. Verify that you system is functioning properly. Should this not be the case, you can revert the database to an earlier version by:

    • Stopping your application servers.

    • Reverting the phase 2 additional tasks you performed in step 24.

    • Reverting the phase 1 additional tasks you performed in step 20.

    • Running the database rollback scripts corresponding to the upgrade scripts you ran in step 19, in reverse order. Note that you can only revert to preceding versions for which rollback scripts are supplied.

    • Reverting any post-deployment tasks from previous releases that you may have performed in step 18.

    • Starting your application servers again.

    • Reverting to your previous Solr configuration.

Additional upgrade tasks

Each of the following changes has an upgrade task you may need to perform. Each task is marked either [Phase 1] or [Phase 2], indicating when it should be performed during the upgrade procedure.