[ https://issues.apache.org/jira/browse/CAY-2772?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17633269#comment-17633269 ]
Andrus Adamchik commented on CAY-2772: -------------------------------------- See https://github.com/apache/cayenne/pull/536 for the (partial) implementation. > Bootique-style module "extenders" for smoother configuration > ------------------------------------------------------------ > > Key: CAY-2772 > URL: https://issues.apache.org/jira/browse/CAY-2772 > Project: Cayenne > Issue Type: Task > Reporter: Andrus Adamchik > Assignee: Andrus Adamchik > Priority: Major > Fix For: 5.0.M1 > > Time Spent: 10m > Remaining Estimate: 0h > > I would like to make our runtime extensions API more user-friendly. > 1. Our current module "contribute" API in ServerModule was intended to expose > DI collections to the users for extension. But is still too "technical". > 2. Other modules (such as crypto and commitlog) already have extenders > similar to Bootique extenders, but they produce Module instances (while > Bootique extenders have a binder internally, and not building own Module). > The Bootique approach seems less confusing, as service assembly still happens > in the main module, and the extender simply provides building blocks for it. > I would like to unify that into something like this, which seems to be the > most flexible format from Bootique experience: > {noformat} > ServerRuntime > .builder() > .addQueryFilter(MyFilter.class) // cover method for "addModule" with > extender > .addModule(b -> ServerModule.extend(b).addQueryFilter(MyFilter.class)) > .addModule(b -> CommitLogModule.extend(b).addListener(MyListener.class)) > .build(); > {noformat} > I am working on a PR now. > -- This message was sent by Atlassian Jira (v8.20.10#820010)