[keycloak-dev] Use default methods in Provider and ProviderFactory
Marek Posolda
mposolda at redhat.com
Fri Mar 10 03:20:42 EST 2017
+1
On a slightly related note, I wonder if we can also improve our
ProviderEvents? Registering listener for the event, which usually looks
like:
@Override
public void postInit(KeycloakSessionFactory factory) {
factory.register(new ProviderEventListener() {
@Override
public void onEvent(ProviderEvent event) {
if (event instanceof RealmModel.ClientCreationEvent) {
RealmModel.ClientCreationEvent typedEvent =
(RealmModel.ClientCreationEvent) event;
doSomething(typedEvent);
}
}
});
}
can be simplified and prettyfied to something like:
@ProviderEventListener
public void doSomething(RealmModel.ClientCreationEvent typedEvent,
KeycloakSessionFactory factory) {
}
I think the impl will be pretty easy. At startup, framework will just
lookup for @ProviderEventListener annotated methods of registered
KeycloakSessionFactory implementations. It can also detect the event
type according to first argument of method and automatically register
the listener for it.
This will allow us to remove method "postInit" altogether as it's mostly
used just for registering event listeners though.
Marek
On 09/03/17 12:28, Stian Thorgersen wrote:
> The life-cycle methods on providers and provider factories (init, postInit,
> close) are frequently not used, but providers have to add empty methods. To
> reduce the amount of boilerplate in a provider I propose changing the
> following to have empty default methods:
>
> ProviderFactory:
> * init
> * postInit
> * close
>
> Provider:
> * close
> _______________________________________________
> keycloak-dev mailing list
> keycloak-dev at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/keycloak-dev
More information about the keycloak-dev
mailing list