for(MethodMetaData method : global.getMethods()) { if(!method.getMethodName().equals("*")) { throw EjbLogger.ROOT_LOGGER.wildcardContainerTransactionElementsMustHaveWildcardMethodName(); if (containerTransactions != null) { for (final ContainerTransactionMetaData containerTx : containerTransactions) { final TransactionAttributeType txAttr = containerTx.getTransAttribute(); final Integer timeout = timeout(containerTx); final MethodsMetaData methods = containerTx.getMethods(); for (final MethodMetaData method : methods) { final String methodName = method.getMethodName(); if(!wildcardAttributeSet && global.getTransAttribute() != null) { for(MethodMetaData method : global.getMethods()) { final MethodIntf defaultMethodIntf = (componentDescription instanceof MessageDrivenComponentDescription) ? MethodIntf.MESSAGE_ENDPOINT : MethodIntf.BEAN; final MethodIntf methodIntf = this.getMethodIntf(method.getMethodIntf(), defaultMethodIntf); componentDescription.getTransactionAttributes().setAttribute(methodIntf, null, global.getTransAttribute()); for(MethodMetaData method : global.getMethods()) { final MethodIntf defaultMethodIntf = (componentDescription instanceof MessageDrivenComponentDescription) ? MethodIntf.MESSAGE_ENDPOINT : MethodIntf.BEAN; final MethodIntf methodIntf = this.getMethodIntf(method.getMethodIntf(), defaultMethodIntf);
private static Integer timeout(final ContainerTransactionMetaData containerTransaction) { final List<TransactionTimeoutMetaData> transactionTimeouts = containerTransaction.getAny(TransactionTimeoutMetaData.class); if (transactionTimeouts == null || transactionTimeouts.isEmpty()) return null; final TransactionTimeoutMetaData transactionTimeout = transactionTimeouts.get(0); final TimeUnit unit = transactionTimeout.getUnit() == null ? TimeUnit.SECONDS : transactionTimeout.getUnit(); return (int)unit.toSeconds(transactionTimeout.getTimeout()); } }
@Override protected ContainerTransactionMetaData createContainerTransaction(String ejbName, TransactionAttribute annotation, Method method) { ContainerTransactionMetaData containerTransaction = new ContainerTransactionMetaData(); containerTransaction.setMethods(createMethods(ejbName, method)); containerTransaction.setTransAttribute(createTransAttributeType(annotation)); return containerTransaction; } }
/** * Get the method transaction type * * @param methodName the method name * @param params the parameters * @param iface the interface type * @return the method transaction type */ public TransactionAttributeType getMethodTransactionType(String methodName, Class<?>[] params, MethodInterfaceType iface) { // default value TransactionAttributeType result = null; ContainerTransactionsMetaData containerTransactions = getContainerTransactions(); if (containerTransactions == null || containerTransactions.isEmpty()) return result; ContainerTransactionMetaData bestMatchTransaction = null; MethodMetaData bestMatch = null; for (ContainerTransactionMetaData transaction : containerTransactions) { MethodMetaData match = transaction.bestMatch(methodName, params, iface, bestMatch); if (match != bestMatch) { bestMatchTransaction = transaction; bestMatch = match; } } if (bestMatchTransaction != null) result = bestMatchTransaction.getTransAttribute(); return result; }
/** * Get the transaction type * * @return the transaction type */ public byte getTransactionType() { TransactionAttributeType attribute = getDelegate().getTransAttribute(); return BeanMetaData.mapTransactionType(attribute); } }
/** * Bump the iterators onto the next element */ private void bump() { while (delegate.hasNext()) { transaction = delegate.next(); MethodsMetaData theMethods = transaction.getMethods(); if (theMethods != null && theMethods.isEmpty() == false) { methods = theMethods.iterator(); break; } } } }
/** * Get the container transaction for an ejb * * @param ejbName the ejb name * @return the container transactions or null for no result * @throws IllegalArgumentException for a null ejb name */ public ContainerTransactionMetaData getContainerTransactionsByEjbName(String ejbName) { if (ejbName == null) throw new IllegalArgumentException("Null ejbName"); if (methods == null) return null; MethodsMetaData ejbMethods = methods.getMethodsByEjbName(ejbName); if (ejbMethods == null) return null; ContainerTransactionMetaData result = clone(); result.setMethods(ejbMethods); return result; }
/** * Get the container transactions for an ejb * * @param ejbName the ejb name * @return the container transactions or null for no result * @throws IllegalArgumentException for a null ejb name */ public ContainerTransactionsMetaData getContainerTransactionsByEjbName(String ejbName) { if (ejbName == null) throw new IllegalArgumentException("Null ejbName"); if (isEmpty()) return null; ContainerTransactionsMetaData result = null; for (ContainerTransactionMetaData transaction : this) { ContainerTransactionMetaData ejbTransaction = transaction.getContainerTransactionsByEjbName(ejbName); if (ejbTransaction != null) { if (result == null) result = new ContainerTransactionsMetaData(); result.add(ejbTransaction); } } return result; }
@Override protected ContainerTransactionMetaData createContainerTransaction(String ejbName, TransactionAttribute annotation, Method method) { ContainerTransactionMetaData containerTransaction = new ContainerTransactionMetaData(); containerTransaction.setMethods(createMethods(ejbName, method)); containerTransaction.setTransAttribute(createTransAttributeType(annotation)); return containerTransaction; } }
/** * Get the method transaction type * * @param methodName the method name * @param params the parameters * @param iface the interface type * @return the method transaction type */ public TransactionAttributeType getMethodTransactionType(String methodName, Class<?>[] params, MethodInterfaceType iface) { // default value TransactionAttributeType result = null; ContainerTransactionsMetaData containerTransactions = getContainerTransactions(); if (containerTransactions == null || containerTransactions.isEmpty()) return result; ContainerTransactionMetaData bestMatchTransaction = null; MethodMetaData bestMatch = null; for (ContainerTransactionMetaData transaction : containerTransactions) { MethodMetaData match = transaction.bestMatch(methodName, params, iface, bestMatch); if (match != bestMatch) { bestMatchTransaction = transaction; bestMatch = match; } } if (bestMatchTransaction != null) result = bestMatchTransaction.getTransAttribute(); return result; }
/** * Get the transaction type * * @return the transaction type */ public byte getTransactionType() { TransactionAttributeType attribute = getDelegate().getTransAttribute(); return BeanMetaData.mapTransactionType(attribute); } }
/** * Bump the iterators onto the next element */ private void bump() { while (delegate.hasNext()) { transaction = delegate.next(); MethodsMetaData theMethods = transaction.getMethods(); if (theMethods != null && theMethods.isEmpty() == false) { methods = theMethods.iterator(); break; } } } }
/** * Get the container transaction for an ejb * * @param ejbName the ejb name * @return the container transactions or null for no result * @throws IllegalArgumentException for a null ejb name */ public ContainerTransactionMetaData getContainerTransactionsByEjbName(String ejbName) { if (ejbName == null) throw new IllegalArgumentException("Null ejbName"); if (methods == null) return null; MethodsMetaData ejbMethods = methods.getMethodsByEjbName(ejbName); if (ejbMethods == null) return null; ContainerTransactionMetaData result = clone(); result.setMethods(ejbMethods); return result; }
/** * Get the container transactions for an ejb * * @param ejbName the ejb name * @return the container transactions or null for no result * @throws IllegalArgumentException for a null ejb name */ public ContainerTransactionsMetaData getContainerTransactionsByEjbName(String ejbName) { if (ejbName == null) throw new IllegalArgumentException("Null ejbName"); if (isEmpty()) return null; ContainerTransactionsMetaData result = null; for (ContainerTransactionMetaData transaction : this) { ContainerTransactionMetaData ejbTransaction = transaction.getContainerTransactionsByEjbName(ejbName); if (ejbTransaction != null) { if (result == null) result = new ContainerTransactionsMetaData(); result.add(ejbTransaction); } } return result; }
for(MethodMetaData method : transaction.getMethods()) annotation.setType(transaction.getTransAttribute()); addAnnotations(TransactionAttribute.class, annotation, container, method);
@Override protected ContainerTransactionMetaData createContainerTransaction(String ejbName, TransactionAttribute annotation, Class<?> cls) { ContainerTransactionMetaData containerTransaction = new ContainerTransactionMetaData(); log.info(containerTransaction); containerTransaction.setMethods(createMethods(ejbName, null)); containerTransaction.setTransAttribute(createTransAttributeType(annotation)); return containerTransaction; } }
/** * Get the method transaction type * * @param methodName the method name * @param params the parameters * @param iface the interface type * @return the method transaction type */ public TransactionAttributeType getMethodTransactionType(String methodName, Class<?>[] params, MethodInterfaceType iface) { // default value TransactionAttributeType result = null; ContainerTransactionsMetaData containerTransactions = getContainerTransactions(); if (containerTransactions == null || containerTransactions.isEmpty()) return result; ContainerTransactionMetaData bestMatchTransaction = null; MethodMetaData bestMatch = null; for (ContainerTransactionMetaData transaction : containerTransactions) { MethodMetaData match = transaction.bestMatch(methodName, params, iface, bestMatch); if (match != bestMatch) { bestMatchTransaction = transaction; bestMatch = match; } } if (bestMatchTransaction != null) result = bestMatchTransaction.getTransAttribute(); return result; }
private static Integer timeout(final ContainerTransactionMetaData containerTransaction) { final List<TransactionTimeoutMetaData> transactionTimeouts = containerTransaction.getAny(TransactionTimeoutMetaData.class); if (transactionTimeouts == null || transactionTimeouts.isEmpty()) return null; final TransactionTimeoutMetaData transactionTimeout = transactionTimeouts.get(0); final TimeUnit unit = transactionTimeout.getUnit() == null ? TimeUnit.SECONDS : transactionTimeout.getUnit(); return (int)unit.toSeconds(transactionTimeout.getTimeout()); } }
if (containerTransactions != null) { for (final ContainerTransactionMetaData containerTx : containerTransactions) { final TransactionAttributeType txAttr = containerTx.getTransAttribute(); final Integer timeout = timeout(containerTx); final MethodsMetaData methods = containerTx.getMethods(); for (final MethodMetaData method : methods) { final String methodName = method.getMethodName();
@Override protected ContainerTransactionMetaData createContainerTransaction(String ejbName, TransactionAttribute annotation, Class<?> element) { ContainerTransactionMetaData containerTransaction = new ContainerTransactionMetaData(); containerTransaction.setMethods(createMethods(ejbName, null)); containerTransaction.setTransAttribute(createTransAttributeType(annotation)); return containerTransaction; } }