Broadleaf Microservices
  • v1.0.0-latest-prod

Release Notes for 1.8.13


  • JDK 11 is required for Broadleaf release trains 1.7.0-GA, and beyond.

  • JDK 17 is supported for Broadleaf release trains 1.8.1-GA, and beyond.

New Features & Notable Changes

Introduced Support for Dynamic Customer Segments

CustomerSegments can now be evaluated in real-time against requests and user contexts rather than just offline. Cart Ops now includes a dependency on the new Customer Services Client that includes some shared concepts for resolving and evaluating dynamic segments.

Dynamic Customer Segments and the offline segments will be combined and included on the ContextInfo when it is resolved using the new CustomerSegmentContextInfoCustomizer so that there is a single source of truth for business logic to consult for the list of customer segments the current user is in. The business logic responsible for creating Customer Context, User Targets, and related concepts has been updated to include all these segments.

Additionally, to support running the CustomerSegmentContextInfoCustomizer only in specific services like Cart Ops, a shallow DataRouteSupporting has been introduced for Cart Ops to define a route key of cartoperation. You will now see @DataRouteByKey(RouteConstants.CARTOPS_ROUTE_KEY) on the various Cart Ops endpoints to define the route at the standard entrypoints. Cart Ops still does not have its own persistent store, but defining a data route allows the new customizer to only be used where applicable when in a flex-package configuration that combines multiple services together.

New Configuration Properties

Details on the specific properties themselves can be found at Customer Client Configuration
  • broadleaf.cartoperation.customer-segment-provider.*: These are the properties for configuring the new ExternalCustomerSegmentProvider which is similar to other providers.

  • broadleaf.cartoperation.context.customer-segment-customizer.*: These are properties for configuration the CustomerSegmentContextInfoCustomizer.

  • broadleaf.customer.client.cache.*: These are properties for configuring caching in the Customer Client.

    • This also means that ignite caching is supported in Cart Ops—to enable set spring.cache.type=ignite.

New property defaults
      url: https://localhost:8463/customer
      read-customer-segments-path: /segments
      resolve-customer-segments-path: /segment-resolver
      service-client: cartopsclient

Bugs Fixed

  • Fixed tax response payload is duplicated across Fulfillment Groups and can be too large when using Avalara, causing message failures