Author: galder.zamarreno(a)jboss.com
Date: 2010-07-05 13:25:32 -0400 (Mon, 05 Jul 2010)
New Revision: 19900
Modified:
core/branches/Branch_3_5/cache-infinispan/src/main/java/org/hibernate/cache/infinispan/InfinispanRegionFactory.java
core/branches/Branch_3_5/cache-infinispan/src/test/java/org/hibernate/test/cache/infinispan/functional/classloader/IsolatedClassLoaderTest.java
Log:
[HHH-5260] (Allow query region name specific eviction settings) Fix regression in query
cache tests.
Modified:
core/branches/Branch_3_5/cache-infinispan/src/main/java/org/hibernate/cache/infinispan/InfinispanRegionFactory.java
===================================================================
---
core/branches/Branch_3_5/cache-infinispan/src/main/java/org/hibernate/cache/infinispan/InfinispanRegionFactory.java 2010-07-05
17:04:29 UTC (rev 19899)
+++
core/branches/Branch_3_5/cache-infinispan/src/main/java/org/hibernate/cache/infinispan/InfinispanRegionFactory.java 2010-07-05
17:25:32 UTC (rev 19900)
@@ -183,7 +183,12 @@
public QueryResultsRegion buildQueryResultsRegion(String regionName, Properties
properties)
throws CacheException {
if (log.isDebugEnabled()) log.debug("Building query results cache region
[" + regionName + "]");
- Cache cache = getCache(regionName, QUERY_KEY, properties);
+ String cacheName = typeOverrides.get(QUERY_KEY).getCacheName();
+ // If region name is not default one, lookup a cache for that region name
+ if (!regionName.equals("org.hibernate.cache.StandardQueryCache"))
+ cacheName = regionName;
+
+ Cache cache = getCache(cacheName, QUERY_KEY, properties);
CacheAdapter cacheAdapter = CacheAdapterImpl.newInstance(cache);
QueryResultsRegionImpl region = new QueryResultsRegionImpl(cacheAdapter,
regionName, properties, transactionManager, this);
region.start();
@@ -369,7 +374,7 @@
String templateCacheName = null;
Configuration regionCacheCfg = null;
if (regionOverride != null) {
- if (log.isDebugEnabled()) log.debug("Entity cache region specific
configuration exists: " + regionOverride);
+ if (log.isDebugEnabled()) log.debug("Cache region specific configuration
exists: " + regionOverride);
regionOverride = overrideStatisticsIfPresent(regionOverride, properties);
regionCacheCfg = regionOverride.createInfinispanConfiguration();
String cacheName = regionOverride.getCacheName();
Modified:
core/branches/Branch_3_5/cache-infinispan/src/test/java/org/hibernate/test/cache/infinispan/functional/classloader/IsolatedClassLoaderTest.java
===================================================================
---
core/branches/Branch_3_5/cache-infinispan/src/test/java/org/hibernate/test/cache/infinispan/functional/classloader/IsolatedClassLoaderTest.java 2010-07-05
17:04:29 UTC (rev 19899)
+++
core/branches/Branch_3_5/cache-infinispan/src/test/java/org/hibernate/test/cache/infinispan/functional/classloader/IsolatedClassLoaderTest.java 2010-07-05
17:25:32 UTC (rev 19900)
@@ -88,6 +88,7 @@
protected void standardConfigure(Configuration cfg) {
super.standardConfigure(cfg);
cfg.setProperty(InfinispanRegionFactory.QUERY_CACHE_RESOURCE_PROP,
"replicated-query");
+ cfg.setProperty("hibernate.cache.infinispan.AccountRegion.cfg",
"replicated-query");
}
@@ -164,15 +165,25 @@
// Bind a listener to the "local" cache
// Our region factory makes its CacheManager available to us
CacheManager localManager =
ClusterAwareRegionFactory.getCacheManager(DualNodeTestCase.LOCAL);
- localQueryCache = localManager.getCache("replicated-query");
+ // Bind a listener to the "remote" cache
+ CacheManager remoteManager =
ClusterAwareRegionFactory.getCacheManager(DualNodeTestCase.REMOTE);
+ String cacheName;
+ if (useNamedRegion) {
+ cacheName = "AccountRegion"; // As defined by ClassLoaderTestDAO via
calls to query.setCacheRegion
+ // Define cache configurations for region early to avoid ending up with local
caches for this region
+ localManager.defineConfiguration(cacheName, "replicated-query", new
org.infinispan.config.Configuration());
+ remoteManager.defineConfiguration(cacheName, "replicated-query", new
org.infinispan.config.Configuration());
+ } else {
+ cacheName = "replicated-query";
+ }
+
+ localQueryCache = localManager.getCache(cacheName);
localQueryListener = new CacheAccessListener();
localQueryCache.addListener(localQueryListener);
TransactionManager localTM =
DualNodeJtaTransactionManagerImpl.getInstance(DualNodeTestCase.LOCAL);
- // Bind a listener to the "remote" cache
- CacheManager remoteManager =
ClusterAwareRegionFactory.getCacheManager(DualNodeTestCase.REMOTE);
- remoteQueryCache = remoteManager.getCache("replicated-query");
+ remoteQueryCache = remoteManager.getCache(cacheName);
remoteQueryListener = new CacheAccessListener();
remoteQueryCache.addListener(remoteQueryListener);