djencks 2005/03/15 00:32:41
Modified: modules/openejb-builder/src/java/org/openejb/deployment
AbstractContainerBuilder.java CMPEntityBuilder.java
ContainerBuilder.java EntityBuilder.java
MDBContainerBuilder.java OpenEJBModuleBuilder.java
SessionBuilder.java TransactionPolicyHelper.java
Log:
Make transaction policy mapping more generic and implement the
no-distributed-transactions corba tx propagation polices. CORBA operation name
to method signature mapping is not yet really implemented
Revision Changes Path
1.9 +83 -10
openejb/modules/openejb-builder/src/java/org/openejb/deployment/AbstractContainerBuilder.java
Index: AbstractContainerBuilder.java
===================================================================
RCS file:
/home/projects/openejb/scm/openejb/modules/openejb-builder/src/java/org/openejb/deployment/AbstractContainerBuilder.java,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -r1.8 -r1.9
--- AbstractContainerBuilder.java 8 Mar 2005 03:11:35 -0000 1.8
+++ AbstractContainerBuilder.java 15 Mar 2005 05:32:41 -0000 1.9
@@ -49,6 +49,8 @@
import java.util.Map;
import java.util.Set;
+import java.util.Arrays;
+import java.io.Serializable;
import javax.ejb.TimedObject;
import javax.ejb.Timer;
import javax.management.ObjectName;
@@ -63,6 +65,8 @@
import org.openejb.GenericEJBContainer;
import org.openejb.InstanceContextFactory;
import org.openejb.InterceptorBuilder;
+import org.openejb.EJBInterfaceType;
+import org.openejb.deployment.corba.TransactionImportPolicyBuilder;
import org.openejb.cache.InstanceFactory;
import org.openejb.cache.InstancePool;
import org.openejb.dispatch.InterfaceMethodSignature;
@@ -74,6 +78,7 @@
import org.openejb.transaction.TransactionPolicy;
import org.openejb.transaction.TransactionPolicyManager;
import org.openejb.transaction.TransactionPolicySource;
+import org.openejb.transaction.TransactionPolicies;
import org.openejb.util.SoftLimitedInstancePool;
/**
@@ -101,6 +106,7 @@
private Set applicationManagedSecurityResources;
private UserTransactionImpl userTransaction;
private TransactionPolicySource transactionPolicySource;
+ private TransactionImportPolicyBuilder transactionImportPolicyBuilder;
private String[] jndiNames;
private String[] localJndiNames;
//todo use object names here for build configuration rather than in
ModuleBuilder.
@@ -110,6 +116,9 @@
private ObjectName transactedTimerName;
private ObjectName nonTransactedTimerName;
+ //corba tx import
+
+
public ClassLoader getClassLoader() {
return classLoader;
}
@@ -278,6 +287,15 @@
this.transactionPolicySource = transactionPolicySource;
}
+
+ public TransactionImportPolicyBuilder
getTransactionImportPolicyBuilder() {
+ return transactionImportPolicyBuilder;
+ }
+
+ public void
setTransactionImportPolicyBuilder(TransactionImportPolicyBuilder
transactionImportPolicyBuilder) {
+ this.transactionImportPolicyBuilder = transactionImportPolicyBuilder;
+ }
+
public String[] getJndiNames() {
return jndiNames;
}
@@ -346,11 +364,61 @@
interceptorBuilder.setDoAsCurrentCaller(doAsCurrentCaller);
interceptorBuilder.setSecurityEnabled(securityEnabled);
interceptorBuilder.setUseContextHandler(useContextHandler);
- interceptorBuilder.setTransactionPolicyManager(new
TransactionPolicyManager(transactionPolicySource, signatures));
+ interceptorBuilder.setTransactionPolicyManager(new
TransactionPolicyManager(buildTransactionPolicies(transactionPolicySource,
signatures)));
interceptorBuilder.setPermissionManager(new
PermissionManager(ejbName, signatures));
return interceptorBuilder;
}
+ private TransactionPolicy[][]
buildTransactionPolicies(TransactionPolicySource transactionPolicySource,
InterfaceMethodSignature[] signatures) {
+ TransactionPolicy[][] transactionPolicy = new
TransactionPolicy[EJBInterfaceType.MAX_ORDINAL][];
+ transactionPolicy[EJBInterfaceType.HOME.getOrdinal()] =
mapPolicies("Home", signatures, transactionPolicySource);
+ transactionPolicy[EJBInterfaceType.REMOTE.getOrdinal()] =
mapPolicies("Remote", signatures, transactionPolicySource);
+ transactionPolicy[EJBInterfaceType.LOCALHOME.getOrdinal()] =
mapPolicies("LocalHome", signatures, transactionPolicySource);
+ transactionPolicy[EJBInterfaceType.LOCAL.getOrdinal()] =
mapPolicies("Local", signatures, transactionPolicySource);
+ transactionPolicy[EJBInterfaceType.WEB_SERVICE.getOrdinal()] =
mapPolicies("ServiceEndpoint", signatures, transactionPolicySource);
+ transactionPolicy[EJBInterfaceType.TIMEOUT.getOrdinal()] = new
TransactionPolicy[signatures.length];
+
Arrays.fill(transactionPolicy[EJBInterfaceType.TIMEOUT.getOrdinal()],
ContainerPolicy.Supports); //we control the transaction from the top of the
stack.
+
+ return transactionPolicy;
+ }
+
+ private static TransactionPolicy[] mapPolicies(String intfName,
InterfaceMethodSignature[] signatures, TransactionPolicySource
transactionPolicySource) {
+ TransactionPolicy[] policies = new
TransactionPolicy[signatures.length];
+ for (int index = 0; index < signatures.length; index++) {
+ InterfaceMethodSignature signature = signatures[index];
+ policies[index] =
TransactionPolicies.getTransactionPolicy(transactionPolicySource.getTransactionPolicy(intfName,
signature));
+ }
+ return policies;
+ }
+
+ private Serializable getHomeTxPolicyConfig() throws
ClassNotFoundException {
+ if (transactionImportPolicyBuilder == null) {
+ return null;
+ }
+ ClassLoader classLoader = getClassLoader();
+ Class homeInterface = loadOptionalClass(homeInterfaceName,
classLoader);
+ if (homeInterface == null) {
+ return null;
+ } else {
+ Serializable policy =
transactionImportPolicyBuilder.buildTransactionImportPolicy("Home",
homeInterface, true, transactionPolicySource);
+ return policy;
+ }
+ }
+
+ private Serializable getRemoteTxPolicyConfig() throws
ClassNotFoundException {
+ if (transactionImportPolicyBuilder == null) {
+ return null;
+ }
+ ClassLoader classLoader = getClassLoader();
+ Class remoteInterface = loadOptionalClass(remoteInterfaceName,
classLoader);
+ if (remoteInterface == null) {
+ return null;
+ } else {
+ Serializable policy =
transactionImportPolicyBuilder.buildTransactionImportPolicy("Remote",
remoteInterface, false, transactionPolicySource);
+ return policy;
+ }
+ }
+
protected ProxyInfo createProxyInfo() throws ClassNotFoundException {
ClassLoader classLoader = getClassLoader();
Class homeInterface = loadOptionalClass(homeInterfaceName,
classLoader);
@@ -382,9 +450,9 @@
}
protected EJBContainer createContainer(InterfaceMethodSignature[]
signatures,
- InstanceContextFactory contextFactory,
- InterceptorBuilder interceptorBuilder,
- InstancePool pool) throws Exception {
+ InstanceContextFactory
contextFactory,
+ InterceptorBuilder
interceptorBuilder,
+ InstancePool pool) throws
Exception {
return new GenericEJBContainer(getContainerId(),
getEJBName(),
@@ -405,14 +473,17 @@
getSecurityConfiguration(),
getDefaultSubject(),
runAs,
+ getHomeTxPolicyConfig(),
+ getRemoteTxPolicyConfig(),
Thread.currentThread().getContextClassLoader());
}
+
protected GBeanData createConfiguration(ClassLoader cl,
InterfaceMethodSignature[] signatures,
- InstanceContextFactory contextFactory,
- InterceptorBuilder interceptorBuilder,
- InstancePool pool,
- ObjectName timerName) throws Exception {
+ InstanceContextFactory
contextFactory,
+ InterceptorBuilder
interceptorBuilder,
+ InstancePool pool,
+ ObjectName timerName) throws
Exception {
GBeanData gbean = new GBeanData(GenericEJBContainer.GBEAN_INFO);
gbean.setAttribute("ContainerID", getContainerId());
@@ -430,6 +501,8 @@
gbean.setAttribute("SecurityConfiguration",
getSecurityConfiguration());
gbean.setAttribute("DefaultSubject", getDefaultSubject());
gbean.setAttribute("RunAsSubject", getRunAs());
+ gbean.setAttribute("HomeTxPolicyConfig", getHomeTxPolicyConfig());
+ gbean.setAttribute("RemoteTxPolicyConfig",
getRemoteTxPolicyConfig());
return gbean;
}
@@ -438,7 +511,7 @@
ObjectName timerName = null;
if (TimedObject.class.isAssignableFrom(beanClass)) {
InterfaceMethodSignature signature = new
InterfaceMethodSignature("ejbTimeout", new Class[]{Timer.class}, false);
- TransactionPolicy transactionPolicy =
getTransactionPolicySource().getTransactionPolicy("timeout", signature);
+ TransactionPolicy transactionPolicy =
TransactionPolicies.getTransactionPolicy(getTransactionPolicySource().getTransactionPolicy("timeout",
signature));
boolean isTransacted = transactionPolicy ==
ContainerPolicy.Required || transactionPolicy == ContainerPolicy.RequiresNew;
if (isTransacted) {
timerName = getTransactedTimerName();
1.25 +2 -1
openejb/modules/openejb-builder/src/java/org/openejb/deployment/CMPEntityBuilder.java
Index: CMPEntityBuilder.java
===================================================================
RCS file:
/home/projects/openejb/scm/openejb/modules/openejb-builder/src/java/org/openejb/deployment/CMPEntityBuilder.java,v
retrieving revision 1.24
retrieving revision 1.25
diff -u -r1.24 -r1.25
--- CMPEntityBuilder.java 12 Mar 2005 06:53:04 -0000 1.24
+++ CMPEntityBuilder.java 15 Mar 2005 05:32:41 -0000 1.25
@@ -713,6 +713,7 @@
builder.setCMP2(isCMP2(entityBean));
TransactionPolicySource transactionPolicySource =
transactionPolicyHelper.getTransactionPolicySource(ejbName);
builder.setTransactionPolicySource(transactionPolicySource);
+
builder.setTransactionImportPolicyBuilder(getModuleBuilder().getTransactionImportPolicyBuilder());
builder.setTransactedTimerName(earContext.getTransactedTimerName());
builder.setNonTransactedTimerName(earContext.getNonTransactedTimerName());
builder.setReentrant(entityBean.getReentrant().getBooleanValue());
1.6 +6 -2
openejb/modules/openejb-builder/src/java/org/openejb/deployment/ContainerBuilder.java
Index: ContainerBuilder.java
===================================================================
RCS file:
/home/projects/openejb/scm/openejb/modules/openejb-builder/src/java/org/openejb/deployment/ContainerBuilder.java,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- ContainerBuilder.java 1 Mar 2005 23:34:37 -0000 1.5
+++ ContainerBuilder.java 15 Mar 2005 05:32:41 -0000 1.6
@@ -53,6 +53,7 @@
import org.apache.geronimo.transaction.context.TransactionContextManager;
import org.apache.geronimo.transaction.context.UserTransactionImpl;
import org.openejb.EJBContainer;
+import org.openejb.deployment.corba.TransactionImportPolicyBuilder;
import org.openejb.transaction.TransactionPolicySource;
/**
@@ -135,4 +136,7 @@
void setNonTransactedTimerName(ObjectName nonTransactedTimerName);
+ TransactionImportPolicyBuilder getTransactionImportPolicyBuilder();
+
+ void setTransactionImportPolicyBuilder(TransactionImportPolicyBuilder
transactionImportPolicyBuilder);
}
1.14 +1 -0
openejb/modules/openejb-builder/src/java/org/openejb/deployment/EntityBuilder.java
Index: EntityBuilder.java
===================================================================
RCS file:
/home/projects/openejb/scm/openejb/modules/openejb-builder/src/java/org/openejb/deployment/EntityBuilder.java,v
retrieving revision 1.13
retrieving revision 1.14
diff -u -r1.13 -r1.14
--- EntityBuilder.java 25 Feb 2005 03:44:04 -0000 1.13
+++ EntityBuilder.java 15 Mar 2005 05:32:41 -0000 1.14
@@ -120,6 +120,7 @@
builder.setPrimaryKeyClassName(OpenEJBModuleBuilder.getJ2eeStringValue(entityBean.getPrimKeyClass()));
TransactionPolicySource transactionPolicySource =
transactionPolicyHelper.getTransactionPolicySource(ejbName);
builder.setTransactionPolicySource(transactionPolicySource);
+
builder.setTransactionImportPolicyBuilder(getModuleBuilder().getTransactionImportPolicyBuilder());
builder.setTransactedTimerName(earContext.getTransactedTimerName());
builder.setNonTransactedTimerName(earContext.getNonTransactedTimerName());
builder.setReentrant(entityBean.getReentrant().getBooleanValue());
1.6 +13 -12
openejb/modules/openejb-builder/src/java/org/openejb/deployment/MDBContainerBuilder.java
Index: MDBContainerBuilder.java
===================================================================
RCS file:
/home/projects/openejb/scm/openejb/modules/openejb-builder/src/java/org/openejb/deployment/MDBContainerBuilder.java,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- MDBContainerBuilder.java 1 Mar 2005 23:34:37 -0000 1.5
+++ MDBContainerBuilder.java 15 Mar 2005 05:32:41 -0000 1.6
@@ -77,6 +77,7 @@
import org.openejb.transaction.ContainerPolicy;
import org.openejb.transaction.TransactionPolicy;
import org.openejb.transaction.TransactionPolicySource;
+import org.openejb.transaction.TransactionPolicyType;
import org.openejb.util.SoftLimitedInstancePool;
@@ -285,15 +286,15 @@
boolean[] deliveryTransacted = new boolean[signatures.length];
for (int i = 0; i < signatures.length; i++) {
InterfaceMethodSignature signature = signatures[i];
- TransactionPolicy transactionPolicy =
transactionPolicySource.getTransactionPolicy("local", signature);
- deliveryTransacted[i] = transactionPolicy ==
ContainerPolicy.Required;
+ TransactionPolicyType transactionPolicyType =
transactionPolicySource.getTransactionPolicy("local", signature);
+ deliveryTransacted[i] = transactionPolicyType ==
TransactionPolicyType.Required;
}
ObjectName timerName = null;
if (TimedObject.class.isAssignableFrom(beanClass)) {
InterfaceMethodSignature signature = new
InterfaceMethodSignature("ejbTimeout", new Class[]{Timer.class}, false);
- TransactionPolicy transactionPolicy =
transactionPolicySource.getTransactionPolicy("timeout", signature);
- Boolean isTransacted = (Boolean)
isTransactedMap.get(transactionPolicy);
+ TransactionPolicyType transactionPolicy =
transactionPolicySource.getTransactionPolicy("timeout", signature);
+ Boolean isTransacted = (Boolean)
isTransactedMap[transactionPolicy.getIndex()];
if (isTransacted != null) {
if (isTransacted.booleanValue()) {
timerName = transactedTimerName;
@@ -323,15 +324,15 @@
return gbean;
}
- private static Map isTransactedMap = new HashMap();
+ private static Boolean[] isTransactedMap = new
Boolean[TransactionPolicyType.size()];
static {
- isTransactedMap.put(ContainerPolicy.Mandatory, Boolean.TRUE);//this
won't work, of course
- isTransactedMap.put(ContainerPolicy.Never, Boolean.FALSE);
- isTransactedMap.put(ContainerPolicy.NotSupported, Boolean.FALSE);
- isTransactedMap.put(ContainerPolicy.Required, Boolean.TRUE);
- isTransactedMap.put(ContainerPolicy.RequiresNew, Boolean.TRUE);
- isTransactedMap.put(ContainerPolicy.Supports, Boolean.FALSE);
+ isTransactedMap[TransactionPolicyType.Mandatory.getIndex()] =
Boolean.TRUE;//this won't work, of course
+ isTransactedMap[TransactionPolicyType.Never.getIndex()] =
Boolean.FALSE;
+ isTransactedMap[TransactionPolicyType.NotSupported.getIndex()] =
Boolean.FALSE;
+ isTransactedMap[TransactionPolicyType.Required.getIndex()] =
Boolean.TRUE;
+ isTransactedMap[TransactionPolicyType.RequiresNew.getIndex()] =
Boolean.TRUE;
+ isTransactedMap[TransactionPolicyType.Supports.getIndex()] =
Boolean.FALSE;
}
protected LinkedHashMap buildVopMap(Class beanClass) throws Exception {
1.34 +9 -1
openejb/modules/openejb-builder/src/java/org/openejb/deployment/OpenEJBModuleBuilder.java
Index: OpenEJBModuleBuilder.java
===================================================================
RCS file:
/home/projects/openejb/scm/openejb/modules/openejb-builder/src/java/org/openejb/deployment/OpenEJBModuleBuilder.java,v
retrieving revision 1.33
retrieving revision 1.34
diff -u -r1.33 -r1.34
--- OpenEJBModuleBuilder.java 8 Mar 2005 04:08:30 -0000 1.33
+++ OpenEJBModuleBuilder.java 15 Mar 2005 05:32:41 -0000 1.34
@@ -107,6 +107,8 @@
import org.apache.geronimo.xbeans.j2ee.SecurityRoleType;
import org.openejb.EJBModuleImpl;
+import org.openejb.deployment.corba.TransactionImportPolicyBuilder;
+import
org.openejb.deployment.corba.NoDistributedTxTransactionImportPolicyBuilder;
import org.openejb.corba.CORBAHandleDelegate;
import org.openejb.corba.compiler.CompilerException;
import org.openejb.corba.compiler.SkeletonGenerator;
@@ -133,12 +135,14 @@
private final MdbBuilder mdbBuilder;
private final ContainerSecurityBuilder containerSecurityBuilder;
private final SkeletonGenerator skeletonGenerator;
+ private final TransactionImportPolicyBuilder
transactionImportPolicyBuilder;
private final Repository repository;
public OpenEJBModuleBuilder(URI defaultParentId, ObjectName listener,
SkeletonGenerator skeletonGenerator, Repository repository) {
this.defaultParentId = defaultParentId;
this.listener = listener;
this.skeletonGenerator = skeletonGenerator;
+ this.transactionImportPolicyBuilder = new
NoDistributedTxTransactionImportPolicyBuilder();
this.containerSecurityBuilder = new ContainerSecurityBuilder(this);
this.cmpEntityBuilder = new CMPEntityBuilder(this);
this.sessionBuilder = new SessionBuilder(this);
@@ -153,6 +157,10 @@
public SkeletonGenerator getSkeletonGenerator() {
return skeletonGenerator;
+ }
+
+ public TransactionImportPolicyBuilder
getTransactionImportPolicyBuilder() {
+ return transactionImportPolicyBuilder;
}
public Module createModule(File plan, JarFile moduleFile) throws
DeploymentException {
1.18 +5 -5
openejb/modules/openejb-builder/src/java/org/openejb/deployment/SessionBuilder.java
Index: SessionBuilder.java
===================================================================
RCS file:
/home/projects/openejb/scm/openejb/modules/openejb-builder/src/java/org/openejb/deployment/SessionBuilder.java,v
retrieving revision 1.17
retrieving revision 1.18
diff -u -r1.17 -r1.18
--- SessionBuilder.java 15 Mar 2005 02:14:23 -0000 1.17
+++ SessionBuilder.java 15 Mar 2005 05:32:41 -0000 1.18
@@ -80,9 +80,8 @@
import org.apache.geronimo.xbeans.j2ee.ServiceRefType;
import org.apache.geronimo.xbeans.j2ee.SessionBeanType;
import org.openejb.dispatch.InterfaceMethodSignature;
-import org.openejb.transaction.ContainerPolicy;
-import org.openejb.transaction.TransactionPolicy;
import org.openejb.transaction.TransactionPolicySource;
+import org.openejb.transaction.TransactionPolicyType;
import org.openejb.xbeans.ejbjar.OpenejbSessionBeanType;
@@ -226,6 +225,7 @@
builder.setTransactionPolicySource(new
StatefulTransactionPolicySource(transactionPolicySource));
}
}
+
builder.setTransactionImportPolicyBuilder(getModuleBuilder().getTransactionImportPolicyBuilder());
processEnvironmentRefs(builder, earContext, ejbModule, sessionBean,
openejbSessionBean, userTransaction, cl);
@@ -287,12 +287,12 @@
this.transactionPolicySource = transactionPolicySource;
}
- public TransactionPolicy getTransactionPolicy(String methodIntf,
InterfaceMethodSignature signature) {
+ public TransactionPolicyType getTransactionPolicy(String methodIntf,
InterfaceMethodSignature signature) {
if ("Home".equals(methodIntf)) {
- return ContainerPolicy.NotSupported;
+ return TransactionPolicyType.NotSupported;
}
if ("LocalHome".equals(methodIntf)) {
- return ContainerPolicy.NotSupported;
+ return TransactionPolicyType.NotSupported;
}
return transactionPolicySource.getTransactionPolicy(methodIntf,
signature);
}
1.4 +20 -22
openejb/modules/openejb-builder/src/java/org/openejb/deployment/TransactionPolicyHelper.java
Index: TransactionPolicyHelper.java
===================================================================
RCS file:
/home/projects/openejb/scm/openejb/modules/openejb-builder/src/java/org/openejb/deployment/TransactionPolicyHelper.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- TransactionPolicyHelper.java 16 Feb 2005 00:09:23 -0000 1.3
+++ TransactionPolicyHelper.java 15 Mar 2005 05:32:41 -0000 1.4
@@ -61,10 +61,8 @@
import org.apache.geronimo.xbeans.j2ee.MethodIntfType;
import org.apache.geronimo.xbeans.j2ee.MethodType;
import org.openejb.dispatch.InterfaceMethodSignature;
-import org.openejb.transaction.BeanPolicy;
-import org.openejb.transaction.ContainerPolicy;
-import org.openejb.transaction.TransactionPolicy;
import org.openejb.transaction.TransactionPolicySource;
+import org.openejb.transaction.TransactionPolicyType;
/**
* @version $Revision$ $Date$
@@ -72,8 +70,8 @@
public class TransactionPolicyHelper {
public final static TransactionPolicySource BMTPolicySource = new
TransactionPolicySource() {
- public TransactionPolicy getTransactionPolicy(String methodIntf,
InterfaceMethodSignature signature) {
- return BeanPolicy.INSTANCE;
+ public TransactionPolicyType getTransactionPolicy(String methodIntf,
InterfaceMethodSignature signature) {
+ return TransactionPolicyType.Bean;
}
};
@@ -124,15 +122,15 @@
this.transactionPolicies = transactionPolicies;
}
- public TransactionPolicy getTransactionPolicy(String methodIntf,
InterfaceMethodSignature signature) {
+ public TransactionPolicyType getTransactionPolicy(String methodIntf,
InterfaceMethodSignature signature) {
for (Iterator iterator = transactionPolicies.iterator();
iterator.hasNext();) {
MethodTransaction methodTransaction = (MethodTransaction)
iterator.next();
if (methodTransaction.matches(methodIntf,
signature.getMethodName(), signature.getParameterTypes())) {
- return methodTransaction.getTransactionPolicy();
+ return methodTransaction.getTransactionPolicyType();
}
}
//default
- return ContainerPolicy.Required;
+ return TransactionPolicyType.Required;
}
}
@@ -144,23 +142,23 @@
static {
transactionPolicyMap = new HashMap();
- transactionPolicyMap.put("NotSupported",
ContainerPolicy.NotSupported);
- transactionPolicyMap.put("Required", ContainerPolicy.Required);
- transactionPolicyMap.put("Supports", ContainerPolicy.Supports);
- transactionPolicyMap.put("RequiresNew",
ContainerPolicy.RequiresNew);
- transactionPolicyMap.put("Mandatory", ContainerPolicy.Mandatory);
- transactionPolicyMap.put("Never", ContainerPolicy.Never);
- transactionPolicyMap.put("Stateless", BeanPolicy.INSTANCE);
- transactionPolicyMap.put("Stateful", BeanPolicy.INSTANCE);
+ transactionPolicyMap.put("NotSupported",
TransactionPolicyType.NotSupported);
+ transactionPolicyMap.put("Required",
TransactionPolicyType.Required);
+ transactionPolicyMap.put("Supports",
TransactionPolicyType.Supports);
+ transactionPolicyMap.put("RequiresNew",
TransactionPolicyType.RequiresNew);
+ transactionPolicyMap.put("Mandatory",
TransactionPolicyType.Mandatory);
+ transactionPolicyMap.put("Never", TransactionPolicyType.Never);
+ transactionPolicyMap.put("Stateless",
TransactionPolicyType.Bean);
+ transactionPolicyMap.put("Stateful", TransactionPolicyType.Bean);
}
- private final TransactionPolicy transactionPolicy;
+ private final TransactionPolicyType transactionPolicyType;
private final String methodIntf;
private final String methodName;
private final String[] parameterTypes;
public MethodTransaction(MethodType method, String
transactionAttribute) {
- transactionPolicy = (TransactionPolicy)
transactionPolicyMap.get(transactionAttribute);
+ transactionPolicyType = (TransactionPolicyType)
transactionPolicyMap.get(transactionAttribute);
// interface type
MethodIntfType methodInterface = method.getMethodIntf();
@@ -186,8 +184,8 @@
}
- public TransactionPolicy getTransactionPolicy() {
- return transactionPolicy;
+ public TransactionPolicyType getTransactionPolicyType() {
+ return transactionPolicyType;
}
public String getMethodIntf() {
@@ -315,7 +313,7 @@
result.append(parameterType).append(", ");
}
}
- result.append("transaction attribute:
").append(transactionPolicy);
+ result.append("transaction attribute:
").append(transactionPolicyType);
return result.toString();
}