upgrade picketlink
This commit is contained in:
parent
c9ec2bb2c5
commit
5c9a3a730c
1 changed files with 33 additions and 0 deletions
|
@ -2,9 +2,12 @@ package org.keycloak.services.resources;
|
||||||
|
|
||||||
import org.jboss.resteasy.spi.ResteasyProviderFactory;
|
import org.jboss.resteasy.spi.ResteasyProviderFactory;
|
||||||
import org.keycloak.services.models.KeycloakSession;
|
import org.keycloak.services.models.KeycloakSession;
|
||||||
|
import org.keycloak.services.models.KeycloakSessionFactory;
|
||||||
import org.keycloak.services.models.KeycloakTransaction;
|
import org.keycloak.services.models.KeycloakTransaction;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
* Meant to be used as an inner class wrapper (I forget the pattern name, its been awhile).
|
||||||
|
*
|
||||||
* @author <a href="mailto:bill@burkecentral.com">Bill Burke</a>
|
* @author <a href="mailto:bill@burkecentral.com">Bill Burke</a>
|
||||||
* @version $Revision: 1 $
|
* @version $Revision: 1 $
|
||||||
*/
|
*/
|
||||||
|
@ -13,10 +16,21 @@ public class Transaction {
|
||||||
protected KeycloakTransaction transaction;
|
protected KeycloakTransaction transaction;
|
||||||
protected boolean closeSession;
|
protected boolean closeSession;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Pull KeycloakSession from @Context
|
||||||
|
*
|
||||||
|
* Will close session after finished
|
||||||
|
*
|
||||||
|
*/
|
||||||
public Transaction() {
|
public Transaction() {
|
||||||
this(true);
|
this(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Pull KeycloakSession from @Context
|
||||||
|
*
|
||||||
|
* @param close whether to close the session or not after completion
|
||||||
|
*/
|
||||||
public Transaction(boolean close) {
|
public Transaction(boolean close) {
|
||||||
this.session = ResteasyProviderFactory.getContextData(KeycloakSession.class);
|
this.session = ResteasyProviderFactory.getContextData(KeycloakSession.class);
|
||||||
transaction = session.getTransaction();
|
transaction = session.getTransaction();
|
||||||
|
@ -24,10 +38,25 @@ public class Transaction {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Creates and manages its own session.
|
||||||
|
*
|
||||||
|
* @param factory
|
||||||
|
*/
|
||||||
|
public Transaction(KeycloakSessionFactory factory) {
|
||||||
|
this.closeSession = true;
|
||||||
|
this.session = factory.createSession();
|
||||||
|
this.transaction = session.getTransaction();
|
||||||
|
}
|
||||||
|
|
||||||
protected void runImpl() {
|
protected void runImpl() {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Will not begin or end a transaction or close a session if the transaction was already active when called
|
||||||
|
*
|
||||||
|
*/
|
||||||
public void run() {
|
public void run() {
|
||||||
boolean wasActive = transaction.isActive();
|
boolean wasActive = transaction.isActive();
|
||||||
if (!wasActive) transaction.begin();
|
if (!wasActive) transaction.begin();
|
||||||
|
@ -46,6 +75,10 @@ public class Transaction {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Will not begin or end a transaction or close a session if the transaction was already active when called
|
||||||
|
*
|
||||||
|
*/
|
||||||
public <T> T call() {
|
public <T> T call() {
|
||||||
boolean wasActive = transaction.isActive();
|
boolean wasActive = transaction.isActive();
|
||||||
if (!wasActive) transaction.begin();
|
if (!wasActive) transaction.begin();
|
||||||
|
|
Loading…
Reference in a new issue