[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