15
15
*/
16
16
package org .springframework .batch .core .launch .support ;
17
17
18
+ import org .jetbrains .annotations .NotNull ;
18
19
import org .junit .jupiter .api .Assertions ;
19
20
import org .junit .jupiter .api .Test ;
20
21
import org .mockito .Mockito ;
25
26
import org .springframework .batch .core .converter .JobParametersConverter ;
26
27
import org .springframework .batch .core .launch .JobOperator ;
27
28
import org .springframework .batch .core .repository .JobRepository ;
29
+ import org .springframework .batch .support .transaction .ResourcelessTransactionManager ;
28
30
import org .springframework .test .util .AopTestUtils ;
29
31
import org .springframework .transaction .PlatformTransactionManager ;
30
32
import org .springframework .transaction .interceptor .TransactionAttributeSource ;
@@ -65,6 +67,26 @@ public void testJobOperatorCreation() throws Exception {
65
67
Assertions .assertEquals (this .transactionManager , getTransactionManagerSetOnJobOperator (jobOperator ));
66
68
}
67
69
70
+ @ Test
71
+ public void testDefaultTransactionManagerConfiguration () throws Exception {
72
+ // given
73
+ JobOperatorFactoryBean jobOperatorFactoryBean = new JobOperatorFactoryBean ();
74
+ jobOperatorFactoryBean .setJobRegistry (this .jobRegistry );
75
+ jobOperatorFactoryBean .setJobRepository (this .jobRepository );
76
+ jobOperatorFactoryBean .setJobParametersConverter (this .jobParametersConverter );
77
+ jobOperatorFactoryBean .afterPropertiesSet ();
78
+
79
+ // when
80
+ JobOperator jobOperator = jobOperatorFactoryBean .getObject ();
81
+
82
+ // then
83
+ Assertions .assertNotNull (jobOperator );
84
+ Object targetObject = AopTestUtils .getTargetObject (jobOperator );
85
+ Assertions .assertInstanceOf (TaskExecutorJobOperator .class , targetObject );
86
+ Assertions .assertInstanceOf (ResourcelessTransactionManager .class ,
87
+ getTransactionManagerSetOnJobOperator (jobOperator ));
88
+ }
89
+
68
90
@ Test
69
91
public void testCustomTransactionAttributesSource () throws Exception {
70
92
// given
@@ -87,10 +109,7 @@ public void testCustomTransactionAttributesSource() throws Exception {
87
109
}
88
110
89
111
private PlatformTransactionManager getTransactionManagerSetOnJobOperator (JobOperator jobOperator ) {
90
- Advised target = (Advised ) jobOperator ; // proxy created by
91
- // AbstractJobOperatorFactoryBean
92
- Advisor [] advisors = target .getAdvisors ();
93
- for (Advisor advisor : advisors ) {
112
+ for (Advisor advisor : ((Advised ) jobOperator ).getAdvisors ()) {
94
113
if (advisor .getAdvice () instanceof TransactionInterceptor transactionInterceptor ) {
95
114
return (PlatformTransactionManager ) transactionInterceptor .getTransactionManager ();
96
115
}
@@ -99,10 +118,7 @@ private PlatformTransactionManager getTransactionManagerSetOnJobOperator(JobOper
99
118
}
100
119
101
120
private TransactionAttributeSource getTransactionAttributesSourceSetOnJobOperator (JobOperator jobOperator ) {
102
- Advised target = (Advised ) jobOperator ; // proxy created by
103
- // AbstractJobOperatorFactoryBean
104
- Advisor [] advisors = target .getAdvisors ();
105
- for (Advisor advisor : advisors ) {
121
+ for (Advisor advisor : ((Advised ) jobOperator ).getAdvisors ()) {
106
122
if (advisor .getAdvice () instanceof TransactionInterceptor transactionInterceptor ) {
107
123
return transactionInterceptor .getTransactionAttributeSource ();
108
124
}
0 commit comments