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

Commit 220dc7d

Browse files
committed
Simplify the creation of the DbConfig
1 parent 3409f5c commit 220dc7d

File tree

3 files changed

+37
-45
lines changed

3 files changed

+37
-45
lines changed

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

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,9 @@
55

66
import io.agroal.api.AgroalDataSource;
77
import io.quarkus.test.QuarkusUnitTest;
8+
import javax.enterprise.context.ApplicationScoped;
89
import javax.enterprise.inject.Default;
910
import javax.inject.Inject;
10-
import javax.inject.Singleton;
1111
import org.jboss.shrinkwrap.api.ShrinkWrap;
1212
import org.jboss.shrinkwrap.api.asset.StringAsset;
1313
import org.jboss.shrinkwrap.api.spec.JavaArchive;
@@ -44,12 +44,12 @@ public class MultipleConfigTest {
4444

4545
static class MyProducer {
4646

47-
@Singleton
47+
@ApplicationScoped
4848
@org.seasar.doma.quarkus.Config("inventory")
4949
Config inventoryConfig(
5050
@io.quarkus.agroal.DataSource("inventory") AgroalDataSource dataSource,
5151
@Default DbConfig config) {
52-
return config.newBuilder().setDataSource(dataSource).setDataSourceName("inventory").build();
52+
return config.builder().setDataSource(dataSource).setDataSourceName("inventory").build();
5353
}
5454
}
5555

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

Lines changed: 32 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
package org.seasar.doma.quarkus.runtime;
22

33
import java.util.Objects;
4-
import javax.enterprise.inject.Instance;
54
import javax.sql.DataSource;
65
import org.seasar.doma.jdbc.ClassHelper;
76
import org.seasar.doma.jdbc.CommandImplementors;
@@ -37,7 +36,7 @@ public class DbConfig implements Config {
3736
private final MapKeyNaming mapKeyNaming;
3837
private final Commenter commenter;
3938
private final EntityListenerProvider entityListenerProvider;
40-
private final Instance<TransactionManager> transactionManagerInstance;
39+
private final TransactionManager transactionManager;
4140
private final String dataSourceName;
4241
private final int batchSize;
4342
private final int fetchSize;
@@ -60,7 +59,7 @@ public DbConfig(
6059
MapKeyNaming mapKeyNaming,
6160
Commenter commenter,
6261
EntityListenerProvider entityListenerProvider,
63-
Instance<TransactionManager> transactionManagerInstance,
62+
TransactionManager transactionManager,
6463
String dataSourceName,
6564
int batchSize,
6665
int fetchSize,
@@ -81,7 +80,7 @@ public DbConfig(
8180
this.mapKeyNaming = Objects.requireNonNull(mapKeyNaming);
8281
this.commenter = Objects.requireNonNull(commenter);
8382
this.entityListenerProvider = Objects.requireNonNull(entityListenerProvider);
84-
this.transactionManagerInstance = Objects.requireNonNull(transactionManagerInstance);
83+
this.transactionManager = transactionManager;
8584
this.dataSourceName = Objects.requireNonNull(dataSourceName);
8685
this.batchSize = batchSize;
8786
this.fetchSize = fetchSize;
@@ -156,10 +155,7 @@ public MapKeyNaming getMapKeyNaming() {
156155

157156
@Override
158157
public TransactionManager getTransactionManager() {
159-
if (transactionManagerInstance.isResolvable()) {
160-
return transactionManagerInstance.get();
161-
}
162-
return null;
158+
return transactionManager;
163159
}
164160

165161
@Override
@@ -197,8 +193,30 @@ public int getQueryTimeout() {
197193
return queryTimeout;
198194
}
199195

200-
public Builder newBuilder() {
201-
return new Builder(this);
196+
public Builder builder() {
197+
Builder builder = new Builder();
198+
builder.dataSource = this.dataSource;
199+
builder.dialect = this.dialect;
200+
builder.sqlFileRepository = this.sqlFileRepository;
201+
builder.scriptFileLoader = this.scriptFileLoader;
202+
builder.jdbcLogger = this.jdbcLogger;
203+
builder.requiresNewController = this.requiresNewController;
204+
builder.classHelper = this.classHelper;
205+
builder.commandImplementors = this.commandImplementors;
206+
builder.queryImplementors = this.queryImplementors;
207+
builder.exceptionSqlLogType = this.exceptionSqlLogType;
208+
builder.unknownColumnHandler = this.unknownColumnHandler;
209+
builder.naming = this.naming;
210+
builder.mapKeyNaming = this.mapKeyNaming;
211+
builder.commenter = this.commenter;
212+
builder.entityListenerProvider = this.entityListenerProvider;
213+
builder.transactionManager = this.transactionManager;
214+
builder.dataSourceName = this.dataSourceName;
215+
builder.batchSize = this.batchSize;
216+
builder.fetchSize = this.fetchSize;
217+
builder.maxRows = this.maxRows;
218+
builder.queryTimeout = this.queryTimeout;
219+
return builder;
202220
}
203221

204222
public static class Builder {
@@ -218,38 +236,13 @@ public static class Builder {
218236
private MapKeyNaming mapKeyNaming;
219237
private Commenter commenter;
220238
private EntityListenerProvider entityListenerProvider;
221-
private Instance<TransactionManager> transactionManagerInstance;
239+
private TransactionManager transactionManager;
222240
private String dataSourceName;
223241
private int batchSize;
224242
private int fetchSize;
225243
private int maxRows;
226244
private int queryTimeout;
227245

228-
Builder(DbConfig dbConfig) {
229-
Objects.requireNonNull(dbConfig);
230-
dataSource = dbConfig.dataSource;
231-
dialect = dbConfig.dialect;
232-
sqlFileRepository = dbConfig.sqlFileRepository;
233-
scriptFileLoader = dbConfig.scriptFileLoader;
234-
jdbcLogger = dbConfig.jdbcLogger;
235-
requiresNewController = dbConfig.requiresNewController;
236-
classHelper = dbConfig.classHelper;
237-
commandImplementors = dbConfig.commandImplementors;
238-
queryImplementors = dbConfig.queryImplementors;
239-
exceptionSqlLogType = dbConfig.exceptionSqlLogType;
240-
unknownColumnHandler = dbConfig.unknownColumnHandler;
241-
naming = dbConfig.naming;
242-
mapKeyNaming = dbConfig.mapKeyNaming;
243-
commenter = dbConfig.commenter;
244-
entityListenerProvider = dbConfig.entityListenerProvider;
245-
transactionManagerInstance = dbConfig.transactionManagerInstance;
246-
dataSourceName = dbConfig.dataSourceName;
247-
batchSize = dbConfig.batchSize;
248-
fetchSize = dbConfig.fetchSize;
249-
maxRows = dbConfig.maxRows;
250-
queryTimeout = dbConfig.queryTimeout;
251-
}
252-
253246
public Builder setDataSource(DataSource dataSource) {
254247
this.dataSource = dataSource;
255248
return this;
@@ -325,9 +318,8 @@ public Builder setEntityListenerProvider(EntityListenerProvider entityListenerPr
325318
return this;
326319
}
327320

328-
public Builder setTransactionManagerInstance(
329-
Instance<TransactionManager> transactionManagerInstance) {
330-
this.transactionManagerInstance = transactionManagerInstance;
321+
public Builder setTransactionManager(TransactionManager transactionManager) {
322+
this.transactionManager = transactionManager;
331323
return this;
332324
}
333325

@@ -373,7 +365,7 @@ public DbConfig build() {
373365
mapKeyNaming,
374366
commenter,
375367
entityListenerProvider,
376-
transactionManagerInstance,
368+
transactionManager,
377369
dataSourceName,
378370
batchSize,
379371
fetchSize,

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -164,7 +164,7 @@ SqlLogType exceptionSqlLogType() {
164164
return Objects.requireNonNull(exceptionSqlLogType);
165165
}
166166

167-
@Singleton
167+
@ApplicationScoped
168168
@DefaultBean
169169
DbConfig dbConfig(
170170
DataSource dataSource,
@@ -199,7 +199,7 @@ DbConfig dbConfig(
199199
mapKeyNaming,
200200
commenter,
201201
entityListenerProvider,
202-
transactionManager,
202+
transactionManager.isResolvable() ? transactionManager.get() : null,
203203
dataSourceName,
204204
batchSize,
205205
fetchSize,

0 commit comments

Comments
 (0)