So, are you guys done with your model work? I can do dig into it now
without worrying that it will change entirely in between work days?
On 7/14/2014 5:19 AM, Stian Thorgersen wrote:
Committed the final changes to UserProvider, including working Mem,
JPA and Mongo implementations.
Also, added the JPA and Mongo Connection Providers. With the connection providers we can
now have a single EntityManager instance shared between ModelProvider (and UserProvider
when ready), UserSessionProvider and Audit.
Had to change the multiple-transaction stuff that was added to master because with the
connection providers the model (and others) do not actually start a transaction
themselves. Transactional providers are now required to enlist a transaction if they want
to, this won't be common to do as they should use the connection providers which will
do it for them.
----- Original Message -----
> From: "Stian Thorgersen" <stian(a)redhat.com>
> To: "Bill Burke" <bburke(a)redhat.com>
> Cc: keycloak-dev(a)lists.jboss.org
> Sent: Monday, 14 July, 2014 9:13:44 AM
> Subject: Re: [keycloak-dev] JPA connections provider and multiple transaction
support
>
> I had this working, including sharing Jpa/Mongo connection providers. Which I
> sent out an email to get feedback for......
>
> ----- Original Message -----
>> From: "Bill Burke" <bburke(a)redhat.com>
>> To: keycloak-dev(a)lists.jboss.org
>> Sent: Saturday, 12 July, 2014 12:42:07 AM
>> Subject: Re: [keycloak-dev] JPA connections provider and multiple
>> transaction support
>>
>> Ok, I committed something.
>>
>> * KeycloakSession keeps track of enlisted provider KeycloakTransactions.
>> * KeycloakSession.getTransaction().commit() and rollback() will iterate
>> these enlisted transactions
>> * getProvider() just returns a provider
>> * model() and sessions() creates a ModelProvider or UserSessionProvider
>> and enlists their transactions.
>> * model() and sessions() throw IllegalStateException if
>> KeycloakSession.transaction hasn't started yet.
>> * KeycloakSession has an enlist() method.
>>
>>
>>
>>
>>
>> On 7/11/2014 6:11 PM, Bill Burke wrote:
>>> 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/...
>>>>>
https://github.com/stianst/keycloak/blob/master/connections/jpa/src/main/...
>>>>>
>>>>> 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/o...
>>>>>
https://github.com/stianst/keycloak/blob/master/model/api/src/main/java/o...
>>>>>
>>>>> 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(a)lists.jboss.org
>>>>>
https://lists.jboss.org/mailman/listinfo/keycloak-dev
>>>>>
>>>>
>>>
>>
>> --
>> Bill Burke
>> JBoss, a division of Red Hat
>>
http://bill.burkecentral.com
>> _______________________________________________
>> keycloak-dev mailing list
>> keycloak-dev(a)lists.jboss.org
>>
https://lists.jboss.org/mailman/listinfo/keycloak-dev
>>
> _______________________________________________
> keycloak-dev mailing list
> keycloak-dev(a)lists.jboss.org
>
https://lists.jboss.org/mailman/listinfo/keycloak-dev
>