Skip to content

AutoValue Release 1.4 RC1

Pre-release
Pre-release
Compare
Choose a tag to compare
@cgruber cgruber released this 17 Oct 18:25
· 1142 commits to main since this release

Functional changes since 1.3

  • @Memoized added, allowing non-property methods to be run-once and have the results cached.
    • @Memoized methods are guarded double-checked locking (a756ee6)

    • Very tentatively support using @LazyInit from github.com/google/error-prone as a just-in-time alternative
      to @Memoized)

      Note: This is internally tested, but is experimental, and doesn't have any serious testing in open-source.

  • Ignore concrete methods in abstract-class builders when scanning to discover auto-value properties. (07d6fdd)
  • Stop "pessimizing" arrays by pre-sizing them (nearly all VMs perform better without this) (82041d0)
  • AutoValue now imports top-level types, and references nested types in a qualified way. (e.g. Foo.Bar)

Extension API changes since 1.3

  • Introduce null-checks into generated classes' constructors, to guard against poorly crafted extensions. (660ea56)
  • Guard against corrupt extension jar loading (4a052a8)

Bugs fixed since 1.3

  • Fix @AutoAnnotation issue when passing in generic-array-parameter values using a collection. (82041d0)
  • Some fixes inherited from an updated auto-common related to eclipse and ecj
  • Guard against IOExceptions from reading resources from jars. Fixes #365
  • Improved support for dealing with Java8 bytecode on the classpath (using ASM5)

Random stuff

  • Source import statements re-ordered according to Google's new (simplified) standard format.
  • Example code for builders uses "setFoo(Foo foo)" naming for clarity (not required in production code.)
  • Faster jar creation on ubuntu during builds.