Added @JsonAnyGetter and @JsonAnySetter and backing hashmap to Other
Implemented unit test
Implemented integration test
Initial documentation
Please check if the PR fulfills these requirements
[X] The commit messages are descriptive
[X] Tests for the changes have been added (for bug fixes / features)
[X] Docs have been added / updated (for bug fixes / features)
[ ] An issue has been created for the pull requests. Some issues might require previous discussion.
What kind of change does this PR introduce? (Bug fix, feature, docs update, ...)
This adds unmappedFields map with @JsonAnyGetter / @JsonAnySetter to capture all fields. Extra fields are added to rendering data map at Other::asMap() to allow their usage in roles, which allows more powerful roles because resourceName is not limited to fields in Other.
What is the current behavior? (You can also link to an open issue here)
resourceName in roles limits to fields in Other class (transactionId, idempotence, group, topic, subject, connector).
What is the new behavior (if this is a feature change)?
When rendering a role fields with custom names from yaml becomes available.
Does this PR introduce a breaking change? (What changes might users need to make in their application due to this PR?)
Can't think of anything particularly hazardous. None of the previous tests needed fixing. Spotting typos becomes harder and existing fields in Other become somewhat unnecessary.
Other information:
I know project is in hibernation state, but I made this anyway if community finds this useful. Please let me know what you think about this approach. I wrote initial documentation, I can improve it if you think this can be merged. Name mirrorMaker in tests and in documentation is probably a poor choice; permissions given in those are not particularly good example of mirror maker acls, it was just a first public example of an app that uses several topics and has some naming requirements.
Added @JsonAnyGetter and @JsonAnySetter and backing hashmap to
Other
Implemented unit test
Implemented integration test
Initial documentation
Please check if the PR fulfills these requirements
[X] The commit messages are descriptive
[X] Tests for the changes have been added (for bug fixes / features)
[X] Docs have been added / updated (for bug fixes / features)
[ ] An issue has been created for the pull requests. Some issues might require previous discussion.
What kind of change does this PR introduce? (Bug fix, feature, docs update, ...)
This adds
unmappedFields
map with@JsonAnyGetter
/@JsonAnySetter
to capture all fields. Extra fields are added to rendering data map atOther::asMap()
to allow their usage in roles, which allows more powerful roles becauseresourceName
is not limited to fields inOther
.resourceName
in roles limits to fields in Other class (transactionId, idempotence, group, topic, subject, connector).When rendering a role fields with custom names from yaml becomes available.
Can't think of anything particularly hazardous. None of the previous tests needed fixing. Spotting typos becomes harder and existing fields in
Other
become somewhat unnecessary.I know project is in hibernation state, but I made this anyway if community finds this useful. Please let me know what you think about this approach. I wrote initial documentation, I can improve it if you think this can be merged. Name mirrorMaker in tests and in documentation is probably a poor choice; permissions given in those are not particularly good example of mirror maker acls, it was just a first public example of an app that uses several topics and has some naming requirements.