Broadleaf 3.0.6-GA Release
Released on November 26, 2013
Broadleaf 3.0.6-GA is now available on Maven central. As this is a patch release to the 3.0 line, we recommend upgrading immediately, no migration necessary. Read on for additional release information.
This is the 6th patch release in the Broadleaf 3.0 line, and represents resolution of some bugs that have existed in the system for a while. The most notable of these was issue 195 which did not respect the 'max uses' field for offer codes. The full fix for this in the 3.0 line because there needed to be a database table modification to obtain it. However, we have a steadfast rule that all patch releases should be 'drop-in'. This means that no database modifications and no API method removals are allowed between patch releases. However, if you add this XML configuration to an application context:
<bean id="blOfferAuditFixClassTransformer" class="org.broadleafcommerce.common.extensibility.jpa.copy.DirectCopyClassTransformer">
<constructor-arg name="moduleName" value="Offer Audit Fix" />
<property name="xformTemplates">
<map>
<entry>
<key><value>org.broadleafcommerce.core.offer.domain.OfferAuditImpl</value></key>
<value>org.broadleafcommerce.core.offer.domain.OfferAuditWeaveImpl</value>
</entry>
</map>
</property>
</bean>
<bean id="customClassTransformers" class="org.springframework.beans.factory.config.ListFactoryBean">
<property name="sourceList">
<list>
<ref bean="blOfferAuditFixClassTransformer" />
</list>
</property>
</bean>
<bean class="org.broadleafcommerce.common.extensibility.context.merge.LateStageMergeBeanPostProcessor">
<property name="collectionRef" value="customClassTransformers" />
<property name="targetRef" value="blMergedClassTransformers" />
</bean>
And add this column to the BLC_OFFER_AUDIT
table in your production database:
ALTER TABLE BLC_OFFER_AUDIT ADD `OFFER_CODE_ID` bigint(20) DEFAULT NULL;
And then hook up the Spring Instrument jar as a -javaagent
flag:
export CATALINA_OPTS="$CATALINA_OPTS -javaagent=/full/path/to/spring-instrument-3.2.2.RELEASE.jar "
Then your Broadleaf site will properly respect the 'max uses' flag for offer codes.
Note: while this is strongly recommended if you do not add the above configuration and you do not need that bug fix, then your Broadleaf site will still function as expected. That configuration will no longer be required in Broadleaf 3.1+.
An at-a-glance view of the issues that were closed in this release:
Critical Bugs(5)
- ModuleConfigurationServiceImpl has incorrect transaction boundaries
- Offer Max Uses Per Order does not work if there is no target item criteria set
- Offer not applied if multiple combinable offers in system
- Max uses per customer of offer not working
- OfferCode provides a field for max uses. However, that field is never honored.
Major Bugs(8)
- Read active sub categories by category missing currentDate parameter
- ProductDao.readAutomaticProductBundles using wrong date field
- Pricing conversion problem after starting tomcat with custom user.language and user.region values
- SessionFixationProtectionCookie and SessionFixationProtectionFilter not setting httpOnly on Cookie properly
- Asset saving is broken in 3.0.5-GA
- Password salting does not work with a property on customer or AdminUser
- CompleteOrderActivity needs a rollback handler
- RecordOfferUsageActivity needs to configure Rollback State and create a Rollback Handler
Minor Bugs(8)
- Repeated validation errors in the admin are prepended to the form rather than replaced
- Readonly fields can still fail validation if they are required
- Images get the wrong URL and fail to load when there is an error when saving an assset
- Integration tests need to pull in -web application contexts
- ContentProcessor is incorrectly referenced in the blDialect definition in framework-web
- MediaImpl is incorrectly referenced in open admin persistence.xml
- Validation for integer fields exhibits odd behavior
- USShippingInfoFormValidator Not Working As Intended
Enhancements(6)
- Add Category as an available rule type in StructuredContent
- 3.0.6-GA Miscellaneous Improvements
- Allow TypedQueryBuilder to generate COUNT(*) queries
- Do not allow an offer code to be added to the order if the offer has already been retrieved
- Redirect search should be cacheable.
- move bean definition of blEncryptionModule from profile to framework
Total Resolved Issues: 27