Broadleaf Microservices
  • v1.0.0-latest-prod

Upgrade to 2.0.1

March 6, 2024

Tip
The 2.x versions are Spring Boot 3 compatible.

Requirements

  • Java 17 is required since 2.0.0-GA.

Starter Project Updates

  • StarterConfiguration.actuatorAnonymous is now a globally-applied WebSecurityCustomizer instead of a SecurityEnhancer that only applies to the resource-security SecurityFilterChain. This is more universally compatible, with consistent behavior in AuthenticationServices and other services.

  • StarterConfiguration.forwardedHeaderFilter is now ordered at a high-priority ahead of RequestContextFilter and the Spring Security filter chain. This is more universally compatible, with consistent behavior in AuthenticationServices and other services.

  • flex-maven-plugin no longer generates ForwardedHeaderSecurityConfiguration in client auth projects, as it is no longer relevant in the new version of AuthenticationServices

  • 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.0.1-GA.

    • Edit the manifest.yml file. Set project.starterParentVersion to 2.0.1-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.0.1-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.0.1-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:

      • 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:

      • 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:

      • 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.

Frontend Compatibility and Release Notes

Microservices release 2.0.1 is congruent with:

Third Party

  • broadleaf/docker-solr:1.7.4-GA - Apache Solr upgraded to latest (9.5.0)

  • confluentinc/cp-zookeeper:7.6.0 - Stack verified compatible with the latest Confluent version (Kafka version 3.6.0)

  • confluentinc/cp-kafka:7.6.0 - Stack verified compatible with the latest Confluent version (ZK version 3.8.3)