[
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)