BZ-1457508 : Fixed propagation of properties for region cache
This commit is contained in:
parent
d7604aa55d
commit
7e26258e85
|
@ -19,6 +19,7 @@ import org.infinispan.commands.module.ModuleCommandFactory;
|
||||||
import org.infinispan.config.Configuration;
|
import org.infinispan.config.Configuration;
|
||||||
import org.infinispan.configuration.cache.CacheMode;
|
import org.infinispan.configuration.cache.CacheMode;
|
||||||
import org.infinispan.configuration.cache.ConfigurationBuilder;
|
import org.infinispan.configuration.cache.ConfigurationBuilder;
|
||||||
|
import org.infinispan.configuration.cache.LegacyConfigurationAdaptor;
|
||||||
import org.infinispan.configuration.global.GlobalConfigurationBuilder;
|
import org.infinispan.configuration.global.GlobalConfigurationBuilder;
|
||||||
import org.infinispan.configuration.parsing.ConfigurationBuilderHolder;
|
import org.infinispan.configuration.parsing.ConfigurationBuilderHolder;
|
||||||
import org.infinispan.factories.GlobalComponentRegistry;
|
import org.infinispan.factories.GlobalComponentRegistry;
|
||||||
|
@ -510,12 +511,21 @@ public class InfinispanRegionFactory implements RegionFactory {
|
||||||
if (regionOverride != null) {
|
if (regionOverride != null) {
|
||||||
if (log.isDebugEnabled()) log.debug("Cache region specific configuration exists: " + regionOverride);
|
if (log.isDebugEnabled()) log.debug("Cache region specific configuration exists: " + regionOverride);
|
||||||
regionOverride = overrideStatisticsIfPresent(regionOverride, properties);
|
regionOverride = overrideStatisticsIfPresent(regionOverride, properties);
|
||||||
regionCacheCfg = regionOverride.createInfinispanConfiguration();
|
|
||||||
String cacheName = regionOverride.getCacheName();
|
String cacheName = regionOverride.getCacheName();
|
||||||
if (cacheName != null) // Region specific override with a given cache name
|
if (cacheName != null) // Region specific override with a given cache name
|
||||||
templateCacheName = cacheName;
|
templateCacheName = cacheName;
|
||||||
else // Region specific override without cache name, so template cache name is generic for data type.
|
else // Region specific override without cache name, so template cache name is generic for data type.
|
||||||
templateCacheName = typeOverrides.get(typeKey).getCacheName();
|
templateCacheName = typeOverrides.get(typeKey).getCacheName();
|
||||||
|
|
||||||
|
org.infinispan.configuration.cache.Configuration cfg = manager.getCacheConfiguration(templateCacheName);
|
||||||
|
if(cfg != null) {
|
||||||
|
Configuration cfgAdapted = LegacyConfigurationAdaptor.adapt(cfg);
|
||||||
|
regionCacheCfg = regionOverride.prepareInfinispanConfiguration(cfgAdapted);
|
||||||
|
} else {
|
||||||
|
regionCacheCfg = regionOverride.createInfinispanConfiguration();
|
||||||
|
}
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
// No region specific overrides, template cache name is generic for data type.
|
// No region specific overrides, template cache name is generic for data type.
|
||||||
templateCacheName = typeOverrides.get(typeKey).getCacheName();
|
templateCacheName = typeOverrides.get(typeKey).getCacheName();
|
||||||
|
|
|
@ -119,7 +119,10 @@ public class TypeOverrides {
|
||||||
}
|
}
|
||||||
|
|
||||||
public Configuration createInfinispanConfiguration() {
|
public Configuration createInfinispanConfiguration() {
|
||||||
Configuration cacheCfg = new Configuration();
|
return prepareInfinispanConfiguration(new Configuration());
|
||||||
|
}
|
||||||
|
|
||||||
|
public Configuration prepareInfinispanConfiguration(Configuration cacheCfg) {
|
||||||
if (overridden.contains("evictionStrategy"))
|
if (overridden.contains("evictionStrategy"))
|
||||||
cacheCfg.fluent().eviction().strategy(evictionStrategy);
|
cacheCfg.fluent().eviction().strategy(evictionStrategy);
|
||||||
if (overridden.contains("evictionWakeUpInterval"))
|
if (overridden.contains("evictionWakeUpInterval"))
|
||||||
|
|
Loading…
Reference in New Issue