Class CacheConfigurationValidator
- java.lang.Object
-
- io.github.dhruv1110.jcachex.spring.configuration.CacheConfigurationValidator
-
public class CacheConfigurationValidator extends Object
Validator for JCacheX cache configurations. This validator ensures that cache configurations are valid and provides helpful error messages for common misconfigurations. It validates both individual cache configurations and the overall configuration consistency.Validation Rules:
- Cache Names: Must be non-empty and contain valid characters
- Size Limits: Maximum size and weight must be positive
- Time Settings: Expiration times must be positive
- Eviction Strategies: Must be valid strategy names
- Consistency: Related settings must be consistent
Usage Examples:
// Manual validation CacheConfigurationValidator validator = new CacheConfigurationValidator(); List<String> errors = validator.validate(properties); if (!errors.isEmpty()) { throw new IllegalArgumentException("Configuration errors: " + errors); } // Validate single cache config List<String> cacheErrors = validator.validateCacheConfig("users", userCacheConfig);
- Since:
- 1.0.0
- See Also:
JCacheXProperties
,JCacheXAutoConfiguration
-
-
Constructor Summary
Constructors Constructor Description CacheConfigurationValidator()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description boolean
areCompatible(JCacheXProperties.CacheConfig config1, JCacheXProperties.CacheConfig config2)
Validates that two configurations are compatible.List<String>
getRecommendations(String cacheName, JCacheXProperties.CacheConfig config)
Returns a list of recommended settings for a cache configuration.List<String>
validate(JCacheXProperties properties)
Validates the entire JCacheX configuration.List<String>
validateCacheConfig(String cacheName, JCacheXProperties.CacheConfig config)
Validates a single cache configuration.
-
-
-
Method Detail
-
validate
public List<String> validate(JCacheXProperties properties)
Validates the entire JCacheX configuration.- Parameters:
properties
- the JCacheX properties to validate- Returns:
- list of validation errors (empty if valid)
- Throws:
IllegalArgumentException
- if validation fails
-
validateCacheConfig
public List<String> validateCacheConfig(String cacheName, JCacheXProperties.CacheConfig config)
Validates a single cache configuration.- Parameters:
cacheName
- the name of the cacheconfig
- the cache configuration to validate- Returns:
- list of validation errors (empty if valid)
-
areCompatible
public boolean areCompatible(JCacheXProperties.CacheConfig config1, JCacheXProperties.CacheConfig config2)
Validates that two configurations are compatible.
-
getRecommendations
public List<String> getRecommendations(String cacheName, JCacheXProperties.CacheConfig config)
Returns a list of recommended settings for a cache configuration.
-
-