/** * Sets the container transaction for the given method descriptor. * Throws an Illegal argument if this ejb has transaction type BEAN_TRANSACTION_TYPE. */ public void setContainerTransactionFor(MethodDescriptor methodDescriptor, ContainerTransaction containerTransaction) { ContainerTransaction oldValue = this.getContainerTransactionFor(methodDescriptor); if (oldValue == null || (oldValue != null && !(oldValue.equals(containerTransaction)))) { String transactionType = this.getTransactionType(); if (transactionType == null) { setTransactionType(CONTAINER_TRANSACTION_TYPE); transactionType = CONTAINER_TRANSACTION_TYPE; } else if (BEAN_TRANSACTION_TYPE.equals(transactionType)) { throw new IllegalArgumentException(localStrings.getLocalString( "enterprise.deployment.exceptiontxattrbtnotspecifiedinbeanwithtxtype", "Method level transaction attributes may not be specified on a bean with transaction type {0}", new Object[]{EjbSessionDescriptor.BEAN_TRANSACTION_TYPE})); } //_logger.log(Level.FINE,"put " + methodDescriptor + " " + containerTransaction); getMethodContainerTransactions().put(methodDescriptor, containerTransaction); } }
desc.getTransactionType(). equals(EjbDescriptor.CONTAINER_TRANSACTION_TYPE)) { xaEnabledMDBList.add(desc);
/** * visits an ejb descriptor * @param ejb descriptor */ public void accept(EjbDescriptor ejb) { DOLUtils.getDefaultLogger().info("=================="); DOLUtils.getDefaultLogger().info(ejb.getType() + " Bean " + ejb.getName()); DOLUtils.getDefaultLogger().info("\thomeClassName " + ejb.getHomeClassName()); DOLUtils.getDefaultLogger().info("\tremoteClassName " + ejb.getRemoteClassName()); DOLUtils.getDefaultLogger().info("\tlocalhomeClassName " +ejb.getLocalHomeClassName()); DOLUtils.getDefaultLogger().info("\tlocalClassName " + ejb.getLocalClassName()); DOLUtils.getDefaultLogger().info("\tremoteBusinessIntfs " + ejb.getRemoteBusinessClassNames()); DOLUtils.getDefaultLogger().info("\tlocalBusinessIntfs " + ejb.getLocalBusinessClassNames()); DOLUtils.getDefaultLogger().info("\tjndiName " + ejb.getJndiName()); DOLUtils.getDefaultLogger().info("\tejbClassName " + ejb.getEjbClassName()); DOLUtils.getDefaultLogger().info("\ttransactionType " + ejb.getTransactionType()); if (ejb.getUsesCallerIdentity() == false) { DOLUtils.getDefaultLogger().info("\trun-as role " + ejb.getRunAsIdentity()); } else { DOLUtils.getDefaultLogger().info("\tuse-caller-identity " + ejb.getUsesCallerIdentity()); } }
/** * Set default value for EjbDescriptor. */ private void setDOLDefault(EjbDescriptor ejb) { if (ejb.getUsesCallerIdentity() == null) { if (ejb instanceof EjbMessageBeanDescriptor) { ejb.setUsesCallerIdentity(false); } else { ejb.setUsesCallerIdentity(true); } } // for ejb 3.0 if (ejb.getTransactionType() == null) { ejb.setTransactionType(EjbDescriptor.CONTAINER_TRANSACTION_TYPE); } ejb.setUsesDefaultTransaction(); }
protected HandlerProcessingResult processAnnotation(AnnotationInfo ainfo, EjbContext[] ejbContexts) throws AnnotationProcessorException { TransactionManagement tmAn = (TransactionManagement)ainfo.getAnnotation(); String tmType = TransactionManagementType.CONTAINER.equals(tmAn.value())? EjbDescriptor.CONTAINER_TRANSACTION_TYPE : EjbDescriptor.BEAN_TRANSACTION_TYPE; for (EjbContext ejbContext : ejbContexts) { EjbDescriptor ejbDesc = ejbContext.getDescriptor(); // override by xml if (ejbDesc.getTransactionType() == null) { ejbDesc.setTransactionType(tmType); } } return getDefaultProcessedResult(); }