close

Filter

loading table of contents...

Release Notes / Version 13.2512.0

Table Of Contents

CAE Feeder Spring Configuration Changes and Deprecations

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.xml replaced by com.coremedia.blueprint.caefeeder.CaeFeederTaxonomyConfiguration

  • in module caefeeder-blueprint-component, META-INF/coremedia/caefeeder.xml replaced by com.coremedia.blueprint.caefeeder.config.CaeFeederBlueprintAutoConfiguration

  • in module am-caefeeder-component, META-INF/coremedia/am-caefeeder.xml replaced by com.coremedia.blueprint.feeder.cae.assets.AssetCaeFeederAutoConfiguration

  • in module lc-caefeeder-component, META-INF/coremedia/livecontext-caefeeder.xml replaced by com.coremedia.blueprint.lc.caefeeder.LiveContextCaeFeederAutoConfiguration and META-INF/coremedia/livecontext-caefeeder-contentbeans.xml for content bean definitions

  • in module corporate-caefeeder-component, META-INF/coremedia/corporate-caefeeder.xml replaced by com.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.properties replaced by com.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 class com.coremedia.amaro.persistentcache.PersistentCacheConfiguration instead.

  • For removed classpath:/framework/spring/caefeeder/caefeeder-triggers.xml, import Java configuration class com.coremedia.amaro.cae.feeder.CaeFeederConfiguration instead.

  • For removed classpath:/com/coremedia/blueprint/base/caefeeder/bpbase-caefeeder-pagegrid.xml, import classpath:/com/coremedia/blueprint/base/pagegrid/impl/bpbase-pagegrid-services.xml and Java configuration class com.coremedia.amaro.persistentcache.PersistentCacheConfiguration instead.

  • For removed classpath:/com/coremedia/blueprint/base/caefeeder/bpbase-caefeeder-multisite.xml, import Java configuration class com.coremedia.blueprint.base.caefeeder.multisite.CaeFeederMultiSiteConfiguration instead.

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, use corporate.search.page-grid.item-text-properties.<ContentType>

  • Instead of corporate.search.pageGrid.inlineContentTextProperties, use corporate.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, and setRecursiveItemsPropertiesAsString. 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: getBeanPropertiesByClass and setBeanPropertiesByClass.

  • In class com.coremedia.cap.feeder.bean.BeanFeedableMapping, the no-argument constructor and the constructor taking a Class and String[] 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, and setParameters.

  • Class com.coremedia.cap.feeder.bean.BeanPropertyFeedableElementMapping has been deprecated.

  • Interface com.coremedia.cap.feeder.bean.PropertyConverter and its implementing public API classes com.coremedia.cap.feeder.bean.CollectionPropertyConverter, com.coremedia.cap.feeder.bean.CollectionToStringPropertyConverter, and com.coremedia.cap.feeder.bean.ReplacePropertyConverter have 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.NavigationPathPropertyConverter

  • com.coremedia.blueprint.caefeeder.PrefixedPathHierarchyConverter

  • com.coremedia.blueprint.caefeeder.TaxonomyIdsPropertyConverter

  • com.coremedia.blueprint.caefeeder.TaxonomyNamesPropertyConverter

  • com.coremedia.blueprint.caefeeder.TaxonomyPropertyConverter

  • com.coremedia.blueprint.caefeeder.NamedTaxonomyFactory

(CMS-27398)

Search Results

Table Of Contents
warning

Your Internet Explorer is no longer supported.

Please use Mozilla Firefox, Google Chrome, or Microsoft Edge.