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:
Product | Key | Version |
---|---|---|
CoreMedia Application Maven Plug-in | APPPLUGIN | 2.7.9 |
CoreMedia Project Maven Extension | PROJEXT | 1.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 ofContents
for the contents to translate. This means that the workflow can work with a list of masterContents
or a list of masterVersions
.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 filetranslation.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()
andsetContentsVariable(...)
have been renamed togetDerivedContentsVariable()
andsetDerivedContentsVariable(...)
The methods
getMasterContentsVariable()
andsetMasterContentsVariable(...)
have been added.
com.coremedia.translate.workflow.GetDerivedContentsAction
The methods
getContentsVariable()
andsetContentsVariable(...)
have been renamed togetMasterContentObjectsVariable()
andsetMasterContentObjectsVariable(...)
The methods
getTargetContentsVariable()
andsetTargetContentsVariable(...)
have been renamed togetDerivedContentsVariable()
andsetDerivedContentsVariable(...)
com.coremedia.translate.workflow.ValidateTranslationParametersAction
(CMS-3108)The methods
getContentsVariable()
andsetContentsVariable(...)
have been renamed togetMasterContentObjectsVariable()
andsetMasterContentObjectsVariable(...)
ContentSiteAspect
(part ofcap-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
(CMS-3106)true
when the value was set,false
otherwise.Improved indexing performance of Content Feeder and CAE Feeder by sending batch requests to Apache Solr.
(CMS-3069)Method
(CMS-3042)createSolrServerSearchEngines
of classcom.coremedia.cap.search.solr.SolrSearchEngineFactory
has been deprecated and will be removed in a future release.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 componentStandardCollapsibleFormPanel
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 theCollapsibleFormPanel
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 nestedCollapsibleFormPanel
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
(CMS-3130)showIssuesPlugin
is also used to highlight the property fields in differencing mode. When the property value has changed, the CSS style classissue-change
is added to the property field DOM element.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-onlyContentObject
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 forContentTabManager#openPremulars(...)
.
com.coremedia.cms.editor.sdk.actions.OpenInTabAction
:The config parameter
documentViewMode
has been removed in favor of the more genericOpenPremularAction
.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
:(CMS-3090)The method
getProcessVariableMappings():Array
has been replaced by the methodcomputeProcessVariableMappings(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.
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
(CMS-3064)forceReadOnlyValueExpression
evaluates totrue
, the object provided through thebindTo
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 theforceReadOnlyValueExpression
is therefore crucial. For further details please refer to the Studio Developer Manual.Richtext editor toolbars in Studio are now accessible by using
(CMS-3008)richTextPropertyField.FIND_TOOLBAR
.A validator was added which warns when content contains links to content in another site. See
(CMS-2922)com.coremedia.rest.cap.validators.CrossSiteLinkValidator
for further details.Class
(CMS-2718)com.coremedia.livecontext.ecommerce.catalog.Category
has been extended with the methodgetDisplayName()
. 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).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 towarn
in Blueprint'spom.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
(CMS-203)<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 namespaceexml:untyped
.
CoreMedia Blueprint Changes and Improvements
The Media site has been removed with its content, templates, web resources and configuration. The deployment properties
(CMS-3322)MEDIA_SEGMENT
,PREVIEW_MEDIA_SEGMENT
, andSTUDIO_MEDIA_SEGMENT
have been removed as well.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 thelc
extension. In this case you would encounter errors importing the example content, because some of the document types are only available with thelc
extension. In order to avoid such problems, we moved thelc
specific content into a separate directoryblueprint/modules/extensions/lc/test-data
. The new extensioncorporate
also brings some content of its own. Some global content remains in the well knownblueprint/test-data directory
. Extension content may reference global content, but not vice versa. Thelc
andcorporate
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
(CMS-3182)blueprint/boxes/chef/chef-repo/cookbooks/coremedia/attributes/default.rb
.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
(CMS-2989)coremedia.blueprint.logger.log("Example Log Message")
to print debug messages.
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 namecom.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 aRemoteBean
. Please note that it is not loaded together with theCapConnection
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 interfacecom.coremedia.ldap.UserProvider2
instead, which has an additionalclose
method.The abstract class
com.coremedia.ldap.LdapUserProvider
has been changed to implement the newUserProvider2
interface and custom classes extendingLdapUserProvider
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 interfacecom.coremedia.cap.search.solr.SolrSearchEngine2
instead, which has an additionalshutdown
method.The method
createSearchEngine
of classcom.coremedia.cap.search.solr.SolrSearchEngineFactory
has been deprecated. Use methodcreateSearchEngine2
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 filemodules/search/solr-config/src/main/app/solr-home/collection1/conf/solrconfig.xml
. The Blueprint CAE enables spellchecking in methodsearch
of classcom.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 thespellcheck
Solr query parameter totrue
. To this end, if you construct your query with classcom.coremedia.blueprint.cae.search.SearchQueryBean
, you just need to call its methodsetSpellcheckSuggest(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
andsolr-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.