[ https://issues.apache.org/jira/browse/BEAM-134?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15216882#comment-15216882 ]
Scott Wegner commented on BEAM-134: ----------------------------------- TL;DR: 39 classes in the SDK would be candidates for AutoValue, 12 of which are sufficiently complex. I recommend we do the work to incorporate AutoValue. I did some analysis over the current SDK codebase, looking at classes which act as value classes with boilerplate equals/hashCode implementations; these are good candidates for AutoValue. Of those, I categorized them based on how much they would value from being converted to AutoValue: * "low": equality is represented by a single field. Little value in converting. * "medium": equality represented by 2 fields; AutoValue would remove some complexity and ensure equals/hashCode are implemented "correctly" * "high": equality represented by 3 or more fields; at this point, the boilerplate code is larger and equality is easy to get wrong or break over time. These would benefit from AutoValue. Based on those definitions, I categorized the SDK codebase, limiting to non-test, non-runner code, and found: * Low value: 16 classes * Medium value: 21 classes * High value: 12 classes Based on this, I think AutoValue would be worth including and converting these existing classes. > Investigate use of AutoValue > ---------------------------- > > Key: BEAM-134 > URL: https://issues.apache.org/jira/browse/BEAM-134 > Project: Beam > Issue Type: Improvement > Components: sdk-java-core > Reporter: Scott Wegner > Assignee: Scott Wegner > Priority: Minor > Attachments: > 0001-Mark-classes-which-might-benefit-from-AutoValue.patch > > > The initial PR for [BEAM-118] added a dependency on AutoValue to > auto-implement equality semantics for a new POJO. We decided to remove the > dependency because the cost of adding the dependency for this feature may not > be worth it for the value. > However, we could use AutoValue for all of our POJO's, it might be worth it. > The proposal here is to follow-up with an investigation on whether we would > gain significant value to porting our code to use AutoValue instead of > hand-written POJO's. -- This message was sent by Atlassian JIRA (v6.3.4#6332)