Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
爱吃血肠
spring-framework
提交
814a8074
S
spring-framework
项目概览
爱吃血肠
/
spring-framework
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
S
spring-framework
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
814a8074
编写于
5月 15, 2009
作者:
J
Juergen Hoeller
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
generified JtaTransactionManager code
上级
33de330b
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
26 addition
and
22 deletion
+26
-22
org.springframework.transaction/src/main/java/org/springframework/transaction/jta/JtaAfterCompletionSynchronization.java
...rk/transaction/jta/JtaAfterCompletionSynchronization.java
+8
-6
org.springframework.transaction/src/main/java/org/springframework/transaction/jta/JtaTransactionManager.java
...pringframework/transaction/jta/JtaTransactionManager.java
+13
-14
org.springframework.transaction/src/main/java/org/springframework/transaction/jta/WebSphereUowTransactionManager.java
...ework/transaction/jta/WebSphereUowTransactionManager.java
+5
-2
未找到文件。
org.springframework.transaction/src/main/java/org/springframework/transaction/jta/JtaAfterCompletionSynchronization.java
浏览文件 @
814a8074
/*
* Copyright 2002-200
6
the original author or authors.
* Copyright 2002-200
9
the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
...
...
@@ -17,7 +17,6 @@
package
org.springframework.transaction.jta
;
import
java.util.List
;
import
javax.transaction.Status
;
import
javax.transaction.Synchronization
;
...
...
@@ -25,16 +24,19 @@ import org.springframework.transaction.support.TransactionSynchronization;
import
org.springframework.transaction.support.TransactionSynchronizationUtils
;
/**
* Adapter for a JTA Synchronization, invoking the <code>afterCompletion</code> of
* Spring TransactionSynchronizations after the outer JTA transaction has completed.
* Adapter for a JTA Synchronization, invoking the <code>afterCommit</code> /
* <code>afterCompletion</code> callbacks of Spring {@link TransactionSynchronization}
* objects callbacks after the outer JTA transaction has completed.
* Applied when participating in an existing (non-Spring) JTA transaction.
*
* @author Juergen Hoeller
* @since 2.0
* @see TransactionSynchronization#afterCommit
* @see TransactionSynchronization#afterCompletion
*/
public
class
JtaAfterCompletionSynchronization
implements
Synchronization
{
private
final
List
synchronizations
;
private
final
List
<
TransactionSynchronization
>
synchronizations
;
/**
...
...
@@ -42,7 +44,7 @@ public class JtaAfterCompletionSynchronization implements Synchronization {
* @param synchronizations the List of TransactionSynchronization objects
* @see org.springframework.transaction.support.TransactionSynchronization
*/
public
JtaAfterCompletionSynchronization
(
List
synchronizations
)
{
public
JtaAfterCompletionSynchronization
(
List
<
TransactionSynchronization
>
synchronizations
)
{
this
.
synchronizations
=
synchronizations
;
}
...
...
org.springframework.transaction/src/main/java/org/springframework/transaction/jta/JtaTransactionManager.java
浏览文件 @
814a8074
...
...
@@ -141,7 +141,6 @@ import org.springframework.util.StringUtils;
* @see #setUserTransaction
* @see #setTransactionManagerName
* @see #setTransactionManager
* @see JotmFactoryBean
* @see WebLogicJtaTransactionManager
*/
public
class
JtaTransactionManager
extends
AbstractPlatformTransactionManager
...
...
@@ -256,9 +255,7 @@ public class JtaTransactionManager extends AbstractPlatformTransactionManager
* A default one is used if not set.
*/
public
void
setJndiTemplate
(
JndiTemplate
jndiTemplate
)
{
if
(
jndiTemplate
==
null
)
{
throw
new
IllegalArgumentException
(
"jndiTemplate must not be null"
);
}
Assert
.
notNull
(
jndiTemplate
,
"JndiTemplate must not be null"
);
this
.
jndiTemplate
=
jndiTemplate
;
}
...
...
@@ -560,7 +557,7 @@ public class JtaTransactionManager extends AbstractPlatformTransactionManager
if
(
logger
.
isDebugEnabled
())
{
logger
.
debug
(
"Retrieving JTA UserTransaction from JNDI location ["
+
userTransactionName
+
"]"
);
}
return
(
UserTransaction
)
getJndiTemplate
().
lookup
(
userTransactionName
,
UserTransaction
.
class
);
return
getJndiTemplate
().
lookup
(
userTransactionName
,
UserTransaction
.
class
);
}
catch
(
NamingException
ex
)
{
throw
new
TransactionSystemException
(
...
...
@@ -584,7 +581,7 @@ public class JtaTransactionManager extends AbstractPlatformTransactionManager
if
(
logger
.
isDebugEnabled
())
{
logger
.
debug
(
"Retrieving JTA TransactionManager from JNDI location ["
+
transactionManagerName
+
"]"
);
}
return
(
TransactionManager
)
getJndiTemplate
().
lookup
(
transactionManagerName
,
TransactionManager
.
class
);
return
getJndiTemplate
().
lookup
(
transactionManagerName
,
TransactionManager
.
class
);
}
catch
(
NamingException
ex
)
{
throw
new
TransactionSystemException
(
...
...
@@ -608,7 +605,7 @@ public class JtaTransactionManager extends AbstractPlatformTransactionManager
if
(
logger
.
isDebugEnabled
())
{
logger
.
debug
(
"Retrieving JTA TransactionSynchronizationRegistry from JNDI location ["
+
registryName
+
"]"
);
}
Class
registryClass
=
ClassUtils
.
forName
(
TRANSACTION_SYNCHRONIZATION_REGISTRY_CLASS_NAME
,
Class
<?>
registryClass
=
ClassUtils
.
forName
(
TRANSACTION_SYNCHRONIZATION_REGISTRY_CLASS_NAME
,
JtaTransactionManager
.
class
.
getClassLoader
());
return
getJndiTemplate
().
lookup
(
registryName
,
registryClass
);
}
...
...
@@ -669,7 +666,7 @@ public class JtaTransactionManager extends AbstractPlatformTransactionManager
protected
UserTransaction
findUserTransaction
()
{
String
jndiName
=
DEFAULT_USER_TRANSACTION_NAME
;
try
{
UserTransaction
ut
=
(
UserTransaction
)
getJndiTemplate
().
lookup
(
jndiName
,
UserTransaction
.
class
);
UserTransaction
ut
=
getJndiTemplate
().
lookup
(
jndiName
,
UserTransaction
.
class
);
if
(
logger
.
isDebugEnabled
())
{
logger
.
debug
(
"JTA UserTransaction found at default JNDI location ["
+
jndiName
+
"]"
);
}
...
...
@@ -701,10 +698,9 @@ public class JtaTransactionManager extends AbstractPlatformTransactionManager
}
// Check fallback JNDI locations.
for
(
int
i
=
0
;
i
<
FALLBACK_TRANSACTION_MANAGER_NAMES
.
length
;
i
++)
{
String
jndiName
=
FALLBACK_TRANSACTION_MANAGER_NAMES
[
i
];
for
(
String
jndiName
:
FALLBACK_TRANSACTION_MANAGER_NAMES
)
{
try
{
TransactionManager
tm
=
(
TransactionManager
)
getJndiTemplate
().
lookup
(
jndiName
,
TransactionManager
.
class
);
TransactionManager
tm
=
getJndiTemplate
().
lookup
(
jndiName
,
TransactionManager
.
class
);
if
(
logger
.
isDebugEnabled
())
{
logger
.
debug
(
"JTA TransactionManager found at fallback JNDI location ["
+
jndiName
+
"]"
);
}
...
...
@@ -736,7 +732,7 @@ public class JtaTransactionManager extends AbstractPlatformTransactionManager
throws
TransactionSystemException
{
try
{
Class
registryClass
=
ClassUtils
.
forName
(
TRANSACTION_SYNCHRONIZATION_REGISTRY_CLASS_NAME
,
Class
<?>
registryClass
=
ClassUtils
.
forName
(
TRANSACTION_SYNCHRONIZATION_REGISTRY_CLASS_NAME
,
JtaTransactionManager
.
class
.
getClassLoader
());
// If we came here, we might be on Java EE 5, since the JTA 1.1 API is present.
...
...
@@ -1100,7 +1096,9 @@ public class JtaTransactionManager extends AbstractPlatformTransactionManager
@Override
protected
void
registerAfterCompletionWithExistingTransaction
(
Object
transaction
,
List
synchronizations
)
{
protected
void
registerAfterCompletionWithExistingTransaction
(
Object
transaction
,
List
<
TransactionSynchronization
>
synchronizations
)
{
JtaTransactionObject
txObject
=
(
JtaTransactionObject
)
transaction
;
logger
.
debug
(
"Registering after-completion synchronization with existing JTA transaction"
);
try
{
...
...
@@ -1141,7 +1139,8 @@ public class JtaTransactionManager extends AbstractPlatformTransactionManager
* @see javax.transaction.Transaction#registerSynchronization
* @see javax.transaction.TransactionSynchronizationRegistry#registerInterposedSynchronization
*/
protected
void
doRegisterAfterCompletionWithJtaTransaction
(
JtaTransactionObject
txObject
,
List
synchronizations
)
protected
void
doRegisterAfterCompletionWithJtaTransaction
(
JtaTransactionObject
txObject
,
List
<
TransactionSynchronization
>
synchronizations
)
throws
RollbackException
,
SystemException
{
int
jtaStatus
=
txObject
.
getUserTransaction
().
getStatus
();
...
...
org.springframework.transaction/src/main/java/org/springframework/transaction/jta/WebSphereUowTransactionManager.java
浏览文件 @
814a8074
...
...
@@ -35,6 +35,7 @@ import org.springframework.transaction.support.CallbackPreferringPlatformTransac
import
org.springframework.transaction.support.DefaultTransactionDefinition
;
import
org.springframework.transaction.support.DefaultTransactionStatus
;
import
org.springframework.transaction.support.TransactionCallback
;
import
org.springframework.transaction.support.TransactionSynchronization
;
import
org.springframework.transaction.support.TransactionSynchronizationManager
;
import
org.springframework.util.ReflectionUtils
;
...
...
@@ -170,7 +171,9 @@ public class WebSphereUowTransactionManager extends JtaTransactionManager
* Registers the synchronizations as interposed JTA Synchronization on the UOWManager.
*/
@Override
protected
void
doRegisterAfterCompletionWithJtaTransaction
(
JtaTransactionObject
txObject
,
List
synchronizations
)
{
protected
void
doRegisterAfterCompletionWithJtaTransaction
(
JtaTransactionObject
txObject
,
List
<
TransactionSynchronization
>
synchronizations
)
{
this
.
uowManager
.
registerInterposedSynchronization
(
new
JtaAfterCompletionSynchronization
(
synchronizations
));
}
...
...
@@ -328,7 +331,7 @@ public class WebSphereUowTransactionManager extends JtaTransactionManager
}
triggerBeforeCompletion
(
status
);
if
(
status
.
isNewSynchronization
())
{
List
synchronizations
=
TransactionSynchronizationManager
.
getSynchronizations
();
List
<
TransactionSynchronization
>
synchronizations
=
TransactionSynchronizationManager
.
getSynchronizations
();
TransactionSynchronizationManager
.
clear
();
uowManager
.
registerInterposedSynchronization
(
new
JtaAfterCompletionSynchronization
(
synchronizations
));
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录