|
|
|
|
@ -1,5 +1,5 @@
@@ -1,5 +1,5 @@
|
|
|
|
|
/* |
|
|
|
|
* Copyright 2012-2020 the original author or authors. |
|
|
|
|
* Copyright 2012-2021 the original author or authors. |
|
|
|
|
* |
|
|
|
|
* Licensed under the Apache License, Version 2.0 (the "License"); |
|
|
|
|
* you may not use this file except in compliance with the License. |
|
|
|
|
@ -48,6 +48,7 @@ import org.springframework.boot.jta.atomikos.AtomikosDataSourceBean;
@@ -48,6 +48,7 @@ import org.springframework.boot.jta.atomikos.AtomikosDataSourceBean;
|
|
|
|
|
import org.springframework.boot.jta.atomikos.AtomikosDependsOnBeanFactoryPostProcessor; |
|
|
|
|
import org.springframework.boot.jta.atomikos.AtomikosProperties; |
|
|
|
|
import org.springframework.boot.test.util.TestPropertyValues; |
|
|
|
|
import org.springframework.boot.testsupport.BuildOutput; |
|
|
|
|
import org.springframework.context.annotation.AnnotationConfigApplicationContext; |
|
|
|
|
import org.springframework.context.annotation.Bean; |
|
|
|
|
import org.springframework.context.annotation.Configuration; |
|
|
|
|
@ -70,6 +71,8 @@ import static org.mockito.Mockito.mock;
@@ -70,6 +71,8 @@ import static org.mockito.Mockito.mock;
|
|
|
|
|
// @SuppressWarnings("deprecation")
|
|
|
|
|
class JtaAutoConfigurationTests { |
|
|
|
|
|
|
|
|
|
private final File buildOutput = new BuildOutput(JtaAutoConfigurationTests.class).getRootLocation(); |
|
|
|
|
|
|
|
|
|
private AnnotationConfigApplicationContext context; |
|
|
|
|
|
|
|
|
|
@AfterEach |
|
|
|
|
@ -100,7 +103,11 @@ class JtaAutoConfigurationTests {
@@ -100,7 +103,11 @@ class JtaAutoConfigurationTests {
|
|
|
|
|
|
|
|
|
|
@Test |
|
|
|
|
void atomikosSanityCheck() { |
|
|
|
|
this.context = new AnnotationConfigApplicationContext(JtaProperties.class, AtomikosJtaConfiguration.class); |
|
|
|
|
this.context = new AnnotationConfigApplicationContext(); |
|
|
|
|
TestPropertyValues.of("spring.jta.log-dir:" + new File(this.buildOutput, "atomikos-logs")) |
|
|
|
|
.applyTo(this.context); |
|
|
|
|
this.context.register(JtaProperties.class, AtomikosJtaConfiguration.class); |
|
|
|
|
this.context.refresh(); |
|
|
|
|
this.context.getBean(AtomikosProperties.class); |
|
|
|
|
this.context.getBean(UserTransactionService.class); |
|
|
|
|
this.context.getBean(UserTransactionManager.class); |
|
|
|
|
@ -114,7 +121,11 @@ class JtaAutoConfigurationTests {
@@ -114,7 +121,11 @@ class JtaAutoConfigurationTests {
|
|
|
|
|
@Test |
|
|
|
|
@Deprecated |
|
|
|
|
void bitronixSanityCheck() { |
|
|
|
|
this.context = new AnnotationConfigApplicationContext(JtaProperties.class, BitronixJtaConfiguration.class); |
|
|
|
|
this.context = new AnnotationConfigApplicationContext(); |
|
|
|
|
TestPropertyValues.of("spring.jta.log-dir:" + new File(this.buildOutput, "bitronix-logs")) |
|
|
|
|
.applyTo(this.context); |
|
|
|
|
this.context.register(JtaProperties.class, BitronixJtaConfiguration.class); |
|
|
|
|
this.context.refresh(); |
|
|
|
|
this.context.getBean(bitronix.tm.Configuration.class); |
|
|
|
|
this.context.getBean(TransactionManager.class); |
|
|
|
|
this.context.getBean(XADataSourceWrapper.class); |
|
|
|
|
@ -126,7 +137,11 @@ class JtaAutoConfigurationTests {
@@ -126,7 +137,11 @@ class JtaAutoConfigurationTests {
|
|
|
|
|
@Test |
|
|
|
|
@Deprecated |
|
|
|
|
void defaultBitronixServerId() throws UnknownHostException { |
|
|
|
|
this.context = new AnnotationConfigApplicationContext(BitronixJtaConfiguration.class); |
|
|
|
|
this.context = new AnnotationConfigApplicationContext(); |
|
|
|
|
TestPropertyValues.of("spring.jta.log-dir:" + new File(this.buildOutput, "bitronix-logs")) |
|
|
|
|
.applyTo(this.context); |
|
|
|
|
this.context.register(BitronixJtaConfiguration.class); |
|
|
|
|
this.context.refresh(); |
|
|
|
|
String serverId = this.context.getBean(bitronix.tm.Configuration.class).getServerId(); |
|
|
|
|
assertThat(serverId).isEqualTo(InetAddress.getLocalHost().getHostAddress()); |
|
|
|
|
} |
|
|
|
|
@ -135,7 +150,8 @@ class JtaAutoConfigurationTests {
@@ -135,7 +150,8 @@ class JtaAutoConfigurationTests {
|
|
|
|
|
@Deprecated |
|
|
|
|
void customBitronixServerId() { |
|
|
|
|
this.context = new AnnotationConfigApplicationContext(); |
|
|
|
|
TestPropertyValues.of("spring.jta.transactionManagerId:custom").applyTo(this.context); |
|
|
|
|
TestPropertyValues.of("spring.jta.transactionManagerId:custom", |
|
|
|
|
"spring.jta.log-dir:" + new File(this.buildOutput, "bitronix-logs")).applyTo(this.context); |
|
|
|
|
this.context.register(BitronixJtaConfiguration.class); |
|
|
|
|
this.context.refresh(); |
|
|
|
|
String serverId = this.context.getBean(bitronix.tm.Configuration.class).getServerId(); |
|
|
|
|
@ -158,7 +174,8 @@ class JtaAutoConfigurationTests {
@@ -158,7 +174,8 @@ class JtaAutoConfigurationTests {
|
|
|
|
|
void atomikosConnectionFactoryPoolConfiguration() { |
|
|
|
|
this.context = new AnnotationConfigApplicationContext(); |
|
|
|
|
TestPropertyValues.of("spring.jta.atomikos.connectionfactory.minPoolSize:5", |
|
|
|
|
"spring.jta.atomikos.connectionfactory.maxPoolSize:10").applyTo(this.context); |
|
|
|
|
"spring.jta.atomikos.connectionfactory.maxPoolSize:10", |
|
|
|
|
"spring.jta.log-dir:" + new File(this.buildOutput, "atomikos-logs")).applyTo(this.context); |
|
|
|
|
this.context.register(AtomikosJtaConfiguration.class, PoolConfiguration.class); |
|
|
|
|
this.context.refresh(); |
|
|
|
|
AtomikosConnectionFactoryBean connectionFactory = this.context.getBean(AtomikosConnectionFactoryBean.class); |
|
|
|
|
@ -171,7 +188,8 @@ class JtaAutoConfigurationTests {
@@ -171,7 +188,8 @@ class JtaAutoConfigurationTests {
|
|
|
|
|
void bitronixConnectionFactoryPoolConfiguration() { |
|
|
|
|
this.context = new AnnotationConfigApplicationContext(); |
|
|
|
|
TestPropertyValues.of("spring.jta.bitronix.connectionfactory.minPoolSize:5", |
|
|
|
|
"spring.jta.bitronix.connectionfactory.maxPoolSize:10").applyTo(this.context); |
|
|
|
|
"spring.jta.bitronix.connectionfactory.maxPoolSize:10", |
|
|
|
|
"spring.jta.log-dir:" + new File(this.buildOutput, "bitronix-logs")).applyTo(this.context); |
|
|
|
|
this.context.register(BitronixJtaConfiguration.class, PoolConfiguration.class); |
|
|
|
|
this.context.refresh(); |
|
|
|
|
org.springframework.boot.jta.bitronix.PoolingConnectionFactoryBean connectionFactory = this.context |
|
|
|
|
@ -184,7 +202,8 @@ class JtaAutoConfigurationTests {
@@ -184,7 +202,8 @@ class JtaAutoConfigurationTests {
|
|
|
|
|
void atomikosDataSourcePoolConfiguration() { |
|
|
|
|
this.context = new AnnotationConfigApplicationContext(); |
|
|
|
|
TestPropertyValues |
|
|
|
|
.of("spring.jta.atomikos.datasource.minPoolSize:5", "spring.jta.atomikos.datasource.maxPoolSize:10") |
|
|
|
|
.of("spring.jta.atomikos.datasource.minPoolSize:5", "spring.jta.atomikos.datasource.maxPoolSize:10", |
|
|
|
|
"spring.jta.log-dir:" + new File(this.buildOutput, "atomikos-logs")) |
|
|
|
|
.applyTo(this.context); |
|
|
|
|
this.context.register(AtomikosJtaConfiguration.class, PoolConfiguration.class); |
|
|
|
|
this.context.refresh(); |
|
|
|
|
@ -198,7 +217,8 @@ class JtaAutoConfigurationTests {
@@ -198,7 +217,8 @@ class JtaAutoConfigurationTests {
|
|
|
|
|
void bitronixDataSourcePoolConfiguration() { |
|
|
|
|
this.context = new AnnotationConfigApplicationContext(); |
|
|
|
|
TestPropertyValues |
|
|
|
|
.of("spring.jta.bitronix.datasource.minPoolSize:5", "spring.jta.bitronix.datasource.maxPoolSize:10") |
|
|
|
|
.of("spring.jta.bitronix.datasource.minPoolSize:5", "spring.jta.bitronix.datasource.maxPoolSize:10", |
|
|
|
|
"spring.jta.log-dir:" + new File(this.buildOutput, "bitronix-logs")) |
|
|
|
|
.applyTo(this.context); |
|
|
|
|
this.context.register(BitronixJtaConfiguration.class, PoolConfiguration.class); |
|
|
|
|
this.context.refresh(); |
|
|
|
|
@ -212,7 +232,8 @@ class JtaAutoConfigurationTests {
@@ -212,7 +232,8 @@ class JtaAutoConfigurationTests {
|
|
|
|
|
void atomikosCustomizeJtaTransactionManagerUsingProperties() { |
|
|
|
|
this.context = new AnnotationConfigApplicationContext(); |
|
|
|
|
TestPropertyValues |
|
|
|
|
.of("spring.transaction.default-timeout:30", "spring.transaction.rollback-on-commit-failure:true") |
|
|
|
|
.of("spring.transaction.default-timeout:30", "spring.transaction.rollback-on-commit-failure:true", |
|
|
|
|
"spring.jta.log-dir:" + new File(this.buildOutput, "atomikos-logs")) |
|
|
|
|
.applyTo(this.context); |
|
|
|
|
this.context.register(AtomikosJtaConfiguration.class, TransactionAutoConfiguration.class); |
|
|
|
|
this.context.refresh(); |
|
|
|
|
@ -226,7 +247,8 @@ class JtaAutoConfigurationTests {
@@ -226,7 +247,8 @@ class JtaAutoConfigurationTests {
|
|
|
|
|
void bitronixCustomizeJtaTransactionManagerUsingProperties() { |
|
|
|
|
this.context = new AnnotationConfigApplicationContext(); |
|
|
|
|
TestPropertyValues |
|
|
|
|
.of("spring.transaction.default-timeout:30", "spring.transaction.rollback-on-commit-failure:true") |
|
|
|
|
.of("spring.transaction.default-timeout:30", "spring.transaction.rollback-on-commit-failure:true", |
|
|
|
|
"spring.jta.log-dir:" + new File(this.buildOutput, "bitronix-logs")) |
|
|
|
|
.applyTo(this.context); |
|
|
|
|
this.context.register(BitronixJtaConfiguration.class, TransactionAutoConfiguration.class); |
|
|
|
|
this.context.refresh(); |
|
|
|
|
|