Refactor: relpaced system-property "ebean.ignoreExtraDdl" with serverConfig flag (#1597)

This commit is contained in:
Roland Praml
2019-01-09 16:17:11 +13:00
committed by Rob Bygrave
parent 93b9cbf9ac
commit 5fe532c393
16 changed files with 43 additions and 36 deletions
@@ -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)
* <p>
* 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.
* <p>
@@ -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);
@@ -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()) {
@@ -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);
@@ -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);
@@ -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);
@@ -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);
@@ -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);
@@ -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);
@@ -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);
@@ -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());
@@ -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();
@@ -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);
@@ -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");
@@ -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);
@@ -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);
@@ -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<UTMaster> query = ebeanServer.find(UTMaster.class);
List<UTMaster> details = query.findList();
assertEquals(0, details.size());