[keycloak-dev] Example Setup to simplify the development of Keycloak Extensions

Sebastien Blanc sblanc at redhat.com
Tue Feb 12 06:57:32 EST 2019


I just tried it out and I must admit it's pretty nice to have a such fast
feedback loop while changing the code of the extension. To bootstrap the
development of a new extension I think this is something we must explore as
it increases the developer experience a lot.


On Tue, Feb 12, 2019 at 12:35 PM Thomas Darimont <
thomas.darimont at googlemail.com> wrote:

> HI Stian,
>
> Thanks for the feedback. In my experience using Arquillian is rather slow -
> at least I haven't seen an example setup that doesn't need 30+ seconds
> round-trip time per change (without hot-code replacement). Do you have a
> fast example at hand (< 10sec round-trip time)?
>
> The aforementioned approach is easy to use and makes a cold-start
> round-trip much faster (~5 sec my machine).
> Also one can concentrate on the actual extension development first, instead
> of figuring out the proper packaging of their extension right from the
> beginning, which is IMHO not a nice getting started experience.
>
> Cheers,
> Thomas
>
> Am Di., 12. Feb. 2019 um 12:21 Uhr schrieb Stian Thorgersen <
> sthorger at redhat.com>:
>
> > I'd say it would be better to target the real distribution rather than
> the
> > KeycloakServer. It should be reasonably easy to setup Arquillian to use
> the
> > Keycloak distribution from Maven Central and allow it to hot-deploy
> > extensions for testing purposes.
> >
> > On Tue, 12 Feb 2019 at 09:42, Thomas Darimont <
> > thomas.darimont at googlemail.com> wrote:
> >
> >> Hello Keycloak-Team,
> >>
> >> I found a neat setup to simplify the development of Keycloak extensions.
> >> I setup a "keycloak-extension-playground" project that contains two or
> >> more
> >> maven modules:
> >> - keycloak-playground-server
> >> - simple-auth-extension (example)
> >>
> >> In the "keycloak-playground-server" module, I wrap a KeycloakServer from
> >> the "keycloak-testsuite-utils" library where one could potentially add
> >> additional configuration. Note that this library must be in (local)
> Maven
> >> Repository.
> >>
> >> The "simple-auth-extension" is an example extension module that
> >> demonstrates the usage of the Authenticator SPI.
> >>
> >> I now declare "simple-auth-extension" as a compile time dependency of
> the
> >> "keycloak-playground-server" project. This ensures that it's classes and
> >> resources are on the classpath of KeycloakServer. Therefore all SPI
> >> implementations in custom extensions can be found. This improves the
> >> debugging experience and speeds up development time.
> >>
> >> The example project can be found here:
> >> https://github.com/thomasdarimont/keycloak-extension-playground
> >>
> >> What do you guys think about this approach?
> >>
> >> Cheers,
> >> Thomas
> >> _______________________________________________
> >> keycloak-dev mailing list
> >> keycloak-dev at lists.jboss.org
> >> https://lists.jboss.org/mailman/listinfo/keycloak-dev
> >>
> >
> _______________________________________________
> 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