add Gradle, CLI options to load exhaustively #3254
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR adds a flag to the CLI and setting to the Gradle plugin to enable the
loadExhaustively
option.It's currently not possible to correctly implement certain custom schema handlers without this option. In our case, we are using the Google API HTTP options, which introduce options that can refer to fields by nested path (e.g.
field1.nestedField.anotherField
). By default, Wire may not link fields referenced by such options.An ideal solution might be some kind of API to tell Wire about additional types/fields/etc that need to be linked, but I don't know how possible that is. In the meantime, exposing this option unblocks implementing schema handlers that use options in this way.
Another use-case can be seen in #2748.