Broadleaf Microservices
  • v1.0.0-latest-prod

Upgrade to 1.7.2-GA

Requirements

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

Spring Cloud Stream Message Binding Updates

With 1.7.2, we did an audit of our out-of-box SpringCloudStream bindings, & for various flexpackage configurations, we found a few anonymous bindings (i.e. subscription id like anonymous.*). This means that the binding was not configured, so SpringCloudStream registered a default binding. These cases can be split into two categories:

  1. Bindings with missing configuration

    • The primary consequence of this case is that a SpringCloudStream consumer group is not declared. Therefore, each application instance of that flex package will receive the message.

  2. Unnecessary bindings that can be disabled

    • In most cases, this correlated to the registration of sandbox-related bindings in a context that doesn’t contain sandboxable entities. Therefore, the message listeners were disabled, rather than configuring their bindings.

In your project, make sure to define the following properties to complete the configuration:

Flexpackage: min
broadleaf:
  sandbox:
    messaging:
      active: true
  transitionrequest:
    enabled: true
  changesummary:
    notification:
      active: true
Flexpackage: indexer
broadleaf:
  changesummary:
    notification:
      active: false
  transitionrequest:
    enabled: false
Flexpackage: processing (balanced)
broadleaf:
  changesummary:
    notification:
      active: true
  transitionrequest:
    enabled: true
Flexpackage: supporting (balanced)
broadleaf:
  sandbox:
    messaging:
      active: true
  changesummary:
    notification:
      active: true
  transitionrequest:
    enabled: true

Configuration Updates

Trigram Index Creation

PostgreSQL versions 11.15, 12.10, and 13.6 include a regression that causes the usage of Trigram indexes to produce the following error: variable not found in subplan target list.

To mitigate the problem, we introduced the trigram liquibase changeset label. Add the following properties in your project to avoid creating trigram indexes:

Note
Subsequent versions of PostgreSQL should be immune to the problem and this workaround should not be required at that point.
Flexpackage: min
broadleaf:
  adminuser:
    liquibase:
      labels: "!trigram"
  asset:
    liquibase:
      labels: "!trigram"
  campaign:
    liquibase:
      labels: "!trigram"
  catalog:
    liquibase:
      labels: "!trigram"
  customer:
    liquibase:
      labels: "!trigram"
  menu:
    liquibase:
      labels: "!trigram"
  offer:
    liquibase:
      labels: "!trigram"
  pricing:
    liquibase:
      labels: "!trigram"
Flexpackage: browse (balanced)
broadleaf:
  asset:
    liquibase:
      labels: "!trigram"
  campaign:
    liquibase:
      labels: "!trigram"
  catalog:
    liquibase:
      labels: "!trigram"
  menu:
    liquibase:
      labels: "!trigram"
  offer:
    liquibase:
      labels: "!trigram"
  pricing:
    liquibase:
      labels: "!trigram"
Flexpackage: cart (balanced)
broadleaf:
  customer:
    liquibase:
      labels: "!trigram"
Flexpackage: processing (balanced)
broadleaf:
  campaign:
    liquibase:
      labels: "!trigram"
  catalog:
    liquibase:
      labels: "!trigram"
  customer:
    liquibase:
      labels: "!trigram"
  menu:
    liquibase:
      labels: "!trigram"
  offer:
    liquibase:
      labels: "!trigram"
  pricing:
    liquibase:
      labels: "!trigram"
Flexpackage: supporting (balanced)
broadleaf:
  adminuser:
    liquibase:
      labels: "!trigram"

Helm Chart Updates

Starting with 1.7, we have begun publishing common base charts to a private helm repository. In order to pull in and use these charts, you will need to authenticate (i.e. helm repo add broadleaf https://repository.broadleafcommerce.com/repository/helm-private/ --username $BLC_REGISTRY_USER --password $BLC_REGISTRY_PASSWORD ) using the same credentials that were sent to you (these are the same credentials that allow you to build and run the microservice applications).

See the following for more details: