Avro Change Log

Avro 1.7.0 (11 June 2012)

  NEW FEATURES

    AVRO-301. Handle non-reserved properties appropriately in the Python
    implementation. (Macrio Silva via tebeka)

    AVRO-300. Support "doc" field in schemas in Python implementation.
    (Harsh J via tebeka)

    AVRO-1006.  Add schema fingerprinting to specification and Java.
    (Raymie Stata via cutting)

    AVRO-593. Java: Add support for Hadoop's newer mapreduce API.
    (Garrett Wu via cutting)

    AVRO-1052. Java: Add AvroMultipleOutputFormat, to permit splitting
    mapreduce output to multiple locations.  (Ashish Nagavaram via cutting)

  IMPROVEMENTS

    AVRO-1060. Java: Upgrade Netty to version 3.4.0.  (Karthik K via cutting)

    AVRO-1068. Avro Java does not build on recent Eclipse versions
    with m2eclipse (thiru)

    AVRO-551. C: Now compiles on Win32, using Visual Studio C++ 2008.
    (Vivek Nadkarni via dcreager)

    AVRO-1075. Add some Eclipse stuff to .gitignore.  (Karthik K via cutting)

    AVRO-1085. Fingerprinting for C#. (Eric Hauser via thiru)

    AVRO-1079. C++ Generator, improve include guard generation. (thiru)

    AVRO-1062. Java: Remove use of java.rmi.server.UID so things work
    on Android.  (Kevin Zhao via cutting)

    AVRO-1090. Java: Permit appending to files besides java.io.File,
    e.g., files in HDFS. (cutting)

    AVRO-1074. Java: Optimize Utf8#length() and #toString() to not
    allocate a String when the length is zero.  (cutting)

    AVRO-1050. PHP: Optimize memory use by string append. (A B via cutting)

    AVRO-1095. C++ compiler warns about control reaching end of
    doAdavance (in JsonIO.cc) which returns something other than
    void. (thiru)

    AVRO-1026. Add namespace support to C++. (Keh-Li Sheng via thiru)

    AVRO-1097. Fix BinaryDecoder so that EOFException is thrown
    instead of a generic IOException when reading ints and longs past
    the end of file.  (thiru & cutting)

    AVRO-1098: CSharp: Fix compilation to work under older versions of Mono.
    (cutting)

  BUG FIXES

    AVRO-1045. Java: Fix a bug in GenericData#deepCopy() of ByteBuffer values.
    (cutting)

    AVRO-1055. Race condition in Java fingerprinting code (thiru)

    AVRO-954. Typo in JsonCodec.cc (Nebojsa Sabovic via thiru)

    AVRO-1045. C: Use less stack space in avro_file_writer_create (dcreager)

    AVRO-1070. AvroSequenceFileOutputFormat is in wrong package. (thiru)

    AVRO-1080. JsonIO.cc should allow \u escape sequence in
    string. (Keh-Li Sheng via thiru)

    AVRO-1066. ArrayIndexOutOfBoundsException in ParsingEncoder when
    trying to use a json encoder to serialize a deep object
    graph. (thiru)

    AVRO-1065. NodeRecord::isValid() treats records with no fields as
    invalid. (thiru)

    AVRO-1081. Java: Fix to be able to write ByteBuffers that have no
    backing array.  Also fix reflection to correctly read ByteBuffer
    fields.  (cutting)

    AVRO-1046. Java: Fix ReflectDatumReader to be able to read generic
    or specific arrays. (cutting)

    AVRO-1056. Java: Fix reflect to correctly handle unions containing
    maps.  (Kevin Zhao via cutting)

    AVRO-1076. Java: Fix Protocol#equals() to consider
    properties. (Karthik K via cutting)

    AVRO-1094. Java: Fix specific compiler to better support
    non-default templates.  (Ed Kohlwey via cutting)

    AVRO-1082. C: Avoid leaking open FILE objects.
    (Pugachev Maxim via dcreager)

    AVRO-1096. C: Don't set default CMAKE_OSX_ARCHITECTURES. (dcreager)

    AVRO-1084. C: Fix reference counting in file_reader and file_writer.
    (Pugachev Maxim via dcreager)

    AVRO-1083. C: Fix multiple memory leaks.  (Pugachev Maxim via dcreager)

    AVRO-1086. C: Fix possible crash bug in default codec initialization.
    (Pugachev Maxim via dcreager)

    AVRO-1096. C: Describe CMAKE_OSX_ARCHITECTURES in installation
    instructions.  (dcreager)

    AVRO-1088. C: Performance tests for arrays and schema resolution.
    (Vivek Nadkarni via dcreager)

    AVRO-1092. C: Error management code can be defined in a thread-safe
    manner.  (Pugachev Maxim and Vivek Nadkarni via dcreager)

    AVRO-1091. C: Helper scripts for calling CMake.
    (Vivek Nadkarni via dcreager)

    AVRO-1087. C: avro_file_writer_open() and appending Avro values
    works correctly.  (Pugachev Maxim via dcreager)

    AVRO-1102. C: Remove memory leak in avro_string().  (Maxim Pugachev via
    dcreager)

    AVRO-1099. Java: Fix JsonDecoder to permit floats and doubles to
    be read from JSON values without decimal points, and for ints and
    longs to be read from JSON values with decimal points. (cutting)

Avro 1.6.3 (5 March 2012)

    AVRO-1077. Missing 'inline' for union set function. (thiru)

    AVRO-1078. ostreamOutputStream declaration missing in C++ API (thiru)

    AVRO-1051. Java: Fix specific RPC so that method is found when
    parameters are a union of a primitive and null.
    (Hamed Asghari via cutting)

    AVRO-1049. Java: Fix GenericData.Record#equals() to correctly
    compare schemas and fix Schema#equals() to consider order. (cutting)

  IMPROVEMENTS

    AVRO-1030. Fix a broken link in the documentation.

  BUG FIXES

    AVRO-1037. Problems using Avro 1.6.2 with Hadoop (CDH3 or 1.0) (scottcarey)

    AVRO-1036. Fix a regression in IDL imports created by AVRO-971.
    (George Fletcher & cutting)

    AVRO-1031. C: Test cases made too many assumptions about memcmp
    result. (dcreager)

    AVRO-1033. C: Fixed x86 assembly implementation of atomic reference
    counting primitives. (Vivek Nadkarni via dcreager)

    AVRO-1034. C: Resolved readers initialize complex array values
    correctly. (Vivek Nadkarni via dcreager)

    AVRO-1038. C: Require GCC 4.5.0 to use GCC atomic instrinsics.
    (Vivek Nadkarni via dcreager)

    AVRO-1039. C: Don't use nonexistent codecs in test cases. (dcreager)

    AVRO-1041. Java: Fix Utf8 to reuse array in more cases.
    (Dave Irving via cutting)

    AVRO-1027. Java: Fix deadlock in NettyTransceiver.
    (Simon Wilkinson via cutting)

Avro 1.6.2 (13 February 2012)

  NEW FEATURES

    AVRO-854.  Python: Permit DataFileWriter and DataFileReader to be
    used as context managers in "with" statements. (Harsh J via cutting)

    AVRO-986. C: avromod utility for modifying structural properties of
    an Avro data file. (dcreager)

  IMPROVEMENTS

    AVRO-963. Java: Permit compiler template directory to be
    overridden by Maven plugins.  (George Fletcher via cutting)

    AVRO-953. Python: Permit users to override HTTP path in RPC.
    (Craig Landry via cutting)

    AVRO-972. Java: Add support for Infinity and NaN as default values
    for float and double.  Since JSON does not permit these as numeric
    types, we use the strings "NaN", "Infinity" and "-Infinity" in
    schemas.  These are also permitted in IDL.  (cutting)

    AVRO-965. Java: Enhance IDL to support properties for protocols
    and messages. (George Fletcher via cutting)

    AVRO-976. Java: Extend NettyServer to permit specification of an
    ExecutionHandler, to handle multiple requests simultaneously.
    (Bruno Dumon via cutting)

    AVRO-960. C: avro_value_set_string and avro_value_set_string_len
    input parameters are now "const char *" instead of "char *".
    (Lucas Martin-King via dcreager)

    AVRO-961. C: avrocat/avropipe can now read from stdin.
    (Michael Cooper via dcreager)

    AVRO-957. C: Codec support in C library.  (Michael Cooper and Lucas
    Martin-King via dcreager)

    AVRO-926. Java: Fix tests to pass under JDK 7.  (cutting)

    AVRO-956. Remove dependency on Flex/Bison. (thiru)

    AVRO-1011. Improve POM structure. (Lars Francke via scottcarey) 

    AVRO-1016. Java: Add Field#getAliases() method to better permit
    copying of schemas. (cutting)

    AVRO-1005. Java: Extend HttpTransceiver to permit specification of
    a Proxy. (Craig Landry via cutting)

    AVRO-1010. Java: Improve codec javadoc. (Lars Francke via cutting)

    AVRO-1018. Java: add svn:ignore to eclipse generated files for
    protobuf, thrift, and archetype modules (scottcarey)

    AVRO-1019. Java: Add unit test for Netty server concurrent
    execution. (jbaldassari)

    AVRO-995. Java: Update Dependencies for 1.6.2. (scottcarey)

    AVRO-1012. Java: Improve avro-service-archetype: POM and IT
    changes. (Lars Francke via scottcarey)

    AVRO-971. Java: Permit IDL imports from classpath in Maven.
    (Victor Chau via cutting)

    AVRO-1007. Java: Enhance builder API's validity checks.
    (jbaldassari & cutting)

    AVRO-1015. Support for C++ build using Micrsoft Visual Studio on Windows.
    (thiru)

    AVRO-1021. Clarify some naming issues in the specification.
    (Raymie Stata via cutting)

    AVRO-980. C: avro_schema_from_json ignores length parameter.  Add
    avro_schema_from_json_length that doesn't.
    (Michael Cooper and dcreager)

  BUG FIXES

    AVRO-962. Java: Fix Maven plugin to support string type override.
    (George Fletcher via cutting)

    AVRO-835. C#: Fix codgen for protocols to not fail.
    (Dona Alvarez via cutting)

    AVRO-966. Java: Fix ReflectDatumWriter to be able to correctly
    write unions containing Collection and/or ByteBuffer. (cutting)

    AVRO-977. Java: Fix codegen to not generate deprecated code. 
    (Hamed Asghari via cutting)

    AVRO-978. Java: Fix reflect to better handle Byte type.  (cutting)

    AVRO-968. C: Fixed avro_value_cmp and avro_value_cmp_fast for string
    values. (Vivek Nadkarni via dcreager)

    AVRO-982. Java: Fix NettyTransceiver to not hang when server stops.
    (Bruno Dumon via cutting)

    AVRO-984. C: Resolved writers initialize complex array values
    correctly. (Vivek Nadkarni via dcreager)

    AVRO-994. Java: TestFileSpanStorage.testTonsOfSpans() fails on my 
    slow VM. (jbaldassari)

    AVRO-993. Java: Add methods back to GenericDatumReader that were 
    removed in AVRO-839. (jbaldassari)

    AVRO-1000. Java: Remove incompatible implementations of equals()
    and hashCode() from GenericData.Array.  (cutting)

    AVRO-1002. Fix a broken link in the specification. (cutting)

    AVRO-1003. C: Fix pkg-config file when codecs are missing.
    (dcreager)

    AVRO-1004. C: avropipe no longer displays NUL terminator for string
    values. (dcreager)

    AVRO-986. C: File headers no longer contain sync marker. (Michael
    Cooper via dcreager)

    AVRO-986. Java: DataFileReader correctly handles sync marker
    appearing within file header. (cutting via dcreager)

    AVRO-1014. C: Check for errors producing JSON output in avrocat.
    (Lucas Martin-King via dcreager)

    AVRO-996. Java: SpecificRecord builder pattern object copy fails 
    with unions in some cases. (scottcarey and jbaldassari)

    AVRO-1020. Java: Fix builder API to correctly handle default
    values for enums.  (cutting)

    AVRO-1013. Java: NettyTransceiver can hang after server
    restart. (jbaldassari)

Avro 1.6.1 (8 November 2011)

  INCOMPATIBLE CHANGES

    AVRO-951. Java: Fix generated code to not conflict with fields
    named 'data'.  Code generated by the 1.6.0 compiler must be
    re-generated to work correctly with the 1.6.1 runtime. (cutting)

  NEW FEATURES

    AVRO-821. PHP: Add support for parsing protocols. (Andy Wick,
    Saleem Shafi and A B via cutting)

  OPTIMIZATIONS

    AVRO-946. Java: Optimize union resolution when writing. (cutting)

  IMPROVEMENTS

  BUG FIXES

    AVRO-943. Java: Fix an intermittent deadlock in
    TestNettyServerWithCallbacks.  (James Baldassari via cutting)

    AVRO-950. C: Fix source tarball to include VERSION.txt. (dcreager)

Avro 1.6.0 (2 November 2011)

  NEW FEATURES

    AVRO-839. Java: Add accessor methods and builders to generated
    Java classes.  Builders use default values from schemas for fields
    that are not explicitly set.  Direct use of public fields is now
    deprecated and may be removed in a future release.  (James
    Baldassari via cutting)

    AVRO-805: Java: Add support for reading and writing instances of
    Protocol Buffer (protobuf) generated classes.  This permits
    protobuf-defined data structures to be written and read from
    Avro-format data files.  (cutting)

    AVRO-881. Java: Add a 'getmeta' tool that lists a file's metadata.
    (Tom White via cutting)

    AVRO-863. C: Schema resolution using new value interface. (dcreager)

    AVRO-893. C: Avro data file functions using new value interface.
    (dcreager)

    AVRO-919. C: Produce JSON encoding of Avro values using new value
    interface. (dcreager)

    AVRO-920. C: Memory readers and writers are now reusable. (dcreager)

    AVRO-921. C: Default wrapped buffer implementation is zero-copy.
    (dcreager)

    AVRO-922. C: Comparison function for new value interface. (dcreager)

    AVRO-929. C: Set install_name in shared library on Mac OS OX.
    (dcreager)

    AVRO-468. C: Document CMake build scripts. (dcreager)

    AVRO-474. C: Added source package target to CMake build scripts.
    (dcreager)

    AVRO-467. C: Change build system to CMake. (dcreager)

    AVRO-890: Java: Add Maven archetype for creating Avro service
    projects.  (Stephen Gargan via cutting)

    AVRO-804. Java: Add support for reading and writing instances of
    Thrift generated classes.  This permits Thrift-defined data
    structures to be written and read from Avro-format data files.
    (cutting)

    AVRO-908. Add an option to build avrocpp as a static library.
    (Nebojsa Sabovic via thiru)

    AVRO-803. Java: Optionally change string types in generated code
    to java.lang.String instead of java.lang.CharSequence.  This is
    achived by specifying <stringType>String</stringType> in
    avro-maven-plugin's pom.xml configuration. (cutting)

    AVRO-924. Java: Support reading & writing arbitrary JSON data
    using an efficient Avro binary representation.  (cutting)

  OPTIMIZATIONS

    AVRO-853: Java: Cache Schema hash codes. (cutting)

    AVRO-907. Java: Optimize access to protobuf message fields. (cutting)

    AVRO-934. PHP: Remove quadratic performance bug. (abawany via cutting)

  IMPROVEMENTS

    AVRO-836. Python "avro" commandline utility to display and write Avro files.
    (Miki Tebeka via philz)

    AVRO-841. Java: Implement insertion in GenericData.Array.
    (Nick Palmer via cutting)

    AVRO-847. Java: Add a unit test for Java MapReduce tether. (Jeremy Lewi)

    AVRO-844. Java: Provide better errors for null or missing record fields.
    (Bill Graham via cutting)

    AVRO-746. C: Atomic reference counts. (dcreager)

    AVRO-837. C: New Avro value interface. (dcreager)
    Documented in lang/c/docs/index.html.

    AVRO-861. C: Remove dependency on stdbool.h. (dcreager)

    AVRO-396. C: avrocat and avropipe commands (dcreager)

    AVRO-857. Add mailing lists, scm and issue management to Maven
    metadata.  Also link top-level pom.xml to lang/java.
    (Jan Prach via cutting)

    AVRO-873. Java: Permit passing classloader to SpecificDatumReader.
    (Michael Armbrust via cutting)

    AVRO-889. Java: Change lang/java/pom.xml to use project's
    top-level pom.xml as parent, permitting use of Maven versions
    plugin.  (cutting)

    AVRO-858. Python: Add --fields option to 'avro cat' command.
    (Miki Tebeka via cutting)

    AVRO-866. Java: Add support in IDL for documentation in protocols
    and messages.  (George Fletcher via cutting)

    AVRO-888. Java: Add SeekableByteArrayInput, a utility to permit
    use of memory-based AvroDataFiles.  (Saleem Shafi via cutting)

    AVRO-887. Java: Improve reflection error message when a field is
    not found in a class.  (cutting)

    AVRO-874. Remove experimental disclaimer from IDL documentation. (cutting)

    AVRO-891. Java: In SpecificDatumReader, when no reader schema is
    specified, use schema of currently loaded class.  (cutting) 

    AVRO-865. C: Upgrade Jansson to 2.1. (dcreager)

    AVRO-899. C#: Include binary artifacts and documentation in
    releases.  (cutting)

    AVRO-898. Java: Extend NettyServer to support SSL.
    (Vadim Tsarik via cutting)

    AVRO-905. Java: Change JsonEncoder to write objects on separate
    lines.  (cutting)

    AVRO-910. Java: Add generated protobuf test code to subversion.  (cutting)

    AVRO-917. Avrogencpp does not insert avro prefix for avro headers in the
    generated files. (thiru)

    AVRO-840. C++ generate nullable types for optional fields int the schema.
    (thiru)

    AVRO-915. Large number of warnings in C++ builds. (thiru)

    AVRO-913. CMake/C++ build should work for out-of-tree builds.
    (Nebojsa Sabovic via thiru)

    AVRO-925. CMake/C++ Unable to build debug version of libavrocpp.
    (Nebojsa Sabovic via thiru)

    AVRO-932. C++ build.sh should have an option to install the built software.
    (thiru)

    AVRO-931. Avro C++ "make install" does not install the code generator.
    (thiru)

    AVRO-918. Avro C++ documentation is very old. (thiru)

    AVRO-938. Some more warning when built on RHEL. (thiru)

    AVRO-937. C++ CMake keeps generating code even when there is no change.
    (thiru)

    AVRO-940. C++ design for generic datum could be better. (thiru)

    AVRO-935. Java: Update dependency versions for 1.6.0. (scottcarey)

    AVRO-941. Java: Make generated specific classes to work in some
    cases after Maven shade plugin is used on them.  (cutting)

  BUG FIXES

    AVRO-824. Java: Fix usage message of BinaryFragmentToJsonTool.
    (Jakob Homan via cutting)

    AVRO-894. C: cmake build now works on Mac OS X Lion. (dcreager)

    AVRO-895. JsonDecoder does not tolerate JSON records with
    different field order. (thiru)

    AVRO-906. Java: Fix so that ordering of schema properties is
    consistent. (cutting)

    AVRO-901, Java tools unit tests fail in Windows due to line
    termination and filenaming conventions. (thiru)

    AVRO-900. On slower machines Java unit test TestFileSpanStorage
    fails. (thiru)

    AVRO-912. Mapreduce tether test fails on Windows. (thiru)

    AVRO-903. C++/Cmake build fails to find Boost libraries. (Nebojsa
    Sabovic via thiru)

    AVRO-904. C++/CMake build should fail if Boost libraries are not
    present. (Nebojsa Sabovic via thiru)

    AVRO-902. C++/CMake installs into /usr/local/local/.  (Nebojsa
    Sabovic via thiru)

    AVRO-914. Java: Fix SpecificResponder to better handle
    non-Exception Throwables. (philz via cutting)

    AVRO-871. Fix specification to state that enum symbol names must
    follow the same rules as record and field names.  (cutting)

    AVRO-916. 0xff in binary stream is interpreted as end-of-stream. (thiru)

    AVRO-869. Lifetimes of streams and encoder/decoders not managed propertly.
    (thiru)

    AVRO-928. Debug statement no longer reports garbage value from
    stack. (Vivek Nadkarni via dcreager)

    AVRO-933. On latest Ubuntu AvrogencppTests.cc does not compile. (thiru)

    AVRO-927. Java: Fix Pair#equals() to better compare
    schemas. (Brock Noland via cutting)

    AVRO-936. Avro Java does not build with Maven 2. (thiru)

    AVRO-930. C: Fixed memory lead in resolved writer class. (Vivek
    Nadkarni via dcreager)

    AVRO-942. Java: Fix reflect so that @Nullable fields have a
    default value of null. (Binglin Chang via cutting)

    AVRO-945. C# port does not build under Ubuntu 11.10. (thiru)

    AVRO-948. Java: Fix to more correctly handle Thrift optional and
    nullable fields.  (cutting)

    AVRO-944. Java: Fix mapred so that reduce-side combines use
    correct serializer. (cutting)

Avro 1.5.4 (12 September 2011)

  IMPROVEMENTS

    AVRO-866. Python: Add support for snappy compression codec.
    (Tom White via cutting)

  BUG FIXES

    AVRO-884.  Java: Fix a regression in RPC so that one-way messages
    fail when the transciever cannot connect. (Tom White via cutting)

    AVRO-892. Python: Fix an "integer out of range" error with snappy
    compression.  (Michael Cooper via cutting)

Avro 1.5.3 (25 August 2011)

  IMPROVEMENTS

    AVRO-872. Java: Improved Schema parsing API and permit IDL imports
    to depend on names defined in prior imports. (cutting)

    AVRO-877. Java: Add support for compiling multiple, dependent
    schemas. (Bill Graham via cutting)

    AVRO-880. Java: Upgrade snappy-java to 1.0.3.2.
    (Alejandro Abdelnur via cutting)

Avro 1.5.2 (12 August 2011)

  NEW FEATURES

    AVRO-830. Java: Add AvroTextOutputFormat to permit Hadoop
    streaming jobs to easily write Avro format output with "bytes" as
    schema.  (Tom White via cutting)

    AVRO-539. Java: Add asynchronous RPC support, through either
    callbacks or futures.  (James Baldassari via cutting)

  IMPROVEMENTS

    AVRO-469. C: Set library's libtool-style soversion when using CMake
    build scripts. (dcreager)

    AVRO-470. C: Build asciidoc documentation when using CMake build
    scripts. (Daniel Lundin via dcreager)

    AVRO-820. Java: Permit applications to catch exceptions thrown
    while writing data to a file and then continue writing to that
    file.  (scottcarey & cutting)

    AVRO-826. C#: Add MD5 and hashcode functions to Protocol.
    (Dona Alvarez via cutting)

    AVRO-838. Java: Permit invalid characters in record and field
    names of schemas read from data files, for compatibility with
    1.4. (cutting)

    AVRO-810: C#: Add strong naming to assemblies. (Eric Hauser)

    AVRO-833. Python: Don't require simplejson for python >= 2.6.
    (Miki Tebeka via philz)

    AVRO-845. Python: setup.py uses Python2.7+ specific code
    (Miki Tebeka via philz)

    AVRO-856. Java: Update Snappy to 1.0.3-rc4. (cutting)

  BUG FIXES

    AVRO-818. C: Fix data file corruption bug in C library (dcreager)

    AVRO-819. C: Fix file reader EOF detection (dcreager)

    AVRO-809. Java: Fix reflect for classes that have no package. (cutting)

    AVRO-832. Java: Fix RPC client to correctly perform schema
    resolution on message responses.  (cutting)

    AVRO-815. Java: Netty Transceiver fails processing one-way messages.
    Implemented writeBuffers for the NettyTransceiver to allow it to
    process one-way messages. (sgargan)

    AVRO-776. Java: Fix SocketServer to close socket. (scottcarey)

    AVRO-842. Java: Fix Netty-based IPC client to provide better
    errors when attempting to use a closed connection.
    (James Baldassari via cutting)

    AVRO-825: C++: Fix bugs in codegen with recursive schemas. (thiru)

    AVRO-864. Java: Fix reflect to be able to write unions containing
    generic and/or specific records.  (Isabel Drost & cutting)

Avro 1.5.1 (3 May 2011)

  NEW FEATURES

    AVRO-533. Add a C# implementation.
    (Jeremy Custenborder, Dona Alvarez and thiru)

    AVRO-788. Java: Add Snappy compression for data files, including
    MapReduce API support. (cutting)

    AVRO-808. Java: Add AvroAsTextInputFormat for use with streaming.
    (Tom White via cutting)

  IMPROVEMENTS

    AVRO-785. Java: Squash a Velocity warning by upgrading to Velocity 1.7.
    (cutting)

    AVRO-781. Generic data support in C++. (thiru)

    AVRO-783. Specific object support in C++. (thiru)

    AVRO-789. Datafile support in C++. (thiru)

    AVRO-787. Ruby: Make compatible with Ruby 1.9. (Michael L. Artz via cutting)

    AVRO-296. IDL: Use double-asterisk comments for schema documentation.
    (cutting)

    AVRO-709. Python: Optimize property lookup. (Justin Azoff via cutting)

    AVRO-794. Makefile.am is no longer required in C++. (thiru)

    AVRO-795. C++ Datafile reader makes it hard to build adaptive
    clients. (thiru)

    AVRO-802. Java: Add documentation for non-Avro input, map-only
    jobs. (cutting)

    AVRO-799. Java: Add support for --codec parameter to the
    'fromtext' command.  Also made some performance improvements, bug
    fixes and added tests for this command. (cutting)

    AVRO-798. Add checksum to Snappy compressed blocks. (cutting)

    AVRO-763. Java MapReduce API: add support for configure() and
    close() methods to mappers and reducers. (Marshall Pierce via cutting)

    AVRO-807. C#: Some improvements and bugfixes, including making AvroGen
    extensible and changing ISpecificRecord to an interface.
    (Dona Alvarez via cutting)

    AVRO-791. Java: Add avro-tools-nodeps jar.  Also change 'mvn
    install' to not GPG sign things by default.  (scottcarey via cutting)

    AVRO-812. Java: Implement help goal for Maven plugin.
    (Holger Hoffstätte via cutting)

  BUG FIXES

    AVRO-786. Java: Fix equals() to work on objects containing maps. (cutting)

    AVRO-780. Java: Fix a NullPointerException with reflect data when
    a union contains an array and null. (cutting)

    AVRO-790. Java: GenericDatumReader can fail when reusing objects with unions
    containing 'bytes' fields. (scottcarey)

    AVRO-801. Java: Fix a bug in SaslSocketTransceiver where large
    messages were truncated on write. (cutting)

    AVRO-793. Java: Fix a bug in the resolver when skipping an array
    within a record. (thiru via cutting)

Avro 1.5.0 (10 March 2011)

  INCOMPATIBLE CHANGES

    AVRO-751. C: Each avro_datum_t instance now contains a reference to
    the schema that the datum is an instance of.  As a result, the
    signatures of several of the functions that operate on avro_datum_t
    instances have changed.

    AVRO-647. Java: Break avro.jar up into multiple parts: avro.jar,
    avro-compiler.jar, avro-ipc.jar, avro-mapred.jar, avro-tools.jar,
    and avro-maven-plugin.jar.
    
    Summary of artifacts: 
    * avro.jar
      Contains 'core' avro features:  schemas, data files,
      specific, generic, and reflect APIs.
      Dependencies: slf4j, Paranamer, Jackson.
    * avro-ipc.jar
      Contains Trancievers, Requestors, and Responders.
      Dependencies:  avro.jar, Jetty, Netty, and Velocity
    * avro-compiler.jar
      Contains SpecificCompiler, IDL compiler and Ant tasks.
      Dependencies: avro.jar, commmons-lang, and Velocity.
    * avro-maven-plugin.jar
      A Maven plugin for Avro's compiler.
      Dependencies: avro-compiler.jar
    * avro-mapred.jar
      API for Hadoop MapReduce with Avro data.
      Dependencies: avro-ipc.jar, hadoop-core, and jopt-simple.
    * avro-tools.jar
      Avro command-line tools stand-alone jar.
      Dependencies are contained within the jar.
      Dependencies: all of the above.

    (scottcarey)

    AVRO-737. Java: Improve correlation between packages and modules.
    Each module introduced by AVRO-647 now exclusively provides 
    different java packages.  This required moving several classes
    around into new packages and will therefore require users to
    change their package imports when upgrading to Avro 1.5.0.
    Summary of changes:
    * AvroRemoteException has moved to org.apache.avro
    * ByteBufferInputStream and ByteBufferInputStream have moved 
      to org.apache.avro.util
    * InduceSchemaTool has moved to org.apache.avro.tools
    * SpecificCompiler, SchemaTask, and ProtocolTask have moved 
      to org.apache.avro.compiler.specific
    * The Idl compiler has moved to org.apache.avro.compiler.idl
    * ReflectRequestor and ReflectResponder have moved to
      org.apache.avro.ipc.reflect
    * GenericRequestor and GenericResponder have moved to
      org.apache.avro.ipc.generic
    * SpecificRequestor and SpecificResponder have moved to
      org.apache.avro.ipc.specific
    (scottcarey)

    AVRO-753. Java: Improve BinaryEncoder Performance.
    The Encoder API has several resulting changes:
    * Construction and configuration is handled by EncoderFactory.  All 
      Constructors are hidden, and Encoder.init(OutputStream) is removed.
    * Some Encoders previously did not buffer output.  Users must call
      Encoder.flush() to ensure output is written unless the EncoderFactory
      method used to construct an instance explicitly states that the Encoder
      does not buffer output. 
    (scottcarey)

    AVRO-769. Java: Align Decoder/Encoder APIs for consistency and long term
    stability.  Avro's Decoder and Encoder APIs are aligned and now consist of 
    only read and write operations.  EncoderFactory and DecoderFactory handle
    all construction and common configuration.  Some specialized implementations
    have separate configuration APIs. 
     
    (scottcarey)

    AVRO-670. Allow DataFileWriteTool to accept schema files as input with new
    --schema-file and --schema command-line flags. (Ron Bodkin via philz)

    AVRO-671. Java: Check that type and field names conform to
    specified requirements. (cutting)

    AVRO-678. Java: Implement ReflectData#compare().  Incompatibly
    moves some protected GenericDatumReader/Writer methods to
    GenericData, potentially breaking subclasses. (cutting)

    AVRO-696. Java: Make DataFileWriter.setMetaInternal(String,String)
    private. (Patrick Linehan via cutting)    

    AVRO-741. C: Minor API change to handling of bytes data.
    (Douglas Creager via brucem)

    AVRO-656. Java: Add required Schema parameter to GenericData.Fixed
    and GenericData.EnumSymbol constructors.  Also fix union dispatch
    to conform to specification, using full schema name for records,
    enums and fixed.

  NEW FEATURES

    AVRO-762. C: New and improved schema resolution API.  The new API
    correctly handles all of the schema resolution rules listed in the
    spec.  It performs resolution against two schemas separately from
    reading in any data, so that we don't have to re-resolve for each
    data record.  Please see the avro/consumer.h header file for
    details. (dcreager)

    AVRO-463. C: Error message API.  The new avro_strerror() function
    can be used to get a textual description of the error codes returned
    by the other C API functions.  In particular, this includes any JSON
    parse errors that occur while trying to load a schema. (dcreager)

    AVRO-684. Java: Add command-line "recodec" tool to change file
    compression codecs.  (Patrick Linehan via cutting)

    AVRO-689. Java: Permit setting timeout of HttpTransceiver. (cutting)

    AVRO-687. Java: Permit RPC applications to view remote protocol. (cutting)

    AVRO-159 Java: Allow maven builds to use avro: avro-maven-plugin
    (Hiram Chirino, Patrick Hunt via Scott Carey)

    AVRO-549. C: Route all memory allocations through an interface. (Douglas
    Creager via brucem)

    AVRO-729. C: JSON encoded Avro values. (Douglas Creager via brucem)

    AVRO-757. Java: Permit data files to be re-opened without
    re-reading the header. (Stu Hood via cutting)

    AVRO-750. C: Install a pkg-config file
    (dcreager)

    AVRO-730. Java: Add set() and remove() methods to GenericData.Array.
    (Chase Bradford via cutting)

    AVRO-711. JSON encoder and decoder for C++.

    AVRO-701 and AVRO-772. Java: Add new constructors for HttpServer
    and an example of using SSL for the HTTP RPC. (brucem)

  IMPROVEMENTS

    AVRO-771. Java: Update dependency versions
    (scottcarey)

    AVRO-726. Java: Make GenericDatum{Reader,Writer} easier to extend.
    (scottcarey)

    AVRO-765. Java: Improvement to BinaryDecoder readLong performance
    (scottcarey)
  
    AVRO-716. Java: integrate AVRO-647 changes with top level build
    (scottcarey)

    AVRO-752. Java: Enhanced Performance Test Suite
    (scottcarey)

    AVRO-682. Java: Add method DataFileStream.getMetaKeys().
    (Harsh J Chouraria via cutting)

    AVRO-683. Java: Fix RPC proxy factories to not require casting.
    (Stephen Gargan via cutting)

    AVRO-642. Java, Python: Pretty-print schemas in some validation
    error messages.  (Harsh J Chouraria via cutting)

    AVRO-648. Java: Use Velocity templates to generate specific code.
    (philz via cutting)

    AVRO-698. Java: Add MapReduce tests and documentation for jobs
    that mix Avro and non-Avro data. (cutting)

    AVRO-692. Java: Permit Avro 1.2 format files to be read. (cutting)

    AVRO-707. Java: Promote SASL-based RPC. (cutting)

    AVRO-714. Fix Forrest to work with Java 6. (Carl Steinbach via cutting)

    AVRO-669. Java: Make MapReduce to work with reflection-based data.
    (cutting)

    AVRO-723. Java: Pass error messages for unexpected RPC exceptions
    through to client. (Stephen Gargan via cutting)

    AVRO-719. Java: Permit MapReduce programs to alter output file
    sync interval.  (Joe Crobak via cutting)

    AVRO-725. C: avro_schema_get_subschema function. (Douglas Creager via
    brucem)

    AVRO-630. C: Add size accessors for map and list data. (Douglas Creager
    via brucem)

    AVRO-727. C: Add many new accessor and mutator functions. (Douglas Creager
    via brucem)

    AVRO-729. C: avro_schema_to_json can take const schema. (Douglas Creager
    via brucem)

    AVRO-729. C: Update to Jansson 1.3. (Douglas Creager via brucem)

    AVRO-731. Documentation: Improve identification of Apache
    trademarks. (cutting)

    AVRO-734. Java: Update maven build plugin versions. (Holger Hoffstätte
    via scottcarey)

    AVRO-700. Change C++ build system to CMake (thiru)

    AVRO-749. Don't install Jansson build artifacts. (Douglas Creager via
    brucem)

    AVRO-744. C: Helper macros for extracting and setting record field
    values (dcreager)

    AVRO-773. Java: Add no-arg constructor to AvroWrapper.
    (Jan Prach via cutting)

    AVRO-774. Java: Clean up repositories in pom.xml. (Lars Francke via cutting)

    AVRO-754. Java: Permit passing custom channel factory to NettyTransceiver.
    (Bruno Dumon via cutting)

  BUG FIXES

    AVRO-764. Java: Bug in BinaryData.compare() with offset comparison.
    (Harsh J Chouraria via scottcarey)

    AVRO-743. Java: Performance Regression and memory pressure with 
    GenericDatumReader. (scottcarey)

    AVRO-675. C: Bytes and fixed setters don't update datum size.
    (Douglas Creager via massie)

    AVRO-681. IDL: Fix documentation example with illegal syntax.
    (Jingguo Yao via cutting)

    AVRO-685. Java: Fix Schema#equals() and hashCode() to not require
    exponential time for some recursive schemas.
    (Richard Ahrens via cutting)

    AVRO-693. Java: Configure Velocity to use null logger, removing a
    dependency that was breaking the build.  (Stephen Gargan via cutting)

    AVRO-702. Java: Fix a bug printing nested record namespaces. (cutting)

    AVRO-706. Java: Type promotion not succeeding for long -> float. (thiru)

    AVRO-704. Java: Fix SocketServer connection threads to exit rather
    than busywait when client closes connection. (cutting)

    AVRO-705. Java: Fix DirectBinaryDecoder to correctly reinitialize.
    (thiru via cutting)

    AVRO-710. Java: Add bounds checking to GenericData.Array#get(int).
    (Bo Shi via cutting)

    AVRO-713. Java: Fix GenericData.Record#toString() to produce valid
    JSON for enum symbols. (Jay Kreps via cutting)    

    AVRO-643. Java: Fix intermittent failures in TestTraceCollection. (cutting)

    AVRO-722. Java: Fix ordering of calls to RPC plugins.
    (Stephen Gargan via cutting)

    AVRO-708. Java: Fix Netty-based RPC to keep connection open.
    (Stephen Gargan via cutting)

    AVRO-694. Python: Fix schema parse error for maps of records.
    (hammer via cutting)

    AVRO-663. Java: avro-tools.jar does not meet maven2 layout standard.
    (scottcarey)

    AVRO-688. Java: Only require that one-way'ness of messages match
    over stateful connections, permitting interoperability with
    Python and Ruby, which drop the one-way message attribute. (cutting)

    AVRO-759. Java: Fix NullPointerException when some but not all
    fields are aliased. (Xiaolu Ye via cutting)

    AVRO-755. Java: Fix SpecificResponder to correctly handle message
    parameter lists that differ between client and server.  (cutting)

    AVRO-775. Java: Fix a file handle leak in DataFileReader. (cutting)

    AVRO-761. Java: Fix Requestor to not send client's protocol on
    each handshake with stateless (HTTP) transport when protocol
    differs from server's. (cutting)

Avro 1.4.1 (13 October 2010)

  NEW FEATURES

    AVRO-674. Vim editor support for IDL files (Daniel Lundin via philz)

    AVRO-641. Java: Add SASL security for socket-based RPC. (cutting)

    AVRO-634. Java: Add support for reading Hadoop sequence files as
    Avro data to MapReduce API. (cutting)

  OPTIMIZATIONS

    AVRO-673. Python: Remove unneeded schema validations.
    (Erik Frey via cutting)

  IMPROVEMENTS

    AVRO-655. Change build so that 'dist' target no longer also runs C
    and C++ unit tests. (cutting)

    AVRO-634. IDL: Add support for aliases. (cutting)

    AVRO-668. Java: Reduce object allocations while writing strings.
    (scottcarey)

    AVRO-537. Ruby: Reuse client connection for multiple requests.
    (Gabor Torok via cutting)

  BUG FIXES

    AVRO-666. Remove an extraneous pdb.set_trace() that crept into schema.py
    (hammer)

    AVRO-657. Fix build so that md5 and sha1 checksum files contain
    only the file's basename without any directories. (cutting)

    AVRO-664. Ruby server takes a long time to start in interop tests. (thiru)

    AVRO-667. GenericArray fails to compare with List. SpecificRecord
    compare gets ClassCastException. (scottcarey & cutting)

    AVRO-717. Java: Fix SpecificDatumWriter default constructor to
    correctly reference SpecificData.  (Joe Crobak via cutting)

Avro 1.4.0 (31 August 2010)

  INCOMPATIBLE CHANGES

    AVRO-372.  Rename GenAvro to be Avro IDL.  The tool name is now
    'idl'.  The file suffix is now '.avdl'.  (cutting)

    AVRO-544. Java: Change Server interface, adding start() and join()
    methods.  Servers are no longer started in their constructor.
    (hammer & cutting)

    AVRO-605. Java: Change Utf8 to implement CharSequence and change
    specific, generic & reflect APIs to accept any CharSequence
    implementation for string schemas, including java.lang.String.
    This incompatibly changes method signatures of generated protocol
    interfaces.  It also incompatibly changes the generic
    representation of enum symbols from java.lang.String to
    org.apache.avro.generic.GenericEnumSymbol.

    AVRO-637. Java: Change GenericArray to implement List.  Also
    incompatibly change generated array signatures to List.  The
    runtime will now accept any Collection implementation for array
    types.  (cutting)

  NEW FEATURES

    AVRO-627. Add PHP implementation. (Michael Glaesemann via cutting)

    AVRO-613. Create basic frontend to view trace results.
    (Patrick Wendell via philz)

    AVRO-606. Add File-Based Span Storage to TracePlugin
    (Patrick Wendell via philz)

    AVRO-595. Add Basic Trace Collection and Propagation.
    (Patrick Wendell via philz)

    AVRO-493. Add support for Hadoop Mapreduce with Avro data files. (cutting)

    AVRO-285: Specify one-way messages and implement in Java. (cutting)

    AVRO-512. Java: Define and implement MapReduce connector
    protocols. (cutting)

    AVRO-577. Java: Add MapReduce InputFormat for plain text files.
    (Tom White via cutting)

    AVRO-567. Add command-line tools for text file import & export.
    (Patrick Wendell via cutting)

    AVRO-578. Java: add payload data to RPC context for use by
    plugins.  (Patrick Wendell via cutting)

    AVRO-405: Java: Add Netty-based RPC transceiver and server
    implementation. (Harry Wang via cutting)

    AVRO-580. Permit intermixing of generic and specific data.
    SpecificDatumReader and SpecificDatumWriter will now use generic
    types when no specific class is available.  (cutting)

    AVRO-600. Add support for type and field name aliases,
    facilitating schema migration. (cutting)

    AVRO-495. IDL: Add support for file includes. (cutting)

    AVRO-611. IDL: Add support for one-way messages. (cutting)

    AVRO-528. Python: Add support for Twisted.  (Esteve Fernandez via cutting)

  IMPROVEMENTS

    AVRO-636. Expose Singleton Method for TracePlugin. (Patrick Wendell via 
    philz)

    AVRO-614. Improve Trace frontend UI. (Patrick Wendell via philz)

    AVRO-629. Prefer the JSON module of python's stdlib over simplejson.
    (Harsh J Chouraria via philz)

    AVRO-587. Add Charts and Templating to Stats View
    (Patrick Wendell via philz)

    AVRO-584. Update Histogram for Stats Plugin
    (Patrick Wendell via philz)

    AVRO-501. missing function in C api to access array elements after 
    decoding an array. (Bruce Mitchener via massie)

    AVRO-497. Minor changes to C++ autotools, makefiles, and code
    generator. (sbanacho)

    AVRO-508. Use page-backed buffers for C++ serialization input or
    output. (sbanacho)

    AVRO-520. Refactor C++ validation code. (sbanacho)

    AVRO-521. Out of memory and other issues with Junit tests for
    mapreduce (thiru)

    AVRO-540. Java: Make GenericArray reversible.  (Eric Evans via cutting)

    AVRO-284. Handle namespaces correctly in new Python implementation
    (Patrick Wendell via hammer)

    AVRO-331. Inline shared state during the Python build process
    (version, handshake schemas, and interop data directory)
    (Patrick Wendell via hammer)

    AVRO-447. Describe implicit protocol "system" error in spec. (cutting)

    AVRO-150. Java: fix compiler to not re-generate up-to-date code.
    (John Yu via cutting)

    AVRO-494. Add support for default values to IDL.  (cutting)

    AVRO-596. Start Netty server eagerly in constructor.
    (Patrick Linehan via cutting)

    AVRO-581. Java: Update MapReduce APIs to use key/value pairs for
    intermediate data.  (cutting)

    AVRO-582. Java: Add comment to generated code indicating that
    set() and get() are not for use by applications.  (cutting)

    AVRO-601. Java: Add per-field property support. (cutting)

    AVRO-583. Java: Improve error message when types not correctly
    nested. (cutting)

    AVRO-603. Java: Add a constructor for SpecificDatumReader that
    accepts both reader's and writer's schema.  Also improve javadoc
    for related constructors and setters.  (Stu Hood via cutting)

    AVRO-557. Java: Cache ResolvingDecoder instances, speeding
    DatumReader benchmarks by 5x to 9x.  (cutting & scotcarey)

    AVRO-586. Java: Permit specification of MapReduce output file
    metadata properties. (Ken Krugler via cutting)

    AVRO-616. Java: Add comment to generated source files noting that
    they should not be edited. (Patrick Wendell via cutting)

    AVRO-615. Java: Improve error message for NullPointerException
    when writing data.  (cutting)

    AVRO-534. Java: Permit mapred jobs to specify a different input
    schema from the input file.  (Harsh J Chouraria via cutting)

    AVRO-617. Java: Detect erroneous default field values. (cutting)

    AVRO-598. Java: Use generic data structures when reading with
    reflect API and classes are not defined. (cutting)

    AVRO-631. Java: Make RPC plugin payload reporting consistent.
    (Patrick Wendell via cutting)

    AVRO-632. Java: Change RPC responder to log stack traces for user
    exceptions. (cutting)

    AVRO-639. Python: Use namespace-unqualified names for references
    to schemas in the same namespace. (cutting)

    AVRO-644: PHP: Add requirements to README. (Michael Glaesemann via cutting)

    AVRO-652. Java: Expose sync points in DataFileReader.
    (Stu Hood via cutting)

  BUG FIXES

    AVRO-622. python avro.ipc doesn't work with python2.4 (philz)

    AVRO-620. Python implementation doesn't stringify sub-schemas 
    correctly. (philz)

    AVRO-618. Avro doesn't work with python 2.4 (philz)

    AVRO-502. Memory leak from parsing JSON schema.
    (Robert G. Jakabosky via massie)

    AVRO-515. Fix build and compatibility problems. (sbanacho)

    AVRO-518. Add link to boost filesystem library.  (John Plevyak via sbanacho)

    AVRO-566. Java: fix so that JAVA_HOME is bound by build.xml for
    test_tools.sh.  (cutting)

    AVRO-571. Fix how we handle out-of-bounds indexes for union and 
    enum parsing in Python (hammer)

    AVRO-589. ClassCastException:
    org.apache.avro.io.parsing.Symbol$Alternative cannot be cast to
    org.apache.avro.io.parsing.Symbol$UnionAdjustAction (thiru)

    AVRO-573. Java: Fix various bugs with undeclared RPC exceptions. (cutting)

    AVRO-604. Java: Fix missing build dependency for checkstyle target.
    (Patrick Wendell via cutting)

    AVRO-602. C++: Update documentation to match API.  (Jingguo Yao via cutting)

    AVRO-609. Java: Fix JsonToBinaryFragmentTool to flush output. (cutting)

    AVRO-612. Java: Preserve field documentation when writing schemas. (cutting)

    AVRO-590. IDL: Fix order specifications. (cutting)

    AVRO-541. Java: Fix sporadic corruption when appending a
    compressed file to an uncompressed file. (scottcarey via cutting)

    AVRO-86. Java: Fix NullPointerException when reflect API infers
    schema for a class without a package. (cutting)

    AVRO-510. C: Fix some memory leaks in datafile reader &
    writer. (Robert G. Jakabosky via cutting)

    AVRO-633. Ruby: Implement skip_union to correct issues with
    updating protocols

    AVRO-640. Python: Fix path to sources in RPC interop test.  (cutting)

    AVRO-653. Python: Fix so distribution contains correct files.
    (Eric Evans via cutting)

    AVRO-650. Java: Fix GenericDatumReader to be thread-safe. (cutting)

Avro 1.3.3 (7 June 2010)

  IMPROVEMENTS

    AVRO-525. remove unused imports (Esteve Fernandez via hammer)

    AVRO-526. Fall back to pure Python StringIO if cStringIO is not available
    (Esteve Fernandez via hammer)

    AVRO-560. Python impl should include system errors in every protocol (hammer)

    AVRO-486. DataFile.open for the ruby side (jmhodges)

    AVRO-559. Handle read_union error where the list index of the union branch 
    to follow exceeds the size of the union schema (hammer)

    AVRO-491. Doing doubles and floats better in the ruby impl. (jmhodges)

    AVRO-450. HTTP IPC for ruby. (jmhodges)

    AVRO-514. Removing unnecessary ruby StringIO calls. (jmhodges)

    AVRO-511. Ruby implementation passes the rpc interop tests.

    AVRO-543. Schema comparison is hella slow on the Ruby side. (jmhodges)

    AVRO-504. ruby impl could stand better error messages on schema parsing (jmhodges)

    AVRO-556. Poor performance for Reader::readBytes improved
    (Dave Wright via sbanacho)


  BUG FIXES
    AVRO-461. Skipping primitives in the ruby side (jmhodges)

    AVRO-496. python sample_http_client.py is broken (Jeff Hodges via hammer)

    AVRO-527. Undefined variable "schm" error (Esteve Fernandez via hammer)

    AVRO-548. Python client should handle CLIENT handshake match status
    correctly. (hammer)

    AVR0-555 Missing license headers in some ruby source
    files. (jmhodges)

    AVRO-554 Fixing syncing in ruby data file writing. (Grant Rodgers
    via jmhodges)

    AVRO-562 ruby side had busted client handshaking. (jmhodges)

    AVRO-517. Resolving Decoder fails in some cases. (thiru) 

    AVRO-524. DataFileWriter.appendTo leads to intermittent IOException during write() (thiru)

    AVRO-499. Java: Fix protocol reflection to reject interfaces with
    multiple methods of the same name.  (cutting)

    AVRO-489. Skipping complex objects in the ruby impl. (jmhodges)

    AVR0-555 Missing license headers in some ruby source
    files. (jmhodges)

    AVRO-500. ruby side dev packaging (jmhodges)

    AVRO-516. ruby: buffer length should not be little-endian in socket rpc (jmhodges)
 
Avro 1.3.2 (31 March 2010)

  IMPROVEMENTS

    AVRO-449. CMake-based build system for Avro/C (Bruce Mitchener via massie)

    AVRO-418. avro.h generates errors when included in C++ code 
    (Bruce Mitchener via massie)

    AVRO-480. avro_flush() is in the header, but not implemented
    (Bruce Mitchener via massie)

    AVRO-481. Buildbot warning fixes (Bruce Mitchener via massie)

    AVRO-451. Try to use hashlib in Python implementation and fall
    back to md5 if we can't find it (Bruce Mitchener via hammer)

    AVRO-423. HTTPTransceiver does not reuse connections
    (Eric Evans via hammer)

    AVRO-490. Add Ant task to deploy Java artifacts to Maven repo. (cutting)

  BUG FIXES
 
    AVRO-479. Fix 'sign' target in top-level build.sh to generate md5
    checksums. (cutting)

    AVRO-487. Fix Java reflect protocols to transmit error messages. (cutting)

Avro 1.3.1 (16 March 2010)

  NEW FEATURES

    AVRO-432. Add @Nullable annotation to Java reflect API. (cutting)

  IMPROVEMENTS

    AVRO-426. Include a ruby gem in distributions.
    (Ryan King via cutting)

    AVRO-439. Remove unused headers from being checked in configure.in
    (Bruce Mitchener via massie)

    AVRO-438. Clarify spec.  (Amichai Rothman via cutting)

    AVRO-445. avro_size_data() to pre-calculate the size of an 
    avro_datum_t in serialized form (Bruce Mitchener via massie)

    AVRO-443. Endianness is determined at configure time rather 
    than compile time (Bruce Mitchener via massie)
  
    AVRO-448. encoding_binary.c doesn't build on big endian platforms
    (Bruce Mitchener via massie)
 
    AVRO-442. sizeof void* and sizeof long detected at configure time
    (Bruce Mitchener via massie)

    AVRO-444. Fix warnings (Bruce Mitchener via massie)

    AVRO-452. Include cleanup (Bruce Mitchener via massie)

    AVRO-453. More warning cleanup (Bruce Mitchener via massie)

    AVRO-440. config.h output not correctly used (Bruce Mitchener via massie)

    AVRO-460. Performance improvement to write_long() (Bruce Mitchener
    via massie)

    AVRO-455. Update Java dependencies. (David Dabbs via cutting)

    AVRO-446. Add a build.sh task that signs and checksums artifacts. (cutting)

    AVRO-454. Change DataFileStream to implement Closeable. (cutting)

  BUG FIXES

    AVRO-424. Fix the specification of the deflate codec.
    (Scott Carey via cutting)

    AVRO-431. Fix Java's mvn-install Ant target to work in clean build.
    (cutting)

    AVRO-437. Fix some typos in docs. (Amichai Rothman via cutting)

    AVRO-433. Fix exceptions in Java reflect RPC. (cutting)

Avro 1.3.0 (24 February 2010)

  INCOMPATIBLE CHANGES

    AVRO-185. Java's specific API no longer depends on reflection.
    This reverses the inheritance of most classes in the specific and
    reflect packages. (cutting)

    AVRO-201.  Move Python data file code into its own module.
    (Jeff Hammerbacher via cutting)

    AVRO-80.  Java reflect API no longer uses Avro-specific classes
    for string and array.  Instead now Java strings and arrays or
    Lists are used. (cutting)

    AVRO-237.  Reflect API now represents any Java Collection as an
    Avro array.  Also inherited fields are included in records, and
    inherited methods in protocols.  Finally, Java shorts are
    supported as integers.  (cutting)

    AVRO-160. Revised data file format and Java API.  Simplified
    format now permits streaming but no longer supports multiple
    schemas per file.  Java API for reading is iterator-based.

    AVRO-278. Changed GenericRecord API and implementation to be
    array-based rather than Map-based. (cutting)

    AVRO-163. Re-organized source tree into separate directories for
    each language.  (cutting)

    AVRO-344. Complete rewrite of C implementation (massie)

    AVRO-349. Fix C++ build for post-AVRO-163. (sbanacho)

    AVRO-374. Remove and ignore files that are created by autoreconf. (sbanacho)

    AVRO-387. Add IndexedRecord interface, common to both specific and
    generic records, so that toString() and hashCode() implementations
    can be shared.  Also fix toString() and hashCode() to not throw
    NPE for uninitialized records. (cutting)

  NEW FEATURES

    AVRO-151. Validating Avro schema parser for C (massie)

    AVRO-158. Permit appending to a data file from Java.  (cutting)

    AVRO-154. Add 'induce' sub-command to avroj command line tool.
    (Philip Zeyliger via cutting)

    AVRO-245. Add four new avroj commands:
      - fromjson Reads JSON records and writes to an Avro data file.
      - tojson  Dumps an Avro data file as JSON, one record per line.
      - fragtojson Renders a binary-encoded Avro datum as JSON.
      - jsontofrag Renders a JSON-encoded Avro datum as binary.
    (Philip Zeyliger via cutting)

    AVRO-272. Extend RPCContext to include message. 
    (Philip Zeyliger via cutting)

    AVRO-258. Add GenAvro language tool.  (Todd Lipcon via cutting)

    AVRO-267. Add two new avroj commands: rpcsend and rpcreceive.
    (Philip Zeyliger via cutting)

    AVRO-271. Add a Java local RPC transceiver. (Philip Zeyliger via cutting)

    AVRO-273, AVRO-275, & AVRO-279. Add Java RPC statistics collection
    and display. (Philip Zeyliger via cutting)

    AVRO-152. Add support for documentation strings to schemas,
    protocols, and messages. (Philip Zeyliger via cutting)

    AVRO-274. Make Java's data file sync interval configurable.  (cutting)
  
    AVRO-346. Add function to validate a datum against a schema. (massie)

    AVRO-306. Add Ruby implementation. (Jeff Hodges via cutting)
    
    AVRO-135. Add compression to data files. (philz)

    AVRO-368. Reserve avro.* in object container files, and 
    rename existing reserved words. (philz)

    AVRO-380. Avro Container File format change: add block size to block
    descriptor.  (Scott Carey via philz)

    AVRO-322. Add a working client and server to Python implementation 
    using HTTP as a transport (hammer)

    AVRO-287. Make RPC interop tests work with new Python implementation
    (hammer)

    AVRO-136. Add support for building/releasing python eggs (hammer)

    AVRO-414. Add Java support for concatenating and appending data
    files. (Scott Carey via cutting)

  IMPROVEMENTS

    AVRO-157. Changes from code review comments for C++. (sbanacho)

    AVRO-168. Correct shared library versioning for C implementation (massie)

    AVRO-142. Remove some Java unused fields and imports.  Start
    running checkstyle on Java test code.  (Philip Zeyliger via cutting)

    AVRO-147. Use configure to create makefile for C++ builds. (sbanacho)

    AVRO-155. Make python avro.io.DataFileReader iterable.
    (Jeff Hammerbacher via sharad)

    AVRO-148. Add ant target to build C++ project.  (sbanacho)

    AVRO-166. Improve error checking in Java schema parser.
    (Philip Zeyliger via cutting)

    AVRO-167. Refactor Java SpecificCompiler to simplify testing, and
    add some tests. (Philip Zeyliger via cutting)

    AVRO-146. Add support for using Eclipse to develop Avro's Java.
    (Philip Zeyliger via cutting)

    AVRO-149. Add Java command-line executable, "avroj".
    (Philip Zeyliger via cutting)

    AVRO-175. Split the avro_io interface into two interfaces: avro_reader 
    and avro_writer (massie)

    AVRO-179. Add units tests for all Avro C primitives (massie)

    AVRO-177. Upgrade Java dependencies to recent versions. (cutting)

    AVRO-180. Enhance code generator script and unit tests. (sbanacho)

    AVRO-186. Full read-path interoperability test (massie)

    AVRO-187. Move top-level source files into separate directories 
    for easier maintenance (massie)

    AVRO-188. Need to update svn ignores (massie)

    AVRO-190. Use fixed size C++ types for Avro fixed types. (sbanacho)

    AVRO-192. Improved errors for Java schema parsing problems. (cutting)

    AVRO-195. Complex type support for write streams (massie)

    AVRO-197. Add mapping of name to index for records and enums. (sbanacho)

    AVRO-204. Change the way symbolic references are tracked. (sbanacho)

    AVRO-205. APIs for checking schema resolution. (sbanacho)

    AVRO-203. Reformat license in Python sources.
    (Jeff Hammerbacher via cutting)

    AVRO-199. Make Python test schemas more readable.
    (Jeff Hammerbacher via cutting)

    AVRO-216. Formatting cleanups to schema.py.
    (Jeff Hammerbacher via cutting)

    AVRO-202. Add __all__ listing to Python module, to ease import.
    (Jeff Hammerbacher via cutting)

    AVRO-229. Change Java to implement Flushable and Closeable
    interfaces where appropriate.  (tomwhite via cutting)

    AVRO-231. Tutorial added to C++ docs. (sbanacho)

    AVRO-220. Dynamic schema resolution from writer to reader. (sbanacho)

    AVRO-213. Add Apache RAT to tests, to validate licenses.  (cutting)

    AVRO-233. Elaborate Java tool API. (Philip Zeyliger via cutting)

    AVRO-236. Add protocol support to avroj induce tool.  (cutting)

    AVRO-234. C++ code cleanup. (sbanacho)
    
    AVRO-240. In Python, if simplejson is not available, try using
    2.6's built-in json module. (Jeff Hammerbacher via cutting)

    AVRO-242. In Java, add support for extensible string-valued
    properties to schemas.  (cutting)

    AVRO-241. In Java, add a union annotation for reflection. (cutting)

    AVRO-249. In reflection, implement Java short as an int whose
    "java-class" property is set to java.lang.Short. (cutting)

    AVRO-247. In reflection, add Stringable annotation to indicate
    classes that can be represented by an Avro string.  (cutting)
    
    AVRO-246 Java schema parser should take schema from InputStream
    in addition to file. (thiru)

    AVRO-250. Make reflect's Union annotation applicable to message
    parameters and return types too.  (cutting)

    AVRO-253. Improve documentation of schema names in specification. (cutting)

    AVRO-257. Remove some dead Java code and un-needed casts.
    (Kevin Oliver via cutting)

    AVRO-263. Change avroj command line tools to return exit codes.
    (Todd Lipcon via cutting)

    AVRO-260. Upgrade to Jackson 1.4.0. (cutting)

    AVRO-269. Use java compiler to validate specific compiler's output.
    (Philip Zeyliger via cutting)

    AVRO-219. Rework Python API.  (Jeff Hammerbacher via cutting)

    AVRO-264. Rework Python RPC.  (Jeff Hammerbacher via cutting)

    AVRO-75. Clarify that missing values with no default values cause
    errors, and fix Java implementation.  (cutting)

    AVRO-259. Add null schema check in GenericData.Record and
    GenericData.Array construtors. (Kevin Oliver via cutting)

    AVRO-294. Clarify that bytes and fixed are unsigned, and how their
    JSON default values are interpreted.  (Jeff Hammerbacher & cutting)

    AVRO-298. Fix Java's DatumReader and DatumWriter APIs to better
    use generics.  (philz via cutting)

    AVRO-288. Implement schema resolution for Python parameters.
    (Jeff Hammerbacher via cutting)

    AVRO-282. Improve avroj build to better specify dependencies.
    (philz via cutting)

    AVRO-309. Fix python build, post-AVRO-163. (cutting)

    AVRO-310. Improve top-level build.sh. (cutting)

    AVRO-317. Restore Java data interop tests. (cutting)

    AVRO-320. Rename avroj to be avro-tools.  Also add LICENSE.txt and
    NOTICE.txt to it, print the NOTICE.txt and version in help, and
    include the tools jar in distributions.  (cutting)

    AVRO-314. Add mvn-install ant task to publish jar to local Maven
    repository.  (Aaron Kimball via cutting)

    AVRO-243. Use automake generated Makefile.in. (sbanacho)

    AVRO-198. Fix specification of protocol name, also clarify which
    properties are required.  (cutting)

    AVRO-336. Check that appropriate schemas are passed to
    GenericData#Record and #Array.  (cutting)

    AVRO-353. Publish the C API to avro-doc package when 'dist' target
    run (massie)

    AVRO-359. Add support for encoding/decoding arrays and maps (massie)

    AVRO-360. Standardize on Linux coding style instead of GNU (massie)

    AVRO-362. Add test to ensure Python implementation handles Union schema
    with two fixed types of different names (hammer)

    AVRO-364. Add support for encoding/decoding records (massie)

    AVRO-367. Complete memory management for the C implementation (massie)

    AVRO-369. Add support for encoding/decoding enum values (massie)

    AVRO-370. Add support for encoding/decoding fixed data (massie)

    AVRO-371. Add support for encoding/decoding unions (massie)

    AVRO-377. Add getters and setters for all Avro datum types (massie)

    AVRO-378. Add example code to the C implementation and update 
              documentation (massie)

    AVRO-379. Changed record getter/setter API to match other datatypes (massie)

    AVRO-381. Update documentation to talk about reference counting and 
              memory management (massie)

    AVRO-384. Add schema projection to the C implementation (massie)

    AVRO-388. Using ResolvingDecoder in GenericDatumReader (thiru)

    AVRO-386. Python implementaiton of compression (philz)

    AVRO-394. Simplify and consolidate all data structures into hash
    tables (massie)

    AVRO-393.  Add a constructor for Utf8 that accepts byte[].
    (Jeff Hodges via cutting)

    AVRO-395. Add a cscope Makefile target (Eli Collins via massie)

    AVRO-397. Whitespace change and comment clarification in
    datafile.py (hammer)

    AVRO-340. Define usage of HTTP as RPC transport in spec.  (cutting)

    AVRO-342. Document that Java's socket and datagram RPC transports
    are non-standard.  (cutting)

    AVRO-208. Clarify that enum symbols must be unique.  (cutting)

    AVRO-321. Restore Java RPC interop tests. (cutting)

    AVRO-402. Add method for writing avro_schema_t structure to an 
              avro_writer_t (massie)

    AVRO-398. avro_read_file doesn't detect eof (Eli Collins via massie)

    AVRO-403. Add file object container support to C implementation (massie)

    AVRO-400. Adding warning for unused parameters (Eli Collins via massie)

    AVRO-409. Update contact database example to use a file object 
              container for C implementation (massie)

    AVRO-420. Add namespace support to C implementation (massie)

    AVRO-261. Allow Schemas to be immutable (thiru)

    AVRO-412. Allow schema validation to be optional (massie)

    AVRO-295. JsonEncoder is not flushed after writing using ReflectDatumWriter (thiru)

    AVRO-416. Produce Java source archive.  (Ryan Rawson via cutting)

    AVRO-417. Produce Java documentation archive.  (Scott Carey via cutting)

    AVRO-428. Improve file read performance by buffering data (massie)

    AVRO-430. Remove subversion directories from Avro C tarball (massie)

  OPTIMIZATIONS

    AVRO-172. More efficient schema processing (massie)

    AVRO-291. Set NODELAY in Java's SocketTransceiver.
    (Eric Evans via cutting)

    AVRO-315. Performance improvements to BinaryDecoder (thiru)

    AVRO-316. Optiminzing inner loop functions of Avro io (thiru)

    AVRO-328. Performance improvements Validating encoder/decoder for nested records (thiru)

    AVRO-345. Optimization for ResolvingDecoder (thiru)

    AVRO-363. estSchema had two tests disabled; new test for named schemas 
    named after primitives. (philz)

    AVRO-354. Performance improvement to BinaryDecoder.readInt() (Kevin Oliver via thiru)

    AVRO-343. Minor fixes to Eclipse config after build re-org (philz)

    AVRO-383. Optimizing ResolvingDecoder for default values (thiru)

    AVRO-411, AVRO-413. Add Ruby data file interop tests. (Jeff Hodges
    via cutting)

    AVRO-399. Make data file interop tests work with the Python implementation (hammer)

    AVRO-392. Overhaul of Java binary decoder to significantly improve
    performance.  (Scott Carey via cutting)

  BUG FIXES
 
    AVRO-176. Safeguard against bad istreams before reading. (sbanacho)

    AVRO-141.  Fix a NullPointerException in ReflectData#isRecord().
    (Isabel Drost via cutting)

    AVRO-156.  Fix broken links to Wiki in documentation.
    (Jeff Hammerbacher via cutting)

    AVRO-165.  Fix an equals implementation in TestReflect.
    (Philip Zeyliger via cutting)

    AVRO-169.  Fix a typo in the spec. (Jeff Hammerbacher via cutting)

    AVRO-189. test-c target fails (massie)

    AVRO-182. Fix Java's generic and specific implementations of
    equals() and hashCode() to be consistent with compareTo().
    (cutting)

    AVRO-193. Fix 'ant test-avroj' on Ubuntu 9.10. (cutting)

    AVRO-171. Fix Java's Protocol#toString() to correctly handle
    forward-references. (cutting)

    AVRO-191. Explicitly include stdint.h for C++. (cutting via sbanacho)

    AVRO-194. C++ varint encoding buffer too small. (sbanacho)

    AVRO-210. Memory leak with recursive schemas when constructed 
    by hand. (sbanacho)

    AVRO-211. Nested schema does not get parsed in C++. (sbanacho)

    AVRO-222. Fix Python interop tests broken by AVRO-201.
    (Jeff Hammerbacher via cutting)

    AVRO-223. Fix test-avroj on Mac OS X.  (Philip Zeyliger via cutting)

    AVRO-224. Code cleanup: cleaner distinction between public and private 
    methods (massie)

    AVRO-221. Mangle Java reserved words in generated code to avoid
    name conflicts.  (Philip Zeyliger via cutting)

    AVRO-225. In generated Java, use dollar-sign, not underscore, to
    prevent name conflicts. (cutting)

    AVRO-227. Fix a typo in the spec document.  (Todd Lipcon via cutting)

    AVRO-232. Fix C++ build in cygwin. (sbanacho)

    AVRO-238. Fix so that slf4j-simple is only required by tests.  (cutting)

    AVRO-184. Better eclipse configuration support. (thiru)

    AVRO-256. Use fully-qualified class names in generated Java code
    to eliminate name conflicts. (cutting)

    AVRO-255. Fix Java so that, when parsing schemas, unspecified
    namespaces are defaulted to nearest enclosing namespace. (cutting)

    AVRO-262. Fix two typos in the spec.  (Jeff Hammerbacher via cutting)

    AVRO-276. Fix GenAvro to specify file encoding as UTF-8.
    (Philip Zeyliger via cutting)

    AVRO-280. Fix file header schema in specification.  Also fix
    "forrestdoc" build target to work on clean checkout.
    (Jeff Hammerbacher & cutting)	 

    AVRO-292. Fix Python skipping of ints and longs.
    (Jeff Hammerbacher via cutting)

    AVRO-289. Fix Python schema resolution.
    (Jeff Hammerbacher via cutting)

    AVRO-281. Symlink in build.xml does not work well with Cygwin (thiru)

    AVRO-299. Fix Python numeric promotion.  (Jeff Hammerbacher via cutting)

    AVRO-207. Fix Python to detect duplicate enum symbols and add
    tests for duplicates in unions.  (Jeff Hammerbacher via cutting)

    AVRO-313. Default values for fields or records and array (or map) don't work with ResolvingDecoder (thiru)

    AVRO-47. Use void* for byte sequences. (sbanacho)

    AVRO-337. ant test-java fails in Cygwin due to CRLF v LF problem (thiru)
 
    AVRO-347. Add the --unsafe flag to asciidoc in order to include source/header files (massie)

    AVRO-352. Incorrect binary encoding for strings and bytes (massie)

    AVRO-356. RAT fails with "Unknown license" error (massie)

    AVRO-355. io.Perf test harness uses different random number seeds for each run (Kevin Oliver via thiru)

    AVRO-375. Initializing uninizialized encoders fail (thiru)

    AVRO-373. EOF detection broken in JsonDecoder (thiru)

    AVRO-382. Avro hashCode throws a NullPointerException when fields are uninitialized (Michael Armbrust via philz)

    AVRO-385. Initializing uninizialized BlockingBinaryEncoder fails (thiru)
    
    AVRO-389. ResolvingDecoder does not resolve enum well (thiru)

    AVRO-390. ResolvingDecoder does not handle default values for records well (thiru)

    AVRO-361. Specific Compiler fails to handle union with two fixed branches (Scott Carey via philz)

    AVRO-350. Fix GenericData.Record#get(String) to return null rather than
    throw NPE when passed a field name that's not in the record.
    (Kevin Oliver via cutting)

    AVRO-401. Fix a typo in the specification.  (Tom White via cutting)

    AVRO-408. lang/c/build.sh 'dist' broken (massie)

    AVRO-407. Fix a bug in the Java data file reader. (Scott Carey via cutting)

    AVRO-415. Fix Ruby to work with Ruby 1.8.6.

    AVRO-421. Fix some dist target issues.  (cutting)

    AVRO-422. Build c++ docs in correct location. (sbanacho)

Avro 1.2.0 (14 October 2009)

  INCOMPATIBLE CHANGES

    AVRO-115. Remove RPC's session notion to facilliate the use of
    stateless transports like UDP and HTTP.  Add a UDP transport.
    (cutting)

    AVRO-120. Improved package and namespace handling, including:

     * Removed explicit package-name specification from specific and
       reflect public APIs.  Package names are now determined either
       by namespace declarations or by a Java classes, as appropriate.

     * Changed the specific compiler to generate separate java files
       per class, rather than nested classes.  This permits generated
       classes to be in packages declared in their schema namespaces.

     * Fix namespace defaulting.  The default namespace is declared in
       the outermost schema or protocol.  Nested schemas can now
       declare different namespaces than the default.

     * Names may now be specified with a dotted notation, e.g.,
       "foo.bar.Baz", to indicate the name "Baz" in namespace
       "foo.bar".  This permits one to refer to schemas in a namespace
       other than the default.

  NEW FEATURES

    AVRO-121.  Permit reflect and specific datum readers to read data
    written with a different version of the schema than is current.
    (cutting)

    AVRO-129.  Add HTTP-based RPC client and server.  (cutting)

    AVRO-24.  Add a simple bulk-data benchmark.  (cutting)

    AVRO-139. Refactor HTTP servlet to separate, public class. (cutting)

  IMPROVEMENTS

    AVRO-99.  Use Boost framework for C++ unit tests.
    (Scott Banachowski via cutting)

    AVRO-116.  Make C++ compatible with Boost 1.32.
    (Scott Banachowski via cutting)

    AVRO-119.  Add Java GenericData.Array#toString() implementation,
    to facillitate debugging. (cutting)

    AVRO-118.  JSON encoder and decoder now permit one to write
    multiple instances without flushing or explicitly resetting the
    codec between each instance.  (Thiruvalluvan M. G. via cutting)

    AVRO-133.  Update version number in specification document and
    documentation tab automatically from build version. (cutting)

    AVRO-131.  Permit specification of JUnit test output format.
    (Giridharan Kesavan via cutting)

    AVRO-134.  Update data file format specification to include
    reserved metadata keys "codec" and "sync".  The only codec
    currently defined is "null".  (Thiruvalluvan M. G. via cutting)

    AVRO-138.  Add a "unit-test-java" Ant target that runs tests
    without running checkstyle or javadoc.  (Thiruvalluvan M. G. via
    cutting)

    AVRO-140.  Add javadoc to public classes with none.  (cutting)

  OPTIMIZATIONS

  BUG FIXES

    AVRO-132.  Fix multi-threading race condition when threads share schema objects.
    (sbanacho)

    AVRO-113.  Fix endian bug with C++ integer/long varint codec.
    (Scott Banachowski via cutting)

    AVRO-117.  Fix memory leak in C++ JSON parser.
    (Scott Banachowski via cutting)

    AVRO-122.  Fix so that, when multiple Ant targets are specified on
    the command line that depend on ivy, ivy does not fail.  (phunt
    via cutting)

    AVRO-123.  Fix Java's specific protocol compiler so that
    parameters and return types are unboxed. (cutting)

    AVRO-125.  Fix sample protocol in specification document to use
    the correct syntax.  (cutting)

    AVRO-101.  Add Java reflect API test case using nested classes.
    (Eelco Hillenius via cutting)

    AVRO-124.  Remove Ivy's jar from distributions.  (cutting)

    AVRO-137. Suppress warnings in generated java code. (cutting via sharad)

Avro 1.1.0 (8 September 2009)

  INCOMPATIBLE CHANGES

    AVRO-110. GenericData and ReflectData have been converted to use a
    singleton pattern.  Calls to static methods on these classes must
    be replaced with calls on the singleton instance. (cutting)

    AVRO-41. GenericArray's constructor now requires a Schema, so that
    it may implement Comparable consistently with AVRO-108. (cutting)

    AVRO-41. Several GenericDatumWriter methods (instanceOf(),
    isRecord(), etc.) have been moved to GenericData, where they can
    better be shared with comparators.  Applications which subclassed
    GenericDatumWriter overriding these methods must now instead
    subclass GenericData and pass their subclass to
    GenericDatumWriter. (cutting)

    AVRO-41. SpecificRecord's schema() method has been renamed
    getSchema(), since it now implements the new GenericContainer
    interface shared with GenericRecord. (cutting)

  NEW FEATURES

    AVRO-50. Implmenent JSON data codec in Java. (Thiruvalluvan
    M. G. & cutting)

    AVRO-76. Add Java RPC plugin framework.  (George Porter)

    AVRO-104. Permit null fields in Java reflection.
    (Eelco Hillenius via cutting)

    AVRO-92. Describe JSON data encoding in specification
    document. (cutting)

    AVRO-108.  Add Java implementation of binary comparator.
    (cutting)

    AVRO-41. Java generic and specific data instances now implement
    Comparable.  The implementation is consistent with the binary
    comparator added in AVRO-108. (cutting)

    AVRO-109.  Add Java support for controlling sort order via schema
    annotations.  Record fields now support an "order" attribute whose
    possible values are "increasing" (the default), "decreasing", and
    "ignore".  (cutting)

    AVRO-111.  Document sort ordering in the specification. (cutting)

  IMPROVEMENTS

    AVRO-71.  C++: make deserializer more generic.  (Scott Banachowski
    via cutting)

    AVRO-60. Fix C JSON parser to correctly handle escapes and
    multi-byte characters.  Add tests.  (Matt Massie via cutting)

    AVRO-54. Re-upgrade to testng 5.9 and re-enable listeners. (cutting)

    AVRO-82. Add checkstyle to java compilation.  (Thiruvalluvan
    M. G. via cutting)

    AVRO-81. Switch back from TestNG to JUnit. (Konstantin Boudnik via
    cutting)

    AVRO-84, AVRO-85.  Clarify a few things in the specification
    document.  (Thiruvalluvan M. G. and cutting)

    AVRO-89. In fields of Java generated classes, use unboxed numeric
    types.  (cutting)

    AVRO-83. In generated Java code, elide unions with null. (cutting)

    AVRO-98. Fix C++ schema parser to permit JSON attributes in any
    order and to ignore extra attributes. (Scott Banachowski via cutting)

  BUG FIXES

    AVRO-78. Fix Java reflect to work on non-public fields. (cutting)

    AVRO-79. Specify format for default fixed values, and implement
    correctly in Java.  (Thiruvalluvan M. G. via cutting)

    AVRO-87. Fix broken links in javadoc introduced by AVRO-82.  Also
    change test-java build target to fail on javadoc warnings.
    (Thiruvalluvan M. G. and cutting)

    AVRO-90. Fix Java's JSON codec to correctly encode unions. (cutting)

    AVRO-95. Fix writing of Java reflect-based unions.  Also extend
    DataFileWriter to permit adding branches to a union schema while
    writing.

    AVRO-88. Fix Java's BlockingBinaryEncoder to correctly override
    writeEnum().  (Ravi Gummadi via cutting)

    AVRO-61. Add Python support for reading blocked data.
    (Ravi Gummadi via cutting)

    AVRO-97.  Fix various C++ bugs.  (Scott Banachowski via cutting)

    AVRO-100.  In spec, remove warning about blocking being draft. (cutting)

    AVRO-107.  Fix Protocol#equals() and Protocol#hashCode() to
    consider the protocol's types, and also fix Schema#equals() to not
    throw ClassCastException when a fixed schema is compared to
    non-fixed. (cutting)

    AVRO-112.  Turn off C++ debug output.  (Scott Banachowski via cutting)

    AVRO-114.  Fix "cdoc" Ant target to correctly run doxygen.
    (Matt Massie via cutting)

Avro 1.0.0 -- 9 July 2009

  INCOMPATIBLE CHANGES

    AVRO-1. Record fields are now defined with JSON arrays, rather
    than JSON objects, since fields are ordered.  (cutting & sharad)

    AVRO-9. Restrict map keys to strings.  (cutting & sharad)

    AVRO-2. Optimized RPC handshake protocol for Java.  (cutting)

    AVRO-57. Make ValueWriter an abstract class named Encoder and make
    ValueReader an abstract class named Decoder, and add concrete
    implementations named BinaryEncoder and BinaryDecoder. (cutting)

    AVRO-46. Optimized RPC handshake protocol for Python.  (sharad)

    AVRO-66.  Add per-call RPC metadata to Java and Python. (George
    Porter & cutting)

  NEW FEATURES

    AVRO-6. Permit easier implementation of alternate generic data
    representations, especially records with integer-indexed fields.
    (Hong Tang via cutting)

    AVRO-8. Add Java support for default values. (cutting)

    AVRO-33.  C support for primitive types.  (Matt Massie via cutting)

    AVRO-18.  Add support for enum types.  (cutting & sharad)

    AVRO-10.  Add Java support for fixed-sized types. (cutting)

    AVRO-38.  Add Python support for fixed-sized types. (sharad)

    AVRO-42.  Add partial C++ implementation. (Scott Banachowski via cutting)

    AVRO-25.  Add blocking value writer that permits arbitrarily long
    arrays and maps to be efficiently written as sequences of blocks.
    (Thiruvalluvan M. G. via cutting)

    AVRO-48.  Add JSON parser for C.  (Matt Massie via cutting)

    AVRO-29.  Add to Java a validating encoder & decoder, and a
    resolving decoder.  (Thiruvalluvan M. G. & Raymie Stata)

    AVRO-67.  Add per-call RPC metadata to spec. (George Porter via cutting)

    AVRO-28. Add Python support for default values. (sharad via cutting)

  IMPROVEMENTS

    AVRO-11.  Re-implement specific and reflect datum readers and
    writers to leverage AVRO-6.  (cutting)

    AVRO-13. Use dictionary instead of if-else in validate. (sharad)

    AVRO-5. Add java versus python RPC interoperability tests. 
    (sharad)

    AVRO-16.  Minor documentation improvements.  (cutting)

    AVRO-15. Override __eq__() and __hash__() in Schema classes.
    (sharad)

    AVRO-26. Switch tests from JUnit to TestNG.  (Konstantin Boudnik
    via cutting)

    AVRO-34. Upgrade to Jackson version 1.0.0.  (cutting)

    AVRO-37. Add C api docs.  Also link to py docs.  (Matt Massie & cutting)

    AVRO-32. Java specific generated record classes now implement
    equals() and hashCode().  (cutting)

    AVRO-48. Remove unused imports and annotations.
    (Thiruvalluvan M. G. via cutting)

    AVRO-53. Use Ivy to retrieve Java dependencies.  (cutting)

    AVRO-56. Use Jackson to generate JSON from Java.  (cutting)

    AVRO-36. Correctly encode and decode binary default values.
    (cutting)

    AVRO-59.  C++: make serializer more generic.  (Scott Banachowski
    via cutting)

    AVRO-68. Add license headers to C sources and improve C packaging.
    (Matt Massie via cutting)

    AVRO-351. Shorten induce tool description; add check to avoid overly verbose 
    descriptions. (philz)

  OPTIMIZATIONS

  BUG FIXES

    AVRO-3. Fix ValueReader to throw an exception at EOF.
    (Pat Hunt via cutting)
    
    AVRO-4. Fix so that specific code generation works under Eclipse.
    (Pat Hunt via cutting)

    AVRO-14. Fix so that EOF is not thrown when one attempts to read
    an empty buffer.  (sharad via cutting)

    AVRO-31. Fix Java package imports in generated specific classes.
    (sharad via cutting)

    AVRO-21. Default Java namespace from containing definition. (cutting)

    AVRO-12. Fix recursive schemas in Java so that equals() and
    hashCode() do not cause a stack overflow.  (cutting)

    AVRO-22. When parsing schemas in Java, do not permit anonymous.
    (cutting)

    AVRO-39. Fix bug in Java record schema toString().  (sharad)

    AVRO-40. Fix typo in specfication, where 'unsigned' was used where
    'signed' was intended.  (cutting)

    AVRO-44. Fix so that 'ant clean' works even if C has not been
    built.  (Matt Massie via cutting)

    AVRO-45. Fix c++ compliation so that python script need not be
    made executable.  (Scott Banachowski via cutting)

    AVRO-51. Fix testio.py to exit correctly. (Philip Zeyliger 
    via sharad)

    AVRO-55. Fix two spec document typos.  (cutting)

    AVRO-69. Make C's install-sh script executable.  (Matt Massie via cutting)

    AVRO-70. Add license header to json_schema.y.  (Matt Massie via cutting)

    AVRO-74. Add missing license headers in C++.  (cutting)

    AVRO-73. Workaround in python to fix simplejson bug on Mac OS. (sharad)

    AVRO-64. Fix socket and parser issue on Mac OS. (sharad)

    AVRO-77. Fix C unit tests on Mac OS.  (Matt Massie via cutting)
