Unify 4.6.3


Jump to: navigation, search


Release Notes

For VYRE Unify 4.6.3

Copyright © 2012 VYRE Ltd.

1. Overview

1.1 Introduction

This document describes the new features, improvements and bug fixes implemented in version 4.6.3 (added since the last release


We recommend that you read and review the entire contents of this document before proceeding with any installation or upgrade of this product.

2. System Requirements

2.1 Supported Operating Systems

VYRE Unify works on Oracle Java SE 6 supported operating systems: Microsoft Windows, Linux, and Solaris.

2.2 Supported Databases

VYRE Unify works with the following databases, however, Unify is neither packaged nor shipped with any database:

  • Oracle (version 9 upwards)
  • Microsoft SQL Server
  • MySQL (version 5 upwards using InnoDB engine only)
  • PostgreSQL (version 8.3 upwards)

2.3 Java Development Kit (JDK)

VYRE Unify requires Oracle Java SE 6 JDK. VYRE recommends using the latest Update of Oracle Java version 6 to run Unify. Unify is neither packaged nor shipped with any particular JDK.

2.4 Tomcat

VYRE Unify 4.6.3 includes Apache Tomcat 6.0.35. Other versions are not supported.

3. New and improved features in this version

3.1 Content exports are now performed asynchronously

When running a content export, the export will be run asynchronously. This is done in order to prevent long responses times for HTTP requests when running an export. When an export is triggered, an order will appear in the users inbox with the status 'processing'. The user is then free to navigate the site and return latter to pick up their export. In some circumstances, this may have a detrimental effect. For example, when running a small export, it is no longer guaranteed that the export will be complete by the time a user is redirected to their inbox.

3.2 Enterprise Reporting

Starting from this version, Unify offers integrated Business Intelligence feature set. The system is capable of recording various events (such as item downloads, orders, executed searches) and produce custom reports based on these events. The produced reports are highly customizable and extendable if necessary. The data is indexed in a processing engine and can later be queried and retrieved in different shapes and forms. By default system comes with a connector to Apache Solr and uses its grouping abilities but can be extended to connect to any other enterprise Business Intelligence system.

3.2.1. Implement the Processing engine for the new Reporting module

The processing engine is responsible for taking the recorded data (which is stored in the database) and processing it so it can be in acceptable format to be sent to the indexing engine. It also responsible for archiving the data so it would not be processed twice.

3.2.2. Solr Ajax Service for Unify Reporting

The reporting data stored in unify is now indexed in Solr. We have also provided an AJAX service which allows users to query and export that reporting data.

3.2.3. Archived reporting records can be stored in a separate database

The system supports archiving the data (after indexing) to a different database which can typically be tuned for storing large capacity of data and where the speed is not the primary issue. It can even be of a different type (e.g. if PostgreSQL is used as the primary database, secondary can be MySQL, etc.).

3.3 AJAX framework for creating and editing Items

Unify now ships with an AJAX based framework for creating and editing items. This encompasses both a server side AJAX service and a client side javascript framework. The framework allows for all CRUD operations on items and allows for the editing of most aspects of an item including content, metadata, taxonomy, item links and user links. In addition, the framework supports item chaining, something that is not supported anywhere else in the system. This allows multiple items to be created in one request, offering the ability for those items to be linked together.

3.4 Monitoring services

3.4.1. Monitor and expose Unify internal statistics

This feature adds the possibility to monitor various Unify aspects via JMX: content repository availability, database availability, search speed/index accessibility and others.

3.4.2. Unify up-time measurement - as chain of tests

This feature provides the ability to monitor Unify via HTTP and performs a sequence of sanity checks, all vital for the system to run.

3.5 Added file transformation support

3.5.1. Added MPEG1 video transformations

You can now create MPEG1 derived files from your video files.

3.5.2. Case map options for file services

  • If the Check constraint option is checked the attribute is used as before this change. The file service will check if the selected attribute value to decide if the file service should be run or not.
  • If the Check constraint option is unchecked, the file service will use a predefined Case Map that maps the selected attribute value to case keys, then the case keys will decide which parameter values should be used.

All parameters can use direct value such as 280 for integer or true for boolean or 128k for bandwidth string, or even left blank. Alternatively you can use case values in the format of [default=value1;]caseKey1=attrValue1;caseKey2=attrValue2;... The semi-column ';' is the case delimiter and can not be used as any part of value, The equal '=' is used to assign value to each case, but it can be part of the value as only the 1st '=' is used as delimiter

For example:

low=128k;high=256k (missing default means default blank)
case1=a=100;case2=a=300;default=a=0 ( '=' is used in the attribute value part)

The 'default' is fixed case key, other case keys should be specified in Case Map. The Case Map is optional, if it is blank, all parameters will use the direct value or defined default value in the format above. The case map must be in the following format:

        <attrValue>For DVD</attrValue>
        <attrValue>For Blueray</attrValue>

It means that, if selected attribute value is "For Blue-Ray", the parameter should use the value defined by blueray=1080 or if blueray is not an option in the parameter the value given in default will be used. This is implemented for the following parameters:

  • Video options
    • Width
    • Height
    • Video Bandwidth
    • Audio Bandwidth
    • Watermark
  • Image options
    • Width
    • Height
    • DPI
    • Quality
  • Storyboard options
    • Width
    • Height
    • Resolution
    • Frame interval
    • Start page
    • End page
    • Page interval
    • Page width
    • Page height
    • Page resolution

3.5.3. Option for choosing whether to keep the aspect ratio in video previews

This adds the option Keep Frame Aspect Ratio to video preview services. If un-ticked the generated previews will be exactly the given height and width for the preview and will not keep the aspect ratio of the original video.

3.5.4. Support choosing aspect ratio for anamorphic video

For anamorphic video files that can for example be played at either 16:9 or 4:3 aspect ratios, if you un-tick Keep Frame Aspect Ratio and choose height and width of either supported aspect ratio. The video will be converted to the derived files aspect ratio without distortion.

3.5.5. PDF preview file service for PDF files

PDF files will now also get a PDF preview, for easier access in XML XSL portlets. This means the XSL no longer needs to handle linking to the original for PDF files and a derived file for other documents for a PDF download link.

3.5.6. Image previews of videos are now a frame from the middle of the video

Previously the first frame was used.

3.5.7. Support for Marchena's Photoshop connector

In Marchena 1.3 there is a new processor, processor-photoshop55. If this processor is active in Unify, it will be preferred over imagemagick for processing PSD and TIFF files.

3.5.8. Derived image metadata available in item XML

A new file service type "Image information" now exist, the xml file generated by that contains basic image information that can be extracted for all images, such as dimensions and colour space and DPI. This file can optionally be included in the item xml.

3.5.9. MKV video file support

Unify now supports creating derived files from MKV (video/x-matroska) and MKA (audio/x-matroska) files.

3.6 XSL improvements

3.6.1. Import XSLs by name

This feature allows to use XSL names (instead of IDs) when including one XSL from another.

3.6.2. Recursive file import

This feature allows to do nested includes, e.g. XSL1 -> XSL2 -> XSL3 (and so on). Previous Unify versions only supported includes of up to second level.

3.7 Enterprise Search

3.7.1. Index extracted content from binary content

The RemoteIndexTemplateHelper class has a new method to get extracted text(if it exists) from file-items.

3.7.2. Add extra Solr Search components to Unify

Users can add additional solr parameters which will be passed through to the solr search providing that it is specified in the solr parameter list (AJAX).

3.7.3. Access to fileservice info from the RIT

The RemoteIndexTemplateHelper class can now get the file size(pretty print) and extension of a derived file.

3.7.4. Allow versioning of remote indexing templates

Remote indexing templates have been migrated under Publishing resources which enabled all the typical benefits these resources have (versioning, diff, etc.). Existing templates are converted automatically by using relevant upgrade script.

3.8 Code template improvements

3.8.1. Able to include JSP resources via name using vyre-item taglib

Templates can be referenced on a name basis. Please be aware that template titles should be unique per type, though this is not enforced when creating them in Unify (for example, within Bulk Edit templates no two templates should have the same title, as there are no guarantees as to which one will be returned here). Also need to be careful which type of templates are included within which ones, as not all combinations work (this is due to context variables not being set appropriately). The way of including other templates is by specifying their type and title:

  • bulkEditTemplate - the title of the bulk edit template to include.
  • contentTemplate - the title of the content template to include.
  • jspResource - the title of the JSP code resource to include.
  • searchTemplate - the title of the search template to include.

3.8.2. Redirect specified by path not by id

A new option has been added to allow specifying redirect using page path rather than page id. This is available in Item - Template Search Input and in Item - Edit using template portlets.

3.9 Ability to edit user profile properties in the backend

In the backend, the realms module has been extended to allow for the editing of user profile properties. Both default and custom profile properties are supported. A new button called Edit Profile will appear on the toolbar when editing a user. It is also possible to view in read only mode all of the user links that a user has.

3.10 XML

3.10.1. Add search result metadata to the search result itemXML

This feature provides access to the search metadata and allows to retrieve the information about the criteria used in the search input. For more details, consult http://wiki.vyre.com/index.php/Search_Metadata_XML.

3.10.2. Add timestamp attribute for dates exposed in the XML

This feature adds timestamp attribute to most of the date XML attributes for easier manipulation.

3.11 Bulk edit and Import portlets can now give feedback on its status

By default when an import or bulk edit action has completed, the JSP prints out a finished message, but there is not other way to know how the action is going or when it's finished. The javascript API provided has been improved so it is possible now to bind on certain events (INIT, ERROR, WARNING, PROGRESS and COMPLETE). This will allow front end developers to be able to customise actions based on them, as well as the user interface.

3.12 Add reference to currently logged in user in all user related message templates

For content and user related messages, we can now set as recipient the user who triggered the message, either through an item or user portlet. This user will be the logged in user who has triggered the action of sending the email (user who has been editing another user or has deleted another user).

3.13 Improvements in the backend

3.13.1. Backend Virtual Path interface improvements

The listing of virtual paths in the backend is paginated, and there is also a search box provided. Also when a page is in edit mode, the list of virtual paths pointing to the page is shown.

3.13.2. Backend localizations list improvements

Pagination has been added to the backend list of localizations, and the search has been improved to be able to search by message key as well as search in the localized translations.

3.13.3. Improve interface for removing users from groups

The user groups edit interface has been improved. The delete icon will now remove a user from a group rather than delete them completely from Unify.

3.14 Improve the options for re-activating users

It is now possible to generate a user authentication key from both the Forgotten Password Portlet and the Request Activation Portlet. This enables the option to automatically reactivate and login a user after they have used either of these portlets without requiring the intervention of an admin user.

3.15 Upgrade TinyMCE to the latest version

The version of TinyMCE that is shipped with Unify has been increased from version to 3.4.7. The upgrader will delete the old version of TinyMCE that is in use and replace it with the newest version. Note that any custom plugins will need to be reinstalled after the upgrade has completed. For more information on the TinyMCE changes see http://www.tinymce.com/develop/changelog/?type=tinymce.

3.16 Replace OSCache with Ehcache

Newest version of Unify completely replaces all usage of OSCache with Ehcache. Ehcache is a very mature and active project, both actively supported by the community and commercially whereas OSCache is no longer maintained. Ehcache also has a better support for disk persistence, more fine-grained configuration abilities, potential ability to use Terracotta's BigMemory heap cache, etc.

3.17 Timeout for XML XSL Transformer Portlet

A timeout has been added as a configurable property to the XML-XSL Transformer portlet. This prevents a page that is loading from crashing when the third party XML can not be retrieved. If timeout is reached, then a message will be shown that timeout has been exceeded.

3.18 Add ability to sort user lists by Given Name, Family Name and custom properties via AJAX

3.19 Extend item rating AJAX functionality

Methods to get information about how user has rated items and more have been added.

4. Changes to existing functionality

4.1 Monitoring servlet output

Monitoring servlet used test the database connectivity and return DB_OK in case if the check was successful. From VYRE Unify 4.6.3 it relies on HTTP response codes: HTTP 200 OK response means that all tests were completed successfully; HTTP 500 Internal server error is returned in case if at least one check failed.

This servlet has been repurposed to do extra checks and is designed to used for SLA monitoring. For more information, refer to the Administration guide document.

4.2 Move the addOKResponse from the <response> tag to <response-metadata> tag

All Ajax Listeners status ('ok' and 'error') messages will now be stored in the the response-metadata tag.

4.3 Change the default settings in an import configuration

For new import configurations the default update behaviour setting has been changed to leave contents and only update what is specified. Before it used to erase content when the imported data was missing attributes, and this was causing issues.

5. Deprecated and/or removed in this version

5.1 contextPath parameter in Solr Ajax Searches

When running an Enterprise Search using the Solr Ajax Listener, the value of context path is now derived from the context that the HTTP request is being made in. Previously it was derived from a parameter passed to the AJAX listener called 'contextPath'. This means that care must be taken to make sure the AJAX request is made to the same context as the current user is currently logged into. For example, when in the backend all requests must be made to /vyre4/servlet/ajax. This was always the recommended approach only now your context path values will be wrong if you use the incorrect approach.

5.2 ItemWorker deprecation

The ItemWorker class is in the process of being refactored, so it is advisable to refrain from using it when possible. The methods that have been deprecated already have listed in the documentation the replacement to use. These replacement classes are ItemLifecycleWorker, ItemLinkWorker and UserLinkWorker.

6. Issues resolved

The following chapters are a reference to issues completed in version 4.6.3 along with their respective issue number in VYRE's issue tracking system http://tracker.vyre.com.

6.1 New features

  • UNF-5223 Unify uptime measurement - as chain of tests
  • UNF-5178 AJAX service to retrieve the children of a particular category
  • UNF-5161 Monitor and expose Unify internal statistics
  • UNF-5144 Navigation Portlet to accept a path for "Tree Root Page"
  • UNF-5063 Able to include JSP resources via name using vyre-item taglib
  • UNF-5054 Export publishing structure for On Brand
  • UNF-5045 Add extra Solr Search components to Unify
  • UNF-5043 Mpg file service has not been exposed in Unify interface
  • UNF-4994 Upgrade to Lucene 3.4
  • UNF-4978 Redirect specified by path not by id
  • UNF-4977 Ability to include XSLs by name
  • UNF-4634 AJAX framework for creating and editing Items
  • UNF-4596 Add case map options to file services
  • UNF-4595 Add option to constrain or not constrain video transformations to account for anamorphic video
  • UNF-4580 Add 'constrained' checkbox to video file services
  • UNF-4515 UES: Ability to retrieve the Document text extraction within the RIT
  • UNF-4360 Provide the ability to store archived reporting records in a separate database
  • UNF-4356 Create Solr installer for the new Reporting functionality
  • UNF-4349 Implement indexing UI for the new Reporting functionality
  • UNF-4321 Implement Recording Configurations for the new Reporting functionality
  • UNF-4313 Create the Indexing transport layer for the new Reporting functionality
  • UNF-4307 Implement the Processing engine for the new Reporting module
  • UNF-3492 Extend content item reporting to include asset download count
  • UNF-1399 Ability to edit user profile properties in the backend

6.2 Improvements

  • UNF-5406 Changes to BrandSwitcher Processor to handle items with multiple brand taxonomy
  • UNF-5405 Ajax Search JSON reponse does not bring back linked item data
  • UNF-5397 Solr Reporting - solr field names should be camel cased and consistent with enterprise solr search
  • UNF-5248 XMl content structure import: use standard file upload form
  • UNF-5231 Add mkv video file to the supported file configuration
  • UNF-5170 Make custom reports download files with a .xls extension rather than a .st8 extension
  • UNF-5166 Backend localizations list improvements
  • UNF-5157 Improve the way content exports are done in Unify
  • UNF-5142 Update fileservice to support Marchena's Photoshop connector
  • UNF-5108 Cache logging - be able to log when elements are added / removed / served from the cache
  • UNF-5078 Unify supplies the wrong file name and mime type to derived files produced by ExtractText
  • UNF-5076 Include Unify cluster name in Marchena history page
  • UNF-5040 Extend item reporting AJAX functionality to include two new calls
  • UNF-5025 Allow enabling Marchena without a restart
  • UNF-4979 Move the addOKResponse from the <response> tag to <response-metadata> tag
  • UNF-4961 Use Ehcache for page cache
  • UNF-4920 Springify CategoryWorker
  • UNF-4898 Upgrade Apache Solr for Enterprise Search
  • UNF-4878 Extend the accepted JSON that can be passed to the browser based bulk upload portlet so that default metadata can be defined at the root level.
  • UNF-4850 Upgrade PostgreSQL JDBC drivers to version 9
  • UNF-4833 Springify UserWorker
  • UNF-4784 UI issue: removing users from groups is confusing and results in complete user deletion from the system
  • UNF-4779 Add ability to sort user lists by Given Name, Family Name and custom properties via AJAX
  • UNF-4763 Marchena should not take first frame of the video as preview because it's often blank
  • UNF-4760 Retrieving the width & height and DPI of image files in the xml
  • UNF-4659 User inbox portlet should not be displayed to guest users
  • UNF-4589 Improve the options for re-activating users
  • UNF-4546 Backend Virtual Path interface improvements
  • UNF-4514 Add PDF preview file service for PDF files
  • UNF-4513 AJAX listener standardization
  • UNF-4448 Add timestamp attribute to all dates exposed in the XML
  • UNF-4447 Search result XML to provide additional contextual information about the search that was performed
  • UNF-4397 Allow to set timeout for XML XSL Transformer
  • UNF-4272 Add reference to currently logged in user in all user related message templates
  • UNF-4244 Replace OSCache with Ehcache
  • UNF-4141 Add feature to Bulk edit and Import portlets to allow us to know when the import has completed
  • UNF-4121 Upgrade TinyMCE to the latest version
  • UNF-3424 Access to fileservice info from the RIT
  • UNF-2985 Change the default settings in an import configuration
  • UNF-2490 Allow versioning of remote indexing templates

6.3 Bugs resolved

  • UNF-5409 Solr "sort=frequency" implementation does not correctly sort doc according frequency
  • UNF-5396 RIT does not handle multiValued fields
  • UNF-5394 Unify crashes when trying to index certain files
  • UNF-5298 An filestore item cannot be viewed from the backend if it has a manual preview that contains an unconventional name
  • UNF-5273 Character encoding issue in Solr AJAX search
  • UNF-5258 File orders cannot be downloaded from the system if the file name has either space or non-ascii characters
  • UNF-5253 Stop exposing "Server" HTTP header
  • UNF-5230 $current_item_item_links<ILDEF_ID> not resolved in the AJAX search
  • UNF-5221 Solr reporting: fileExtension parameter is taken from the previous request when a parameter is not defined for the new request
  • UNF-5208 Ordering from a file order shop does not work
  • UNF-5184 Content importer always fails when the link edit mode is set to "Ask user to select the item to link to when importing"
  • UNF-5175 Recording of downloads is using the user id rather than the profile id
  • UNF-5174 Do not show deleted item lists in the Item-List portlet edit mode combo box
  • UNF-5148 "Run automatically" causes services never to run
  • UNF-5135 User create - Edit field: Item link: Default - not retaining Available display attributes
  • UNF-5134 pageNo and pageSize AjaxActions parameters in the VirtualPathAjaxListener need to be mandatory
  • UNF-5121 URL type attributes are not validated correctly
  • UNF-5101 Ability to use sectioned metadata attributes for the bulk uploader
  • UNF-5100 IE7 Caches the no-op request on the browser based bulk uploader
  • UNF-5097 Ability to allow a single user gateway id to be used multiple times - user_jax.js gateway fix
  • UNF-5086 Trying to edit metadata for some filestores with existing metadata produces a blank screen
  • UNF-5084 Taxonomy structure export returns empty <categories/> which break the import
  • UNF-5081 Moving pages from root level to a deeper level or otherwise, does not update its localized path in pm_localized_paths
  • UNF-5064 Velocity is logging all its output into the velocity.log which is created in the current user directory
  • UNF-5028 Solr AJAX listener not returning the SOLR XML response as XML nodeset
  • UNF-5016 OnBrand: BrandItemDetector resets the user to empty brand when user views an item that has not been taxonomised
  • UNF-5013 TinyMCE editor: image formatting is not preserved after saving
  • UNF-5005 Content Edit Template: taxonomy tag preselectedPaths does not check if the taxonomy is deleted
  • UNF-5000 Exception when creating message template with non existing localization key
  • UNF-4975 Selected value doesn't retain in the dropdown for <vyre-item:profile-group-link> tag in content template
  • UNF-4972 Cached pages are getting flushed without any good reason
  • UNF-4956 Unify sends video settings values to Marchena when processing document storyboards
  • UNF-4953 Item Rating count should be indexed as a numeric value rather than a String value
  • UNF-4951 Content template's taxonomy tag's attribute "reverse" doesn't work
  • UNF-4950 Content template's taxonomy tag's treeId attribute doesnt work eg: <vyre-item:taxonomy treeId="1" />
  • UNF-4949 <vyre-item:primary-attribute> tag doesn't work on content templates
  • UNF-4947 $user_password variable no longer works in message templates when they are fired from a user create portlet
  • UNF-4945 Random closing div in the poll display portlet
  • UNF-4904 Items can be updated by a user that did not check out the item and are not administrators
  • UNF-4896 Wave2 - Issue with diacritics characters when using the WYSIWYG editor
  • UNF-4875 Lazy Load Exception when attempting to change a users password when they have been logged in through a login filter
  • UNF-4870 Exception thrown when trying to delete a user that has a user link
  • UNF-4867 Exception thrown when trying to permanently delete an item that has a user link
  • UNF-4856 Passing an ampersand ("&") to the AJAX framework breaks Lucene search query
  • UNF-4836 XML flush cache event not fired for user permissions
  • UNF-4828 AbstractMultiActionController doesn't work correctly unless the Controller class is not a singleton in the Spring context
  • UNF-4826 Marchena fails to create images from large PDF files
  • UNF-4806 A user can unlink items they are not permissioned to within the User Edit Portlet
  • UNF-4789 When a Solr parameter is removed from the backend, the system should not allow using that parameter in Solr queries
  • UNF-4782 Message detail XML's userList information is wrong
  • UNF-4651 Unable to permanently delete an item that has a profile group link
  • UNF-4635 Copying and pasting a page doesnt retain the cache settings of the original page
  • UNF-4582 When a file store item has filename with \ (slash), you cannot download the file in both the vyre4 backend and the frontend. This is also impacting file exports/orders where the original file is not included in the zip file.
  • UNF-4503 Order-checkout portlet is not displayed in the frontend and portlet processing exception is thrown in the log
  • UNF-4433 Linked users' email not getting populated due to XML standardisation
  • UNF-4420 Order - Check-out portlet does not work in the multi-server environment
  • UNF-4418 "How many last passwords are not allowed as a new password" field is available for LDAP and Consolidated realms
  • UNF-4417 Warning/error message for "How many last passwords are not allowed..." field is not shown
  • UNF-4394 Browser bulk uploader doesn't delete all files after an import finishes
  • UNF-4374 Enterprise Search is doing unnecessary searches when paginating through results
  • UNF-4299 System still uses the deleted unauthorized, error, 404 pages in case user did not set new pages for them
  • UNF-4285 Localization key is not added for EXIF Field in Create Metadata Attribute page
  • UNF-4282 Pagination does not work properly in virtual path portlet
  • UNF-4281 Undeleting from Recycle Bin leaves some items in deleted state
  • UNF-4254 Searching for linked items using the $current_item_item_links{link_def_id} syntax always brings back items linked through working links
  • UNF-4250 Deleted orders are still displayed in Order Display and Order Edit portlets
  • UNF-4248 Wrong path for a file service brought back by the fileManger for custom StoryBoard file services
  • UNF-4235 Cannot see the item links when viewing an old version of an item
  • UNF-3934 Creating watermarked video fails under Marchena
  • UNF-3861 Unable to modify the logging level of a class in the backend
  • UNF-3582 Ecommerce: Status of an order remains as 'Authorised' for default payment provider after checking out an order
  • UNF-3505 Warning message is not displayed in the site once an error page is deleted
  • UNF-3332 Expired password doesn't prevent users from logging in
  • UNF-2778 $xslPath variable fails when it's used in an already included template
  • UNF-1963 URL validation allows values through which it should not
  • UNF-1683 Add a check when creating a new realm which tests if the tables entered are already being used on another realm

Preceded by
Unify Release
Succeeded by
Personal tools