Class ConfigMigrator

java.lang.Object
com.loomcache.server.config.ConfigMigrator

public final class ConfigMigrator extends Object
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.

  • Field Details

  • Constructor Details

    • ConfigMigrator

      public ConfigMigrator()
  • Method Details

    • migrate

      public static Map<String,Object> migrate(@Nullable Map<String,Object> raw)
      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

      public static Map<String,Object> migrate(Map<String,Object> raw, int fromVersion, int toVersion)
      Migrate configuration from source version to target version.

      Applies migration functions sequentially for each version step.

      Parameters:
      raw - Raw configuration
      fromVersion - Source schema version
      toVersion - Target schema version
      Returns:
      Migrated configuration
    • registerMigration

      public static void registerMigration(int fromVersion, BiFunction<Map<String,Object>, Integer, Map<String,Object>> migrator)
      Register a migration function for a version transition. Used by test code to register custom migrations.
    • clearMigrations

      public static void clearMigrations()
      Clear all registered migrations (for testing).