loading table of contents...

Release Notes / Version 11.2110

Table Of Contents

CoreMedia Headless Server

GraphQL Java Libraries Updated to Version 17.3

These libraries have been updated:

Follow Section, “GraphQL Java Libraries Updated to Version 17.3” for upgrade information.


Swagger Updated to Latest Version

Swagger and the related libraries were updated for maintainability reasons. The updates made some refactorings necessary. As a consequence, the previously public api package has been revoked, as it doesn't contain any classes anymore. The previous public 3rd party package springfox has been revoked also, as the CoreMedia classes do not expose the Springfox annotations are anymore.

Follow Section, “Swagger Updated to Latest Version” for upgrade information.


Refactoring of Adapters

Due to an internal refactoring, some of the adapters used in the content-schema had to be refactored as well. Where possible we tried to be non breaking. Nonetheless some changes lead to breaking changes in the content-schema:

Follow Section, “Refactoring of Adapters” for upgrade information.


Filter Predicates May Now Access the DataFetchingEnvironment

Filter predicates were formerly a simple Predicates. They now use a dedicated interface which marks them as ExtensionPoints and they act as a BiPredicate.


Headlless Server Deprecations for CoreMedia CMCC 11

These previously announced deprecations were carried out with the major release of CoreMedia CMCC 11:

Follow Section, “Headlless Server Deprecations for CoreMedia CMCC 11” for upgrade information.


New Feature: Plugin Extension Point FilterPredicate

With the new extension point FilterPredicate it is possible to add filter predicate via the means of a plugin. This change is considered breaking, as customers/implementers have to use the new interface FilterPredicate instead of the more generic Predicate<Object>. FilterPredicate is just a marker interface, so the necessary changes are minimal.


AbstractDynamicListAdapter#getItems and SearchServiceAdapter#search now return DataFetcherResults

AbstractDynamicListAdapter#getItems and SearchServiceAdapter#search now return a DataFetcherResult, which wraps data and error information. This enables a uniform way to transfer information about errors from the backend to the client via the errors field in the GraphQL response.


Removal: Deprecated Headless API for Commerce Entities

The old commerce schema extension of the CoreMedia Headless Server was deprecated in 2101 and is now removed.

Follow Section, “Removal: Deprecated Headless API for Commerce Entities” for upgrade information.


Removal of ViewBySiteDataFetchingEnvironment, Public API Changes of RemoteLinkWiringFactory and RemoteLinkDataFetcher

The class ViewBySiteDataFetchingEnvironment has been removed. Use builder of DataFetchingEnvironmentImpl.newDataFetchingEnvironment() instead. The RemoteLinkWiringFactory and the RemoteLinkDataFetcher take a remoteLinkDataLoader as constructor argument. The method CaasWebConfig#getForwardHeaderMap has been removed. Retrieve the map from the environment context instead.


Addition: New RichText Type to Encapsulate the Different Representations of Richtext

Introduced a new RichText type in the schema to encapsulate the different representations of RichTexts, like text as tree and linked contents in RichText. The old fields are deprecated and moved into the new type. The field detailTextLegacy and teaserTextLegacy were intruduced to provide easy access to the former behavior of the detailText and teaserText fields.


Changed Configuration Properties

The following configuration properties have changed and are now defined in the class CaasSearchConfigurationProperties :

Follow Section, “Changed Configuration Properties” for upgrade information.


Ordered Content Schema

The content-schema file was ordered alphabetically by types, in order to raise the readability of the schema. Since the changed order does not change the code, this change does not break directly. However, customers who changed the content schema directly in that file (Blueprint), will most likely encounter a merge conflict.


Site Query by Root Segment

Starting with 2104.1, the site query now additionally supports'rootSegment' as a query parameter as an alternative to 'siteId'. The new feature is considered breaking, if the pageByPathAdapter was used! PageByPathAdapter was renamed to ByPathAdapter and the implementation to fetch a site object was moved there. The old implementation in ContentRoot was deprecated.


Loading of Persisted Queries from Plugins

Headless server supports loading resource files containing persisted query definitions from the content of plugins.

Follow Section, “Loading of Persisted Queries from Plugins” for upgrade information.


Content Types in Search are Now Validated

While searching, non existent content types were simply ignored, leading to the situation, that the search wasn't restricted to any content type at all. As this behavior led to bigger result set than expected and may hide bugs on the client side, a content type validation was introduced. Whenever an invalid, non existent content type is given, headless will respond with one GraphQL error message per invalid content type.

Follow Section, “Content Types in Search are Now Validated” for upgrade information.


CMProductTeaser change in headless

CMProductTeaser#teaserTarget and CMProductTeaser#teaserTargets always return null since only the CMProductTeaser#productRef should only be used. The teaser target can not be set in Studio anyways.

Follow Section, “CMProductTeaser change in headless” for upgrade information.


Headless Commerce: Remove Autocompletion for Breadcrumb Parameter

The breadcrumb parameter is not completed automatically anymore, if the category " root " is missing. Make sure that the breadcrumb parameter contains all categories from leaf to root category, including the root category itself.

Follow Section, “Headless Commerce: Remove Autocompletion for Breadcrumb Parameter” for upgrade information.


JsonPreviewClient was refactored to Spring AutoConfiguration

The JsonPreviewClient was refactored to use Spring AutoConfiguration. As a consequence class com.coremedia.blueprint.headlessserver.JsonPreviewClientConfig was removed from blueprint. The removal is breaking, if JsonPreviewClientConfig was adapted by developers. If not, the change is non-breaking, as JsonPreviewClientConfig only contained a component scan which was replaced by the new AutoConfiguration.


Removal: ViewMapperConfig Class

The Spring Configuration class com.coremedia.caas.web.ViewMapperConfig was removed from from public API. The change didn't affect any configuration properties. The config was meant to expose the existing view mappings during runtime, as the mapping may change during runtime by editing, removing or deleting the homepage of a site. As a configuration class is not meant to expose dynamic runtime data, the class was refactored. The mappings can now be acquired via an actuator at /actuator/siteRestrictedEndpoints .


Aligned Behavior of StructAdapter to Same as in SettingsAdapter

When querying for a settings path via StructAdapter, the behavior varied from the one implemented in SettingsAdapter. The behavior of the StructAdapter was now aligned to the behavior of the SettingsAdapter. The documentation was updated accordingly.


Default Java heap for Headless Server reset to 1 GB in Dockerfile

This change only affects customers coming from CoreMedia versions 2101.1, 2101.2 and 2101.3 who use the Docker deployment. The default Java heap for the Headless Server has been reset from 2048m to 1024m in the Dockerfile of the Headless Server. The Java heap can, but does not have to be increased for performance optimization.


Headless Server Schema Changes

Replace the usage of Locale::toString with Locale::toLanguageTag for the locale fields. This changes the behavior of the locale-field of the Site and CMLocalized types by changing the format of the locale field. Additionally removing the deprecated "languageId" field from the Headless Server schema.


Support ContentBlobLinkComposer in RichText conversion

Added the ContentBlobLinkAdapterFactory to the EvaluationContext to be able to use the ContentBlobLinkComposer in RichTextConversion


Search Results

Table Of Contents