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

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Wed Jul 28 13:02:27 EDT 2010


Author: pferraro
Date: 2010-07-28 13:02:25 -0400 (Wed, 28 Jul 2010)
New Revision: 107166

Modified:
   projects/cluster/ha-server-cache-ispn/trunk/src/main/java/org/jboss/ha/web/tomcat/service/session/distributedcache/impl/DistributedCacheManagerImpl.java
   projects/cluster/ha-server-cache-ispn/trunk/src/test/java/org/jboss/ha/web/tomcat/service/session/distributedcache/impl/DistributedCacheManagerTest.java
   projects/cluster/ha-server-cache-jbc/trunk/src/main/java/org/jboss/web/tomcat/service/session/distributedcache/impl/jbc/AbstractJBossCacheService.java
   projects/cluster/ha-server-cache-spi/trunk/src/main/java/org/jboss/web/tomcat/service/session/distributedcache/spi/DistributedCacheManager.java
Log:
[JBCLUSTER-260] Added DistributedCacheManager.isLocal(String)

Modified: projects/cluster/ha-server-cache-ispn/trunk/src/main/java/org/jboss/ha/web/tomcat/service/session/distributedcache/impl/DistributedCacheManagerImpl.java
===================================================================
--- projects/cluster/ha-server-cache-ispn/trunk/src/main/java/org/jboss/ha/web/tomcat/service/session/distributedcache/impl/DistributedCacheManagerImpl.java	2010-07-28 16:48:40 UTC (rev 107165)
+++ projects/cluster/ha-server-cache-ispn/trunk/src/main/java/org/jboss/ha/web/tomcat/service/session/distributedcache/impl/DistributedCacheManagerImpl.java	2010-07-28 17:02:25 UTC (rev 107166)
@@ -32,6 +32,7 @@
 import org.infinispan.config.CacheLoaderManagerConfig;
 import org.infinispan.config.Configuration;
 import org.infinispan.context.Flag;
+import org.infinispan.distribution.DistributionManager;
 import org.infinispan.lifecycle.ComponentStatus;
 import org.infinispan.manager.CacheContainer;
 import org.infinispan.manager.EmbeddedCacheManager;
@@ -97,6 +98,10 @@
       this.invoker = invoker;
    }
 
+   /**
+    * {@inheritDoc}
+    * @see org.jboss.web.tomcat.service.session.distributedcache.spi.DistributedCacheManager#start()
+    */
    @Override
    public void start()
    {
@@ -151,6 +156,10 @@
       this.passivationEnabled = (loaderManagerConfig != null) ? loaderManagerConfig.isPassivation().booleanValue() && !loaderManagerConfig.isShared().booleanValue() : false;
    }
    
+   /**
+    * {@inheritDoc}
+    * @see org.jboss.web.tomcat.service.session.distributedcache.spi.DistributedCacheManager#stop()
+    */
    @Override
    public void stop()
    {
@@ -159,18 +168,30 @@
       this.cache.stop();
    }
 
+   /**
+    * {@inheritDoc}
+    * @see org.jboss.web.tomcat.service.session.distributedcache.spi.DistributedCacheManager#getBatchingManager()
+    */
    @Override
    public BatchingManager getBatchingManager()
    {
       return this.batchingManager;
    }
 
+   /**
+    * {@inheritDoc}
+    * @see org.jboss.web.tomcat.service.session.distributedcache.spi.DistributedCacheManager#sessionCreated(java.lang.String)
+    */
    @Override
    public void sessionCreated(String sessionId)
    {
       // Do nothing
    }
 
+   /**
+    * {@inheritDoc}
+    * @see org.jboss.web.tomcat.service.session.distributedcache.spi.DistributedCacheManager#storeSessionData(org.jboss.web.tomcat.service.session.distributedcache.spi.OutgoingDistributableSessionData)
+    */
    @Override
    public void storeSessionData(T sessionData)
    {
@@ -201,12 +222,20 @@
       this.invoker.invoke(this.cache, operation);
    }
    
+   /**
+    * {@inheritDoc}
+    * @see org.jboss.web.tomcat.service.session.distributedcache.spi.DistributedCacheManager#getSessionData(java.lang.String, boolean)
+    */
    @Override
    public IncomingDistributableSessionData getSessionData(String sessionId, boolean initialLoad)
    {
       return this.getData(sessionId, true);
    }
 
+   /**
+    * {@inheritDoc}
+    * @see org.jboss.web.tomcat.service.session.distributedcache.spi.DistributedCacheManager#getSessionData(java.lang.String, java.lang.String, boolean)
+    */
    @Override
    public IncomingDistributableSessionData getSessionData(final String sessionId, String dataOwner, boolean includeAttributes)
    {
@@ -348,6 +377,10 @@
       }
    }
 
+   /**
+    * {@inheritDoc}
+    * @see org.jboss.web.tomcat.service.session.distributedcache.spi.DistributedCacheManager#getSessionIds()
+    */
    @Override
    public Map<String, String> getSessionIds()
    {
@@ -361,12 +394,20 @@
       return result;
    }
 
+   /**
+    * {@inheritDoc}
+    * @see org.jboss.web.tomcat.service.session.distributedcache.spi.DistributedCacheManager#isPassivationEnabled()
+    */
    @Override
    public boolean isPassivationEnabled()
    {
       return this.passivationEnabled;
    }
 
+   /**
+    * {@inheritDoc}
+    * @see org.jboss.web.tomcat.service.session.distributedcache.spi.DistributedCacheManager#setForceSynchronous(boolean)
+    */
    @Override
    public void setForceSynchronous(boolean forceSynchronous)
    {
@@ -383,6 +424,18 @@
       return null;
    }
    
+   /**
+    * {@inheritDoc}
+    * @see org.jboss.web.tomcat.service.session.distributedcache.spi.DistributedCacheManager#isLocal(java.lang.String)
+    */
+   @Override
+   public boolean isLocal(String realId)
+   {
+      DistributionManager manager = this.cache.getAdvancedCache().getDistributionManager();
+      
+      return (manager != null) ? manager.isLocal(realId) : true;
+   }
+
    @CacheEntryRemoved
    public void removed(CacheEntryRemovedEvent event)
    {

Modified: projects/cluster/ha-server-cache-ispn/trunk/src/test/java/org/jboss/ha/web/tomcat/service/session/distributedcache/impl/DistributedCacheManagerTest.java
===================================================================
--- projects/cluster/ha-server-cache-ispn/trunk/src/test/java/org/jboss/ha/web/tomcat/service/session/distributedcache/impl/DistributedCacheManagerTest.java	2010-07-28 16:48:40 UTC (rev 107165)
+++ projects/cluster/ha-server-cache-ispn/trunk/src/test/java/org/jboss/ha/web/tomcat/service/session/distributedcache/impl/DistributedCacheManagerTest.java	2010-07-28 17:02:25 UTC (rev 107166)
@@ -31,6 +31,7 @@
 import org.infinispan.atomic.AtomicMap;
 import org.infinispan.config.Configuration;
 import org.infinispan.context.Flag;
+import org.infinispan.distribution.DistributionManager;
 import org.infinispan.lifecycle.ComponentStatus;
 import org.infinispan.manager.CacheContainer;
 import org.infinispan.manager.EmbeddedCacheManager;
@@ -782,4 +783,53 @@
       EasyMock.verify(this.manager, this.container, this.storage, this.cache, this.invoker, event);
       EasyMock.reset(this.manager, this.container, this.storage, this.cache, this.invoker, event);
    }
+   
+   @Test
+   public void isLocalReplicationMode()
+   {
+      DistributedCacheManagerImpl<OutgoingDistributableSessionData> manager = this.startDistributedCacheManager();
+      String sessionId = "ABC123";
+      
+      EasyMock.expect(this.cache.getAdvancedCache()).andReturn(this.cache);
+      EasyMock.expect(this.cache.getDistributionManager()).andReturn(null);
+      
+      EasyMock.replay(this.cache);
+      
+      boolean result = manager.isLocal(sessionId);
+      
+      EasyMock.verify(this.cache);
+      
+      Assert.assertTrue(result);
+      
+      EasyMock.reset(this.cache);
+   }
+   
+   @Test
+   public void isLocalDistributionMode()
+   {
+      this.isLocalDistributionMode(true);
+      this.isLocalDistributionMode(false);
+   }
+   
+   private void isLocalDistributionMode(boolean local)
+   {
+      DistributionManager distManager = EasyMock.createStrictMock(DistributionManager.class);
+      
+      DistributedCacheManagerImpl<OutgoingDistributableSessionData> manager = this.startDistributedCacheManager();
+      String sessionId = "ABC123";
+      
+      EasyMock.expect(this.cache.getAdvancedCache()).andReturn(this.cache);
+      EasyMock.expect(this.cache.getDistributionManager()).andReturn(distManager);
+      EasyMock.expect(distManager.isLocal(sessionId)).andReturn(local);
+      
+      EasyMock.replay(this.cache, distManager);
+      
+      boolean result = manager.isLocal(sessionId);
+      
+      EasyMock.verify(this.cache, distManager);
+      
+      Assert.assertEquals(local, result);
+      
+      EasyMock.reset(this.cache, distManager);
+   }
 }

Modified: projects/cluster/ha-server-cache-jbc/trunk/src/main/java/org/jboss/web/tomcat/service/session/distributedcache/impl/jbc/AbstractJBossCacheService.java
===================================================================
--- projects/cluster/ha-server-cache-jbc/trunk/src/main/java/org/jboss/web/tomcat/service/session/distributedcache/impl/jbc/AbstractJBossCacheService.java	2010-07-28 16:48:40 UTC (rev 107165)
+++ projects/cluster/ha-server-cache-jbc/trunk/src/main/java/org/jboss/web/tomcat/service/session/distributedcache/impl/jbc/AbstractJBossCacheService.java	2010-07-28 17:02:25 UTC (rev 107166)
@@ -440,6 +440,17 @@
       cacheWrapper_.put(fqn, map);
    }
    
+   /**
+    * JBossCache always caches sessions locally.
+    * {@inheritDoc}
+    * @see org.jboss.web.tomcat.service.session.distributedcache.spi.DistributedCacheManager#isLocal(java.lang.String)
+    */
+   @Override
+   public boolean isLocal(String realId)
+   {
+      return true;
+   }
+   
    protected void establishCacheManager() throws ClusteringNotSupportedException
    {
       this.cacheManager_ = Util.findPlainCacheManager();      

Modified: projects/cluster/ha-server-cache-spi/trunk/src/main/java/org/jboss/web/tomcat/service/session/distributedcache/spi/DistributedCacheManager.java
===================================================================
--- projects/cluster/ha-server-cache-spi/trunk/src/main/java/org/jboss/web/tomcat/service/session/distributedcache/spi/DistributedCacheManager.java	2010-07-28 16:48:40 UTC (rev 107165)
+++ projects/cluster/ha-server-cache-spi/trunk/src/main/java/org/jboss/web/tomcat/service/session/distributedcache/spi/DistributedCacheManager.java	2010-07-28 17:02:25 UTC (rev 107166)
@@ -145,7 +145,22 @@
     */
    boolean isPassivationEnabled();
    
+   /**
+    * Toggles whether or not to force cache into synchronous mode.
+    * @param forceSynchronous true, if cache should force synchronous mode, false otherwise
+    */
    void setForceSynchronous(boolean forceSynchronous);
    
+   /**
+    * Returns the session ownership support for this distributed cache manager.
+    * @return the session ownership support, or null if session ownership is not supported.
+    */
    SessionOwnershipSupport getSessionOwnershipSupport();
+   
+   /**
+    * Indicates whether a session with the specified identifier will cache locally.
+    * @param realId a session identifier
+    * @return true, if a session with the specified identifier will cache locally, false otherwise.
+    */
+   boolean isLocal(String realId);
 }



More information about the jboss-cvs-commits mailing list