Avro Change Log

Avro 1.4.1 (13 October 2010)

  NEW FEATURES

    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-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 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-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)

  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)
