Release Notes - MRUnit - Version 0.8.1

** Bug
    * [MRUNIT-55] - Hadoop dependency should be 'provided'
    * [MRUNIT-56] - 0.8.0 release does not work with Hadoop 0.23
    * [MRUNIT-58] - Javadoc for org.apache.hadoop.mrunit Package Ends
    * Prematurely

** Improvement
    * [MRUNIT-57] - profile for hadoop 1.0.0 

** Task
    * [MRUNIT-59] - Only assemble tar.gz, not .zip


Release Notes - MRUnit - Version 0.8.0

** Sub-task
    * [MRUNIT-27] - Remove unused variables/imports
    * [MRUNIT-28] - remove generic types compiler warnings
    * [MRUNIT-29] - squash warnings for depreciated classes/methods

** Bug
    * [MRUNIT-19] - MRunit ReduceDriver does not fully replicate the reducers
    * behaviour with reusing pointers over the iterator

** Improvement
    * [MRUNIT-14] - Support JobConfigurable and Closable interfaces
    * [MRUNIT-15] - runTests() should throw meaningful error messages
    * [MRUNIT-18] - Squash all compiler warnings
    * [MRUNIT-30] - Methods {add,set}{Input,Output}FromString have poor error
    * messages
    * [MRUNIT-31] - Support Hadoop 0.22 and 0.23
    * [MRUNIT-42] - Push -javadoc.jar and -sources.jar to maven
    * [MRUNIT-44] - Remove AllTests classes
    * [MRUNIT-47] - Change new ArrayList and new HashMap to List.newArrayList
    * and Maps.newHashMap

** New Feature
    * [MRUNIT-43] - Driver methods should have static factory methods similar
    * to Guava Lists.newArrayList()

** Task
    * [MRUNIT-2] - Create a project site


Release Notes - MRUnit - Version 0.5.0

** Bug
    * [MRUNIT-6] - Reverse MAPREDUCE-954 in trunk
    * [MRUNIT-7] - Remove empty MockMapContext.java file accidentally added
    * [MRUNIT-8] - Fix failing testConfiguration tests
    * [MRUNIT-9] - Fix failing testDoubleIteration test
    * [MRUNIT-10] - Version in pom should contain -incubating per policy
    * [MRUNIT-33] - maven assembly fails with no assembly descriptors found

** Improvement
    * [MRUNIT-1] - Port build system to Maven
    * [MRUNIT-11] - Test output should be redirected to files
    * [MRUNIT-17] - Bind maven assembly to package phase
    * [MRUNIT-37] - Use maven deploy plugin

** New Feature
    * [MRUNIT-3] - Add Apache RAT support to the build
    * [MRUNIT-16] - Generate distribution artifacts from maven

** Task
    * [MRUNIT-4] - Create README, LICENSE, and other necessary files for independent release
    * [MRUNIT-5] - Setup CI builds for MRUnit
    * [MRUNIT-20] - Add a KEYS file containing dev pgp keys to the repo 
    * [MRUNIT-21] - Add the ASF incubator disclaimer to the README
    * [MRUNIT-22] - Add build instructions document
    * [MRUNIT-23] - Create a CHANGES file
    * [MRUNIT-24] - Fix RAT license check failures since adding CHANGES file
    * [MRUNIT-25] - Updated BUILD instructions
    * [MRUNIT-32] - Add Brock Noland's key to dist/KEYS file
