Broadleaf Microservices
  • v1.0.0-latest-prod

Upgrade to 2.0.4

September 16, 2024

A patch release of starter parent pom is available at version 2.0.4.1-GA. If your project inherits from Broadleaf’s starter parent, you should make sure to use this version instead of 2.0.4-GA.

September 10, 2024

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

Requirements

  • Java 17 is required since 2.0.0-GA.

Security

To review the security related content, see 2.0.4 notes.

Tip

You will need your login credentials originally provided for accessing the Broadleaf nexus. Security fixes often involve dependency updates to remediate issues being tracked in external OSS components. It is worth considering adopting releases with security fixes (even Broadleaf Severity LOW) to avoid any possibility of transitive exposure in your codebase.

Frontend Compatibility and Release Notes

Microservices release 2.0.4 is congruent with:

  • AdminWeb 1.10.10

    • Recommended.

  • Auth JS SDK

    • 1.6.2

      • Optional. Increases maximum supported Node version to 20.

    • 1.5.8 (unchanged)

  • Commerce JS SDK

    • 1.6.3 for all modules

      • Optional unless using Adyen Payment Gateway. Increases maximum supported Node version to 20.

      • Required for Adyen Payment Gateway integration.

    • 1.5.x

      • @broadleaf/commerce-browse 1.5.10 (unchanged)

      • @broadleaf/commerce-cart 1.5.10 (unchanged)

      • @broadleaf/commerce-content 1.5.10 (unchanged)

      • Other modules: 1.5.9 (unchanged)

  • Payment JS SDK

    • All Modules: 1.2.4 (unchanged)

    • All Modules: [1.3.2](1.3.2)

      • Optional unless using Adyen Payment Gateway. Increases maximum supported Node version to 20.

      • Required for Adyen Payment Gateway integration.

        • New modules @broadleaf/adyen-payment-services-api and @broadleaf/adyen-payment-services-react, both match the latest overall SDK version of 1.3.2.

  • NextJS Starter 1.6.4

    • Optional. Increases maximum supported Node version to 20.

      • Requires latest SDK versions.

  • Open Api 2.1.3

Service-level Release Notes

  • This release advances Spring Boot to version 3.3.2. You may experience minor compilation issues in your own codebase that should be easily rectifiable.

    • Uses of org.springframework.web.reactive.function.client.ClientResponse.rawStatusCode() will need to be changed to org.springframework.web.reactive.function.client.ClientResponse.statusCode().value().

    • Uses of javax.annotation.PostConstruct should be changed to jakarta.annotation.PostConstruct. Uses of javax.annotation.PreDestroy should be changed to jakarta.annotation.PreDestroy.

    • If you leverage custom camel cluster leadership detection by adding a leadership changed listener to a camel cluster service, you will want to convert to using the new com.broadleafcommerce.common.messaging.MessageUtils.createLeadershipListener method in Broadleaf’s messaging common library.

    • Although unusual, if you return an extension of PageImpl that implements additional fields on top of those provided by PageImpl from a REST endpoint, you may notice that Spring no longer serializes in JSON your additional fields in your extension. You should consider making your returned class extend Spring’s org.springframework.data.web.PagedModel instead.

  • We did not notice issues outside of those listed above. However, you may reference the official Spring Boot 3.2 upgrade notes and the official Spring Boot 3.3. upgrade notes for more information.

  • Interesting version changes (among others)

    • Spring Boot 3.1.11 to 3.3.2

    • Hibernate 6.2.24.Final to 6.2.30.Final (We will look at upgrading Hibernate to 6.5.x in the next release)

    • Apache Camel 4.5.0 to 4.7.0

    • Spring Cloud 2022.0.4 to 2023.0.2

  • (Optional) This version of Broadleaf is backwards compatible with Spring Boot 3.1 (and friends). If you wish to roll back to previous dependencies because of an issue you are unable to rectify at the moment, you may do so. However, this is not recommended, and you are encouraged to stay up-to-date for security and stability considerations. Rolling back includes:

    • Create a release train BOM extension for this release as detailed here. Set the base dependencies version to the desired previous target. 2.0.3-GA represents the most recent version of base dependencies that still uses Spring Boot 3.1.11.

    • As mentioned in the link above, make sure every pom extending from broadleaf-microservices-flex-parent includes the blc.release.train, blc.release.train.groupid, and blc.release.train.artifactid property overrides that point to the maven coordinates of your BOM extension.

    • An additional maven property override is also required in every pom extending from broadleaf-microservices-flex-parent. Set camel.kubernetes.starter.artifact.id to camel-kubernetes-starter. Set camel.zookeeper.starter.artifact.id to camel-zookeeper-starter. Set camel.file.starter.artifact.id to camel-file-starter.

    • The result of the two pom edits above should look something like this:

<properties>
    ...
    <blc.release.train>1.0.0</blc.release.train>
    <blc.release.train.groupid>com.example.microservices</blc.release.train.groupid>
    <blc.release.train.artifactid>microservice-flexpackage-release-train</blc.release.train.artifactid>
    <camel.kubernetes.starter.artifact.id>camel-kubernetes-starter</camel.kubernetes.starter.artifact.id>
    <camel.zookeeper.starter.artifact.id>camel-zookeeper-starter</camel.zookeeper.starter.artifact.id>
    <camel.file.starter.artifact.id>camel-file-starter</camel.file.starter.artifact.id>
</properties>