added keyValueListFile option for --node-key-value and --way-key-value
small changes (moved exception handling from reader class to client classes, corrected default values for way-key-value) + added unit tests
Use expected exception annotation instead of try/catch in the new unit tests
Checkstyle fixes for keyValueListFile option

Address a number of checkstyle issues introduced by the addition
of the keyValueListFile option to the --node-key-value and
--way-key-value options.
Run JUnit in own process.

JUnit tests are now running in a separate JVM to Ant itself.
By specifying forkmode="perBatch" the performance overhead is
minimal.  Forking allows tools such as cobertura to be introduced
that require tests to run in a separate JVM.
Store all ivy data files in project tree.

By default, Ivy stores all data within the .ivy2 directory in the
user's home directory.  This breaks if multiple ivy projects use
different source repositories (eg. ibiblio versus ivyroundup).
This change moves the ivy data files into the
build-support/ivy/data directory.
Upgrade Ivy to 2.3.0-rc1

Ivy 2.3.0-rc1 fixes defect IVY-899.
https://issues.apache.org/jira/browse/IVY-899
This defect prevents the artifacts associated with some
dependencies from being downloaded successfully (eg. jacoco
library).
JaCoCo code coverage reports

Added JaCoCo to the build.  It runs as part of the existing test
target and generates a HTML report in the report/jacoco directory
of each java project.
Improved build sequencing

The build scripts have been refactored to introduce several
improvements:

1. The "publish" target is never called directly.  Instead, the
"build" target includes a publish.  This is a more intuitive name
for users already familiar with ant.
2. The build-java.xml script now defines all public targets at
the end of the file for clarity.  All other targets should be
considered internal and not to be used directly.
3. The top level "all" target now completes each build stage
(ie. build, checkstyle, test) across all projects before moving
to the next stage.  Previously it would perform all steps on each
project before moving to the next project.  This improves the
likelihood of developers encountering simple checkstyle errors
before they attempt to run the full suite of tests.
4. Each phase can now be run separately across all projects.
This allows checkstyle to be run in isolation.
pgsimple: Replace calls to deprecated PostGIS functions.

With the 2.0 release, PostGIS removed lots of deprecated function,
including non-ST_-qualified forms of Collect and Envelope. These have
been deprecated around PostGIS 1.3 which was sometime in 2007. These
calls are now replaced with calls to ST_Collect and ST_Envelope.

Thanks to Walter Nordmann for pointing this out and proposing a solution.
pgsnapshot: Replace calls to deprecated PostGIS functions.

With the 2.0 release, PostGIS removed lots of deprecated function,
including non-ST_-qualified forms of Collect and Envelope. These have
been deprecated around PostGIS 1.3 which was sometime in 2007. These
calls are now replaced with calls to ST_Collect and ST_Envelope.

Thanks to Walter Nordmann for pointing this out and proposing a solution.
Add unit tests for the entity merge task.

Contains test cases for (+ stands for merge):
 * X + empty == X
 * empty + X == X
 * X + X == X
 * the three conflict resolution methods
 * the commutativity of version and timestamp methods
 * the non-commutativity of lastSource method
 * merging of two completely disjunct datasets
Refactor the convenience manual merge runner into a separate utility class.
Allow the client of the helper method to install its own exception handler
for the worker threads.
Add test cases for unsorted input streams passed to the entity merger.
Minor cleanup in change simplifier tests.

* Rename the common case test to something more distinct than test since
  there are more tests to come.
* Remove the misleading copy&pasted comment.
Add some more test cases for the change simplifier.

* Simplify an empty change
* Simplify an already "simple" change
* Bad sort order error cases
Add tests for the --flatten task.

* Empty stream
* Common case (multiple version of entities)
* Already flattened stream
Add a couple test cases for the --apply-change task.
Replace the private EmptySource class with EmptyReader from core.