提交 e4d83bbe 编写于 作者: J Juergen Hoeller

Refined javadoc for WebLogic/WebSphere transaction setup

Issue: SPR-10777
(cherry picked from commit 9035a97e)
上级 f88f5ed0
/*
* Copyright 2002-2012 the original author or authors.
* Copyright 2002-2013 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.
......@@ -56,6 +56,11 @@ import org.springframework.transaction.TransactionSystemException;
* "transactionManager"/"transactionManagerName", passing in existing handles
* or specifying corresponding JNDI locations to look up.
*
* <p><b>NOTE: This JtaTransactionManager is intended to refine specific transaction
* demarcation behavior on Spring's side. It will happily co-exist with independently
* configured WebLogic transaction strategies in your persistence provider, with no
* need to specifically connect those setups in any way.</b>
*
* @author Juergen Hoeller
* @since 1.1
* @see org.springframework.transaction.TransactionDefinition#getName
......@@ -136,11 +141,10 @@ public class WebLogicJtaTransactionManager extends JtaTransactionManager {
}
}
private void loadWebLogicTransactionHelper() throws TransactionSystemException {
if (this.transactionHelper == null) {
try {
Class transactionHelperClass = getClass().getClassLoader().loadClass(TRANSACTION_HELPER_CLASS_NAME);
Class<?> transactionHelperClass = getClass().getClassLoader().loadClass(TRANSACTION_HELPER_CLASS_NAME);
Method getTransactionHelperMethod = transactionHelperClass.getMethod("getTransactionHelper");
this.transactionHelper = getTransactionHelperMethod.invoke(null);
logger.debug("WebLogic TransactionHelper found");
......@@ -159,7 +163,7 @@ public class WebLogicJtaTransactionManager extends JtaTransactionManager {
private void loadWebLogicTransactionClasses() throws TransactionSystemException {
try {
Class userTransactionClass = getClass().getClassLoader().loadClass(USER_TRANSACTION_CLASS_NAME);
Class<?> userTransactionClass = getClass().getClassLoader().loadClass(USER_TRANSACTION_CLASS_NAME);
this.weblogicUserTransactionAvailable = userTransactionClass.isInstance(getUserTransaction());
if (this.weblogicUserTransactionAvailable) {
this.beginWithNameMethod = userTransactionClass.getMethod("begin", String.class);
......@@ -171,13 +175,13 @@ public class WebLogicJtaTransactionManager extends JtaTransactionManager {
}
// Obtain WebLogic ClientTransactionManager interface.
Class transactionManagerClass =
Class<?> transactionManagerClass =
getClass().getClassLoader().loadClass(CLIENT_TRANSACTION_MANAGER_CLASS_NAME);
logger.debug("WebLogic ClientTransactionManager found");
this.weblogicTransactionManagerAvailable = transactionManagerClass.isInstance(getTransactionManager());
if (this.weblogicTransactionManagerAvailable) {
Class transactionClass = getClass().getClassLoader().loadClass(TRANSACTION_CLASS_NAME);
Class<?> transactionClass = getClass().getClassLoader().loadClass(TRANSACTION_CLASS_NAME);
this.forceResumeMethod = transactionManagerClass.getMethod("forceResume", Transaction.class);
this.setPropertyMethod = transactionClass.getMethod("setProperty", String.class, Serializable.class);
logger.debug("Support for WebLogic forceResume available");
......@@ -296,7 +300,6 @@ public class WebLogicJtaTransactionManager extends JtaTransactionManager {
}
}
@Override
public Transaction createTransaction(String name, int timeout) throws NotSupportedException, SystemException {
if (this.weblogicUserTransactionAvailable && name != null) {
......
/*
* Copyright 2002-2012 the original author or authors.
* Copyright 2002-2013 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.
......@@ -71,6 +71,11 @@ import org.springframework.util.ReflectionUtils;
* simply specify the actual location through this transaction manager's
* "uowManagerName" bean property.
*
* <p><b>NOTE: This JtaTransactionManager is intended to refine specific transaction
* demarcation behavior on Spring's side. It will happily co-exist with independently
* configured WebSphere transaction strategies in your persistence provider, with no
* need to specifically connect those setups in any way.</b>
*
* @author Juergen Hoeller
* @since 2.5
* @see #setUowManager
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册