From 5fe532c39342a9d7415e2cdf883e5a52ecf91b82 Mon Sep 17 00:00:00 2001 From: Roland Praml Date: Wed, 9 Jan 2019 04:17:11 +0100 Subject: [PATCH] Refactor: relpaced system-property "ebean.ignoreExtraDdl" with serverConfig flag (#1597) --- .../java/io/ebean/config/ServerConfig.java | 20 +++++++++++++++++++ .../dbmigration/DdlGenerator.java | 8 ++++---- ...nServerFactory_ServerConfigStart_Test.java | 3 +-- .../ebean/event/BeanFindControllerTest.java | 6 ++---- .../event/BeanPersistControllerTest.java | 3 +-- .../java/io/ebean/event/BeanPostLoadTest.java | 3 +-- .../build/ModelBuild_compoundKeyTest.java | 3 +-- .../ModelBuild_explicitSequencesTest.java | 3 +-- .../deploy/BeanDescriptor_registerTest.java | 3 +-- .../partition/MultiTenantPartitionTest.java | 2 +- .../java/org/tests/basic/MainDbBoolean.java | 6 ++---- .../org/tests/changelog/TestChangeLog.java | 4 ++-- .../TestPersistenceContextServerConfig.java | 2 +- .../org/tests/readaudit/TestReadAudit.java | 4 ++-- .../transaction/TestAutoCommitDataSource.java | 4 ++-- .../TestExplicitTransactionMode.java | 5 +---- 16 files changed, 43 insertions(+), 36 deletions(-) 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 query = ebeanServer.find(UTMaster.class); List details = query.findList(); assertEquals(0, details.size());