DATAREDIS-1118 - Allow configuration of RedisCacheWriter on existing RedisCacheManagerBuilder.
We now allow configuration of the RedisCacheWriter on existing RedisCacheManagerBuilder objects. Original Pull Request: #522
This commit is contained in:
committed by
Christoph Strobl
parent
9dcbced2be
commit
0a8d431570
@@ -190,6 +190,16 @@ public class RedisCacheManager extends AbstractTransactionSupportingCacheManager
|
||||
RedisCacheConfiguration.defaultCacheConfig());
|
||||
}
|
||||
|
||||
/**
|
||||
* Entry point for builder style {@link RedisCacheManager} configuration.
|
||||
*
|
||||
* @return new {@link RedisCacheManagerBuilder}.
|
||||
* @since 2.3
|
||||
*/
|
||||
public static RedisCacheManagerBuilder builder() {
|
||||
return new RedisCacheManagerBuilder();
|
||||
}
|
||||
|
||||
/**
|
||||
* Entry point for builder style {@link RedisCacheManager} configuration.
|
||||
*
|
||||
@@ -272,18 +282,20 @@ public class RedisCacheManager extends AbstractTransactionSupportingCacheManager
|
||||
* Configurator for creating {@link RedisCacheManager}.
|
||||
*
|
||||
* @author Christoph Strobl
|
||||
* @author Mark Strobl
|
||||
* @author Mark Paluch
|
||||
* @author Kezhu Wang
|
||||
* @since 2.0
|
||||
*/
|
||||
public static class RedisCacheManagerBuilder {
|
||||
|
||||
private final RedisCacheWriter cacheWriter;
|
||||
private @Nullable RedisCacheWriter cacheWriter;
|
||||
private RedisCacheConfiguration defaultCacheConfiguration = RedisCacheConfiguration.defaultCacheConfig();
|
||||
private final Map<String, RedisCacheConfiguration> initialCaches = new LinkedHashMap<>();
|
||||
private boolean enableTransactions;
|
||||
boolean allowInFlightCacheCreation = true;
|
||||
|
||||
private RedisCacheManagerBuilder() {}
|
||||
|
||||
private RedisCacheManagerBuilder(RedisCacheWriter cacheWriter) {
|
||||
this.cacheWriter = cacheWriter;
|
||||
}
|
||||
@@ -298,7 +310,7 @@ public class RedisCacheManager extends AbstractTransactionSupportingCacheManager
|
||||
|
||||
Assert.notNull(connectionFactory, "ConnectionFactory must not be null!");
|
||||
|
||||
return builder(new DefaultRedisCacheWriter(connectionFactory));
|
||||
return new RedisCacheManagerBuilder(new DefaultRedisCacheWriter(connectionFactory));
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -329,6 +341,22 @@ public class RedisCacheManager extends AbstractTransactionSupportingCacheManager
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Configure a {@link RedisCacheWriter}.
|
||||
*
|
||||
* @param cacheWriter must not be {@literal null}.
|
||||
* @return this {@link RedisCacheManagerBuilder}.
|
||||
* @since 2.3
|
||||
*/
|
||||
public RedisCacheManagerBuilder cacheWriter(RedisCacheWriter cacheWriter) {
|
||||
|
||||
Assert.notNull(cacheWriter, "CacheWriter must not be null!");
|
||||
|
||||
this.cacheWriter = cacheWriter;
|
||||
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Enable {@link RedisCache}s to synchronize cache put/evict operations with ongoing Spring-managed transactions.
|
||||
*
|
||||
@@ -435,6 +463,8 @@ public class RedisCacheManager extends AbstractTransactionSupportingCacheManager
|
||||
*/
|
||||
public RedisCacheManager build() {
|
||||
|
||||
Assert.notNull(cacheWriter, "CacheWriter must not be null!");
|
||||
|
||||
RedisCacheManager cm = new RedisCacheManager(cacheWriter, defaultCacheConfiguration, initialCaches,
|
||||
allowInFlightCacheCreation);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user