[keycloak-dev] new provider deployer working on branch!

Bill Burke bburke at redhat.com
Fri Aug 19 10:13:43 EDT 2016



On 8/19/16 9:04 AM, Stian Thorgersen wrote:
>
>
> On 19 August 2016 at 14:57, Bill Burke <bburke at redhat.com 
> <mailto:bburke at redhat.com>> wrote:
>
>
>
>     On 8/19/16 2:34 AM, Stian Thorgersen wrote:
>>
>>
>>     On 18 August 2016 at 19:26, Bill Burke <bburke at redhat.com
>>     <mailto:bburke at redhat.com>> wrote:
>>
>>
>>
>>         On 8/18/16 1:13 AM, Stian Thorgersen wrote:
>>>         One problem with this approach is that you end up having a
>>>         separate JDBC connection and transaction even if it uses the
>>>         same database the Keycloak server uses.
>>>
>>         Something we have to fix anyways. Its on my todo list.
>>
>>
>>
>>>         Take a look at
>>>         https://github.com/keycloak/keycloak/tree/master/examples/providers/domain-extension/src/main/java/org/keycloak/examples/domainextension/jpa
>>>         <https://github.com/keycloak/keycloak/tree/master/examples/providers/domain-extension/src/main/java/org/keycloak/examples/domainextension/jpa>
>>>         for example which allows adding custom entities to the main
>>>         EntityManager.
>>>
>>         I'm really not a big fan of this extension and this is
>>         something I do not want to support for product ever.
>>
>>
>>     Why, please elaborate? IMO it's a really nice and simple way to
>>     add a few extra entities for custom providers.
>     Are you going to make our JPA entity classes public?  If not,
>     what's the point of this extension? Now that we have real
>     deployers, its now easier to write your own persistence unit. 
>     Take a look at the example:
>
>
> Has nothing to do with our entity classes. It allows users to easily 
> register an extra entity in our persistence unit, so same connection 
> and transaction and no need to create a persistence unit at all. It 
> also has support for Liquibase so schema is update the same way as 
> with our stuff. Users would then get the EntityManager from the 
> JpaConnectionProvider and be able to get their custom entities from there.
>
> It's simpler than what you have. Doesn't work if folks want a 
> different database and such though.
I disagree.  Its not simpler than using standard EJB/JPA.

@PersistenceContext EntityManager em;

is simpler than

EntityManager em = KeycloakSession.getProvider(JpaConnectionProvider.class);

You do have a point about liquibase, but then, we would also have to 
support Liquibase forever too...

This should only be a community feature not a product one.

Bill
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/keycloak-dev/attachments/20160819/ddd2bc91/attachment-0001.html 


More information about the keycloak-dev mailing list