Andrus Adamchik created CAY-2772:
------------------------------------
Summary: 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
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)