ADD.profile and autodetect code

This commit is contained in:
Roland Praml committed 2022-01-28 16:04:35 +01:00
1 parent 4a20c9eb99
commit b4fe4ec8b9
6 files changed
+38 -7

No files matched your search

@@ -10,6 +10,8 @@ import org.slf4j.LoggerFactory;
import java.util.Properties;
import javax.sql.DataSource;
/**
* Automatically configure ServerConfig for testing purposes.
* <p>
@@ -47,6 +49,29 @@ public class AutoConfigureForTesting implements AutoConfigure {
@Override
public void postConfigure(DatabaseConfig config) {
setupProviders(config);
if (org.h2.engine.Constants.VERSION_MAJOR == 1) {
// This code may be removed later, when droppinv H2 1.xxx compatibility
System.err.println("Running tests in H2 1.xxx compatibility mode");
System.setProperty("ebean.h2.useV1Syntax", "true");
makeV1Compatible(config.getDataSourceConfig());
makeV1Compatible(config.getReadOnlyDataSourceConfig());
}
}
private void makeV1Compatible(DataSourceConfig ds) {
if (ds == null) {
return;
}
String url = ds.getUrl();
if (url == null || !url.startsWith("jdbc:h2:")) {
return;
}
// remove illegal URL options
url = url.replace(";MODE=LEGACY", "");
url = url.replace(";NON_KEYWORDS=KEY,VALUE", "");
url = url.replace(";NON_KEYWORDS=KEY", "");
ds.setUrl(url);
}
/**
@@ -101,7 +101,7 @@ public class PlatformNoGeneratedKeysTest {
config.setDatabasePlatform(platform);
config.getDataSourceConfig().setUsername("sa");
config.getDataSourceConfig().setPassword("");
config.getDataSourceConfig().setUrl("jdbc:h2:mem:withPCQuery");
config.getDataSourceConfig().setUrl("jdbc:h2:mem:withPCQuery;MODE=LEGACY");
config.getDataSourceConfig().setDriver("org.h2.Driver");
config.setDisableLazyLoading(true);
@@ -112,7 +112,7 @@ public class PlatformNoGeneratedKeysTest {
config.setDdlRun(true);
config.getClasses().add(EBasicVer.class);
config.getClasses().add(BasicDraftableBean.class);
config.loadFromProperties(); // trigger auto config for H2 1.x
return DatabaseFactory.create(config);
}
@@ -72,7 +72,7 @@ datasource.db.databaseDriver=org.h2.Driver
datasource.h2.username=sa
datasource.h2.password=
datasource.h2.url=jdbc:h2:mem:testsMem;DB_CLOSE_ON_EXIT=FALSE
datasource.h2.url=jdbc:h2:mem:testsMem;DB_CLOSE_ON_EXIT=FALSE;NON_KEYWORDS=KEY,VALUE
datasource.h2.poolListener=org.tests.basic.MyTestDataSourcePoolListener
#datasource.h2.minConnections=1
#datasource.h2.maxConnections=25
@@ -8,5 +8,5 @@ ebean.jodaLocalTimeMode=normal
datasource.someotherdb.username=sa
datasource.someotherdb.password=
datasource.someotherdb.databaseUrl=jdbc:h2:mem:someotherdb
datasource.someotherdb.databaseUrl=jdbc:h2:mem:someotherdb;NON_KEYWORDS=KEY,VALUE
datasource.someotherdb.databaseDriver=org.h2.Driver