TransactionAttribute taAn =
(TransactionAttribute) ainfo.getAnnotation();
for (EjbContext ejbContext : ejbContexts) {
EjbDescriptor ejbDesc = ejbContext.getDescriptor();
ContainerTransaction containerTransaction =
getContainerTransaction(taAn.value());
if (ElementType.TYPE.equals(ainfo.getElementType())) {
ejbContext.addPostProcessInfo(ainfo, this);
} else {
Method annMethod = (Method) ainfo.getAnnotatedElement();
Set txBusMethods = ejbDesc.getTxBusinessMethodDescriptors();
for (Object next : txBusMethods) {
MethodDescriptor nextDesc = (MethodDescriptor) next;
Method m = nextDesc.getMethod(ejbDesc);
if( TypeUtil.sameMethodSignature(m, annMethod) &&
ejbDesc.getContainerTransactionFor(nextDesc) == null ) {
// override by xml
ejbDesc.setContainerTransactionFor
(nextDesc, containerTransaction);
}
}
}
}