[hibernate-commits] Hibernate SVN: r19900 - in core/branches/Branch_3_5/cache-infinispan/src: test/java/org/hibernate/test/cache/infinispan/functional/classloader and 1 other directory.

hibernate-commits at lists.jboss.org hibernate-commits at lists.jboss.org
Mon Jul 5 13:25:32 EDT 2010


Author: galder.zamarreno at 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);
 



More information about the hibernate-commits mailing list