Avro Change Log

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)

  OPTIMIZATIONS

  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)
