Skip to content
This repository was archived by the owner on Oct 24, 2020. It is now read-only.

Commit b082b60

Browse files
committed
Add the UnsupportedTransactionManager class to simplify our library
1 parent fdc6a02 commit b082b60

File tree

4 files changed

+116
-6
lines changed

4 files changed

+116
-6
lines changed

deployment/src/test/java/org/seasar/doma/quarkus/deployment/InjectConfigTest.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22

33
import static org.junit.jupiter.api.Assertions.assertEquals;
44
import static org.junit.jupiter.api.Assertions.assertNotNull;
5-
import static org.junit.jupiter.api.Assertions.assertNull;
65

76
import io.quarkus.test.QuarkusUnitTest;
87
import javax.inject.Inject;
@@ -50,7 +49,7 @@ public void test() {
5049
assertNotNull(config.getMapKeyNaming());
5150
assertNotNull(config.getCommenter());
5251
assertNotNull(config.getEntityListenerProvider());
53-
assertNull(config.getTransactionManager());
52+
assertNotNull(config.getTransactionManager());
5453
assertEquals("<default>", config.getDataSourceName());
5554
assertEquals(0, config.getBatchSize());
5655
assertEquals(0, config.getFetchSize());

runtime/src/main/java/org/seasar/doma/quarkus/runtime/DbConfig.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@ public DbConfig(
8080
this.mapKeyNaming = Objects.requireNonNull(mapKeyNaming);
8181
this.commenter = Objects.requireNonNull(commenter);
8282
this.entityListenerProvider = Objects.requireNonNull(entityListenerProvider);
83-
this.transactionManager = transactionManager;
83+
this.transactionManager = Objects.requireNonNull(transactionManager);
8484
this.dataSourceName = Objects.requireNonNull(dataSourceName);
8585
this.batchSize = batchSize;
8686
this.fetchSize = fetchSize;

runtime/src/main/java/org/seasar/doma/quarkus/runtime/DomaProducer.java

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
import io.quarkus.arc.DefaultBean;
44
import java.util.Objects;
55
import javax.enterprise.context.ApplicationScoped;
6-
import javax.enterprise.inject.Instance;
76
import javax.inject.Singleton;
87
import javax.sql.DataSource;
98
import org.seasar.doma.jdbc.ClassHelper;
@@ -169,6 +168,12 @@ SqlLogType exceptionSqlLogType() {
169168
return Objects.requireNonNull(exceptionSqlLogType);
170169
}
171170

171+
@ApplicationScoped
172+
@DefaultBean
173+
TransactionManager transactionManager() {
174+
return new UnsupportedTransactionManager();
175+
}
176+
172177
@ApplicationScoped
173178
@DefaultBean
174179
DbConfig dbConfig(
@@ -187,7 +192,7 @@ DbConfig dbConfig(
187192
MapKeyNaming mapKeyNaming,
188193
Commenter commenter,
189194
EntityListenerProvider entityListenerProvider,
190-
Instance<TransactionManager> transactionManager) {
195+
TransactionManager transactionManager) {
191196
return new DbConfig(
192197
dataSource,
193198
dialect,
@@ -204,7 +209,7 @@ DbConfig dbConfig(
204209
mapKeyNaming,
205210
commenter,
206211
entityListenerProvider,
207-
transactionManager.isResolvable() ? transactionManager.get() : null,
212+
transactionManager,
208213
dataSourceName,
209214
batchSize,
210215
fetchSize,
Lines changed: 106 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,106 @@
1+
package org.seasar.doma.quarkus.runtime;
2+
3+
import java.util.function.Supplier;
4+
import org.seasar.doma.jdbc.tx.TransactionIsolationLevel;
5+
import org.seasar.doma.jdbc.tx.TransactionManager;
6+
7+
public class UnsupportedTransactionManager implements TransactionManager {
8+
9+
@Override
10+
public void required(Runnable block) {
11+
throw useNarayanaJta();
12+
}
13+
14+
@Override
15+
public void required(TransactionIsolationLevel isolationLevel, Runnable block) {
16+
throw useNarayanaJta();
17+
}
18+
19+
@Override
20+
public <RESULT> RESULT required(Supplier<RESULT> supplier) {
21+
throw useNarayanaJta();
22+
}
23+
24+
@Override
25+
public <RESULT> RESULT required(
26+
TransactionIsolationLevel isolationLevel, Supplier<RESULT> supplier) {
27+
throw useNarayanaJta();
28+
}
29+
30+
@Override
31+
public void requiresNew(Runnable block) {
32+
throw useNarayanaJta();
33+
}
34+
35+
@Override
36+
public void requiresNew(TransactionIsolationLevel isolationLevel, Runnable block) {
37+
throw useNarayanaJta();
38+
}
39+
40+
@Override
41+
public <RESULT> RESULT requiresNew(Supplier<RESULT> supplier) {
42+
throw useNarayanaJta();
43+
}
44+
45+
@Override
46+
public <RESULT> RESULT requiresNew(
47+
TransactionIsolationLevel isolationLevel, Supplier<RESULT> supplier) {
48+
throw useNarayanaJta();
49+
}
50+
51+
@Override
52+
public void notSupported(Runnable block) {
53+
throw useNarayanaJta();
54+
}
55+
56+
@Override
57+
public void notSupported(TransactionIsolationLevel isolationLevel, Runnable block) {
58+
throw useNarayanaJta();
59+
}
60+
61+
@Override
62+
public <RESULT> RESULT notSupported(Supplier<RESULT> supplier) {
63+
throw useNarayanaJta();
64+
}
65+
66+
@Override
67+
public <RESULT> RESULT notSupported(
68+
TransactionIsolationLevel isolationLevel, Supplier<RESULT> supplier) {
69+
throw useNarayanaJta();
70+
}
71+
72+
@Override
73+
public void setRollbackOnly() {
74+
throw useNarayanaJta();
75+
}
76+
77+
@Override
78+
public boolean isRollbackOnly() {
79+
throw useNarayanaJta();
80+
}
81+
82+
@Override
83+
public void setSavepoint(String savepointName) {
84+
throw new UnsupportedOperationException();
85+
}
86+
87+
@Override
88+
public boolean hasSavepoint(String savepointName) {
89+
throw new UnsupportedOperationException();
90+
}
91+
92+
@Override
93+
public void releaseSavepoint(String savepointName) {
94+
throw new UnsupportedOperationException();
95+
}
96+
97+
@Override
98+
public void rollback(String savepointName) {
99+
throw new UnsupportedOperationException();
100+
}
101+
102+
private UnsupportedOperationException useNarayanaJta() {
103+
return new UnsupportedOperationException(
104+
"Use quarkus-narayana-jta directly. See https://quarkus.io/guides/transaction");
105+
}
106+
}

0 commit comments

Comments
 (0)