You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cayenne.apache.org by "Andrus Adamchik (Jira)" <ji...@apache.org> on 2022/11/13 11:18:00 UTC

[jira] [Commented] (CAY-2772) Bootique-style module "extenders" for smoother configuration

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