mirror of
https://github.com/hibernate/hibernate-orm
synced 2025-02-19 17:45:10 +00:00
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.config.Configuration;
|
||||
import org.infinispan.configuration.cache.CacheMode;
|
||||
import org.infinispan.configuration.cache.ConfigurationBuilder;
|
||||
import org.infinispan.configuration.cache.LegacyConfigurationAdaptor;
|
||||
import org.infinispan.configuration.global.GlobalConfigurationBuilder;
|
||||
import org.infinispan.configuration.parsing.ConfigurationBuilderHolder;
|
||||
import org.infinispan.factories.GlobalComponentRegistry;
|
||||
@ -510,12 +511,21 @@ private AdvancedCache getCache(String regionName, String typeKey, Properties pro
|
||||
if (regionOverride != null) {
|
||||
if (log.isDebugEnabled()) log.debug("Cache region specific configuration exists: " + regionOverride);
|
||||
regionOverride = overrideStatisticsIfPresent(regionOverride, properties);
|
||||
regionCacheCfg = regionOverride.createInfinispanConfiguration();
|
||||
|
||||
String cacheName = regionOverride.getCacheName();
|
||||
if (cacheName != null) // Region specific override with a given cache name
|
||||
templateCacheName = cacheName;
|
||||
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 {
|
||||
// No region specific overrides, template cache name is generic for data type.
|
||||
templateCacheName = typeOverrides.get(typeKey).getCacheName();
|
||||
|
@ -119,7 +119,10 @@ public void setExposeStatistics(boolean isExposeStatistics) {
|
||||
}
|
||||
|
||||
public Configuration createInfinispanConfiguration() {
|
||||
Configuration cacheCfg = new Configuration();
|
||||
return prepareInfinispanConfiguration(new Configuration());
|
||||
}
|
||||
|
||||
public Configuration prepareInfinispanConfiguration(Configuration cacheCfg) {
|
||||
if (overridden.contains("evictionStrategy"))
|
||||
cacheCfg.fluent().eviction().strategy(evictionStrategy);
|
||||
if (overridden.contains("evictionWakeUpInterval"))
|
||||
|
Loading…
x
Reference in New Issue
Block a user