AutoValue Release 1.4 RC1
Pre-release
Pre-release
cgruber
released this
17 Oct 18:25
·
1214 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.