mirror of
https://github.com/ebean-orm/ebean.git
synced 2026-10-23 01:07:49 +00:00
#1999 - Additionally support "none" for read only url
"none" can then be used as a special literal value in configuration for "no read-only jdbc url"
This commit is contained in:
@@ -74,7 +74,8 @@ class InitDataSource {
|
||||
// it has explicitly been set to null, not expected but ok
|
||||
return null;
|
||||
}
|
||||
if (roConfig.getUrl() == null && !config.isAutoReadOnlyDataSource()) {
|
||||
final String url = roConfig.getUrl();
|
||||
if ("none".equalsIgnoreCase(url) || (url == null && !config.isAutoReadOnlyDataSource())) {
|
||||
// no read-only DataSource will be used
|
||||
return null;
|
||||
}
|
||||
|
||||
@@ -8,6 +8,14 @@ import static org.junit.Assert.*;
|
||||
|
||||
public class InitDataSourceTest {
|
||||
|
||||
private ServerConfig newConfig(String readOnlyUrl) {
|
||||
ServerConfig config = new ServerConfig();
|
||||
DataSourceConfig roConfig = new DataSourceConfig();
|
||||
roConfig.setUrl(readOnlyUrl);
|
||||
config.setReadOnlyDataSourceConfig(roConfig);
|
||||
return config;
|
||||
}
|
||||
|
||||
@Test
|
||||
public void readOnlyConfig_nullByDefault() {
|
||||
InitDataSource init = new InitDataSource(new ServerConfig());
|
||||
@@ -19,19 +27,19 @@ public class InitDataSourceTest {
|
||||
ServerConfig config = new ServerConfig();
|
||||
config.setReadOnlyDataSourceConfig(null);
|
||||
|
||||
InitDataSource init = new InitDataSource(config);
|
||||
assertNull(init.readOnlyConfig());
|
||||
assertNull(new InitDataSource(config).readOnlyConfig());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void readOnlyConfig_null_whenSetNullExplicitly_2() {
|
||||
ServerConfig config = new ServerConfig();
|
||||
DataSourceConfig roConfig = new DataSourceConfig();
|
||||
roConfig.setUrl(null);
|
||||
config.setReadOnlyDataSourceConfig(roConfig);
|
||||
assertNull(new InitDataSource(newConfig(null)).readOnlyConfig());
|
||||
}
|
||||
|
||||
InitDataSource init = new InitDataSource(config);
|
||||
assertNull(init.readOnlyConfig());
|
||||
@Test
|
||||
public void readOnlyConfig_null_whenValueNONE() {
|
||||
assertNull(new InitDataSource(newConfig("none")).readOnlyConfig());
|
||||
assertNull(new InitDataSource(newConfig("None")).readOnlyConfig());
|
||||
assertNull(new InitDataSource(newConfig("NONE")).readOnlyConfig());
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -39,19 +47,14 @@ public class InitDataSourceTest {
|
||||
ServerConfig config = new ServerConfig();
|
||||
config.setAutoReadOnlyDataSource(true);
|
||||
|
||||
InitDataSource init = new InitDataSource(config);
|
||||
assertNotNull(init.readOnlyConfig());
|
||||
assertNotNull(new InitDataSource(config).readOnlyConfig());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void readOnlyConfig_when_urlSet() {
|
||||
ServerConfig config = new ServerConfig();
|
||||
DataSourceConfig dsConfig = new DataSourceConfig();
|
||||
dsConfig.setUrl("foo");
|
||||
config.setReadOnlyDataSourceConfig(dsConfig);
|
||||
ServerConfig config = newConfig("foo");
|
||||
|
||||
InitDataSource init = new InitDataSource(config);
|
||||
final DataSourceConfig roConfig = init.readOnlyConfig();
|
||||
final DataSourceConfig roConfig = new InitDataSource(config).readOnlyConfig();
|
||||
assertNotNull(roConfig);
|
||||
assertEquals("foo", roConfig.getUrl());
|
||||
}
|
||||
@@ -61,8 +64,7 @@ public class InitDataSourceTest {
|
||||
ServerConfig config = new ServerConfig();
|
||||
config.getReadOnlyDataSourceConfig().setUrl("foo");
|
||||
|
||||
InitDataSource init = new InitDataSource(config);
|
||||
final DataSourceConfig roConfig = init.readOnlyConfig();
|
||||
final DataSourceConfig roConfig = new InitDataSource(config).readOnlyConfig();
|
||||
assertNotNull(roConfig);
|
||||
assertEquals("foo", roConfig.getUrl());
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user