Release Notes / Version 11.2201
Table Of ContentsGraphQL 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.
(CMS-20151)
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
com.coremedia.caas.web.rest
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.
(CMS-19836)
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.
(CMS-19796)
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.
(CMS-19769)
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.
(CMS-19685)
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.
(CMS-19641)
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.
(CMS-19428)
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.
(CMS-19322)
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.
(CMS-19155)
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.
(CMS-19107)
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.
(CMS-19076)
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.
(CMS-19071)
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.
(CMS-18930)
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.
(CMS-18315)
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.
(CMS-17298)
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.
(CMS-20193)
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.
(CMS-20085)
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.
(CMS-19941)
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
.
(CMS-19885)
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.
(CMS-19452)
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.
(CMS-19210)
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.
(CMS-19096)
Support ContentBlobLinkComposer in RichText conversion
Added the
ContentBlobLinkAdapterFactory
to the
EvaluationContext
to be able to use the
ContentBlobLinkComposer
in
RichTextConversion
(CMS-19055)