Copying you in on something I think can materially reduce our tech
debt and merge conflicts.

Hope this helps.
-A

-----

In doing maintenance and ports, I've noticed that we have drift
related to using guava to implement hashCode/equals on domain classes.
Having an opportunity for a guava incompatibility on something like
this is not high value, in my opinion. Moreover, we have a lot of
other inconsistency in our value classes, which have caused bugs, and
extra review time on pull requests.

Auto-Value generates concrete implementations and takes out the
possibility of inconsistency of field names, Nullability, etc. It is
handled at compile time, so doesn't introduce a dependency of note,
nor a chance of guava version conflict for our users.

https://github.com/google/auto/tree/master/value

While it may be the case that we need custom gson adapters (ex opposed
to the ConstructorAnnotation approach), or a revision to our approach,
I believe that this work is worthwhile.

While it is the case that our Builders won't be generated, I still
think this is valuable. For example, in many cases, we shouldn't be
making Builders anyway (ex. they are read-only objects never
instantiated, such as lists). Even if we choose to still write
Builders, the problem is isolated there.

https://issues.apache.org/jira/browse/JCLOUDS-750

Reply via email to