Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Fetching contributors…

Octocat-spinner-32-eaf2f5

Cannot retrieve contributors at this time

file 845 lines (519 sloc) 29.71 kb
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844
Avro Change Log

Trunk (unreleased changes)

  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)

  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)

  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)

  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 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)
Something went wrong with that request. Please try again.