Skip to content

Releases: google/auto

AutoValue 1.7.2

13 May 18:23
Compare
Choose a tag to compare

Only one change in this release:

  • AutoValue is once again "isolating" for Gradle incremental compilation. (8e7515a)

AutoService 1.0-rc7

13 May 19:39
Compare
Choose a tag to compare
  • Use CLASS retention to support Gradle aggregating incremental annotation processors (28a2c79)
  • Set an Automatic-Module-Name. (61256c3)

AutoValue 1.7.1

01 May 23:09
Compare
Choose a tag to compare

New features

  • SerializableAutoValue extension. This can be used to serialize @AutoValue classes with properties of type java.util.Optional, even though java.util.Optional is not serializable, and it can also be configured to serialize other arbitrary types. Thanks to @alvinlao for this contribution! (f91d2fe)
  • The logic for determining if we can make a BarBuilder out of a Bar has been generalized. For example, if your @AutoValue class Foo has a property IntList ints(), then your builder can have IntListBuilder intsBuilder(). Previously this worked if there was no Foo.toBuilder() method, or if IntList had its own toBuilder() method. Now it also works if it is possible to call IntListBuilder.addAll(IntList). (6aeb44f)
  • AutoValue now allows boxed properties to be set from the corresponding primitive type, for example Integer from int. (2bbe506)

Behaviour changes

  • AutoValue now gives a warning if the static builder() method is inside the @AutoValue.Builder class instead of directly in the @AutoValue class. (fcccded)
  • AutoValue doesn't generate code or invoke extensions if it detects a problem, for example a mismatch between getters and setters. (ecb6032)
  • AutoOneOf factory methods for void values now have type parameters if the @AutoOneOf class does. (4ab1b53)
  • It is now a compilation error if a setter method in a builder has a parameter marked @Nullable when the corresponding property is not in fact @Nullable. Calling such a method with a null parameter already generated a NullPointerException at runtime. (bd7bed2)
  • The @Memoized annotation now has class-level retention, rather than source-level. (107694b)

Bug fixes

  • We fixed an issue with type checking of setter parameters in the presence of inheritance and generics. (e97d1f0)
  • We now generate a better toString() for arrays in AutoOneOf (0a7c049)

Miscellaneous

  • We added CompileWithEclipseTest, which checks that AutoValue works with ecj, the Eclipse compiler. (05e983c)

AutoValue 1.7

10 Oct 05:20
Compare
Choose a tag to compare

This is the same as 1.7rc1, with one small addition:

  • Add a way for extensions to retrieve the name of the final AutoValue_Foo class. (4543619)

Thanks to @bryanstern for checking that the API changes for builder introspection do indeed work in a real extension.

AutoValue 1.7rc1

01 Oct 00:29
Compare
Choose a tag to compare
AutoValue 1.7rc1 Pre-release
Pre-release
  • Add an API to allow AutoValue extensions to find out about builders. (86f4563)
  • The generated AutoValue builder class is no longer final if there are extensions generating code. This means that extensions can subclass Builder to modify or extend its functionality. (49fbf55)
  • Property builders now work correctly when their actual return type is different from the corresponding property type because of type variable substitution. (7646889)
  • Allow @AutoValue getters to define properties that are not valid Java identifiers, for example get1st(). (6dfa04e)
  • Add a propertyTypes() method to AutoValueExtension.Context, to allow extensions to see the true type of every property. In preference to properties().get(p).getReturnType(), extensions should use propertyTypes().get(p). (99ae134)

AutoFactory 1.0-beta7

24 Sep 11:28
Compare
Choose a tag to compare
  • Prevent stack overflow caused by self referencing types (ex: E extends Enum). (c35f5c3)
  • Add support for generics to @autofactory (e63019a)
  • Gradle: @AutoFactory is now an isolating annotation processor (2a52c55)

AutoValue 1.6.6

19 Aug 17:26
Compare
Choose a tag to compare
  • Allow @AutoOneOf properties to be void. An abstract void method means that the associated kind has no value. The factory method has no parameter and calling the implementation of the void method does nothing unless the instance is of another kind. (48d6557)
  • Shade org.checkerframework in the auto-value jar. (f89da91)
  • Primitive arrays now work in @AutoOneOf classes. (81134b5)
  • In AutoValue code, include type annotations in bounds of type-parameter declarations. (ca013a2)
  • Handle inner classes correctly when the outer class has a type parameter. (4259261)
  • Use the short form of annotations in generated code. For example, instead of @SuppressWarnings(value = {"mutable"}), write @SuppressWarnings("mutable"). (b2eb535)
  • Use ImmutableSortedSet.copyOfSorted and .naturalOrder where appropriate. (a0de99b)
  • Work around an Eclipse compiler bug where static interface methods are incorrectly shown as being inherited. (3854a65)
  • Handle GWT serialization when some of the properties use property builders. (445b9ed)

AutoService 1.0-rc6

16 Jul 19:41
Compare
Choose a tag to compare
  • Actually support Gradle's incremental annotation processing

AutoValue 1.6.5

10 Apr 18:18
Compare
Choose a tag to compare

This is identical to 1.6.4 except for the following:

  • Fix an intermittent issue with AutoValue extensions and Gradle. (0cced0d)

AutoValue 1.6.4

05 Apr 01:15
Compare
Choose a tag to compare
  • More detailed exception information if AutoValue extensions cannot be loaded. (67e172e)
  • Expand the exceptions covered by the workaround for a JDK8 jar bug. (f17d298)
  • Support @CopyAnnotations in classes generated by MemoizeExtension. (bf27cab)
  • Improved type checking for builder setter parameters. (8d6111d, efd48fd)
  • Added MoreTypes.asIntersection() (c16ef66)
  • It is a compilation error for an @AutoOneOf property to be @nullable since null values are not in fact accepted. (9cf9999)
  • AutoValue extensions can now declare supported options. (175e323)
  • In AutoValue, @CopyAnnotations.exclude now affects type annotations. (3ee205b)