[keycloak-dev] JPA connections provider and multiple transaction support

Bill Burke bburke at redhat.com
Fri Jul 11 18:11:53 EDT 2014


Actually I think there is a better way.

public interface TransactionManaged {

    KeycloakTransaction getTransaction();
}

public interface KeycloakSession implements TransactionManaged {}
public interface UserProvider implements TransactionManaged{}

etc.


KeycloakSession.getProvider() will check to see if the provider is 
transaction managed.  If KeycloakSession has an active transaction, then 
a transaction will be created for that provider and registered with an 
internal TM.




On 7/11/2014 3:52 PM, Bill Burke wrote:
> Please get this in.  I can't finish with UserProvider split until you do.
>
> On 7/11/2014 8:29 AM, Stian Thorgersen wrote:
>> To prevent creating multiple EntityManager's for a single request I've added a JPAConnectionProvider that is used to share an EntityManager instance between multiple providers.
>>
>>     https://github.com/stianst/keycloak/blob/master/connections/jpa/src/main/java/org/keycloak/connections/jpa/DefaultJpaConnectionProviderFactory.java
>>     https://github.com/stianst/keycloak/blob/master/connections/jpa/src/main/java/org/keycloak/connections/jpa/DefaultJpaConnectionProvider.java
>>
>> In the future we could consider adding support for multiple persistence-units, but for now I think we should have a limitation that all JPA providers use the same database/persistence-unit.
>>
>> I've also added some very basic support to KeycloakSession so providers can enlist their transactions with the session:
>>
>>     https://github.com/stianst/keycloak/blob/master/model/api/src/main/java/org/keycloak/models/KeycloakSession.java
>>     https://github.com/stianst/keycloak/blob/master/model/api/src/main/java/org/keycloak/models/KeycloakTransactionManager.java
>>
>> The idea being that a provider when used can enlist its transaction with the session.
>>
>> I've not committed any of this to master as I wanted to have everyone's opinion on it first.
>> _______________________________________________
>> keycloak-dev mailing list
>> keycloak-dev at lists.jboss.org
>> https://lists.jboss.org/mailman/listinfo/keycloak-dev
>>
>

-- 
Bill Burke
JBoss, a division of Red Hat
http://bill.burkecentral.com


More information about the keycloak-dev mailing list