diff --git a/ebean-querybean/src/test/resources/application-test.properties b/ebean-querybean/src/test/resources/application-test.properties index 2cb5bb2c7..fef41029d 100644 --- a/ebean-querybean/src/test/resources/application-test.properties +++ b/ebean-querybean/src/test/resources/application-test.properties @@ -6,8 +6,8 @@ datasource.default=h2 datasource.h2.username=sa datasource.h2.password= -datasource.h2.url=jdbc:h2:mem:tests +datasource.h2.url=jdbc:h2:mem:tests;NON_KEYWORDS=KEY datasource.pg.username=sa datasource.pg.password= -datasource.pg.url=jdbc:h2:mem:tests +datasource.pg.url=jdbc:h2:mem:tests;NON_KEYWORDS=KEY diff --git a/ebean-test/src/main/java/io/ebean/test/config/AutoConfigureForTesting.java b/ebean-test/src/main/java/io/ebean/test/config/AutoConfigureForTesting.java index 8cd4f6395..5366597a1 100644 --- a/ebean-test/src/main/java/io/ebean/test/config/AutoConfigureForTesting.java +++ b/ebean-test/src/main/java/io/ebean/test/config/AutoConfigureForTesting.java @@ -10,6 +10,8 @@ import org.slf4j.LoggerFactory; import java.util.Properties; +import javax.sql.DataSource; + /** * Automatically configure ServerConfig for testing purposes. *
@@ -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);
}
/**
diff --git a/ebean-test/src/test/java/io/ebean/config/PlatformNoGeneratedKeysTest.java b/ebean-test/src/test/java/io/ebean/config/PlatformNoGeneratedKeysTest.java
index 63b672137..37d02bbb8 100644
--- a/ebean-test/src/test/java/io/ebean/config/PlatformNoGeneratedKeysTest.java
+++ b/ebean-test/src/test/java/io/ebean/config/PlatformNoGeneratedKeysTest.java
@@ -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);
}
diff --git a/ebean-test/src/test/resources/ebean.properties b/ebean-test/src/test/resources/ebean.properties
index 402facaab..d7e1debae 100644
--- a/ebean-test/src/test/resources/ebean.properties
+++ b/ebean-test/src/test/resources/ebean.properties
@@ -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
diff --git a/ebean-test/src/test/resources/test-ebean.properties b/ebean-test/src/test/resources/test-ebean.properties
index 2405e5104..436499c1b 100644
--- a/ebean-test/src/test/resources/test-ebean.properties
+++ b/ebean-test/src/test/resources/test-ebean.properties
@@ -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
diff --git a/pom.xml b/pom.xml
index 5e85ad050..2ddf524ee 100644
--- a/pom.xml
+++ b/pom.xml
@@ -40,7 +40,7 @@