Skip to content

Commit 48800f1

Browse files
committed
Polish contribution
1 parent a2adc5a commit 48800f1

27 files changed

+670
-524
lines changed

spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/transaction/jta/NarayanaJtaConfiguration.java

+33-22
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright 2012-2015 the original author or authors.
2+
* Copyright 2012-2016 the original author or authors.
33
*
44
* Licensed under the Apache License, Version 2.0 (the "License");
55
* you may not use this file except in compliance with the License.
@@ -22,7 +22,6 @@
2222

2323
import com.arjuna.ats.jbossatx.jta.RecoveryManagerService;
2424

25-
import org.springframework.beans.factory.annotation.Autowired;
2625
import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
2726
import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
2827
import org.springframework.boot.jta.XAConnectionFactoryWrapper;
@@ -42,15 +41,20 @@
4241
/**
4342
* JTA Configuration for <a href="http://narayana.io/">Narayana</a>.
4443
*
45-
* @author <a href="mailto:[email protected]">Gytis Trikleris</a>
44+
* @author Gytis Trikleris
45+
* @since 1.4.0
4646
*/
4747
@Configuration
48-
@ConditionalOnClass({ JtaTransactionManager.class, com.arjuna.ats.jta.UserTransaction.class })
48+
@ConditionalOnClass({ JtaTransactionManager.class,
49+
com.arjuna.ats.jta.UserTransaction.class })
4950
@ConditionalOnMissingBean(PlatformTransactionManager.class)
5051
public class NarayanaJtaConfiguration {
5152

52-
@Autowired
53-
private JtaProperties jtaProperties;
53+
private final JtaProperties jtaProperties;
54+
55+
public NarayanaJtaConfiguration(JtaProperties jtaProperties) {
56+
this.jtaProperties = jtaProperties;
57+
}
5458

5559
@Bean
5660
@ConditionalOnMissingBean
@@ -60,53 +64,57 @@ public NarayanaProperties narayanaProperties() {
6064

6165
@Bean
6266
@ConditionalOnMissingBean
63-
public NarayanaConfigurationBean narayanaConfigurationBean(NarayanaProperties narayanaProperties) {
67+
public NarayanaConfigurationBean narayanaConfiguration(
68+
NarayanaProperties properties) {
6469
if (this.jtaProperties.getLogDir() != null) {
65-
narayanaProperties.setLogDir(this.jtaProperties.getLogDir());
70+
properties.setLogDir(this.jtaProperties.getLogDir());
6671
}
67-
6872
if (this.jtaProperties.getTransactionManagerId() != null) {
69-
narayanaProperties.setTransactionManagerId(this.jtaProperties.getTransactionManagerId());
73+
properties.setTransactionManagerId(
74+
this.jtaProperties.getTransactionManagerId());
7075
}
71-
72-
return new NarayanaConfigurationBean(narayanaProperties);
76+
return new NarayanaConfigurationBean(properties);
7377
}
7478

7579
@Bean
76-
@DependsOn("narayanaConfigurationBean")
80+
@DependsOn("narayanaConfiguration")
7781
@ConditionalOnMissingBean
7882
public UserTransaction narayanaUserTransaction() {
7983
return com.arjuna.ats.jta.UserTransaction.userTransaction();
8084
}
8185

8286
@Bean
83-
@DependsOn("narayanaConfigurationBean")
87+
@DependsOn("narayanaConfiguration")
8488
@ConditionalOnMissingBean
8589
public TransactionManager narayanaTransactionManager() {
8690
return com.arjuna.ats.jta.TransactionManager.transactionManager();
8791
}
8892

8993
@Bean
90-
@DependsOn("narayanaConfigurationBean")
94+
@DependsOn("narayanaConfiguration")
9195
public RecoveryManagerService narayanaRecoveryManagerService() {
9296
return new RecoveryManagerService();
9397
}
9498

9599
@Bean
96-
public NarayanaRecoveryManagerBean narayanaRecoveryManagerBean(RecoveryManagerService recoveryManagerService) {
100+
public NarayanaRecoveryManagerBean narayanaRecoveryManager(
101+
RecoveryManagerService recoveryManagerService) {
97102
return new NarayanaRecoveryManagerBean(recoveryManagerService);
98103
}
99104

100105
@Bean
101-
public JtaTransactionManager transactionManager(UserTransaction userTransaction, TransactionManager transactionManager) {
106+
public JtaTransactionManager transactionManager(UserTransaction userTransaction,
107+
TransactionManager transactionManager) {
102108
return new JtaTransactionManager(userTransaction, transactionManager);
103109
}
104110

105111
@Bean
106112
@ConditionalOnMissingBean(XADataSourceWrapper.class)
107-
public XADataSourceWrapper xaDataSourceWrapper(NarayanaRecoveryManagerBean narayanaRecoveryManagerBean,
113+
public XADataSourceWrapper xaDataSourceWrapper(
114+
NarayanaRecoveryManagerBean narayanaRecoveryManagerBean,
108115
NarayanaProperties narayanaProperties) {
109-
return new NarayanaXADataSourceWrapper(narayanaRecoveryManagerBean, narayanaProperties);
116+
return new NarayanaXADataSourceWrapper(narayanaRecoveryManagerBean,
117+
narayanaProperties);
110118
}
111119

112120
@Bean
@@ -121,9 +129,12 @@ static class NarayanaJtaJmsConfiguration {
121129

122130
@Bean
123131
@ConditionalOnMissingBean(XAConnectionFactoryWrapper.class)
124-
public NarayanaXAConnectionFactoryWrapper xaConnectionFactoryWrapper(TransactionManager transactionManager,
125-
NarayanaRecoveryManagerBean narayanaRecoveryManagerBean, NarayanaProperties narayanaProperties) {
126-
return new NarayanaXAConnectionFactoryWrapper(transactionManager, narayanaRecoveryManagerBean, narayanaProperties);
132+
public NarayanaXAConnectionFactoryWrapper xaConnectionFactoryWrapper(
133+
TransactionManager transactionManager,
134+
NarayanaRecoveryManagerBean narayanaRecoveryManagerBean,
135+
NarayanaProperties narayanaProperties) {
136+
return new NarayanaXAConnectionFactoryWrapper(transactionManager,
137+
narayanaRecoveryManagerBean, narayanaProperties);
127138
}
128139

129140
}

spring-boot-dependencies/pom.xml

+32-32
Original file line numberDiff line numberDiff line change
@@ -100,6 +100,7 @@
100100
<jaxen.version>1.1.6</jaxen.version>
101101
<jaybird.version>2.2.10</jaybird.version>
102102
<jboss-logging.version>3.3.0.Final</jboss-logging.version>
103+
<jboss-transaction-spi.version>7.3.0.Final</jboss-transaction-spi.version>
103104
<jdom2.version>2.0.6</jdom2.version>
104105
<jedis.version>2.8.1</jedis.version>
105106
<jersey.version>2.22.2</jersey.version>
@@ -124,6 +125,7 @@
124125
<mockito.version>1.10.19</mockito.version>
125126
<mongodb.version>2.14.2</mongodb.version>
126127
<mysql.version>5.1.38</mysql.version>
128+
<narayana.version>5.3.2.Final</narayana.version>
127129
<nekohtml.version>1.9.22</nekohtml.version>
128130
<neo4j-ogm.version>2.0.0</neo4j-ogm.version>
129131
<postgresql.version>9.4.1208.jre7</postgresql.version>
@@ -174,8 +176,6 @@
174176
<webjars-hal-browser.version>9f96c74</webjars-hal-browser.version>
175177
<webjars-locator.version>0.30</webjars-locator.version>
176178
<wsdl4j.version>1.6.3</wsdl4j.version>
177-
<narayana.version>5.3.2.Final</narayana.version>
178-
<jboss-transaction-spi.version>7.3.0.Final</jboss-transaction-spi.version>
179179
</properties>
180180
<prerequisites>
181181
<maven>3.2.1</maven>
@@ -401,11 +401,6 @@
401401
<artifactId>spring-boot-starter-jta-bitronix</artifactId>
402402
<version>1.4.0.BUILD-SNAPSHOT</version>
403403
</dependency>
404-
<dependency>
405-
<groupId>org.springframework.boot</groupId>
406-
<artifactId>spring-boot-starter-jta-narayana</artifactId>
407-
<version>1.4.0.BUILD-SNAPSHOT</version>
408-
</dependency>
409404
<dependency>
410405
<groupId>org.springframework.boot</groupId>
411406
<artifactId>spring-boot-starter-undertow</artifactId>
@@ -436,6 +431,11 @@
436431
<artifactId>spring-boot-starter-mustache</artifactId>
437432
<version>1.4.0.BUILD-SNAPSHOT</version>
438433
</dependency>
434+
<dependency>
435+
<groupId>org.springframework.boot</groupId>
436+
<artifactId>spring-boot-starter-jta-narayana</artifactId>
437+
<version>1.4.0.BUILD-SNAPSHOT</version>
438+
</dependency>
439439
<dependency>
440440
<groupId>org.springframework.boot</groupId>
441441
<artifactId>spring-boot-starter-remote-shell</artifactId>
@@ -1740,11 +1740,36 @@
17401740
<artifactId>javassist</artifactId>
17411741
<version>${javassist.version}</version>
17421742
</dependency>
1743+
<dependency>
1744+
<groupId>org.jboss</groupId>
1745+
<artifactId>jboss-transaction-spi</artifactId>
1746+
<version>${jboss-transaction-spi.version}</version>
1747+
</dependency>
17431748
<dependency>
17441749
<groupId>org.jboss.logging</groupId>
17451750
<artifactId>jboss-logging</artifactId>
17461751
<version>${jboss-logging.version}</version>
17471752
</dependency>
1753+
<dependency>
1754+
<groupId>org.jboss.narayana.jta</groupId>
1755+
<artifactId>jdbc</artifactId>
1756+
<version>${narayana.version}</version>
1757+
</dependency>
1758+
<dependency>
1759+
<groupId>org.jboss.narayana.jta</groupId>
1760+
<artifactId>jms</artifactId>
1761+
<version>${narayana.version}</version>
1762+
</dependency>
1763+
<dependency>
1764+
<groupId>org.jboss.narayana.jta</groupId>
1765+
<artifactId>jta</artifactId>
1766+
<version>${narayana.version}</version>
1767+
</dependency>
1768+
<dependency>
1769+
<groupId>org.jboss.narayana.jts</groupId>
1770+
<artifactId>narayana-jts-integration</artifactId>
1771+
<version>${narayana.version}</version>
1772+
</dependency>
17481773
<dependency>
17491774
<groupId>org.jdom</groupId>
17501775
<artifactId>jdom2</artifactId>
@@ -2219,31 +2244,6 @@
22192244
<artifactId>wsdl4j</artifactId>
22202245
<version>${wsdl4j.version}</version>
22212246
</dependency>
2222-
<dependency>
2223-
<groupId>org.jboss.narayana.jta</groupId>
2224-
<artifactId>jta</artifactId>
2225-
<version>${narayana.version}</version>
2226-
</dependency>
2227-
<dependency>
2228-
<groupId>org.jboss.narayana.jta</groupId>
2229-
<artifactId>jdbc</artifactId>
2230-
<version>${narayana.version}</version>
2231-
</dependency>
2232-
<dependency>
2233-
<groupId>org.jboss.narayana.jta</groupId>
2234-
<artifactId>jms</artifactId>
2235-
<version>${narayana.version}</version>
2236-
</dependency>
2237-
<dependency>
2238-
<groupId>org.jboss.narayana.jts</groupId>
2239-
<artifactId>narayana-jts-integration</artifactId>
2240-
<version>${narayana.version}</version>
2241-
</dependency>
2242-
<dependency>
2243-
<groupId>org.jboss</groupId>
2244-
<artifactId>jboss-transaction-spi</artifactId>
2245-
<version>${jboss-transaction-spi.version}</version>
2246-
</dependency>
22472247
</dependencies>
22482248
</dependencyManagement>
22492249
<build>

spring-boot-docs/src/main/asciidoc/appendix-application-properties.adoc

+4-4
Original file line numberDiff line numberDiff line change
@@ -716,17 +716,17 @@ content into your application; rather pick only the properties that you need.
716716
spring.jta.bitronix.properties.warn-about-zero-resource-transaction=true # Log a warning for transactions executed without a single enlisted resource.
717717
718718
# NARAYANA
719-
spring.jta.narayana.one-phase-commit=true # Enable or disable one phase commit optimisation
720719
spring.jta.narayana.default-timeout=60 # Set default transaction timeout in seconds
720+
spring.jta.narayana.expiry-scanners=com.arjuna.ats.internal.arjuna.recovery.ExpiredTransactionStatusManagerScanner # List of ExpiryScanner implementations
721+
spring.jta.narayana.one-phase-commit=true # Enable or disable one phase commit optimisation
721722
spring.jta.narayana.periodic-recovery-period=120 # Set interval in which periodic recovery scans are performed in seconds
722723
spring.jta.narayana.recovery-backoff-period=10 # Set back off period between first and second phases of the recovery scan in seconds
723-
spring.jta.narayana.xa-resource-orphan-filters=com.arjuna.ats.internal.jta.recovery.arjunacore.JTATransactionLogXAResourceOrphanFilter,com.arjuna.ats.internal.jta.recovery.arjunacore.JTANodeNameXAResourceOrphanFilter # List of XAResourceOrphanFilter implementations
724-
spring.jta.narayana.recovery-modules=com.arjuna.ats.internal.arjuna.recovery.AtomicActionRecoveryModule,com.arjuna.ats.internal.jta.recovery.arjunacore.XARecoveryModule # List of RecoveryModule implementations
725-
spring.jta.narayana.expiry-scanners=com.arjuna.ats.internal.arjuna.recovery.ExpiredTransactionStatusManagerScanner # List of ExpiryScanner implementations
726724
spring.jta.narayana.recovery-db-user= # Database username to be used by recovery manager
727725
spring.jta.narayana.recovery-db-pass= # Database password to be used by recovery manager
728726
spring.jta.narayana.recovery-jms-user= # JMS username to be used by recovery manager
729727
spring.jta.narayana.recovery-jms-pass= # JMS password to be used by recovery manager
728+
spring.jta.narayana.recovery-modules=com.arjuna.ats.internal.arjuna.recovery.AtomicActionRecoveryModule,com.arjuna.ats.internal.jta.recovery.arjunacore.XARecoveryModule # List of RecoveryModule implementations
729+
spring.jta.narayana.xa-resource-orphan-filters=com.arjuna.ats.internal.jta.recovery.arjunacore.JTATransactionLogXAResourceOrphanFilter,com.arjuna.ats.internal.jta.recovery.arjunacore.JTANodeNameXAResourceOrphanFilter # List of XAResourceOrphanFilter implementations
730730
731731
# EMBEDDED MONGODB ({sc-spring-boot-autoconfigure}/mongo/embedded/EmbeddedMongoProperties.{sc-ext}[EmbeddedMongoProperties])
732732
spring.mongodb.embedded.features=SYNC_DELAY # Comma-separated list of features to enable.
Original file line numberDiff line numberDiff line change
@@ -1,57 +1,56 @@
11
<?xml version="1.0" encoding="UTF-8"?>
2-
<project xmlns="http://maven.apache.org/POM/4.0.0"
3-
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4-
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
5-
<modelVersion>4.0.0</modelVersion>
6-
<parent>
7-
<artifactId>spring-boot-samples</artifactId>
8-
<groupId>org.springframework.boot</groupId>
9-
<version>1.4.0.BUILD-SNAPSHOT</version>
10-
</parent>
11-
<artifactId>spring-boot-sample-jta-narayana</artifactId>
12-
<name>Spring Boot Narayana JTA Sample</name>
13-
<description>Spring Boot Narayana JTA Sample</description>
14-
<url>http://projects.spring.io/spring-boot/</url>
15-
<properties>
16-
<main.basedir>${basedir}/../..</main.basedir>
17-
</properties>
18-
<dependencies>
19-
<dependency>
20-
<groupId>org.springframework</groupId>
21-
<artifactId>spring-jms</artifactId>
22-
</dependency>
23-
<dependency>
24-
<groupId>org.springframework.boot</groupId>
25-
<artifactId>spring-boot-starter-data-jpa</artifactId>
26-
</dependency>
27-
<dependency>
28-
<groupId>org.springframework.boot</groupId>
29-
<artifactId>spring-boot-starter-jta-narayana</artifactId>
30-
</dependency>
31-
<dependency>
32-
<groupId>org.springframework.boot</groupId>
33-
<artifactId>spring-boot-starter-hornetq</artifactId>
34-
</dependency>
35-
<dependency>
36-
<groupId>org.hornetq</groupId>
37-
<artifactId>hornetq-jms-server</artifactId>
38-
</dependency>
39-
<dependency>
40-
<groupId>com.h2database</groupId>
41-
<artifactId>h2</artifactId>
42-
</dependency>
43-
<dependency>
44-
<groupId>org.springframework.boot</groupId>
45-
<artifactId>spring-boot-starter-test</artifactId>
46-
<scope>test</scope>
47-
</dependency>
48-
</dependencies>
49-
<build>
50-
<plugins>
51-
<plugin>
52-
<groupId>org.springframework.boot</groupId>
53-
<artifactId>spring-boot-maven-plugin</artifactId>
54-
</plugin>
55-
</plugins>
56-
</build>
57-
</project>
2+
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
3+
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
4+
<modelVersion>4.0.0</modelVersion>
5+
<parent>
6+
<artifactId>spring-boot-samples</artifactId>
7+
<groupId>org.springframework.boot</groupId>
8+
<version>1.4.0.BUILD-SNAPSHOT</version>
9+
</parent>
10+
<artifactId>spring-boot-sample-jta-narayana</artifactId>
11+
<name>Spring Boot Narayana JTA Sample</name>
12+
<description>Spring Boot Narayana JTA Sample</description>
13+
<url>http://projects.spring.io/spring-boot/</url>
14+
<properties>
15+
<main.basedir>${basedir}/../..</main.basedir>
16+
</properties>
17+
<dependencies>
18+
<dependency>
19+
<groupId>org.springframework</groupId>
20+
<artifactId>spring-jms</artifactId>
21+
</dependency>
22+
<dependency>
23+
<groupId>org.springframework.boot</groupId>
24+
<artifactId>spring-boot-starter-data-jpa</artifactId>
25+
</dependency>
26+
<dependency>
27+
<groupId>org.springframework.boot</groupId>
28+
<artifactId>spring-boot-starter-jta-narayana</artifactId>
29+
</dependency>
30+
<dependency>
31+
<groupId>org.springframework.boot</groupId>
32+
<artifactId>spring-boot-starter-hornetq</artifactId>
33+
</dependency>
34+
<dependency>
35+
<groupId>org.hornetq</groupId>
36+
<artifactId>hornetq-jms-server</artifactId>
37+
</dependency>
38+
<dependency>
39+
<groupId>com.h2database</groupId>
40+
<artifactId>h2</artifactId>
41+
</dependency>
42+
<dependency>
43+
<groupId>org.springframework.boot</groupId>
44+
<artifactId>spring-boot-starter-test</artifactId>
45+
<scope>test</scope>
46+
</dependency>
47+
</dependencies>
48+
<build>
49+
<plugins>
50+
<plugin>
51+
<groupId>org.springframework.boot</groupId>
52+
<artifactId>spring-boot-maven-plugin</artifactId>
53+
</plugin>
54+
</plugins>
55+
</build>
56+
</project>

spring-boot-samples/spring-boot-sample-jta-narayana/src/main/java/sample/narayana/Account.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright 2012-2014 the original author or authors.
2+
* Copyright 2012-2016 the original author or authors.
33
*
44
* Licensed under the Apache License, Version 2.0 (the "License");
55
* you may not use this file except in compliance with the License.

spring-boot-samples/spring-boot-sample-jta-narayana/src/main/java/sample/narayana/AccountRepository.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright 2012-2014 the original author or authors.
2+
* Copyright 2012-2016 the original author or authors.
33
*
44
* Licensed under the Apache License, Version 2.0 (the "License");
55
* you may not use this file except in compliance with the License.

0 commit comments

Comments
 (0)