Gora Change Log

0.1-incubating release:

*  INFRA-3038. Initial import of code.

*  GORA-1. Organize source code for Apache. (enis)

*  GORA-6. Add methods that take dataStoreClass instead of data store instance 
   to Gora{Input|Output}Format and Gora{Mapper|Reducer}. (enis)

*  GORA-7. DataStoreFactory.createDataStore() should throw exceptions on 
   failure. (enis)

*  GORA-15. Primitive types cannot be used as keys in DataStore. (enis)

*  GORA-16. Create a tutorial for Gora. (enis)

*  GORA-21. Commons-lang needs a configuration in gora-core/ivy/ivy.xml (jnioche)

*  GORA-20. Flush datastore regularly (Alexis Detreglode via jnioche)

*  GORA-23. Limit result set in store reads (Alexis Detreglode via hsaputra)

