DATAMONGO-586 - Bump version numbers for feature branch.
DATAMONGO-586 - Initial commit for support of the aggregation framework.

Fluent interface for AggregationPipeline, tests. Added type safe versions for aggregation operations $match and $sort. Not null assertions + auto-prefix field in $unwind operation. Type safe impl for projections (first version). Support for $add and $substract in projection.
DATAMONGO-586 - First round of polish.

Fixed or added copyright headers where necessary. Added Tobias as author where necessary. Added @since tags to newly introduced classes and methods. Documented non-nullability of parameters. Polished test cases a bit.
DATAMONGO-586 - Further enhancements to Aggregation API.

Fixed parameter names in comments. Add static factory method. Implement basic aggregation operation join point. Implement match operation. Extracted ReferenceUtil. Created starting point of $group operation with _id field definition and $addToSet fields.
DATAMONGO-586 - Yet another round of polish.

Added Apache license headers where missing. Removed separate package. Reduced visibility of ReferenceUtil as it's internal use only. Fixed formatting.
DATAMONGO-586 - Polished aggregation integration tests for readability.
DATAMONGO-586 - Added test case for complex aggregation framework use case.

Added Zipcode sample dataset from 10gen.
DATAMONGO-586 - Allow Projections to be used in conjunction with GroupOperations.
DATAMONGO-586 - Support for Mongodb Aggregation Framework.

Integration & Refactoring of github contribution by 
Tobias Trelle and Sebastian Herold.
Switched from builder-style to static factory based DSL construction of aggregation specifications. 
Introduced embedded DSL for convenient construction of aggregation specifications.
Added test cases based on mongodb aggregation framework examples.
DATAMONGO-586 - Added more test cases, additional java doc.

Added test case for unwind operation (returnFiveMostCommonLikes) in AggregationTests.
Other test cases should now also run in CI environment, due to deterministic result ordering.
DATAMONGO-586 - Adjusted write concern to ensure persistence of sample data.
DATAMONGO-586 - Integrated requested changes from code review.

Introduced TypedAggregation which holds type information of the input type of an aggregation.
Cleaned up aggregate Methods on MongoOperations
Removed HasToDBObject interface.
Cleaned up constructors for Aggregation and TypedAggregation.
DATAMONGO-586 - Some refactorings in the integration test.
DATAMONGO-586 - Initial support for automatic field reference resolution.

Added automatic field reference resolution which removes the need to have in depth knowledge on how aggregation steps structures the output.
Introduced AggregateOperationContext abstraction to hold the information of available fields for an aggregation step.
Introduced ContextConsumingAggregateOperation and ContextProducingAggregateOperation abstractions to be able to distinguish operations.
Updates test cases to reflect the API changes.
DATAMONGO-586 - Next round of polishing.

Refined the way the aggregation pipeline gets rendered into a DBObject.

Open todos:
- more tests!
- JavaDoc
- reintroduce support for raw values
DATAMONGO-586 - Moooaaar tests, ftw!
DATAMONGO-568 - Additional operations for GroupOperation.

Added $avg and shortcut methods to GroupOperations. Fixed ProjectionOperation to use 1 for implicit references.
DATAMONGO-586 - Made ProjectionOperation publicly visible.
DATAMONGO-586 - Added automatic result unwrapping.
DATAMONGO-586 - API consistency, tests, JavaDoc polish.