Just posted Agrest 3.2 release. It is available standalone and as a part of "bootique-agrest" (Bootique 1.1 dev branch). Its focus is two-fold:
1. Fixing a few serious bugs, both old (#406) and new (#412).
2. Cleaning up and partially redesigning "protocol objects" injection. Include, Exclude, etc. were previously injectable as @QueryParam. Now Agrest would expect Strings instead of those objects, allowing us to separate protocol complexities from Java object structures.
UPGRADE-NOTES [1] discusses upgrade implications. Hopefully only a small subset of users is affected.
Full release notes:
* #262 Switch to bootique-test
* #405 Upgrade to Cayenne 4.0.1
* #406 Overlapping relationship / attribute includes are order dependent
* #407 Stop using Include / Exclude as dummy containers of other Includes / Excludes
* #408 Change parameter injection to Strings / Integers
* #409 Stop using Sort as a dummy container of other Sorts
* #410 "mapBy" doesn't work with relationship path
* #412 "include" with exposed root id: ExpressionException: Can't resolve path component
[1]
https://github.com/agrestio/agrest/blob/master/UPGRADE-NOTES.md
Enjoy!
Andrus