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

Commit e465687

Browse files
committed
Register the UnsupportedTransactionManager as an additional bean
1 parent f2bc8fa commit e465687

File tree

4 files changed

+50
-7
lines changed

4 files changed

+50
-7
lines changed

deployment/src/main/java/org/seasar/doma/quarkus/deployment/DomaProcessor.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
import org.seasar.doma.quarkus.runtime.DomaRecorder;
2525
import org.seasar.doma.quarkus.runtime.JtaRequiresNewController;
2626
import org.seasar.doma.quarkus.runtime.ScriptExecutor;
27+
import org.seasar.doma.quarkus.runtime.UnsupportedTransactionManager;
2728

2829
class DomaProcessor {
2930

@@ -36,7 +37,8 @@ FeatureBuildItem feature() {
3637

3738
@BuildStep
3839
AdditionalBeanBuildItem additionalBeans() {
39-
return new AdditionalBeanBuildItem(DomaProducer.class, JtaRequiresNewController.class);
40+
return new AdditionalBeanBuildItem(
41+
DomaProducer.class, JtaRequiresNewController.class, UnsupportedTransactionManager.class);
4042
}
4143

4244
@BuildStep
Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
package org.seasar.doma.quarkus.deployment;
2+
3+
import static org.junit.jupiter.api.Assertions.assertThrows;
4+
import static org.junit.jupiter.api.Assertions.assertTrue;
5+
6+
import io.quarkus.test.QuarkusUnitTest;
7+
import javax.inject.Inject;
8+
import org.jboss.shrinkwrap.api.ShrinkWrap;
9+
import org.jboss.shrinkwrap.api.asset.StringAsset;
10+
import org.jboss.shrinkwrap.api.spec.JavaArchive;
11+
import org.junit.jupiter.api.Test;
12+
import org.junit.jupiter.api.extension.RegisterExtension;
13+
import org.seasar.doma.jdbc.tx.TransactionManager;
14+
15+
public class UnsupportedTransactionManagerTest {
16+
17+
@RegisterExtension
18+
static QuarkusUnitTest runner =
19+
new QuarkusUnitTest()
20+
.setArchiveProducer(
21+
() ->
22+
ShrinkWrap.create(JavaArchive.class)
23+
.add(
24+
new StringAsset(
25+
"quarkus.datasource.db-kind=h2\n"
26+
+ "quarkus.datasource.username=USERNAME-NAMED\n"
27+
+ "quarkus.datasource.jdbc.url=jdbc:h2:tcp://localhost/mem:testing\n"
28+
+ "quarkus.datasource.jdbc.driver=org.h2.Driver\n"),
29+
"application.properties"));
30+
31+
@Inject TransactionManager tm;
32+
33+
@Test
34+
void test() {
35+
var ex =
36+
assertThrows(
37+
UnsupportedOperationException.class,
38+
() -> {
39+
tm.required(() -> {});
40+
});
41+
assertTrue(ex.getMessage().startsWith("Use quarkus-narayana-jta"));
42+
}
43+
}

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

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -172,12 +172,6 @@ SqlLogType exceptionSqlLogType() {
172172
return Objects.requireNonNull(exceptionSqlLogType);
173173
}
174174

175-
@ApplicationScoped
176-
@DefaultBean
177-
TransactionManager transactionManager() {
178-
return new UnsupportedTransactionManager();
179-
}
180-
181175
@Singleton
182176
@DefaultBean
183177
LogPreferences logPreferences() {

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

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,13 @@
11
package org.seasar.doma.quarkus.runtime;
22

3+
import io.quarkus.arc.DefaultBean;
34
import java.util.function.Supplier;
5+
import javax.enterprise.context.ApplicationScoped;
46
import org.seasar.doma.jdbc.tx.TransactionIsolationLevel;
57
import org.seasar.doma.jdbc.tx.TransactionManager;
68

9+
@ApplicationScoped
10+
@DefaultBean
711
public class UnsupportedTransactionManager implements TransactionManager {
812

913
@Override

0 commit comments

Comments
 (0)