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();
           }
   
  
  
  

Reply via email to