Today marks the release of Broadleaf 5.2.0-GA! Significant architectural improvements are at the core of this update, which are designed to future-proof subsequent releases of the framework. Most notably, framework-wide compatibility with Spring Boot!

The exhaustive list of the new features and changes in 5.2.0-GA (and supported module releases) are detailed in the release notes. If you are running an older version of Broadleaf, check out the migration notes for 5.2.

Spring Boot

One of the most significant changes in 5.2 is Spring Boot as the default starting point. We have created a new project that we call the Community Demo that is a replacement for the old DemoSite. While this still starts up the same Heat Clinic demo that you see on demo.broadleafcommerce.org, you are no longer required to deploy it onto a servlet container.

Check out the getting started documentation or the Community Demo readme on how to run locally.

Library Dependency Updates

Our minimum compatible versions have been brought up to date with the latest release versions for Spring and others:

  • Spring core and Spring MVC: 4.1.9.RELEASE updated to 4.3.9.RELEASE
  • Spring Security: 3.2.9.RELEASE updated to 4.2.3.RELEASE
  • Jackson: 2.5.0 updated to 2.8.9
  • Java servlet: 2.5. updated to 3.0.1

Better Integration Testing Support

In the past, Spring integration testing with Broadleaf beans has been difficult. In 5.2, this is as easy as adding an annotation. Here is an example of an integration test that utilizes the CatalogService bean with JUnit:

@RunWith(SpringRunner.class)
@BroadleafSiteIntegrationTest
public class JUnitTest {

    @Resource
    private CatalogService catalogService;

    @Test

    public void testInjectionWorks() {
        Assert.assertNotEquals(catalogService, null);
    }
}

We have out-of-the-box support for JUnit, TestNG and Spock.

Other Features and Additions

  • Ability to add offer codes by URL
  • Geolocation API that can be used in content targeting and offer rules
  • View background processes in the admin
  • Ability to manually retry workflow deployments to resolve 'stuck sandbox' issues
  • Generalized import framework with some out-of-the-box import functionality targeting catalog, offer codes and customer segments
  • Removal of our custom Spring XML merge process
  • Built-in support for Java @Configuration classes and other useful annotations
  • Built-in support for Spring profiles and the Spring Environment

What's Next?

Over the next week we will start to re-invest in the Broadleaf community. For instance:

  • Reviving our community repository under the fair use license
  • Investing back in our forums and chat room
  • Starter template updates

Our next few releases will likely focus on continuing library updates like the soon-to-be-released Spring 5, Hibernate 5, and Java 9 support.

Stay Tuned!

Keep an eye on the blog over the next few weeks for more about what you can do with Broadleaf 5.2!