Microsoft-CISL/TANG — pull request #157 by markusweimer (2014-03-13 21:44:08+00:00)
Title: Adding support for Avro serialized Configuration

This closes #153. The main entry point is `com.microsoft.tang.formats.AvroConfigurationSerializer`.

The class supports three (de-)serialization schemes:

* To and from Avro objects.
* To and from files
* To and from `byte[]`

Tests can be found in `com.microsoft.tang.formats.AvroConfigurationSerializerTest`.

**Open Issues:**
* This code re-uses the string encodings found in `com.microsoft.tang.formats.ConfigurationFile`. I am not sure how sane they are.
* I settled for tests that exercise Tang end-to-end instead of unit tests: `Configuration` is in reality not, as the API suggests, a pure data class. It holds references to `ConfigurationBuilderImpl` (see #151). It also does not contain a `.equals()` implementation, and adding one is non-trivial until #151 is fixed. There are some beginnings towards that in this pull request but more work is necessary. We should revisit the tests here once #151 is done.