@Override
public Object invoke(InvocationContext context) throws Throwable {
Method method = context.getMethod();
Transaction.TransactionAttribute transactionAttribute;
Transaction transaction = method.getAnnotation(Transaction.class);
if (transaction != null) {
transactionAttribute = transaction.value();
} else {
transactionAttribute = this.defaultTransactionAttribute;
}
switch (transactionAttribute) {
case MANDATORY: