Release Notes / Version 12.2506.0
Table Of Contents
The CAE Feeder can now be configured to feed
index fields validfrom and
validto not only based on a CMLinkable's own
validFrom and validTo fields,
but by also taking validFrom and
validTo fields of its navigation contexts into
account. If enabled and after corresponding content has been
re-indexed, then website search will not return CMLinkable hits
anymore if their page was marked as invalid for the current time. This
new behavior can be enabled with Blueprint configuration property
caefeeder.valid-time.inherit-from-navigation=true
(default is false). The default behavior is the same as before, but
changes in the CAE Feeder Spring configuration
may require adjustments for project customizations.
Previously, feeding
validfromandvalidtoindex fields was configured in Blueprint Spring configurationapps/cae-feeder/modules/search/caefeeder-blueprint-component/src/main/resources/META-INF/coremedia/caefeeder.xmlusingBeanPropertyFeedableElementMappingelements. This has been replaced with the configuration of a newly introduced dedicatedValidTimeFeedablePopulatorincom.coremedia.blueprint.caefeeder.config.CaeFeederBlueprintAutoConfiguration. If needed, you can still keep custom alternative logic for feeding the valid time using aBeanPropertyFeedableElementMapping. TheValidTimeFeedablePopulatorruns afterward and doesn't do anything, ifvalidfromorvalidtoelements are already set in theFeedable.The Spring bean
navigationPathKeyFactorythat was used in Blueprintcaefeeder.xmlhas been replaced with beannavigationPathContentsFunction. If you called methodTreePathKeyFactory#getPath(Content)of thenavigationPathKeyFactorybean in custom code, then you can replace such usages by calling theFunction#apply(Content)method of the newnavigationPathContentsFunctionbean. For details, see also the API documentation ofcom.coremedia.blueprint.base.caefeeder.navigation.CaeFeederNavigationConfiguration#navigationPathContentsFunction.Public API interface
com.coremedia.cap.feeder.MutableFeedablegot a new default methodsetDateElement(String, java.time.Instant, Map)that works like existing methods but supports values of new typejava.time.Instant.Note, that if you enable property
caefeeder.valid-time.inherit-from-navigation=trueto feed an existing index, then contents need to be re-indexed before changes will become effective for them. Also, automatic re-indexing of many contents may happen once, ifvalidFromorvalidTois already set at transitive navigation contents and the CAE Feeder is re-indexing other content below that navigation.For more details on feeding valid time, have a look at the CAE Feeder Java API documentation in packages
com.coremedia.blueprint.base.caefeederandcom.coremedia.blueprint.base.caefeeder.navigation.
(CMS-27206)


