Broadleaf Microservices
  • v1.0.0-latest-prod

Upgrade to 2.1.0

Tip
The 2.x versions are Spring Boot 3 compatible.
Tip
If coming from a version prior to 2.0.0-GA, then see the 2.0.0 upgrade guide.

Requirements

  • Java 17 is required since 2.0.0-GA.

  • If you have access to an exploded/generated project based on a 2.0.x manifest

    • Edit the pom file in your manifest directory. Change the parent element version for broadleaf-microservices-flex-parent to 2.1.0-GA.

    • Edit the manifest.yml file. Set project.starterParentVersion to 2.1.0-GA. If using the broadleaf-microservices-starter-heatclinic extension, change the version to 1.1.1-GA.

    • At the command line in the manifest directory, execute mvn flex:generate to update the project to the latest configuration

    • This should update all your poms to use the latest flex parent for 2.1.0-GA

    • This should update all your Docker related artifacts to use the latest approach (Documented here).

  • If you do not have access to an exploded project based on a 2.0.x manifest, do not wish to update your project structure using mvn flex:generate, or are not using a manifest

    • Edit pom files and change the parent element version for broadleaf-microservices-flex-parent to 2.1.0-GA

    • Add/Edit docker related artifacts for your dockerized modules. Review Docker Config Examples for more information.

    • If not customizing gateways, you map optionally reference the new Broadleaf generated Alpine versions where applicable (these remain 2.0.1-GA for 2.1.0-GA release train):

      • repository.broadleafcommerce.com:5001/broadleaf/admingateway-monitored-alpine:2.0.1-GA

      • repository.broadleafcommerce.com:5001/broadleaf/commercegateway-monitored-alpine:2.0.1-GA

    • If not customizing auth and not using a manifest-based project, you may optionally reference the new Broadleaf generated Alpine version where applicable (these remain 2.0.1-GA for 2.1.0-GA release train):

      • repository.broadleafcommerce.com:5001/broadleaf-demo/auth-alpine:2.0.1-GA

    • If not customizing config server, you may optionally reference the new Broadleaf generated Alpine version where applicable (these remain 2.0.1-GA for 2.1.0-GA release train):

      • repository.broadleafcommerce.com:5001/broadleaf/broadleaf-config-server-platform-alpine:2.0.1-GA

  • Two new manifest.yml properties are available:

    • project.useAlpineJavaImages - Whether Alpine Linux Temurin java images should be used for flexpackage image generation, as well as for config server and gateway image references. Alpine images will be the most secure with the fewest OS vulns. Optional. True by default. Note, the Alpine Linux Temurin Java image is available only in amd64, so arm64-based machines must be capable of emulating (e.g. qemu or rosetta2). Such a situation is suitable for development. However, if an arm64 processor is being used in production, then this setting should be set to false for the performance benefit.

    • project.upgradeOSOnBuild - Whether an OS upgrade command should be executed during the Dockerfile construction for a module (e.g. apk upgrade). Optional. False by default, which will avoid unnecessary layer churn.

Notable Changes

Introduced Application-Specific Search Settings

Introduced support for Application-Specific Search Settings. Additionally, the Product Browse view will now retrieve results from Search rather than Catalog and will make use of Search Facets rather than the typical filters. One of the key improvements made has been to allow different Applications to have distinct Facets and Sort Options as well as to distinguish between the Storefront and the Admin applications. Therefore, the Facet shown for Products in the Admin will be different from those on the Storefront. There is a Tenant-level set of defaults that can be overridden per Application.

Tip
Nothing is required for adopting this change beyond normal version changes to Release Train, but details may be found in Search Services release notes including required Auth permissions and scopes.
Important
You should perform a full Solr reindex after upgrading to allow indexing Products regardless of the online and searchable flags. These Products are still filtered for Storefront requests by way of a query-time filter (rather than index-time), but are visible in the Admin.

See Also:

Introduced Bulk Operation Services

Introduced a new orchestration microservice for handling Bulk Operations along with several out of box operations for Products in Catalogs Services. This comes with a few out-of-box sample Bulk Operations for Products for Adding Advanced Tags, Removing Tags, Archiving, and modifying Active Date Ranges.

See Also:

Introduced Negotiated Quotes

Quotes are a new type of Cart that may be submitted by registered Customers and reviewed by CSRs. They have a new set of statuses specific to negotiating a quote with a seller. CSRs may then make changes to the requested Quote and publish them for the Customer to accept and checkout with or submit additional requests. Quotes also support notes and requesting non-catalog Items such that could represent services and Products that they could not find.

Along with this release we have introduced Cart Services Metadata for displaying a Quote list grid in the Admin for CSRs to use to navigate to the storefront. All actual management of Quotes is expected to be done from the storefront for both buyers and sellers.

Quotes are disabled by default. To enable:

  • Set broadleaf.quotes.enabled=true for Cart Operations Service or its containing flexpackage, e.g., Cart.

  • If using the Next.js Starter, set NEXT_PUBLIC_AUTH_CSR_SCOPE="CSR PUBLISH_QUOTE" and NEXT_PUBLIC_QUOTE_ENABLED=true.

  • Add the following to your Metadata Service or Supporting flexpackage pom.xml to include the new Cart Services Metadata library.

    <dependency>
        <groupId>com.broadleafcommerce.microservices</groupId>
        <artifactId>broadleaf-cart-services-metadata</artifactId>
    </dependency>
  • Set broadleaf.cart.metadata.enable-quote=true to your Metadata Service or Supporting flexpackage.

See Also:

Introduced Catalog Access Policies

Introduced new Catalog Access Policies feature. Functionality overview and upgrade details outlined in Catalog Services 2.1.0 Release Notes. Catalog access policies allow merchandisers to restrict the contents of a catalog that are visible to customers in the storefront. See this guide for more details. This feature is enabled by default.

See Also:

Frontend Compatibility and Release Notes

Microservices release 2.1.0 is congruent with:

Service-level Release Notes

Common Libraries