Skip to content

Commit 9102ffc

Browse files
authored
Add unique dataSourceName to SimpleConfig implementation (#1302)
2 parents 9e80505 + 4b6469c commit 9102ffc

File tree

4 files changed

+20
-0
lines changed

4 files changed

+20
-0
lines changed

doma-core/src/main/java/org/seasar/doma/jdbc/SimpleConfig.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -118,6 +118,7 @@ static SimpleConfigBuilder builder(DataSource dataSource, Dialect dialect) {
118118
class SimpleConfigImpl implements Config, SimpleConfig {
119119

120120
private final LocalTransactionDataSource dataSource;
121+
private final String dataSourceName;
121122
private final Dialect dialect;
122123
private final SqlFileRepository sqlFileRepository;
123124
private final ScriptFileLoader scriptFileLoader;
@@ -143,6 +144,7 @@ class SimpleConfigImpl implements Config, SimpleConfig {
143144

144145
SimpleConfigImpl(
145146
LocalTransactionDataSource dataSource,
147+
String dataSourceName,
146148
Dialect dialect,
147149
SqlFileRepository sqlFileRepository,
148150
ScriptFileLoader scriptFileLoader,
@@ -166,6 +168,7 @@ class SimpleConfigImpl implements Config, SimpleConfig {
166168
int queryTimeout,
167169
int batchSize) {
168170
this.dataSource = Objects.requireNonNull(dataSource);
171+
this.dataSourceName = Objects.requireNonNull(dataSourceName);
169172
this.dialect = Objects.requireNonNull(dialect);
170173
this.sqlFileRepository = Objects.requireNonNull(sqlFileRepository);
171174
this.scriptFileLoader = Objects.requireNonNull(scriptFileLoader);
@@ -195,6 +198,11 @@ public DataSource getDataSource() {
195198
return dataSource;
196199
}
197200

201+
@Override
202+
public String getDataSourceName() {
203+
return dataSourceName;
204+
}
205+
198206
@Override
199207
public Dialect getDialect() {
200208
return dialect;

doma-core/src/main/java/org/seasar/doma/jdbc/SimpleConfigBuilder.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
package org.seasar.doma.jdbc;
1717

1818
import java.util.Objects;
19+
import java.util.UUID;
1920
import java.util.function.BiFunction;
2021
import java.util.regex.Pattern;
2122
import javax.sql.DataSource;
@@ -281,8 +282,10 @@ public <R> R requiresNew(Callback<R> callback) throws Throwable {
281282
return transactionManager.requiresNew(callback::execute);
282283
}
283284
};
285+
var dataSourceName = UUID.randomUUID().toString();
284286
return new SimpleConfigImpl(
285287
dataSource,
288+
dataSourceName,
286289
dialect,
287290
sqlFileRepository,
288291
scriptFileLoader,

doma-core/src/test/java/org/seasar/doma/jdbc/SimpleConfigBuilderImplTest.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -98,4 +98,12 @@ void inferDialect() {
9898
assertInstanceOf(PostgresDialect.class, SimpleConfigBuilderImpl.inferDialect("postgresql"));
9999
assertNull(SimpleConfigBuilderImpl.inferDialect("unknown"));
100100
}
101+
102+
@Test
103+
void dataSourceName() {
104+
SimpleConfig config1 = SimpleConfigBuilderImpl.of("jdbc:h2:mem:test1").build();
105+
SimpleConfig config2 = SimpleConfigBuilderImpl.of("jdbc:h2:mem:test2").build();
106+
107+
assertNotEquals(config1.getDataSourceName(), config2.getDataSourceName());
108+
}
101109
}

doma-core/src/test/java/org/seasar/doma/jdbc/SimpleConfigImplTest.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@ void testGetLocalTransactionManager() {
4040
SimpleConfig config =
4141
new SimpleConfigImpl(
4242
localTransactionDataSource,
43+
"test",
4344
dialect,
4445
ConfigSupport.defaultSqlFileRepository,
4546
ConfigSupport.defaultScriptFileLoader,

0 commit comments

Comments
 (0)