Add tests for more complex scenarii with multiple reparees/repairs and change DefaultInvoiceGenerator to support those complex scenarii
Prevent Fixed item to be repaired in Invoice
Throw Illegal exception instead of returning null
[maven-release-plugin] prepare release killbill-0.1.70
[maven-release-plugin] prepare for next development iteration
analytics: add more logging

Some accounts take a long time to refresh - add some logging to narrow
down the bottleneck.

Signed-off-by: Pierre-Alexandre Meyer <pierre@ning.com>
analytics: force a full refresh for account and tag events

Account name and report group are denormalized across all tables - we
need to update all objects upon receiving any of these events.

Signed-off-by: Pierre-Alexandre Meyer <pierre@ning.com>
analytics: proposal on how to speed up bst and bii* refreshes

Signed-off-by: Pierre-Alexandre Meyer <pierre@ning.com>
analytics: implement custom fields and tags for bundles

Signed-off-by: Pierre-Alexandre Meyer <pierre@ning.com>
Update sanity.sql
Merge pull request #44 from kevinpostlewaite/patch-1

Update sanity.sql
analytics: populate next_end_date correctly

Use the time between two transitions, not the phase length (except for the
last one).

Signed-off-by: Pierre-Alexandre Meyer <pierre@ning.com>
analytics: code review changes

Signed-off-by: Pierre-Alexandre Meyer <pierre@ning.com>
Merge branch 'analytics-as-osgi-plugin-bugfixes'
[maven-release-plugin] prepare release killbill-0.1.71
[maven-release-plugin] prepare for next development iteration
util: optimize audit log queries via history

Signed-off-by: Pierre-Alexandre Meyer <pierre@ning.com>
[maven-release-plugin] prepare release killbill-0.1.72
[maven-release-plugin] prepare for next development iteration
analytics: revisit the parallelism

Make sure the parallelism is in place each time we iterate over bundles
and subscriptions.

The BusinessExecutor was inspired from https://github.com/ning/mogwee-executors

Signed-off-by: Pierre-Alexandre Meyer <pierre@ning.com>
Remove UNCANCEL event from being part of a SubscriptionData transition as this is not a transition per say.
The event still exists on disk and a bus event still need to be sent out to the world so they can act on that change.