Load Time Weaving in Broadleaf

For some of our modules (as well as some patch-release fixes) rely on Spring Instrument to transform the byte code of certain classes at runtime. Specifically, this allows us to modify existing Broadleaf Hibernate entities to add more fields and relationships without hindering custom extensions. For instance, the multi-tenant module adds a catalog_id column to the BLC_SKU table.

The demo site referenced from Getting Started has Spring instrument hooked up on the jetty-demo ant task. When you deploy Broadleaf to an external system you will need to have the Spring instrument jar included in your deployment. This is referenced as a -javaagent flag to the JVM. How this flag is passed depends on the startup arguments of your application server.