[ 
https://issues.apache.org/jira/browse/CAY-2772?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Andrus Adamchik updated CAY-2772:
---------------------------------
    Fix Version/s: 4.3.M1

> 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: 4.3.M1
>
>
> 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()
>    .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)

Reply via email to