Release Notes / Version 13.2512.0
Table Of Contents
The Blueprint CAE Feeder Spring configuration was changed to use
Spring Java configuration classes instead of legacy Spring XML files.
This makes it possible to use Java code to configure which content
bean data should be indexed. Instead of configuring content bean
classes and properties as literal string values, the configuration can
now use more reliable Java code to refer to methods directly. To this
end, new addElement methods have been added in
class
com.coremedia.cap.feeder.bean.BeanFeedableMapping
while API for old-style Spring XML configuration has been deprecated.
The new BeanFeedableMapping#addElement methods take
a java.util.function.Function parameter to compute
the values for Feedable elements. The function can also handle default
values and converters, which were separate options of the formerly
used class BeanPropertyFeedableElementMapping. For
more information, see section "Configuring the
BeanMappingFeedablePopulator" in the Search Manual, the API
documentation or usages of class
BeanFeedableMapping in Blueprint code. As part of
this change, the class BeanFeedableMapping was
changed to generic type
BeanFeedableMapping<T> with type parameter
<T> for the bean class, so that the source
value of the value function is correctly typed.
Replaced Blueprint Spring XML and Properties Files:
in module caefeeder-lib,
framework/spring/caefeeder-taxonomy.xmlreplaced bycom.coremedia.blueprint.caefeeder.CaeFeederTaxonomyConfigurationin module caefeeder-blueprint-component,
META-INF/coremedia/caefeeder.xmlreplaced bycom.coremedia.blueprint.caefeeder.config.CaeFeederBlueprintAutoConfigurationin module am-caefeeder-component,
META-INF/coremedia/am-caefeeder.xmlreplaced bycom.coremedia.blueprint.feeder.cae.assets.AssetCaeFeederAutoConfigurationin module lc-caefeeder-component,
META-INF/coremedia/livecontext-caefeeder.xmlreplaced bycom.coremedia.blueprint.lc.caefeeder.LiveContextCaeFeederAutoConfigurationandMETA-INF/coremedia/livecontext-caefeeder-contentbeans.xmlfor content bean definitionsin module corporate-caefeeder-component,
META-INF/coremedia/corporate-caefeeder.xmlreplaced bycom.coremedia.blueprint.caefeeder.corporate.CorporateCaeFeederAutoConfiguration
The following properties files for Spring XML have been replaced by a
Spring ConfigurationProperties class:
in module corporate-caefeeder-component,
META-INF/coremedia/corporate-caefeeder.propertiesreplaced bycom.coremedia.blueprint.caefeeder.corporate.CorporatePageGridConfigurationProperties
Custom changes in these files have to be migrated to Java classes as well, or to other custom configuration files. It is recommended to migrate all custom Spring XML files for the CAE Feeder to Spring Java configuration as well.
Replaced Framework Spring XML Files:
Some previously imported Spring XML framework files have been removed as part of this change. If you still import them in custom Spring XML files, you can replace them by importing Java classes or other Spring XML files as follows:
For removed
classpath:/framework/spring/persistentcache/persistentcache-dependency.xml, import Java configuration classcom.coremedia.amaro.persistentcache.PersistentCacheConfigurationinstead.For removed
classpath:/framework/spring/caefeeder/caefeeder-triggers.xml, import Java configuration classcom.coremedia.amaro.cae.feeder.CaeFeederConfigurationinstead.For removed
classpath:/com/coremedia/blueprint/base/caefeeder/bpbase-caefeeder-pagegrid.xml, importclasspath:/com/coremedia/blueprint/base/pagegrid/impl/bpbase-pagegrid-services.xmland Java configuration classcom.coremedia.amaro.persistentcache.PersistentCacheConfigurationinstead.For removed
classpath:/com/coremedia/blueprint/base/caefeeder/bpbase-caefeeder-multisite.xml, import Java configuration classcom.coremedia.blueprint.base.caefeeder.multisite.CaeFeederMultiSiteConfigurationinstead.
Configuration Property Changes:
Some properties for the configuration of page grid indexing (prefix
corporate.search.pageGrid) have changed with the
introduction of Spring Boot Configuration Properties in Blueprint
class
com.coremedia.blueprint.caefeeder.corporate.CorporatePageGridConfigurationProperties.
Property names have also changed to use kebab-case by default, but
camel-case syntax also still works due to Spring Boot's relaxed
property binding.
The following configuration properties have changed and do not accept space-separated values for multiple content types anymore. Instead, the configuration has to follow Spring Boot's way of configuring Map entries, with the content type as Map key being specified at the end of the property:
Instead of
corporate.search.pageGrid.itemTextProperties, usecorporate.search.page-grid.item-text-properties.<ContentType>Instead of
corporate.search.pageGrid.inlineContentTextProperties, usecorporate.search.page-grid.inline-content-text-properties.<ContentType>
For details, see the Blueprint Developer Manual, section "Configuring page grid indexing" in chapter "Website Search".
Deprecated API:
In class
com.coremedia.blueprint.base.caefeeder.pagegrid.PageGridFeedablePopulator, the following methods have been deprecated:setTextPropertiesAsString,setTextPropertiesByViewTypeAsStringValuedMap, andsetRecursiveItemsPropertiesAsString. This class was not part of the official public API in previous releases, but used in Blueprint Spring XML files. It is part of the documented public API now.In class
com.coremedia.cap.feeder.bean.BeanMappingFeedablePopulator, the following methods have been deprecated:getBeanPropertiesByClassandsetBeanPropertiesByClass.In class
com.coremedia.cap.feeder.bean.BeanFeedableMapping, the no-argument constructor and the constructor taking aClassandString[]parameter have been deprecated.In class
com.coremedia.cap.feeder.bean.BeanFeedableMapping, the following methods have been deprecated:setBeanClass,getBeanProperties,setBeanProperties,getBeanPropertyMappings,setBeanPropertyMappings,getTextBody,setTextBody,getParameters, andsetParameters.Class
com.coremedia.cap.feeder.bean.BeanPropertyFeedableElementMappinghas been deprecated.Interface
com.coremedia.cap.feeder.bean.PropertyConverterand its implementing public API classescom.coremedia.cap.feeder.bean.CollectionPropertyConverter,com.coremedia.cap.feeder.bean.CollectionToStringPropertyConverter, andcom.coremedia.cap.feeder.bean.ReplacePropertyConverterhave been deprecated.
See deprecation comments in the Java API documentation of the corresponding classes for details and how to replace custom usages.
In addition to these Java API deprecations, the Spring bean with name
caeFeederBeanPropertiesByClass is also deprecated.
The bean made it possible to configure bean classes and properties as
string values, which made sense for usage in legacy Spring XML
configuration files. It should not be used with Spring Java
configuration classes anymore, which can reference classes and getter
methods in a more robust way in code. To that end, use the Spring list
bean caeFeederBeanMappings instead with one
additional BeanFeedableMapping per bean class. For
each such mapping, configure it by calling
BeanFeedableMapping#addElement(String, Function, boolean)
for each of its properties (comma-separated values in map value). To
also index values in the textbody index field, as
it was the case with the
caeFeederBeanPropertiesByClass bean, use
true for the parameter textbody
of that method.
Deprecated Blueprint Classes:
The following Blueprint classes were also marked as deprecated. They can be deleted, if they are not used in custom code or Spring XML files anymore:
com.coremedia.blueprint.caefeeder.NavigationPathPropertyConvertercom.coremedia.blueprint.caefeeder.PrefixedPathHierarchyConvertercom.coremedia.blueprint.caefeeder.TaxonomyIdsPropertyConvertercom.coremedia.blueprint.caefeeder.TaxonomyNamesPropertyConvertercom.coremedia.blueprint.caefeeder.TaxonomyPropertyConvertercom.coremedia.blueprint.caefeeder.NamedTaxonomyFactory
(CMS-27398)


