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
    * [MRUNIT-60] - Remove special characters from classifers

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
