Skip to content

Commit

Permalink
Merge pull request #147 from liquibase/4.4-support
Browse files Browse the repository at this point in the history
Updated code to work with 4.4.0 release
  • Loading branch information
molivasdat authored Jun 16, 2021
2 parents 524f9bf + e47ca02 commit 4e5fbf5
Show file tree
Hide file tree
Showing 7 changed files with 22 additions and 197 deletions.
2 changes: 1 addition & 1 deletion pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven-surefire-plugin.version>2.22.2</maven-surefire-plugin.version>
<maven-failsafe-plugin.version>2.22.2</maven-failsafe-plugin.version>
<liquibase.version>4.3.5</liquibase.version>
<liquibase.version>4.4.0</liquibase.version>
<jupiter.version>5.7.2</jupiter.version>
<jupiter.surefire.version>1.3.2</jupiter.surefire.version>
<mockito-core.version>3.10.0</mockito-core.version>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,62 +1,31 @@
package liquibase.ext.mongodb.configuration;

import liquibase.configuration.AbstractConfigurationContainer;
import liquibase.configuration.AutoloadedConfigurations;
import liquibase.configuration.ConfigurationDefinition;

import static java.lang.Boolean.TRUE;

public class MongoConfiguration extends AbstractConfigurationContainer {
public class MongoConfiguration implements AutoloadedConfigurations {


public static final String LIQUIBASE_MONGO_NAMESPACE = "liquibase.mongodb";
public static final String ADJUST_TRACKING_TABLES_ON_STARTUP = "adjustTrackingTablesOnStartup";
public static final String SUPPORTS_VALIDATOR = "supportsValidator";
public static final ConfigurationDefinition<Boolean> ADJUST_TRACKING_TABLES_ON_STARTUP;
public static final ConfigurationDefinition<Boolean> SUPPORTS_VALIDATOR;
static {
liquibase.configuration.ConfigurationDefinition.Builder builder = new ConfigurationDefinition.Builder(LIQUIBASE_MONGO_NAMESPACE);

public MongoConfiguration() {
this(LIQUIBASE_MONGO_NAMESPACE);
}

/**
* Subclasses must call this constructor passing the namespace, but must themselves provide a no-arg public constructor.
*
* @param namespace - default property prefix
*/
protected MongoConfiguration(final String namespace) {

super(namespace);

getContainer().addProperty(ADJUST_TRACKING_TABLES_ON_STARTUP, Boolean.class)
.setDescription("Enabling this property will validate History Change Log and Log Lock Collections " +
"on Startup and adjust if are not up to date with current release." +
"Worth keeping it disabled and re-enable when upgraded to a new Liquibase version.")
.setDefaultValue(TRUE);
ADJUST_TRACKING_TABLES_ON_STARTUP = builder.define("adjustTrackingTablesOnStartup", Boolean.class)
.setDescription("Enabling this property will validate History Change Log and Log Lock Collections " +
"on Startup and adjust if are not up to date with current release." +
"Worth keeping it disabled and re-enable when upgraded to a new Liquibase version.")
.setDefaultValue(TRUE)
.build();

getContainer().addProperty(SUPPORTS_VALIDATOR, Boolean.class)
SUPPORTS_VALIDATOR = builder.define("supportsValidator", Boolean.class)
.setDescription("Disabling this property will let create the Tracking Collections without validators." +
"This will permit usage on Mongo Versions not supporting Validators")
.setDefaultValue(TRUE);
}

/**
* Adjust DATABASECHANGELOG and DATABASECHANGELOGLOCK on Startup
*/
public Boolean getAdjustTrackingTablesOnStartup() {
return getContainer().getValue(ADJUST_TRACKING_TABLES_ON_STARTUP, Boolean.class);
}

public MongoConfiguration setAdjustTrackingTablesOnStartup(final Boolean value) {
getContainer().setValue(ADJUST_TRACKING_TABLES_ON_STARTUP, value);
return this;
}

/**
* Add Validator to DATABASECHANGELOG and DATABASECHANGELOGLOCK on Creation and Startup Adjustment
*/
public Boolean getSupportsValidator() {
return getContainer().getValue(SUPPORTS_VALIDATOR, Boolean.class);
}

public MongoConfiguration setSupportsValidator(final Boolean value) {
getContainer().setValue(SUPPORTS_VALIDATOR, value);
return this;
.setDefaultValue(TRUE)
.build();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -108,17 +108,15 @@ public Boolean getAdjustTrackingTablesOnStartup() {
return adjustTrackingTablesOnStartup;
}

return LiquibaseConfiguration.getInstance().getConfiguration(MongoConfiguration.class)
.getAdjustTrackingTablesOnStartup();
return MongoConfiguration.ADJUST_TRACKING_TABLES_ON_STARTUP.getCurrentValue();
}

public Boolean getSupportsValidator() {
if (supportsValidator != null) {
return supportsValidator;
}

return LiquibaseConfiguration.getInstance().getConfiguration(MongoConfiguration.class)
.getSupportsValidator();
return MongoConfiguration.SUPPORTS_VALIDATOR.getCurrentValue();
}


Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
liquibase.ext.mongodb.configuration.MongoConfiguration

This file was deleted.

Original file line number Diff line number Diff line change
Expand Up @@ -19,17 +19,13 @@
class MongoLiquibaseDatabaseTest {

protected MongoLiquibaseDatabase database;
protected MongoConfiguration configuration;

@SneakyThrows
@BeforeEach
void setUp() {
resetServices();

database = new MongoLiquibaseDatabase();

configuration = LiquibaseConfiguration.getInstance()
.getConfiguration(MongoConfiguration.class);
}

@AfterEach
Expand All @@ -39,7 +35,6 @@ void tearDown() {

protected void resetServices() {
DatabaseFactory.reset();
LiquibaseConfiguration.getInstance().reset();
}

@SneakyThrows
Expand Down Expand Up @@ -73,42 +68,6 @@ void getDefaultDatabaseProductName() {
assertThat(database.getDefaultDatabaseProductName()).isEqualTo("MongoDB");
}

@Test
void getAdjustTrackingTablesOnStartup() {
assertThat(configuration.getAdjustTrackingTablesOnStartup()).isTrue();
assertThat(database.getAdjustTrackingTablesOnStartup()).isTrue();
configuration.setAdjustTrackingTablesOnStartup(FALSE);
assertThat(configuration.getAdjustTrackingTablesOnStartup()).isFalse();
assertThat(database.getAdjustTrackingTablesOnStartup()).isFalse();
}

@Test
void getSupportsValidator() {
assertThat(configuration.getSupportsValidator()).isTrue();
assertThat(database.getSupportsValidator()).isTrue();
configuration.setSupportsValidator(FALSE);
assertThat(configuration.getSupportsValidator()).isFalse();
assertThat(database.getSupportsValidator()).isFalse();
}

@Test
void setAdjustTrackingTablesOnStartup() {
assertThat(configuration.getAdjustTrackingTablesOnStartup()).isTrue();
assertThat(database.getAdjustTrackingTablesOnStartup()).isTrue();
database.setAdjustTrackingTablesOnStartup(FALSE);
assertThat(configuration.getAdjustTrackingTablesOnStartup()).isTrue();
assertThat(database.getAdjustTrackingTablesOnStartup()).isFalse();
}

@Test
void setSupportsValidator() {
assertThat(configuration.getSupportsValidator()).isTrue();
assertThat(database.getSupportsValidator()).isTrue();
database.setSupportsValidator(FALSE);
assertThat(configuration.getSupportsValidator()).isTrue();
assertThat(database.getSupportsValidator()).isFalse();
}

@Test
void getPriority() {
assertThat(database.getPriority())
Expand Down Expand Up @@ -162,4 +121,4 @@ void getDefaultSchema() {
.containsExactly("catalog1", "catalog1");
}

}
}
Original file line number Diff line number Diff line change
Expand Up @@ -72,7 +72,6 @@ void setUp() {
protected void resetServices() {
LockServiceFactory.reset();
Scope.getCurrentScope().getSingleton(ExecutorService.class).reset();
LiquibaseConfiguration.getInstance().init();
}

@AfterEach
Expand Down Expand Up @@ -707,4 +706,4 @@ void setChangeLogLockWaitTime() {
.isNotEqualTo(LiquibaseConfiguration.getInstance().getConfiguration(GlobalConfiguration.class).getDatabaseChangeLogLockWaitTime())
.isEqualTo(1000L);
}
}
}

0 comments on commit 4e5fbf5

Please sign in to comment.