[jboss-cvs] JBossAS SVN: r109250 - in projects/cluster/ha-server-cache-ispn/trunk/src: test/java/org/jboss/web/tomcat/service/session/distributedcache/ispn and 1 other directory.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Wed Nov 10 15:39:24 EST 2010


Author: pferraro
Date: 2010-11-10 15:39:23 -0500 (Wed, 10 Nov 2010)
New Revision: 109250

Modified:
   projects/cluster/ha-server-cache-ispn/trunk/src/main/java/org/jboss/web/tomcat/service/session/distributedcache/ispn/DistributedCacheManager.java
   projects/cluster/ha-server-cache-ispn/trunk/src/test/java/org/jboss/web/tomcat/service/session/distributedcache/ispn/DistributedCacheManagerTest.java
Log:
Can't create cache in init(), since session manager is not yet wired to the Context.
Create cache lazily.

Modified: projects/cluster/ha-server-cache-ispn/trunk/src/main/java/org/jboss/web/tomcat/service/session/distributedcache/ispn/DistributedCacheManager.java
===================================================================
--- projects/cluster/ha-server-cache-ispn/trunk/src/main/java/org/jboss/web/tomcat/service/session/distributedcache/ispn/DistributedCacheManager.java	2010-11-10 20:30:26 UTC (rev 109249)
+++ projects/cluster/ha-server-cache-ispn/trunk/src/main/java/org/jboss/web/tomcat/service/session/distributedcache/ispn/DistributedCacheManager.java	2010-11-10 20:39:23 UTC (rev 109250)
@@ -551,17 +551,17 @@
    public static class JvmRouteHandler
    {
       private final LocalDistributableSessionManager manager;
-      private final Cache<Address, String> cache;
+      private final CacheSource source;
       
-      JvmRouteHandler(CacheSource cacheSource, LocalDistributableSessionManager manager)
+      JvmRouteHandler(CacheSource source, LocalDistributableSessionManager manager)
       {
-         this.cache = cacheSource.getCache(manager);
+         this.source = source;
          this.manager = manager;
       }
       
       public Cache<Address, String> getCache()
       {
-         return this.cache;
+         return this.source.getCache(this.manager);
       }
       
       @ViewChanged
@@ -570,12 +570,14 @@
          Collection<Address> oldMembers = event.getOldMembers();
          Collection<Address> newMembers = event.getNewMembers();
          
+         Cache<Address, String> cache = this.getCache();
+         
          // Remove jvm route of crashed member
          for (Address member: oldMembers)
          {
             if (!newMembers.contains(member))
             {
-               if (this.cache.remove(member) != null)
+               if (cache.remove(member) != null)
                {
                   log.info("Removed stale jvm route entry from web session cache on behalf of member " + member);
                }
@@ -589,7 +591,7 @@
             Address localAddress = event.getLocalAddress();
             if (!oldMembers.contains(localAddress) && newMembers.contains(localAddress))
             {
-               String oldJvmRoute = this.cache.put(localAddress, jvmRoute);
+               String oldJvmRoute = cache.put(localAddress, jvmRoute);
                if (oldJvmRoute == null)
                {
                   log.info("Adding missing jvm route entry to web session cache");

Modified: projects/cluster/ha-server-cache-ispn/trunk/src/test/java/org/jboss/web/tomcat/service/session/distributedcache/ispn/DistributedCacheManagerTest.java
===================================================================
--- projects/cluster/ha-server-cache-ispn/trunk/src/test/java/org/jboss/web/tomcat/service/session/distributedcache/ispn/DistributedCacheManagerTest.java	2010-11-10 20:30:26 UTC (rev 109249)
+++ projects/cluster/ha-server-cache-ispn/trunk/src/test/java/org/jboss/web/tomcat/service/session/distributedcache/ispn/DistributedCacheManagerTest.java	2010-11-10 20:39:23 UTC (rev 109250)
@@ -63,7 +63,7 @@
    private LocalDistributableSessionManager sessionManager;
    private SessionAttributeStorage<OutgoingDistributableSessionData> storage;
    private AdvancedCache<String, Map<Object, Object>> sessionCache;
-   private Cache<Address, String> jvmRouteCache;
+   private CacheSource jvmRouteCacheSource;
    private SharedLocalYieldingClusterLockManager lockManager;
    private BatchingManager batchingManager;
    private CacheInvoker invoker;
@@ -77,21 +77,19 @@
       this.sessionManager = this.control.createMock(LocalDistributableSessionManager.class);
       this.storage = this.control.createMock(SessionAttributeStorage.class);
       this.sessionCache = this.control.createMock(AdvancedCache.class);
-      this.jvmRouteCache = this.control.createMock(Cache.class);
+      this.jvmRouteCacheSource = this.control.createMock(CacheSource.class);
       this.lockManager = this.control.createMock(SharedLocalYieldingClusterLockManager.class);
       this.batchingManager = this.control.createMock(BatchingManager.class);
       this.invoker = this.control.createMock(CacheInvoker.class);
-      CacheSource cacheSource = this.control.createMock(CacheSource.class);
       
       Configuration configuration = new Configuration();
       configuration.setCacheMode(CacheMode.DIST_SYNC);
 
       EasyMock.expect(this.sessionCache.getConfiguration()).andReturn(configuration);
-      EasyMock.expect(cacheSource.<Address, String>getCache(this.sessionManager)).andReturn(this.jvmRouteCache);
       
       this.control.replay();
       
-      this.manager = new DistributedCacheManager<OutgoingDistributableSessionData>(this.sessionManager, this.sessionCache, cacheSource, this.lockManager, this.storage, this.batchingManager, this.invoker);
+      this.manager = new DistributedCacheManager<OutgoingDistributableSessionData>(this.sessionManager, this.sessionCache, this.jvmRouteCacheSource, this.lockManager, this.storage, this.batchingManager, this.invoker);
       
       this.control.verify();
       this.control.reset();
@@ -112,6 +110,8 @@
    {
       EmbeddedCacheManager container = this.control.createMock(EmbeddedCacheManager.class);
       Address address = this.control.createMock(Address.class);
+      @SuppressWarnings("unchecked")
+      Cache<Address, String> jvmRouteCache = this.control.createMock(Cache.class);
       Capture<DistributedCacheManager.JvmRouteHandler> capturedJvmRouteHandler = new Capture<DistributedCacheManager.JvmRouteHandler>();
       String jvmRoute = "node0";
       
@@ -130,7 +130,8 @@
       
       EasyMock.expect(this.sessionManager.getJvmRoute()).andReturn(jvmRoute);
       EasyMock.expect(container.getAddress()).andReturn(address);
-      EasyMock.expect(this.jvmRouteCache.putIfAbsent(EasyMock.same(address), EasyMock.same(jvmRoute))).andReturn(null);
+      EasyMock.expect(this.jvmRouteCacheSource.<Address, String>getCache(this.sessionManager)).andReturn(jvmRouteCache);
+      EasyMock.expect(jvmRouteCache.putIfAbsent(EasyMock.same(address), EasyMock.same(jvmRoute))).andReturn(null);
       
       this.control.replay();
       
@@ -729,20 +730,24 @@
    public void viewChanged()
    {
       ViewChangedEvent event = this.control.createMock(ViewChangedEvent.class);
-      Address newMember = EasyMock.createMock(Address.class);
-      Address member = EasyMock.createMock(Address.class);
-      Address oldMember = EasyMock.createMock(Address.class);
+      Address newMember = this.control.createMock(Address.class);
+      Address member = this.control.createMock(Address.class);
+      Address oldMember = this.control.createMock(Address.class);
+      @SuppressWarnings("unchecked")
+      Cache<Address, String> jvmRouteCache = this.control.createMock(Cache.class);
       String jvmRoute = "node1";
 
       DistributedCacheManager.JvmRouteHandler handler = this.start(ComponentStatus.RUNNING, false);
       
+      EasyMock.expect(this.jvmRouteCacheSource.<Address, String>getCache(this.sessionManager)).andReturn(jvmRouteCache);
+      
       EasyMock.expect(event.getOldMembers()).andReturn(Arrays.asList(member, oldMember));
       EasyMock.expect(event.getNewMembers()).andReturn(Arrays.asList(member, newMember));
-      EasyMock.expect(this.jvmRouteCache.remove(EasyMock.same(oldMember))).andReturn(null);
+      EasyMock.expect(jvmRouteCache.remove(EasyMock.same(oldMember))).andReturn(null);
       
       EasyMock.expect(event.getLocalAddress()).andReturn(newMember);
       EasyMock.expect(this.sessionManager.getJvmRoute()).andReturn(jvmRoute);
-      EasyMock.expect(this.jvmRouteCache.put(EasyMock.same(newMember), EasyMock.same(jvmRoute))).andReturn(null);
+      EasyMock.expect(jvmRouteCache.put(EasyMock.same(newMember), EasyMock.same(jvmRoute))).andReturn(null);
       
       this.control.replay();
       
@@ -806,6 +811,8 @@
       
       
       DistributionManager distManager = this.control.createMock(DistributionManager.class);
+      @SuppressWarnings("unchecked")
+      Cache<Address, String> jvmRouteCache = this.control.createMock(Cache.class);
       
       EasyMock.expect(this.sessionCache.getAdvancedCache()).andReturn(this.sessionCache);
       EasyMock.expect(this.sessionCache.getDistributionManager()).andReturn(distManager);
@@ -831,8 +838,9 @@
       EasyMock.expect(this.sessionCache.getDistributionManager()).andReturn(distManager);
       EasyMock.expect(distManager.isRehashInProgress()).andReturn(false);
       EasyMock.expect(distManager.locate(EasyMock.same(sessionId))).andReturn(Arrays.asList(address1, address2, address3));
-      EasyMock.expect(this.jvmRouteCache.get(EasyMock.same(address1))).andReturn(null);
-      EasyMock.expect(this.jvmRouteCache.get(EasyMock.same(address2))).andReturn(expected);
+      EasyMock.expect(this.jvmRouteCacheSource.<Address, String>getCache(this.sessionManager)).andReturn(jvmRouteCache);
+      EasyMock.expect(jvmRouteCache.get(EasyMock.same(address1))).andReturn(null);
+      EasyMock.expect(jvmRouteCache.get(EasyMock.same(address2))).andReturn(expected);
       EasyMock.expect(this.sessionCache.withFlags(Flag.FORCE_SYNCHRONOUS)).andReturn(this.sessionCache);
       
       this.control.replay();



More information about the jboss-cvs-commits mailing list