Start modeling the User store.
Explicitly include parent class fields in serialization.
Fix inheritance bug (did not compile).
Start describing the User state. Modeling it as snapshots.
Code cleanup.
Remove unused actor factories. Now superceded by the actor provider.
Start implementing user balance REST request.
Options for connecting to a persistence provider
Configure and use Mongo's connection pool
Factory for getting MessageStores based on configuration
The persistence database schema as a configurable option
All Aquarium events have a client defined unique id
Renames to more meaningfull names
Implementation of the EventStore interface in the Mongo driver
Compilation fixes
Use the event store in the event processor to persist resource events
Some more service orientation to master conf
Add RESTRole (and, hence, RESTActor) to known roles/actors for provisioning.
Properly (?) quote field name in JSON response for /ping.
At least, this is what is needed for the default bahavior of Lift's jsonparser.
Make default constructor for RESTActor.
Add rest service port configuration and respective actor role.
Rename package akka and main REST actor.
Make props visible to outer world.
We need this to take advantage of all conversion utilities etc. so thatwe do not have to replicate the Props API in MasterConf itself.
Restrict exchange declarations from clients
Introduce the Dispatcher-related messages, all given in one place.
Thought untested, the REST service now sends to Dispatcher.
Actors for resource event processing
Support for statically getting config param value
Configuration params for the AMQP queue
Add missing ActorProxy, so that tests compile
Now loading the default actor provider from properties.
Move SimpleLocalActorProvider
Setting the stage for actor provision and wiring. WIP.
Introduce MasterConf, assuming an aquarium.properties
Also did some reorganization of actor stuff.
Correct parameters for producer/consumer construction
Messaging implementation based on akka-amqp
Method to align charge chunks between algorithm/pricelist
Move the messaging API one package up.
Since we have decided we are AMQP-based anyway, AMQP rules.
Remove unused camel tests (see previous commit)
Add Camel tests just to be there in history
Checkin to fix compilation
Remove camel dependencies
Spray REST test plays OK
Stricter tests and consequent bugfixes
Expand timeframe with no repetition defined
Fix non-overlap timeframe value
When a timeframe does not overlap with any timeframes in the providedlist, then return a list containing the timeframe, not an empty one.
Fix overlap timeframe definition.
If this timeframe contains another one, then the result should be theother one, not this.
Introduce the REST module.
This is powered by spray (spray.cc), an akka-based HTTP server.The test is not working correctly yet.
Method to calculate non-overlapping time sections
Rewrite of policy eval algorithm as result of Timeslot methods
Partial implementation of the nonOverlappingTimeslots method
The test is still failing...
Calculate timeslot overlaps or lack thereof
Merge returns a List. scaladoc++
Code + tests to merge overlapping timeslots
Add some akka test code for remotes
Methods moved to Timeslot
Use the new Timeslot type
Timeslot type instead of using (Date, Date)
Remove logging from the DSL parser
Common dates used in time expansions
Common time expansion functions
Pefromance tests to justify selections
Type checking magic by @loverdos.
Also, take care of wholes in the resolution of DSLTimeBoundedItems
Inheritance by default in time bounded items
Fix inheritance declarations
Correct type for overiding field
Methods to check whether a timeslot is contained within a timeslot
First attempt towards resolving policy effectivity
Akka has landed
Make timestamp a property and add an eventType method
Base class to treat time bounded items uniformly
Methods and tests for reversing effectivity periods
Stricter test of succesiveness for computed timeslots
It's enough to have an empty list instead of an Option[List()]
Self-validation support for messages
Support for expanding all timeslots for a timeframe
Preliminary code for event charging
Remove dead code
Base event for all Aquarium events, with serialization functionality
Convert to a generic msg dispatcher
Single point of reference for the effective charging policy
MongoDB configuration, connecting, test
Small fix to make it compile
AMQP consumer enhancement/fixes
New resource event format
Specify resource characteristics and implement parser
Do not reveal passwords from logging
Remove code to be re-written
Continuing with rabbitmq tests
Add some logging facilities combined with business logic
Parse credit plans and associate them with agreements
Make the rabbit test grab the needed configuration from runtime system property
Make the mongodb test grab the needed configuration from runtime system property
Introduce credit plans to the policy DSL
Move type refactorings for DSL implementation classes
Term renaming in Aquarium policy DSL
creditpolicy -> aquariumpolicypolic{y,ies} -> algorith{m,ms}
More dead code removal
Dead code elimination
Scaladoc fixes
Move DSL case classes in own files, impove docs