keycloak
公開メンバ関数 | 限定公開メンバ関数 | 限定公開変数類 | 非公開変数類 | 静的非公開変数類 | 全メンバ一覧
org.keycloak.services.DefaultKeycloakTransactionManager クラス
org.keycloak.services.DefaultKeycloakTransactionManager の継承関係図
Inheritance graph
org.keycloak.services.DefaultKeycloakTransactionManager 連携図
Collaboration graph

公開メンバ関数

 DefaultKeycloakTransactionManager (KeycloakSession session)
 
void enlist (KeycloakTransaction transaction)
 
void enlistAfterCompletion (KeycloakTransaction transaction)
 
void enlistPrepare (KeycloakTransaction transaction)
 
JTAPolicy getJTAPolicy ()
 
void setJTAPolicy (JTAPolicy policy)
 
void begin ()
 
void commit ()
 
void rollback ()
 
void setRollbackOnly ()
 
boolean getRollbackOnly ()
 
boolean isActive ()
 
void setJTAPolicy (JTAPolicy policy)
 

限定公開メンバ関数

void rollback (RuntimeException exception)
 

限定公開変数類

boolean completed
 

非公開変数類

List< KeycloakTransactionprepare = new LinkedList<KeycloakTransaction>()
 
List< KeycloakTransactiontransactions = new LinkedList<KeycloakTransaction>()
 
List< KeycloakTransactionafterCompletion = new LinkedList<KeycloakTransaction>()
 
boolean active
 
boolean rollback
 
KeycloakSession session
 
JTAPolicy jtaPolicy = JTAPolicy.REQUIRES_NEW
 

静的非公開変数類

static final Logger logger = Logger.getLogger(DefaultKeycloakTransactionManager.class)
 

詳解

著者
Stian Thorgersen

構築子と解体子

◆ DefaultKeycloakTransactionManager()

org.keycloak.services.DefaultKeycloakTransactionManager.DefaultKeycloakTransactionManager ( KeycloakSession  session)
inline
47  {
48  this.session = session;
49  }
KeycloakSession session
Definition: DefaultKeycloakTransactionManager.java:42

関数詳解

◆ begin()

void org.keycloak.services.DefaultKeycloakTransactionManager.begin ( )
inline

org.keycloak.models.KeycloakTransactionを実装しています。

90  {
91  if (active) {
92  throw new IllegalStateException("Transaction already active");
93  }
94 
95  completed = false;
96 
97  if (jtaPolicy == JTAPolicy.REQUIRES_NEW) {
98  JtaTransactionManagerLookup jtaLookup = session.getProvider(JtaTransactionManagerLookup.class);
99  if (jtaLookup != null) {
100  TransactionManager tm = jtaLookup.getTransactionManager();
101  if (tm != null) {
102  enlist(new JtaTransactionWrapper(session.getKeycloakSessionFactory(), tm));
103  }
104  }
105  }
106 
107  for (KeycloakTransaction tx : transactions) {
108  tx.begin();
109  }
110 
111  active = true;
112  }
void enlist(KeycloakTransaction transaction)
Definition: DefaultKeycloakTransactionManager.java:52
KeycloakSessionFactory getKeycloakSessionFactory()
JTAPolicy jtaPolicy
Definition: DefaultKeycloakTransactionManager.java:43
List< KeycloakTransaction > transactions
Definition: DefaultKeycloakTransactionManager.java:38
< T extends Provider > T getProvider(Class< T > clazz)
boolean completed
Definition: DefaultKeycloakTransactionManager.java:45
REQUIRES_NEW
Definition: KeycloakTransactionManager.java:36
boolean active
Definition: DefaultKeycloakTransactionManager.java:40
KeycloakSession session
Definition: DefaultKeycloakTransactionManager.java:42

◆ commit()

void org.keycloak.services.DefaultKeycloakTransactionManager.commit ( )
inline

org.keycloak.models.KeycloakTransactionを実装しています。

115  {
116  if (completed) {
117  return;
118  } else {
119  completed = true;
120  }
121 
122  RuntimeException exception = null;
123  for (KeycloakTransaction tx : prepare) {
124  try {
125  tx.commit();
126  } catch (RuntimeException e) {
127  exception = exception == null ? e : exception;
128  }
129  }
130  if (exception != null) {
131  rollback(exception);
132  return;
133  }
134  for (KeycloakTransaction tx : transactions) {
135  try {
136  tx.commit();
137  } catch (RuntimeException e) {
138  exception = exception == null ? e : exception;
139  }
140  }
141 
142  // Don't commit "afterCompletion" if commit of some main transaction failed
143  if (exception == null) {
144  for (KeycloakTransaction tx : afterCompletion) {
145  try {
146  tx.commit();
147  } catch (RuntimeException e) {
148  exception = exception == null ? e : exception;
149  }
150  }
151  } else {
152  for (KeycloakTransaction tx : afterCompletion) {
153  try {
154  tx.rollback();
155  } catch (RuntimeException e) {
156  ServicesLogger.LOGGER.exceptionDuringRollback(e);
157  }
158  }
159  }
160 
161  active = false;
162  if (exception != null) {
163  throw exception;
164  }
165  }
List< KeycloakTransaction > afterCompletion
Definition: DefaultKeycloakTransactionManager.java:39
List< KeycloakTransaction > prepare
Definition: DefaultKeycloakTransactionManager.java:37
List< KeycloakTransaction > transactions
Definition: DefaultKeycloakTransactionManager.java:38
boolean completed
Definition: DefaultKeycloakTransactionManager.java:45
void rollback()
Definition: DefaultKeycloakTransactionManager.java:168
boolean active
Definition: DefaultKeycloakTransactionManager.java:40

◆ enlist()

void org.keycloak.services.DefaultKeycloakTransactionManager.enlist ( KeycloakTransaction  transaction)
inline

org.keycloak.models.KeycloakTransactionManagerを実装しています。

52  {
53  if (active && !transaction.isActive()) {
54  transaction.begin();
55  }
56 
57  transactions.add(transaction);
58  }
List< KeycloakTransaction > transactions
Definition: DefaultKeycloakTransactionManager.java:38
boolean active
Definition: DefaultKeycloakTransactionManager.java:40

◆ enlistAfterCompletion()

void org.keycloak.services.DefaultKeycloakTransactionManager.enlistAfterCompletion ( KeycloakTransaction  transaction)
inline

org.keycloak.models.KeycloakTransactionManagerを実装しています。

61  {
62  if (active && !transaction.isActive()) {
63  transaction.begin();
64  }
65 
66  afterCompletion.add(transaction);
67  }
List< KeycloakTransaction > afterCompletion
Definition: DefaultKeycloakTransactionManager.java:39
boolean active
Definition: DefaultKeycloakTransactionManager.java:40

◆ enlistPrepare()

void org.keycloak.services.DefaultKeycloakTransactionManager.enlistPrepare ( KeycloakTransaction  transaction)
inline

org.keycloak.models.KeycloakTransactionManagerを実装しています。

70  {
71  if (active && !transaction.isActive()) {
72  transaction.begin();
73  }
74 
75  prepare.add(transaction);
76  }
List< KeycloakTransaction > prepare
Definition: DefaultKeycloakTransactionManager.java:37
boolean active
Definition: DefaultKeycloakTransactionManager.java:40

◆ getJTAPolicy()

JTAPolicy org.keycloak.services.DefaultKeycloakTransactionManager.getJTAPolicy ( )
inline

org.keycloak.models.KeycloakTransactionManagerを実装しています。

79  {
80  return jtaPolicy;
81  }
JTAPolicy jtaPolicy
Definition: DefaultKeycloakTransactionManager.java:43

◆ getRollbackOnly()

boolean org.keycloak.services.DefaultKeycloakTransactionManager.getRollbackOnly ( )
inline

org.keycloak.models.KeycloakTransactionを実装しています。

206  {
207  if (rollback) {
208  return true;
209  }
210 
211  for (KeycloakTransaction tx : transactions) {
212  if (tx.getRollbackOnly()) {
213  return true;
214  }
215  }
216 
217  return false;
218  }
List< KeycloakTransaction > transactions
Definition: DefaultKeycloakTransactionManager.java:38
void rollback()
Definition: DefaultKeycloakTransactionManager.java:168

◆ isActive()

boolean org.keycloak.services.DefaultKeycloakTransactionManager.isActive ( )
inline

org.keycloak.models.KeycloakTransactionを実装しています。

221  {
222  return active;
223  }
boolean active
Definition: DefaultKeycloakTransactionManager.java:40

◆ rollback() [1/2]

void org.keycloak.services.DefaultKeycloakTransactionManager.rollback ( )
inline

org.keycloak.models.KeycloakTransactionを実装しています。

168  {
169  if (completed) {
170  return;
171  } else {
172  completed = true;
173  }
174 
175  RuntimeException exception = null;
176  rollback(exception);
177  }
boolean completed
Definition: DefaultKeycloakTransactionManager.java:45
void rollback()
Definition: DefaultKeycloakTransactionManager.java:168

◆ rollback() [2/2]

void org.keycloak.services.DefaultKeycloakTransactionManager.rollback ( RuntimeException  exception)
inlineprotected
179  {
180  for (KeycloakTransaction tx : transactions) {
181  try {
182  tx.rollback();
183  } catch (RuntimeException e) {
184  exception = exception != null ? e : exception;
185  }
186  }
187  for (KeycloakTransaction tx : afterCompletion) {
188  try {
189  tx.rollback();
190  } catch (RuntimeException e) {
191  exception = exception != null ? e : exception;
192  }
193  }
194  active = false;
195  if (exception != null) {
196  throw exception;
197  }
198  }
List< KeycloakTransaction > afterCompletion
Definition: DefaultKeycloakTransactionManager.java:39
List< KeycloakTransaction > transactions
Definition: DefaultKeycloakTransactionManager.java:38
boolean active
Definition: DefaultKeycloakTransactionManager.java:40

◆ setJTAPolicy() [1/2]

void org.keycloak.models.KeycloakTransactionManager.setJTAPolicy ( JTAPolicy  policy)
inherited

◆ setJTAPolicy() [2/2]

void org.keycloak.services.DefaultKeycloakTransactionManager.setJTAPolicy ( JTAPolicy  policy)
inline
84  {
85  jtaPolicy = policy;
86 
87  }
JTAPolicy jtaPolicy
Definition: DefaultKeycloakTransactionManager.java:43

◆ setRollbackOnly()

void org.keycloak.services.DefaultKeycloakTransactionManager.setRollbackOnly ( )
inline

org.keycloak.models.KeycloakTransactionを実装しています。

201  {
202  rollback = true;
203  }
void rollback()
Definition: DefaultKeycloakTransactionManager.java:168

メンバ詳解

◆ active

boolean org.keycloak.services.DefaultKeycloakTransactionManager.active
private

◆ afterCompletion

List<KeycloakTransaction> org.keycloak.services.DefaultKeycloakTransactionManager.afterCompletion = new LinkedList<KeycloakTransaction>()
private

◆ completed

boolean org.keycloak.services.DefaultKeycloakTransactionManager.completed
protected

◆ jtaPolicy

JTAPolicy org.keycloak.services.DefaultKeycloakTransactionManager.jtaPolicy = JTAPolicy.REQUIRES_NEW
private

◆ logger

final Logger org.keycloak.services.DefaultKeycloakTransactionManager.logger = Logger.getLogger(DefaultKeycloakTransactionManager.class)
staticprivate

◆ prepare

List<KeycloakTransaction> org.keycloak.services.DefaultKeycloakTransactionManager.prepare = new LinkedList<KeycloakTransaction>()
private

◆ rollback

boolean org.keycloak.services.DefaultKeycloakTransactionManager.rollback
private

◆ session

KeycloakSession org.keycloak.services.DefaultKeycloakTransactionManager.session
private

◆ transactions

List<KeycloakTransaction> org.keycloak.services.DefaultKeycloakTransactionManager.transactions = new LinkedList<KeycloakTransaction>()
private

このクラス詳解は次のファイルから抽出されました: