2.2.21. Release 7.5.25

This chapter contains all changes made in Release 7.5.25 of CoreMedia Digital Experience Platform 8.

Follow the CoreMedia DXP 8 Help Center section to receive release and product announcements automatically.

Modules and Tooling

Release 7.5.25 contains the following CoreMedia modules:

  • CoreMedia Blueprint

  • CoreMedia CMS

  • CoreMedia Studio

  • CoreMedia Elastic Social

In addition, CoreMedia DXP 8 uses the following tooling:

ProductKeyVersion
CoreMedia Application Maven Plug-inAPPPLUGIN2.7.9
CoreMedia Project Maven ExtensionPROJEXT1.0.5

Table 2.21. Tooling of CoreMedia DXP 8


CoreMedia CMS Changes and Improvements

  • Allow translation of a fixed version

    The default translation workflow has been changed to take a list of ContentObjects instead of Contents for the contents to translate. This means that the workflow can work with a list of master Contents or a list of master Versions.

    To support this scenario some Actions had to be adapted (see below).

    It is also necessary to convert running translation processes with cm workflowconverter -X and to re-upload the process definition from the file translation.xml.

    com.coremedia.translate.workflow.CompleteTranslationAction

    • This action now sets the master version number of the given derived content depending on the given master content objects. If the master content objects are versions, the numbers of these versions are used; If the master content objects are contents, their latest checked-in versions are used.

    • The methods getContentsVariable() and setContentsVariable(...) have been renamed to getDerivedContentsVariable() and setDerivedContentsVariable(...)

    • The methods getMasterContentsVariable() and setMasterContentsVariable(...) have been added.

    com.coremedia.translate.workflow.GetDerivedContentsAction

    • The methods getContentsVariable() and setContentsVariable(...) have been renamed to getMasterContentObjectsVariable() and setMasterContentObjectsVariable(...)

    • The methods getTargetContentsVariable() and setTargetContentsVariable(...) have been renamed to getDerivedContentsVariable() and setDerivedContentsVariable(...)

    com.coremedia.translate.workflow.ValidateTranslationParametersAction

    • The methods getContentsVariable() and setContentsVariable(...) have been renamed to getMasterContentObjectsVariable() and setMasterContentObjectsVariable(...)

    (CMS-3108)
  • ContentSiteAspect (part of cap-multisite) now also provides setters for site related property values which are:

    • setMaster(<Content>):boolean

    • setMasterVersionNumber(<Integer>):boolean

    • setMasterVersion(<Version>):boolean

    Sets both, master link and master version number.

    • setLocale(<Locale>):boolean

    Automatically transforms the Locale into a String of valid format (language tag).

    Just as the getters they are fault-tolerant in any way (property does not exist, property of invalid type, site model not available). If you want to ensure if the value got really set please query the boolean return value which is true when the value was set, false otherwise.

    (CMS-3106)
  • Improved indexing performance of Content Feeder and CAE Feeder by sending batch requests to Apache Solr.

    (CMS-3069)
  • Method createSolrServerSearchEngines of class com.coremedia.cap.search.solr.SolrSearchEngineFactory has been deprecated and will be removed in a future release.

    (CMS-3042)
  • Improved documentation on the behavior of dumpusers / restoreusers regarding external groups and their rights rules.

    (CMS-3013)
  • Apache Solr has been updated to version 4.10.3.

    (CMS-2844)
  • Apache Tika has been updated to version 1.7.

    (CMS-1566)

CoreMedia Studio Changes and Improvements

  • Since FEP8 IBM also supports Chrome as browser for the Management Center. Now the support in Chrome is also available in Studio.

    (CMS-3369)
  • Studio document forms were enhanced to improve usability. Specifically, the component CollapsibleFormPanel was added, which replaces the component StandardCollapsibleFormPanel for document forms. This new component has a new layout and also stores the collapse/expand state in the user preferences. All property fields are wrapped inside this new component. It allows to hide unused or unimportant fields.

    If the collapsible section contains fields with validation errors, they are always expanded.

    Additionally, the attribute expandOnValues can be applied, which forces the CollapsibleFormPanel to always expand if one of the configured fields (comma-separated) is not empty.

    The new collapsible state for forms is applied in the version differencing view, too. Additionally, the collapse/expand state is synchronized between the two views. This means that when you expand a CollapsibleFormPanel in the read-only document tab, it is also expanded in the regular document tab.

    CollapsibleFormPanels can be used nested, too. For example, each placement of the page grid editor is a nested CollapsibleFormPanel that persists its own state. The previous behaviour (automatic expand of editable placements) is no longer applied here.

    All document forms have been reordered. The basic changes are described below.

    • As a result of trying to reduce the amount of tabs in forms, the property fields of the 'Settings' tab have been moved to the 'System' tab.

    • The property field 'Validity' has been moved from the 'Metadata' to the 'Content' tab. It is collapsed by default.

    • The link list property field 'Navigation Context' has been removed from all forms, since it is not used in the standard blueprint content any more.

    • The analytics tab for the page form has been removed completely since it is only relevant for technical users. The analytics manual provides a detailed description how to configure analytics using the settings editor.

    • The property fields 'HTML Keywords' and 'URL Segment' have been grouped into the collapsible panel 'Search Engine Optimization'.

    • The tab 'Tags' has been removed, the property fields 'Subject' and 'Location' tags have been moved to the 'Metadata' tab

    • The property fields 'Valid From' and 'Valid To' have been grouped into the collapsible panel 'Validity'. If a document provides these properties, it is located on the 'Content' tab.

    • The information about the site name and the site's locale have been grouped into the collapsible panel 'Site', available on the 'Localization' tag.

    • The (property) fields 'Locale', 'Master', 'Master Version' and 'Derived Content' are grouped into the collapsible panel 'Localization', available on the 'Localization' tab.

    • The property field 'Search' has been moved to the 'System' tab.

    Note: The Studio forms have been rearranged using the Blueprint demo content as a reference. If you miss some property fields, you can still add them again to the corresponding form.

    Furthermore, the form tabs 'System' and 'Localization' are hidden by default now. The user can hover a '...' labeled tab to expand the hidden tabs and see the corresponding property fields. Users can disable this behavior in the user preferences dialog, so that all tabs are shown by default.

    (CMS-3312)
  • When comparing two versions of a rich text property, additions, removals, and formatting changes are highlighted inline in the rich text property field.

    (CMS-3253)
  • When viewing a content and its master content in the side-by-side view, the differences between the displayed version of the master content and the last translated version of the content are highlighted.

    (CMS-3251)
  • When viewing an older version of a content in the versioning side-by-side view, the properties whose value differs from the current content are highlighted.

    The showIssuesPlugin is also used to highlight the property fields in differencing mode. When the property value has changed, the CSS style class issue-change is added to the property field DOM element.

    (CMS-3130)
  • Display the Master Version in the Side-By-Side View

    It is now possible to open a premular tab in the side-by-side view with a Content on the right and a read-only ContentObject on the left. This is used e.g. to open a derived document from a translation workflow right next to the master version which should be translated.

    com.coremedia.cms.editor.sdk.desktop.ContentTabManager :

    • The method openPremulars(premularConfigurations:Array, background:Boolean = false):void has been added to open premular tabs for a given list of premular configurations.

    • The class com.coremedia.cms.editor.sdk.premular.PremularConfiguration has been introduced as an extensible parameter object for ContentTabManager#openPremulars(...).

    com.coremedia.cms.editor.sdk.actions.OpenInTabAction :

    • The config parameter documentViewMode has been removed in favor of the more generic OpenPremularAction.

    • The class com.coremedia.cms.editor.sdk.actions.OpenPremularAction has been introduced to allow opening premular configurations via action.

    com.coremedia.cms.editor.controlroom.workflow.translation.AbstractStartTranslationWorkflowPanelBase :

    • The method getProcessVariableMappings():Array has been replaced by the method computeProcessVariableMappings(callback:Function):void to allow asynchronous computation of the variable mappings.

    • The method getMasterContents():Array has been added. It returns the list of contents that are subject to translation which is used to remove the contents from my edited contents.

    • Both methods must be overridden by subclasses.

    (CMS-3090)
  • The read-only document form can now display previous versions of a content. Property fields have to note that if the value expression provided through the option forceReadOnlyValueExpression evaluates to true, the object provided through the bindTo value expression might not evaluate to a content in the sense of the Unified API but to a bean that claims to be checked in and that returns the historic properties of the version to display. Correct handling of the forceReadOnlyValueExpression is therefore crucial. For further details please refer to the Studio Developer Manual.

    (CMS-3064)
  • Richtext editor toolbars in Studio are now accessible by using richTextPropertyField.FIND_TOOLBAR.

    (CMS-3008)
  • A validator was added which warns when content contains links to content in another site. See com.coremedia.rest.cap.validators.CrossSiteLinkValidator for further details.

    (CMS-2922)
  • Class com.coremedia.livecontext.ecommerce.catalog.Category has been extended with the method getDisplayName(). The Studio model ActionScript classes also reflect this change. This method is used e.g. to display the category name in Studio UI components (catalog tree and breadcrumb).

    (CMS-2718)
  • The EXML validation mode has been set to error for all modules. A few remaining EXML validation issues in CoreMedia Blueprint code have been fixed.

    Note that this means that for your build to succeed, you have to fix EXML validation errors in your project code, or set <validationMode> back to warn in Blueprint's pom.xml.

    When the project is imported correctly, IDEA should show all validation errors as red code. Typically, validation errors result from an incorrect sequence of EXML property sub-element or forgotten or duplicate <exml:cfg> declarations. When using Ext JS config options that are not declared in the Ext AS API, these have to be used with the namespace exml:untyped.

    (CMS-203)

CoreMedia Blueprint Changes and Improvements

  • The Media site has been removed with its content, templates, web resources and configuration. The deployment properties MEDIA_SEGMENT, PREVIEW_MEDIA_SEGMENT, and STUDIO_MEDIA_SEGMENT have been removed as well.

    (CMS-3322)
  • The Surefire, Surefire Report and Failsafe plugins have been updated to version 2.18.1 to be able to rerun failing tests.

    (CMS-3311)
  • You possibly want to use the Blueprint only with the new corporate site, without the lc extension. In this case you would encounter errors importing the example content, because some of the document types are only available with the lc extension. In order to avoid such problems, we moved the lc specific content into a separate directory blueprint/modules/extensions/lc/test-data. The new extension corporate also brings some content of its own. Some global content remains in the well known blueprint/test-data directory. Extension content may reference global content, but not vice versa. The lc and corporate contents are independent of each other.

    Due to the limited path length on Windows machines the content is stored with compressed file paths as created by "serverexport -cut" now. This affects some deeply nested folders only, the file names of most example content remain the same.

    The boxes module builds separate zip archives for these three content sources. By default, the Chef deployment addresses all content archives. You can configure the list of archives in blueprint/boxes/chef/chef-repo/cookbooks/coremedia/attributes/default.rb.

    (CMS-3182)
  • A global logger is available for JavaScript development in Blueprint for displaying infos to JavaScript console of the browser. It is disabled by default and enabled in developerMode. Just use coremedia.blueprint.logger.log("Example Log Message") to print debug messages.

    (CMS-2989)

Miscellaneous Changes and Improvements

  • Deprecated getter methods in the public API of the Proactive Engine

    • com.coremedia.cap.persistentcache.proactive.TriggerBase#getLogger

    • com.coremedia.cap.persistentcache.proactive.BaseReceiver#getLogger

    • com.coremedia.cap.persistentcache.ProcessingCallbackBase#getLog

    Do not call these methods but construct your own Logger instances.

    (CMS-3218)

Fixed Issues

  • CMS-3273: Automatic reloading of Views from the Content Repository

    When updating a JAR containing templates, the CAE now automatically reloads all views. It's advised to use a specific DocumentType for storing templates JARs (CMTemplateSet in the Blueprint) since all relevant changes (create, move, delete, JAR upload, publication) made to any of those documents leads to reloading the Views. The DocumentType is configurable, see documentation chapter "Dynamic Templating".

  • CMS-3272: View Lookup improvements

    To reduce the time spent doing view lookups, Classes with certain suffixes ("Base", "Impl", "#", "$$", "AssumesIdentity", "DataView", "HasCustomType", "AspectAggregatorAware", "ContentBean") are now excluded from the view lookup.

    This reduces the number of view lookups made by the CAE dramatically. Without the reduction, the CAE makes over 27,000 lookups for the main "PerfectChef" page. With the optimization, only 15,000.

    Depending on the structure of the templates, the ratio of saved view lookups may differ for other sites.

  • CMS-3242: Studio comment moderation: user filter does not work with upper-case names

    The Solr schema configuration for Elastic Social has changed in file <solr-home>/configsets/elastic/conf/schema.xml. This fixes a bug that filtering comments by user name did not work in the Studio comment moderation for user names with upper-case characters.

    Existing comments must be reindexed in Solr to apply the bugfix to them. You can reindex the Elastic Social comments by invoking the JMX reindex operation of interface com.coremedia.elastic.core.api.search.management.SearchServiceManager with parameter "comments". You can find the SearchServiceManager MBean of the elastic-worker web application for tenant media under the object name com.coremedia:application=elastic-worker,type=searchServiceManager,tenant=media.

  • CMS-3229: Property change events

    A superfluous property change event used to be fired for the property containing a sub-bean when a property of the sub-bean changed. Now only the event for the actually updated property is fired.

  • CMS-3197: e-Commerce library sorting by name is now kept on category changes

    sorting order of columns in the e-Commerce library is now kept when changing the folder/category and newly opened categories are sorted in the same way as in the category before.

  • CMS-3192: Studio Memory Stability

    Memory stability in the studio has been improved further by fixing a leak in PropertyPathExpressions. This allows for slightly longer editing sessions before reloading the studio client.

  • CMS-3163: database schema change for translation

    In order to reliably protect versions in a translation workflow from destruction by the publisher or clean-up tools, the content server's database schema has been extended. When upgrading, you need to activate the sql.schema.alterTable flag, so that the content server will automatically add the required columns to each document type table in the database. Depending on the database model, the process may be instantaneous or take time proportional to the number of versions. Concrete timing depends on the installation and, for very large content volumes, should be verified prior to migration.

  • CMS-3103: Hide Studio system Information from anonymous users

    Studio users now have to be logged-in in order to access the Studio system information. The client side CapSystemInfo class is now a RemoteBean. Please note that it is not loaded together with the CapConnection anymore.

  • CMS-3092: Contentserver Folderindex slow because of non-prepared update statements

    Improved folder index performance with large folder hierarchies by using prepared statements. This reduces pauses before query execution when a query accesses the folder index using a "BELOW" clause.

  • CMS-3038: CacheInvalidation Listener might hang in endless loop

    In rare situations the CacheInvalidation Listener that polls cache invalidations from IBM WebSphere Commerce, might hang in an endless loop and requests the same clearall event again and again. This is due to an issue in the REST CacheInvalidationHandler.

  • CMS-3026: Spring Patch-Version Update

    The Studio performance was massively impacted by SPR-11545 Spring version was updated from 4.0.1 to 4.0.9 where SPR-11545 is fixed.

  • CMS-3007: UserProvider deprecated

    The interface com.coremedia.ldap.UserProvider has been deprecated. Use interface com.coremedia.ldap.UserProvider2 instead, which has an additional close method.

    The abstract class com.coremedia.ldap.LdapUserProvider has been changed to implement the new UserProvider2 interface and custom classes extending LdapUserProvider do not need to be adapted.

  • CMS-2983: Perso Cookie Overflow

    com.coremedia.personalization.context.collector.CookieSource#maxBytes can be used to limit the size of an encoded personalization context. If maxBytes is exceeded, the cookie is cleared so that the cookie may grow anew.

  • CMS-2959: SolrJ connection object not properly closed on shut down

    The interface com.coremedia.cap.search.solr.SolrSearchEngine has been deprecated. Use interface com.coremedia.cap.search.solr.SolrSearchEngine2 instead, which has an additional shutdown method.

    The method createSearchEngine of class com.coremedia.cap.search.solr.SolrSearchEngineFactory has been deprecated. Use method createSearchEngine2 instead.

  • CMS-2869: SolrSearchQueryBuilder does not deactivate spellchecking suggestions

    Spellchecking is turned off by default now for the request handler /cmdismax in the Solr configuration file modules/search/solr-config/src/main/app/solr-home/collection1/conf/solrconfig.xml. The Blueprint CAE enables spellchecking in method search of class com.coremedia.blueprint.cae.action.search.SearchService to show "did you mean" suggestions for search results.

    This change improves the performance of Solr queries using the /cmdismax request handler which does not need spellcheck results.

    If you have custom code that sends Solr queries to the /cmdismax request handler and expect spellcheck results in the Solr response, then you must set the spellcheck Solr query parameter to true. To this end, if you construct your query with class com.coremedia.blueprint.cae.search.SearchQueryBean, you just need to call its method setSpellcheckSuggest(true).

  • CMS-2835: CAE Feeder has incompatible version of ASM for Tika

    Excluded incompatible version of ASM library from Blueprint CAE Feeder.

  • CMS-2820: Elastic Social search for users or comments shows error for special characters

    Fixed searching with special characters for Elastic Social users or comments in Studio.

  • CMS-2818: Solr replication not working because of incorrect configuration

    Fixed configuration of Solr master-slave replication in the Blueprint modules solr-master-tomcat and solr-slave-tomcat.

  • CMS-1863: XLIFF Import

    The XLIFF importer detects missing translations in rich text properties now. Affected XLIFF files will not be imported, avoiding content corruption.