private Map<String,String> migrateSettings( Map<String,String> settings ) { return migrator.apply( settings, log ); }
@Override @Nonnull public Map<String,String> apply( @Nonnull Map<String,String> rawConfiguration, @Nonnull Log log ) { for ( ConfigurationMigrator migrator : migrators ) { rawConfiguration = migrator.apply( rawConfiguration, log ); } return rawConfiguration; }
@Test public void testNoMigration() { assertThat( migrator.apply( stringMap( "foo", "bar" ), NullLog.getInstance() ), equalTo( stringMap( "foo", "bar" ) ) ); logProvider.assertNoLoggingOccurred(); }
@Test public void skipMigrationOfTransactionTimeoutIfNotPresent() { Map<String,String> migratedProperties = migrator.apply( stringMap( "dbms.rest.transaction.idle_timeout", "120s" ), getLog() ); assertEquals( "Nothing to migrate", migratedProperties, stringMap( "dbms.rest.transaction.idle_timeout", "120s" )); logProvider.assertNoLoggingOccurred(); }
@Test public void migrateTransactionEndTimeout() { Map<String,String> migratedProperties = migrator.apply( stringMap( "unsupported.dbms.shutdown_transaction_end_timeout", "12s" ), getLog() ); assertEquals( "Old property should be migrated to new", migratedProperties, stringMap( "dbms.shutdown_transaction_end_timeout", "12s" ) ); assertContainsWarningMessage( "unsupported.dbms.shutdown_transaction_end_timeout has been " + "replaced with dbms.shutdown_transaction_end_timeout." ); }
@Test public void migrateIndexSamplingBufferSizeIfPresent() { Map<String,String> resultConfig = migrator.apply( stringMap( "dbms.index_sampling.buffer_size", "64m" ), getLog() ); assertEquals( "Old property should be migrated to new one with correct value", resultConfig, stringMap( "dbms.index_sampling.sample_size_limit", "8388608" )); assertContainsWarningMessage("dbms.index_sampling.buffer_size has been replaced with dbms.index_sampling.sample_size_limit."); }
@Test public void skipMigrationOfExecutionTimeLimitIfTransactionTimeoutConfigured() { Map<String,String> migratedProperties = migrator.apply( stringMap( "unsupported.dbms.executiontime_limit.time", "12s", "dbms.transaction.timeout", "120s" ), getLog() ); assertEquals( "Should keep pre configured transaction timeout.", migratedProperties, stringMap( "dbms.transaction.timeout", "120s" )); assertContainsWarningMessage(); }
@Test public void migrateAllowFormatMigration() { Map<String,String> migratedProperties = migrator.apply( stringMap( "dbms.allow_format_migration", "true" ), getLog() ); assertEquals( "Old property should be migrated to new", migratedProperties, stringMap( "dbms.allow_upgrade", "true" )); assertContainsWarningMessage("dbms.allow_format_migration has been replaced with dbms.allow_upgrade."); }
@Test public void skipMigrationOfTransactionEndTimeoutIfCustomTransactionEndTimeoutConfigured() { Map<String,String> migratedProperties = migrator.apply( stringMap( "unsupported.dbms.shutdown_transaction_end_timeout", "12s", "dbms.shutdown_transaction_end_timeout", "14s" ), getLog() ); assertEquals( "Should keep pre configured transaction timeout.", migratedProperties, stringMap( "dbms.shutdown_transaction_end_timeout", "14s" )); assertContainsWarningMessage(); }
@Test public void skipMigrationOfIndexSamplingBufferSizeIfNotPresent() { Map<String,String> resultConfig = migrator.apply( stringMap( "dbms.index_sampling.sample_size_limit", "8388600" ), getLog() ); assertEquals( "Nothing to migrate should be the same", resultConfig, stringMap( "dbms.index_sampling.sample_size_limit", "8388600" )); logProvider.assertNoLoggingOccurred(); }
@Test public void migrateRestTransactionTimeoutIfPresent() { Map<String,String> migratedProperties = migrator.apply( stringMap( "dbms.transaction_timeout", "120s" ), getLog() ); assertEquals( "Old property should be migrated to new", migratedProperties, stringMap( "dbms.rest.transaction.idle_timeout", "120s" )); assertContainsWarningMessage("dbms.transaction_timeout has been replaced with dbms.rest.transaction.idle_timeout."); }
@Test public void migrateExecutionTimeLimitIfPresent() { Map<String,String> migratedProperties = migrator.apply( stringMap( "unsupported.dbms.executiontime_limit.time", "120s" ), getLog() ); assertEquals( "Old property should be migrated to new", migratedProperties, stringMap( "dbms.transaction.timeout", "120s" )); assertContainsWarningMessage("unsupported.dbms.executiontime_limit.time has been replaced with dbms.transaction.timeout."); }
@Test public void skipMigrationOfExecutionTimeLimitIfNotPresent() { Map<String,String> migratedProperties = migrator.apply( stringMap( "dbms.transaction.timeout", "120s" ), getLog() ); assertEquals( "Nothing to migrate", migratedProperties, stringMap( "dbms.transaction.timeout", "120s" )); logProvider.assertNoLoggingOccurred(); }
@Test public void skipMigrationOfTransactionEndTimeoutIfNotPresent() { Map<String,String> migratedProperties = migrator.apply( stringMap( "dbms.shutdown_transaction_end_timeout", "12s" ), getLog() ); assertEquals( "Nothing to migrate", migratedProperties, stringMap( "dbms.shutdown_transaction_end_timeout", "12s" )); logProvider.assertNoLoggingOccurred(); }
@Test public void migrateEnableNativeSchemaIndex() { Map<String,String> migratedProperties = migrator.apply( stringMap( "unsupported.dbms.enable_native_schema_index", "false" ), getLog() ); assertEquals( "Old property should be migrated to new", migratedProperties, stringMap( "dbms.index.default_schema_provider", LUCENE10.providerName() )); assertContainsWarningMessage("unsupported.dbms.enable_native_schema_index has been replaced with dbms.index.default_schema_provider."); }
@Test public void skipMigrationOfEnableNativeSchemaIndexIfDefaultSchemaIndexConfigured() { Map<String,String> migratedProperties = migrator.apply( stringMap( "dbms.index.default_schema_provider", NATIVE10.providerName(), "unsupported.dbms.enable_native_schema_index", "false" ), getLog() ); assertEquals( "Should keep pre configured default schema index.", migratedProperties, stringMap( "dbms.index.default_schema_provider", NATIVE10.providerName() ) ); assertContainsWarningMessage(); }
@Test public void skipMigrationOfEnableNativeSchemaIndexIfNotPresent() { Map<String,String> migratedProperties = migrator.apply( stringMap( "dbms.index.default_schema_provider", NATIVE10.providerName() ), getLog() ); assertEquals( "Nothing to migrate", migratedProperties, stringMap( "dbms.index.default_schema_provider", NATIVE10.providerName() ) ); logProvider.assertNoLoggingOccurred(); }
private Map<String,String> migrateSettings( Map<String,String> settings ) { return migrator.apply( settings, log ); }
@Override @Nonnull public Map<String,String> apply( @Nonnull Map<String,String> rawConfiguration, @Nonnull Log log ) { for ( ConfigurationMigrator migrator : migrators ) { rawConfiguration = migrator.apply( rawConfiguration, log ); } return rawConfiguration; }