# To force a version qualifier update add the bug here
Bug 403352 - Update all parent versions to match our build stream
Bug 466794 - Make Hamcrest 1.3 and Mockito 1.9.4 available for the aggregator build
Bug 532094 - Update releng with new hamcrest and apache batik
Update with new hamcrest library
