Release Notes / Version 11.2304
Table Of ContentsConfigurable Log Pattern in Solr Base Image
The Solr base image has been enhanced to make the Solr logging pattern configurable.
Use
SOLR_LOG_PATTERN_CONSOLE
and
SOLR_LOG_PATTERN_FILE
to configure the logging.
This fix is contained in
coremedia/solr-base:8.8.2-3
and higher.
(CMS-20097)
Undeprecated CMLinkable#LOCAL_SETTINGS
On popular demand, we have undeprecated
com.coremedia.blueprint.common.contentbeans.CMLinkable#LOCAL_SETTINGS
. Nonetheless, we recommend to use the
SettingsService
to access the settings.
(CMS-19985)
Tomcat TLD Scanning has been Disabled for all Applications Except CAE
Since the CAE is the only application using taglibs, the tomcat scanning mechanism has been disabled for all Spring Boot applications except for the CAE.
For the CAE an exclude pattern has been defined, excluding problematic jars. The list includes:
xmpcore*.jar
grpc-netty-shaded*.jar
listenablefuture*.jar
jsr305*.jar
checker-compat-qual*.jar
j2objc-annotations*.jar
Please make sure that you are not already setting:
the property
server.tomcat.additional-tld-skip-patterns
the environment variable
SERVER_TOMCAT_ADDITIONALTLDSKIPPATTERNS
the environment variable
SERVER_TOMCAT_ADDITIONAL_TLD_SKIP_PATTERNS
If you set one of these properties outside of the CAEs
application.properties
, make sure to remove those and merge your additions into the CAEs
application.proeprties
.
(CMS-19953)
Added Headless Rest Mappings for Augmentation Queries
The headless server now provides an augmentation Rest API. Refer the documentation for more details.
(CMS-19900)
Third-Party Update: Apache Solr and Transitive Dependencies
Apache Solr has been updated to version 8.10.1.
For detailed changes of Apache Solr have a look at https://lucene.apache.org/solr/8_10_1/changes/Changes.html .
In previous releases, the Solr configuration contained a workaround for a bug in Solr 8.8.2, that has been fixed with the new version (SOLR-15192 / SOLR-13034). The workaround has been removed again in file
apps/solr/modules/search/solr-config/src/main/app/configsets/content/conf/solrconfig.xml
. For best performance, it's recommended to apply this change to custom copies of that file, by setting the
enableLazyFieldLoading
option back to
true
.
As part of this change, the following transitive dependencies have also been updated in CoreMedia applications to match versions used by SolrJ:
HttpComponents HttpCore: 4.4.14
Jetty: 9.4.44.v20210927
If you use these libraries in project code, please check their respective release notes for changes and upgrade information. No changes were necessary in the CoreMedia Blueprint for these updates.
(CMS-19802)
Update of Commerce Adapter Versions
The following commerce adapter versions are set:
Commerce adapter base to v1.6.9
Commerce adapter sfcc to v1.4.6
Commerce adapter hybris to v1.4.3
Commerce adapter wcs to v1.6.3
Commerce adapter commercetools to v1.2.3
(CMS-19734)
Third-Party Update: Spring Boot and Related Dependencies
Spring Boot has been updated to version 2.3.11.RELEASE. As part of this change, the following dependencies have been updated to match versions used by Spring Boot. This also fixes a security vulnerability in Spring Security: CVE-2021-22112
Spring Boot 2.3.11.RELEASE
Spring Framework 5.2.15.RELEASE
Spring Security 5.3.9.RELEASE
Byte Buddy 1.10.22
Glassfish JAXB 2.3.4
Hibernate 5.4.30.Final
Hsqldb 2.5.2
Jakarta Mail 1.6.7
Janino 3.1.4
Jetty 9.4.41.v20210516
Micrometer 1.5.14
MySQL 8.0.25
Netty 4.1.65.Final
PostgreSQL driver 42.2.20
Tomcat 9.0.46
If you use these libraries in project code, please check their respective release notes for changes and upgrade information. No changes were necessary in the CoreMedia Blueprint for these updates.
(CMS-19524)
Added the possibility to change the commerce reference of an augmented content
In the case that IDs of categories or products changes in the commerce system, augmentations can now be adapted from the old ID to the new ID directly in CoreMedia Studio. To that end the system tab of augmented contents now provides an editable commerce reference field and a new
change reference
button. By clicking on it, the editor has the possibility to replace the current commerce reference with a new one from the commerce library. Folder path and name of the augmented content is getting updated after the change.
Additionally, the preference "
Show Products and Categories as Content
" also toggles the display of the repository path on the
System
tab of augmented categories and products.
(CMS-19456)
Query for Documents Tagged by Specific Taxonomies
It is now possible to query for documents tagged by specific taxonomies. More details can be found in the Headless Server Manual.
(CMS-19408)
Explode Spring Boot Applications for Commerce Adapters at Startup
The Docker images of the commerce adapters now also make use of the
SPRING_BOOT_EXPLODED_APP
toggle was added to the
java-application-base
image. By setting
SPRING_BOOT_EXPLODED_APP: true
(which now is the default), the
application
entrypoint will extract the
application.jar
to
/coremedia/exploded
and start it from there. If that directory already exists, it will start the application from there.
This process speeds up the starting process by factor 2-3 and is the recommended way by Spring.
(CMS-19368)
Reproducible Maven Builds
With this release the Maven build produces the same artifacts on two consecutive builds, when there are no changes. This is implemented following the Maven guidelines described here .
There are some minor behavioral changes in the editorial UIs:
The Studio won't show a build date in the about dialog if the version is a
-SNAPSHOT
.The Editor won't show a build date in the about dialog
The
coremedia-application-maven-plugin
has been updated with this commit to the version
3.0.0
. This version does not add any new configuration options but removes some unused functionality including:
support for Webstart
support for RPM building
support for application building with embedded Tomcat installation
If you need any of these features, you can switch back to version
2.8.3
and build without the reproducible build feature.
(CMS-19166)
Reworked Commerce search API
The Commerce search API as defined in class
com.coremedia.livecontext.ecommerce.catalog.CatalogService
was changed. The methods accepting search parameters as a map are deprecated. A single method accepting parameters of type
com.coremedia.livecontext.ecommerce.search.SearchQuery
and
com.coremedia.livecontext.ecommerce.common.StoreContext
replaces them all:
CatalogService#search(SearchQuery sq, StoreContext sc)
The paging parameters have been consolidated. The new
SearchQuery
parameter object does neither support
pageSize
nor
pageNumber
because this information is redundant to
limit
and
offset
.
The new
SearchQuery#offset
is 0-based whereas
CatalogService#SEARCH_PARAM_OFFSET
was 1-based. In order not to confuse the editors the offset in the
ProductList
Studio form is still 1-based. The required offset conversion is implemented in all places, where the settings of product list contents are read. Custom implementations will have to be changed from
searchParams.put(SEARCH_PARAM_OFFSET, Integer.toString(myOffset))
to
searchQueryBuilder.setOffset(myOffset - 1)
.
The method
MarketingSpotService#searchMarketingSpots(String s, Map<String,String> m, StoreContext sc)
has been deprecated in favor of
MarketingSpotService#searchMarketingSpots(SearchQuery q, StoreContext sc)
.
The methods
DataSearchService#searchCategories(String s, Map<String,String> m, StoreContext sc)
,
DataSearchService#searchProducts(String s, Map<String,String> m, BaseCommerceBeanType b, StoreContext sc)
and
DataSearchService#searchMarketingSpots(String s, StoreContext sc)
have been deprecated in favor of
DataSearchService#search(SearchQuery q, StoreContext sc)
.
Multi-facet support is included only for commerce adapter services based on base adapter 1.5. The new search implementation is backward-compatible in the sense that it works with older commerce adapter services (using base adapter older than 1.5) but then just the first facet is taken into account. Also note that the deprecated
SearchResult#getFacets
is only filled when connected to an old commerce adapter because the returned facet format is incompatible with the new facet format returned in
SearchResult#getResultFacets
.
For the backward compatibility of the commerce adapter used in your project, please consult the release notes of the commerce adapter.
(CMS-19118)
Removed Classic Studio Components
Removed Components in
apps/studio-client/apps/main/core/editor-components/src/sdk/desktop/
:
ExtensionsMenu
/ExtensionsMenuToolbar
replaced by the new Apps MenuFavoritesToolbar
/FavoritesToolbarUserItemsArea
is no longer a toolbar, but a menu:FavoritesButtonMenu
,FavoritesUserItem
(CMS-18876)
Added EntityController and StudioRestController as ExtensionPoints for Studio-Server Plugins
See JavaDoc of
EntityController
and
StudioRestController
in package
com.coremedia.rest.controller
and section "Using the EntityController" in Studio Developer Manual and section "Plugins for Java Applications" in Blueprint Developer Manual.
(CMS-18735)
Unify Link Building for Commerce-Led and Content-Led URLs
The generic client receives links for commerce-led and content-led link building as link template. The template usually contains placeholders, which are replaced in the generic client.
The class com.coremedia.livecontext.ecommerce.link.CommerceLinkTemplateTypes represents the list of well-known link templates. As all link templates are transferred in a map from the adapter to the client, additional links can be added on the adapter and client side easily without API changes.
Make sure the commerce adapter instance and the commerce-adapter-base library in your client application do have at least version 2.0.0.
There is no further action needed, if you did not customize link building in your project so far.
(CMS-17506)
Customization of CMQueryListImpl and SettingsStructToSearchQueryConverter
The Blueprint classes
CMQueryListImpl
and
SettingsStructToSearchQueryConverter
can be customized easier now by overriding protected methods, that were private before. The
SettingsStructToSearchQueryConverter
was enhanced by a method
applyCustomFilter
that can be overridden to add custom filters to the query. Additionally a custom
SettingsStructToSearchQueryConverter
can be provided via a new factory bean
SettingsStructToSearchQueryConverterFactory
.
(CMS-16276)