Ignore IDEA project files
First version of a Dynamo Session Store

Modifications from Mongo project:
 - moved manager and valve to net.energyhub.session package and reformat
   to EnergyHub coding standards.
 - Use Dynamo instead of Mongo
 - Use table rotation instead of mongo delete queries.
 - Gzip serialized sessions to save space
 - Add ignoreUri and ignoreHeader configs to skip session replication
 - Trim pom.xml to reduce unused dependencies
Remove dangerous keys() method, replace with dummy implementation in loadSessions()
notes on todos
integrate Alternator dynamo db mock
Fix heading in readme
do write-read check to make sure table is up after creation

- added more tests for other stuff
bug in created table put/get, exception handling in put/gets

test rotation
Merge pull request #1 from kramimus/dynamo

some fixes and tests
Update to latest Alternator version
Minimum write throughput is 1 unit (caught by Alternator tests, awesome!)
Trim dependent jars to just those required at runtime
Move table rotation logic to separate class and improve resilience

- For sheer massive file reasons, move code out of DynamoManager and
  reorganize the code that is left.
- Refactor the table rotation code for clarity and testability.
- Rotation code now blocks until table is ready for writing. If there's a
  delay, the current table is not rotated out, so things should work fine.
- Increase table creation headroom to 60s, to match real Dynamo performance.
Remove repositories stanza and add gpg plugin, for deployment to central.
Update README.md

Fix markdown issue in <Engine> doc.
Spelling in README
Markdown formatting in README
Set version = 1.6 for release
Fixes to pom for maven central
Copyright and attribution cleanup. Assorted minor refactoring.

- Repackage serializer
- Add or update copyright to include both the old (Dawson) and the new (EnergyHub)

In JavaSerializer:
- Ensure that streams are closed in a "finally" block
- The code is a little more complicated than usual because it also ensures that the streams are flushed so that the return value is complete.

In DynamoManager:
- Convert member fields to primitives so that it's clear we don't have to worry about NPEs
- Add @Override where relevant
- Remove printStackTrace calls to avoid double logging

In DynamoTableRotator:
- Move all member field initialization to the constructor.
- Change methods from public to protected so that it's more clear which methods are internal
- Propagate InterruptedException rather than swallowing them. If a thread is interrupted, then something bad is happening.
- Make certain accessors synchronized to ensure that a reader thread sees any writes
- Reduce the scope of the synchronized block in rotateTables from the entire method to just the table name member field writes. This ensures that the newly synchronized getter method calls won't block for a long time. Otherwise the rotateTable method is protected by the semaphore member field, so there's no need to synchronize the wholte thing.