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