Class ConfigMigrator
java.lang.Object
com.loomcache.server.config.ConfigMigrator
Migrates configuration across schema versions.
When loading a configuration file, detects its schema version and applies migration functions to transform it to the current schema version.
Supports: - Auto-detection of schema version from config (schemaVersion field, default 1) - Registration of migration functions for version transitions - Graceful handling of missing or invalid schema versions
Example usage:
Mapinvalid input: '<'String, Object> raw = loadFromFile(...); Mapinvalid input: '<'String, Object> migrated = ConfigMigrator.migrate(raw); LoomConfig config = buildFromMap(migrated);
Thread-safe: The migrate() method can be called from multiple threads.
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic classException thrown when configuration migration fails. -
Field Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic voidClear all registered migrations (for testing).Migrate a raw configuration map to the current schema version.Migrate configuration from source version to target version.static voidregisterMigration(int fromVersion, BiFunction<Map<String, Object>, Integer, Map<String, Object>> migrator) Register a migration function for a version transition.
-
Field Details
-
CONFIG_SCHEMA_VERSION
public static final int CONFIG_SCHEMA_VERSION- See Also:
-
-
Constructor Details
-
ConfigMigrator
public ConfigMigrator()
-
-
Method Details
-
migrate
Migrate a raw configuration map to the current schema version.Auto-detects the source schema version (defaults to 1 if not found). Applies migration functions sequentially from source version to current version.
- Parameters:
raw- Raw configuration map from file (may be null)- Returns:
- Migrated configuration map (or the input if no migration needed)
-
migrate
Migrate configuration from source version to target version.Applies migration functions sequentially for each version step.
- Parameters:
raw- Raw configurationfromVersion- Source schema versiontoVersion- Target schema version- Returns:
- Migrated configuration
-
registerMigration
-
clearMigrations
public static void clearMigrations()Clear all registered migrations (for testing).
-