diff --git a/src/main/java/io/ebean/config/ServerConfig.java b/src/main/java/io/ebean/config/ServerConfig.java index a4b6a5371..9979057d0 100644 --- a/src/main/java/io/ebean/config/ServerConfig.java +++ b/src/main/java/io/ebean/config/ServerConfig.java @@ -252,6 +252,8 @@ public class ServerConfig { private boolean ddlRun; + private boolean ddlExtra = true; + private boolean ddlCreateOnly; private String ddlInitSql; @@ -2116,6 +2118,16 @@ public class ServerConfig { this.ddlRun = ddlRun; } + /** + * Set to false if you not want to run the extra-ddl.xml scripts. (default = true) + *
+ * Typically we want this on when we are running tests. + */ + public void setDdlExtra(boolean ddlExtra) { + this.ddlExtra = ddlExtra; + } + + /** * Return true if the "drop all ddl" should be skipped. *
@@ -2186,6 +2198,13 @@ public class ServerConfig {
return ddlRun;
}
+ /**
+ * Return true, if extra-ddl.xml should be executed.
+ */
+ public boolean isDdlExtra() {
+ return ddlExtra;
+ }
+
/**
* Return true if the class path search should be disabled.
*/
@@ -2962,6 +2981,7 @@ public class ServerConfig {
ddlGenerate = p.getBoolean("ddl.generate", ddlGenerate);
ddlRun = p.getBoolean("ddl.run", ddlRun);
+ ddlExtra = p.getBoolean("ddl.extra", ddlExtra);
ddlCreateOnly = p.getBoolean("ddl.createOnly", ddlCreateOnly);
ddlInitSql = p.get("ddl.initSql", ddlInitSql);
ddlSeedSql = p.get("ddl.seedSql", ddlSeedSql);
diff --git a/src/main/java/io/ebeaninternal/dbmigration/DdlGenerator.java b/src/main/java/io/ebeaninternal/dbmigration/DdlGenerator.java
index fa0b662cf..64af8454f 100644
--- a/src/main/java/io/ebeaninternal/dbmigration/DdlGenerator.java
+++ b/src/main/java/io/ebeaninternal/dbmigration/DdlGenerator.java
@@ -40,6 +40,7 @@ public class DdlGenerator {
private final boolean generateDdl;
private final boolean runDdl;
+ private final boolean extraDdl;
private final boolean createOnly;
private final boolean jaxbPresent;
private final boolean ddlCommitOnCreateIndex;
@@ -54,6 +55,7 @@ public class DdlGenerator {
this.server = server;
this.jaxbPresent = serverConfig.getClassLoadConfig().isJavaxJAXBPresent();
this.generateDdl = serverConfig.isDdlGenerate();
+ this.extraDdl = serverConfig.isDdlExtra();
this.createOnly = serverConfig.isDdlCreateOnly();
this.dbSchema = serverConfig.getDbSchema();
if (!serverConfig.getTenantMode().isDdlEnabled() && serverConfig.isDdlRun()) {
@@ -166,8 +168,7 @@ public class DdlGenerator {
protected void runDropSql(Connection connection) throws IOException {
if (!createOnly) {
- String ignoreExtraDdl = System.getProperty("ebean.ignoreExtraDdl");
- if (!"true".equalsIgnoreCase(ignoreExtraDdl) && jaxbPresent) {
+ if (extraDdl && jaxbPresent) {
String extraApply = ExtraDdlXmlReader.buildExtra(server.getDatabasePlatform().getName(), true);
if (extraApply != null) {
runScript(connection, false, extraApply, "extra-ddl");
@@ -187,8 +188,7 @@ public class DdlGenerator {
}
runScript(connection, false, createAllContent, getCreateFileName());
- String ignoreExtraDdl = System.getProperty("ebean.ignoreExtraDdl");
- if (!"true".equalsIgnoreCase(ignoreExtraDdl) && jaxbPresent) {
+ if (extraDdl && jaxbPresent) {
if (currentModel.isTablePartitioning()) {
String extraPartitioning = ExtraDdlXmlReader.buildPartitioning(server.getDatabasePlatform().getName());
if (extraPartitioning != null && !extraPartitioning.isEmpty()) {
diff --git a/src/test/java/io/ebean/EbeanServerFactory_ServerConfigStart_Test.java b/src/test/java/io/ebean/EbeanServerFactory_ServerConfigStart_Test.java
index b3fcc028d..8cc14eb2c 100644
--- a/src/test/java/io/ebean/EbeanServerFactory_ServerConfigStart_Test.java
+++ b/src/test/java/io/ebean/EbeanServerFactory_ServerConfigStart_Test.java
@@ -14,14 +14,13 @@ public class EbeanServerFactory_ServerConfigStart_Test {
@Test
public void test() throws InterruptedException {
- System.setProperty("ebean.ignoreExtraDdl", "true");
-
ServerConfig config = new ServerConfig();
config.setName("h2");
config.loadFromProperties();
config.setName("h2other");
config.setDdlGenerate(false);
config.setDdlRun(false);
+ config.setDdlExtra(false);
config.setDefaultServer(false);
config.setRegister(false);
diff --git a/src/test/java/io/ebean/event/BeanFindControllerTest.java b/src/test/java/io/ebean/event/BeanFindControllerTest.java
index c47d5edca..6592a0cfd 100644
--- a/src/test/java/io/ebean/event/BeanFindControllerTest.java
+++ b/src/test/java/io/ebean/event/BeanFindControllerTest.java
@@ -23,14 +23,14 @@ public class BeanFindControllerTest extends BaseTestCase {
@Test
public void test() {
- System.setProperty("ebean.ignoreExtraDdl", "true");
-
ServerConfig config = new ServerConfig();
config.setName("h2otherfind");
config.loadFromProperties();
config.setDdlGenerate(true);
config.setDdlRun(true);
+ config.setDdlExtra(false);
+
config.setRegister(false);
config.setDefaultServer(false);
config.add(new ModUuidGenerator());
@@ -42,8 +42,6 @@ public class BeanFindControllerTest extends BaseTestCase {
EbeanServer ebeanServer = EbeanServerFactory.create(config);
- System.clearProperty("ebean.ignoreExtraDdl");
-
assertFalse(findController.calledInterceptFind);
ebeanServer.find(EBasic.class, 42);
assertTrue(findController.calledInterceptFind);
diff --git a/src/test/java/io/ebean/event/BeanPersistControllerTest.java b/src/test/java/io/ebean/event/BeanPersistControllerTest.java
index e63f77bc3..89da158a8 100644
--- a/src/test/java/io/ebean/event/BeanPersistControllerTest.java
+++ b/src/test/java/io/ebean/event/BeanPersistControllerTest.java
@@ -113,13 +113,12 @@ public class BeanPersistControllerTest {
private EbeanServer getEbeanServer(PersistAdapter persistAdapter) {
- System.setProperty("ebean.ignoreExtraDdl", "true");
ServerConfig config = new ServerConfig();
-
config.setName("h2ebasicver");
config.loadFromProperties();
config.setDdlGenerate(true);
config.setDdlRun(true);
+ config.setDdlExtra(false);
config.setRegister(false);
config.setDefaultServer(false);
diff --git a/src/test/java/io/ebean/event/BeanPostLoadTest.java b/src/test/java/io/ebean/event/BeanPostLoadTest.java
index 7079a9d10..e2eea0c24 100644
--- a/src/test/java/io/ebean/event/BeanPostLoadTest.java
+++ b/src/test/java/io/ebean/event/BeanPostLoadTest.java
@@ -46,14 +46,13 @@ public class BeanPostLoadTest extends BaseTestCase {
private EbeanServer getEbeanServer() {
- System.setProperty("ebean.ignoreExtraDdl", "true");
-
ServerConfig config = new ServerConfig();
config.setName("h2ebasicver");
config.loadFromProperties();
config.setDdlGenerate(true);
config.setDdlRun(true);
+ config.setDdlExtra(false);
config.setRegister(false);
config.setDefaultServer(false);
diff --git a/src/test/java/io/ebeaninternal/dbmigration/model/build/ModelBuild_compoundKeyTest.java b/src/test/java/io/ebeaninternal/dbmigration/model/build/ModelBuild_compoundKeyTest.java
index b62dae809..437d8e6ac 100644
--- a/src/test/java/io/ebeaninternal/dbmigration/model/build/ModelBuild_compoundKeyTest.java
+++ b/src/test/java/io/ebeaninternal/dbmigration/model/build/ModelBuild_compoundKeyTest.java
@@ -25,14 +25,13 @@ public class ModelBuild_compoundKeyTest extends BaseTestCase {
private SpiEbeanServer getServer() {
- System.setProperty("ebean.ignoreExtraDdl", "true");
-
ServerConfig config = new ServerConfig();
config.setName("h2");
config.loadFromProperties();
config.setName("h2other");
config.setDdlGenerate(false);
config.setDdlRun(false);
+ config.setDdlExtra(false);
config.setDefaultServer(false);
config.setRegister(false);
diff --git a/src/test/java/io/ebeaninternal/dbmigration/model/build/ModelBuild_explicitSequencesTest.java b/src/test/java/io/ebeaninternal/dbmigration/model/build/ModelBuild_explicitSequencesTest.java
index 6e699e4de..c2db773ee 100644
--- a/src/test/java/io/ebeaninternal/dbmigration/model/build/ModelBuild_explicitSequencesTest.java
+++ b/src/test/java/io/ebeaninternal/dbmigration/model/build/ModelBuild_explicitSequencesTest.java
@@ -19,14 +19,13 @@ public class ModelBuild_explicitSequencesTest extends BaseTestCase {
private SpiEbeanServer getServer(boolean postgres) {
- System.setProperty("ebean.ignoreExtraDdl", "true");
-
ServerConfig config = new ServerConfig();
config.setName("h2");
config.loadFromProperties();
config.setName("h2other");
config.setDdlGenerate(false);
config.setDdlRun(false);
+ config.setDdlExtra(false);
config.setDefaultServer(false);
config.setRegister(false);
diff --git a/src/test/java/io/ebeaninternal/server/deploy/BeanDescriptor_registerTest.java b/src/test/java/io/ebeaninternal/server/deploy/BeanDescriptor_registerTest.java
index 04c3641d6..8b65f5dab 100644
--- a/src/test/java/io/ebeaninternal/server/deploy/BeanDescriptor_registerTest.java
+++ b/src/test/java/io/ebeaninternal/server/deploy/BeanDescriptor_registerTest.java
@@ -16,12 +16,11 @@ public class BeanDescriptor_registerTest {
@Test
public void testRegisterDeregister() throws Exception {
- System.setProperty("ebean.ignoreExtraDdl", "true");
-
ServerConfig config = new ServerConfig();
config.setName("h2other");
config.loadFromProperties();
+ config.setDdlExtra(false);
config.setRegister(false);
config.setDefaultServer(false);
config.getClasses().add(EBasic.class);
diff --git a/src/test/java/org/multitenant/partition/MultiTenantPartitionTest.java b/src/test/java/org/multitenant/partition/MultiTenantPartitionTest.java
index 9104c0179..eeb43d6ac 100644
--- a/src/test/java/org/multitenant/partition/MultiTenantPartitionTest.java
+++ b/src/test/java/org/multitenant/partition/MultiTenantPartitionTest.java
@@ -103,7 +103,6 @@ public class MultiTenantPartitionTest {
private static EbeanServer init() {
- System.setProperty("ebean.ignoreExtraDdl", "true");
ServerConfig config = new ServerConfig();
@@ -111,6 +110,7 @@ public class MultiTenantPartitionTest {
config.loadFromProperties();
config.setDdlGenerate(true);
config.setDdlRun(true);
+ config.setDdlExtra(false);
config.setRegister(false);
config.setDefaultServer(false);
config.setCurrentTenantProvider(new CurrentTenant());
diff --git a/src/test/java/org/tests/basic/MainDbBoolean.java b/src/test/java/org/tests/basic/MainDbBoolean.java
index b8d6c6f2c..14c900d4e 100644
--- a/src/test/java/org/tests/basic/MainDbBoolean.java
+++ b/src/test/java/org/tests/basic/MainDbBoolean.java
@@ -36,10 +36,9 @@ public class MainDbBoolean {
*/
private EbeanServer createOracleEbeanServer() {
- System.setProperty("ebean.ignoreExtraDdl", "true");
-
ServerConfig c = new ServerConfig();
c.setName("ora");
+ c.setDdlExtra(false);
// requires oracle driver in class path
DataSourceConfig oraDb = new DataSourceConfig();
@@ -72,10 +71,9 @@ public class MainDbBoolean {
private EbeanServer createEbeanServer() {
- System.setProperty("ebean.ignoreExtraDdl", "true");
-
ServerConfig c = new ServerConfig();
c.setName("pgtest");
+ c.setDdlExtra(false);
// requires postgres driver in class path
DataSourceConfig postgresDb = new DataSourceConfig();
diff --git a/src/test/java/org/tests/changelog/TestChangeLog.java b/src/test/java/org/tests/changelog/TestChangeLog.java
index 3be63f361..68f7a4505 100644
--- a/src/test/java/org/tests/changelog/TestChangeLog.java
+++ b/src/test/java/org/tests/changelog/TestChangeLog.java
@@ -123,14 +123,14 @@ public class TestChangeLog extends BaseTestCase {
private SpiEbeanServer getServer() {
- System.setProperty("ebean.ignoreExtraDdl", "true");
-
ServerConfig config = new ServerConfig();
config.setName("h2other");
config.loadFromProperties();
config.setDdlGenerate(true);
config.setDdlRun(true);
+ config.setDdlExtra(false);
+
config.setDefaultServer(false);
config.setRegister(false);
config.setChangeLogAsync(false);
diff --git a/src/test/java/org/tests/persistencecontext/TestPersistenceContextServerConfig.java b/src/test/java/org/tests/persistencecontext/TestPersistenceContextServerConfig.java
index c235a430a..608bf1317 100644
--- a/src/test/java/org/tests/persistencecontext/TestPersistenceContextServerConfig.java
+++ b/src/test/java/org/tests/persistencecontext/TestPersistenceContextServerConfig.java
@@ -32,10 +32,10 @@ public class TestPersistenceContextServerConfig extends BaseTestCase {
static EbeanServer create() {
- System.setProperty("ebean.ignoreExtraDdl", "true");
ServerConfig config = new ServerConfig();
config.setName("withPCQuery");
+ config.setDdlExtra(false);
Properties properties = new Properties();
properties.setProperty("datasource.withPCQuery.username", "sa");
diff --git a/src/test/java/org/tests/readaudit/TestReadAudit.java b/src/test/java/org/tests/readaudit/TestReadAudit.java
index d41e7fd13..764478c00 100644
--- a/src/test/java/org/tests/readaudit/TestReadAudit.java
+++ b/src/test/java/org/tests/readaudit/TestReadAudit.java
@@ -306,14 +306,14 @@ public class TestReadAudit extends BaseTestCase {
private SpiEbeanServer getServer() {
- System.setProperty("ebean.ignoreExtraDdl", "true");
-
ServerConfig config = new ServerConfig();
config.setName("h2other");
config.loadFromProperties();
config.setDdlGenerate(true);
config.setDdlRun(true);
+ config.setDdlExtra(false);
+
config.setDefaultServer(false);
config.setRegister(false);
diff --git a/src/test/java/org/tests/transaction/TestAutoCommitDataSource.java b/src/test/java/org/tests/transaction/TestAutoCommitDataSource.java
index 577dbc74c..46006426b 100644
--- a/src/test/java/org/tests/transaction/TestAutoCommitDataSource.java
+++ b/src/test/java/org/tests/transaction/TestAutoCommitDataSource.java
@@ -42,8 +42,6 @@ public class TestAutoCommitDataSource extends BaseTestCase {
assertTrue(connection.getAutoCommit());
connection.close();
- System.setProperty("ebean.ignoreExtraDdl", "true");
-
ServerConfig config = new ServerConfig();
config.setName("h2autocommit");
config.loadFromProperties();
@@ -55,6 +53,8 @@ public class TestAutoCommitDataSource extends BaseTestCase {
config.addClass(UTDetail.class);
config.setDdlGenerate(true);
config.setDdlRun(true);
+ config.setDdlExtra(false);
+
config.setAutoCommitMode(true);
EbeanServer ebeanServer = EbeanServerFactory.create(config);
diff --git a/src/test/java/org/tests/transaction/TestExplicitTransactionMode.java b/src/test/java/org/tests/transaction/TestExplicitTransactionMode.java
index b125ce66f..9777f8139 100644
--- a/src/test/java/org/tests/transaction/TestExplicitTransactionMode.java
+++ b/src/test/java/org/tests/transaction/TestExplicitTransactionMode.java
@@ -42,8 +42,6 @@ public class TestExplicitTransactionMode extends BaseTestCase {
assertTrue(connection.getAutoCommit());
connection.close();
- System.setProperty("ebean.ignoreExtraDdl", "true");
-
ServerConfig config = new ServerConfig();
config.setName("h2autocommit2");
config.loadFromProperties();
@@ -56,11 +54,10 @@ public class TestExplicitTransactionMode extends BaseTestCase {
config.addClass(UTDetail.class);
config.setDdlGenerate(true);
config.setDdlRun(true);
+ config.setDdlExtra(false);
EbeanServer ebeanServer = EbeanServerFactory.create(config);
- System.clearProperty("ebean.ignoreExtraDdl");
-
Query