@Override @Nullable public String getQualifier() { return this.targetAttribute.getQualifier(); }
@Override @Nullable public String getQualifier() { return this.targetAttribute.getQualifier(); }
/** * Determine the specific transaction manager to use for the given transaction. */ @Nullable protected PlatformTransactionManager determineTransactionManager(@Nullable TransactionAttribute txAttr) { // Do not attempt to lookup tx manager if no tx attributes are set if (txAttr == null || this.beanFactory == null) { return getTransactionManager(); } String qualifier = txAttr.getQualifier(); if (StringUtils.hasText(qualifier)) { return determineQualifiedTransactionManager(this.beanFactory, qualifier); } else if (StringUtils.hasText(this.transactionManagerBeanName)) { return determineQualifiedTransactionManager(this.beanFactory, this.transactionManagerBeanName); } else { PlatformTransactionManager defaultTransactionManager = getTransactionManager(); if (defaultTransactionManager == null) { defaultTransactionManager = this.transactionManagerCache.get(DEFAULT_TRANSACTION_MANAGER_KEY); if (defaultTransactionManager == null) { defaultTransactionManager = this.beanFactory.getBean(PlatformTransactionManager.class); this.transactionManagerCache.putIfAbsent( DEFAULT_TRANSACTION_MANAGER_KEY, defaultTransactionManager); } } return defaultTransactionManager; } }
/** * Determine the specific transaction manager to use for the given transaction. */ @Nullable protected PlatformTransactionManager determineTransactionManager(@Nullable TransactionAttribute txAttr) { // Do not attempt to lookup tx manager if no tx attributes are set if (txAttr == null || this.beanFactory == null) { return getTransactionManager(); } String qualifier = txAttr.getQualifier(); if (StringUtils.hasText(qualifier)) { return determineQualifiedTransactionManager(this.beanFactory, qualifier); } else if (StringUtils.hasText(this.transactionManagerBeanName)) { return determineQualifiedTransactionManager(this.beanFactory, this.transactionManagerBeanName); } else { PlatformTransactionManager defaultTransactionManager = getTransactionManager(); if (defaultTransactionManager == null) { defaultTransactionManager = this.transactionManagerCache.get(DEFAULT_TRANSACTION_MANAGER_KEY); if (defaultTransactionManager == null) { defaultTransactionManager = this.beanFactory.getBean(PlatformTransactionManager.class); this.transactionManagerCache.putIfAbsent( DEFAULT_TRANSACTION_MANAGER_KEY, defaultTransactionManager); } } return defaultTransactionManager; } }
tm = getTransactionManager(testContext, transactionAttribute.getQualifier()); Assert.state(tm != null, () -> "Failed to retrieve PlatformTransactionManager for @Transactional test: " + testContext);
@Override @Nullable public String getQualifier() { return this.targetAttribute.getQualifier(); }
@Override @Nullable public String getQualifier() { return this.targetAttribute.getQualifier(); }
private Class<? extends Dialect> determineDialect( Method method, TransactionAttribute transactionAttribute) { final Class<? extends Dialect> dialect; final String qualifier = transactionAttribute.getQualifier(); if (StringUtils.hasLength(qualifier)) { dialect = this.dialects.get(qualifier); } else if (this.dialects.size() == 1) { dialect = this.dialects.values().iterator().next(); } else if (!this.dialects.isEmpty()) { LOGGER.debug( "No qualifier specified for @Transactional on {} and multiple Dialects are configured: {}", method, this.dialects.keySet()); return null; } else { return null; } return dialect; }
/** * Determine the specific transaction manager to use for the given transaction. */ protected PlatformTransactionManager determineTransactionManager(TransactionAttribute txAttr) { if (this.transactionManager != null || this.beanFactory == null || txAttr == null) { return this.transactionManager; } String qualifier = txAttr.getQualifier(); if (StringUtils.hasLength(qualifier)) { return BeanFactoryAnnotationUtils.qualifiedBeanOfType(this.beanFactory, PlatformTransactionManager.class, qualifier); } else if (this.transactionManagerBeanName != null) { return this.beanFactory.getBean(this.transactionManagerBeanName, PlatformTransactionManager.class); } else if (this.beanFactory instanceof ListableBeanFactory) { return BeanFactoryUtils.beanOfTypeIncludingAncestors(((ListableBeanFactory) this.beanFactory), PlatformTransactionManager.class); } else { throw new IllegalStateException( "Cannot retrieve PlatformTransactionManager beans from non-listable BeanFactory: " + this.beanFactory); } }
@Override protected PlatformTransactionManager determineTransactionManager(TransactionAttribute txAttr) { if (txAttr == null) { return super.determineTransactionManager(txAttr); } final String qualifier = txAttr.getQualifier(); if (StringUtils.hasLength(qualifier)) { PlatformTransactionManager platformTransactionManager = platformTransactionManagerCache.get(qualifier); if (platformTransactionManager == null) { platformTransactionManager = super.determineTransactionManager(txAttr); platformTransactionManagerCache.put(qualifier, platformTransactionManager); } return platformTransactionManager; } return super.determineTransactionManager(txAttr); } }
/** * Determine the specific transaction manager to use for the given transaction. */ @Nullable protected PlatformTransactionManager determineTransactionManager(@Nullable TransactionAttribute txAttr) { // Do not attempt to lookup tx manager if no tx attributes are set if (txAttr == null || this.beanFactory == null) { return getTransactionManager(); } String qualifier = txAttr.getQualifier(); if (StringUtils.hasText(qualifier)) { return determineQualifiedTransactionManager(this.beanFactory, qualifier); } else if (StringUtils.hasText(this.transactionManagerBeanName)) { return determineQualifiedTransactionManager(this.beanFactory, this.transactionManagerBeanName); } else { PlatformTransactionManager defaultTransactionManager = getTransactionManager(); if (defaultTransactionManager == null) { defaultTransactionManager = this.transactionManagerCache.get(DEFAULT_TRANSACTION_MANAGER_KEY); if (defaultTransactionManager == null) { defaultTransactionManager = this.beanFactory.getBean(PlatformTransactionManager.class); this.transactionManagerCache.putIfAbsent( DEFAULT_TRANSACTION_MANAGER_KEY, defaultTransactionManager); } } return defaultTransactionManager; } }
/** * Determine the specific transaction manager to use for the given transaction. */ @Nullable protected PlatformTransactionManager determineTransactionManager(@Nullable TransactionAttribute txAttr) { // Do not attempt to lookup tx manager if no tx attributes are set if (txAttr == null || this.beanFactory == null) { return getTransactionManager(); } String qualifier = txAttr.getQualifier(); if (StringUtils.hasText(qualifier)) { return determineQualifiedTransactionManager(this.beanFactory, qualifier); } else if (StringUtils.hasText(this.transactionManagerBeanName)) { return determineQualifiedTransactionManager(this.beanFactory, this.transactionManagerBeanName); } else { PlatformTransactionManager defaultTransactionManager = getTransactionManager(); if (defaultTransactionManager == null) { defaultTransactionManager = this.transactionManagerCache.get(DEFAULT_TRANSACTION_MANAGER_KEY); if (defaultTransactionManager == null) { defaultTransactionManager = this.beanFactory.getBean(PlatformTransactionManager.class); this.transactionManagerCache.putIfAbsent( DEFAULT_TRANSACTION_MANAGER_KEY, defaultTransactionManager); } } return defaultTransactionManager; } }
tm = getTransactionManager(testContext, transactionAttribute.getQualifier()); Assert.state(tm != null, () -> "Failed to retrieve PlatformTransactionManager for @Transactional test: " + testContext);
tm = getTransactionManager(testContext, transactionAttribute.getQualifier());