Author: etnu
Date: Thu Nov 20 12:36:50 2008
New Revision: 719366
URL: http://svn.apache.org/viewvc?rev=719366&view=rev
Log:
Added getSize method to cache interface. This provides a way to determine the
current utilization (getSize / getCapacity) of a given cache.
Modified:
incubator/shindig/trunk/java/common/src/main/java/org/apache/shindig/common/cache/Cache.java
incubator/shindig/trunk/java/common/src/main/java/org/apache/shindig/common/cache/LruCache.java
incubator/shindig/trunk/java/common/src/main/java/org/apache/shindig/common/cache/ehcache/EhConfiguredCache.java
incubator/shindig/trunk/java/common/src/test/java/org/apache/shindig/common/cache/LruCacheTest.java
incubator/shindig/trunk/java/common/src/test/java/org/apache/shindig/common/cache/ehcache/EhCacheCacheProviderTest.java
Modified:
incubator/shindig/trunk/java/common/src/main/java/org/apache/shindig/common/cache/Cache.java
URL:
http://svn.apache.org/viewvc/incubator/shindig/trunk/java/common/src/main/java/org/apache/shindig/common/cache/Cache.java?rev=719366&r1=719365&r2=719366&view=diff
==============================================================================
---
incubator/shindig/trunk/java/common/src/main/java/org/apache/shindig/common/cache/Cache.java
(original)
+++
incubator/shindig/trunk/java/common/src/main/java/org/apache/shindig/common/cache/Cache.java
Thu Nov 20 12:36:50 2008
@@ -51,4 +51,9 @@
* in the cace, -1 signifies that the capacity is unbounded
*/
public long getCapacity();
+
+ /**
+ * @return The current size of the cache, or -1 if the cache does not
support returning sizes.
+ */
+ public long getSize();
}
Modified:
incubator/shindig/trunk/java/common/src/main/java/org/apache/shindig/common/cache/LruCache.java
URL:
http://svn.apache.org/viewvc/incubator/shindig/trunk/java/common/src/main/java/org/apache/shindig/common/cache/LruCache.java?rev=719366&r1=719365&r2=719366&view=diff
==============================================================================
---
incubator/shindig/trunk/java/common/src/main/java/org/apache/shindig/common/cache/LruCache.java
(original)
+++
incubator/shindig/trunk/java/common/src/main/java/org/apache/shindig/common/cache/LruCache.java
Thu Nov 20 12:36:50 2008
@@ -48,6 +48,10 @@
return capacity;
}
+ public long getSize() {
+ return size();
+ }
+
@Override
protected synchronized boolean removeEldestEntry(Map.Entry<K, V> eldest) {
return size() > capacity;
Modified:
incubator/shindig/trunk/java/common/src/main/java/org/apache/shindig/common/cache/ehcache/EhConfiguredCache.java
URL:
http://svn.apache.org/viewvc/incubator/shindig/trunk/java/common/src/main/java/org/apache/shindig/common/cache/ehcache/EhConfiguredCache.java?rev=719366&r1=719365&r2=719366&view=diff
==============================================================================
---
incubator/shindig/trunk/java/common/src/main/java/org/apache/shindig/common/cache/ehcache/EhConfiguredCache.java
(original)
+++
incubator/shindig/trunk/java/common/src/main/java/org/apache/shindig/common/cache/ehcache/EhConfiguredCache.java
Thu Nov 20 12:36:50 2008
@@ -47,20 +47,10 @@
}
}
- /*
- * (non-Javadoc)
- *
- * @see org.apache.shindig.common.cache.Cache#addElement(java.lang.Object,
java.lang.Object)
- */
public void addElement(K key, V value) {
cache.put(new Element(key, value));
}
- /*
- * (non-Javadoc)
- *
- * @see org.apache.shindig.common.cache.Cache#getElement(java.lang.Object)
- */
@SuppressWarnings("unchecked")
public V getElement(K key) {
Element cacheElement = cache.get(key);
@@ -70,11 +60,6 @@
return null;
}
- /*
- * (non-Javadoc)
- *
- * @see org.apache.shindig.common.cache.Cache#removeElement(java.lang.Object)
- */
@SuppressWarnings("unchecked")
public V removeElement(K key) {
Object value = getElement(key);
@@ -82,13 +67,18 @@
return (V) value;
}
- /*
- * (non-Javadoc)
- *
- * @see org.apache.shindig.common.cache.Cache#getCapacity()
- */
public long getCapacity() {
return cache.getCacheConfiguration().getMaxElementsInMemory() +
cache.getCacheConfiguration().getMaxElementsOnDisk();
}
+
+ /**
+ * @return The current size of the cache.
+ *
+ * Note that this does not call getSize on the underlying cache, which is
very expensive. This
+ * will not include the size of remote caches.
+ */
+ public long getSize() {
+ return cache.getMemoryStoreSize() + cache.getDiskStoreSize();
+ }
}
Modified:
incubator/shindig/trunk/java/common/src/test/java/org/apache/shindig/common/cache/LruCacheTest.java
URL:
http://svn.apache.org/viewvc/incubator/shindig/trunk/java/common/src/test/java/org/apache/shindig/common/cache/LruCacheTest.java?rev=719366&r1=719365&r2=719366&view=diff
==============================================================================
---
incubator/shindig/trunk/java/common/src/test/java/org/apache/shindig/common/cache/LruCacheTest.java
(original)
+++
incubator/shindig/trunk/java/common/src/test/java/org/apache/shindig/common/cache/LruCacheTest.java
Thu Nov 20 12:36:50 2008
@@ -34,6 +34,8 @@
cache.addElement(Integer.toString(i), Integer.toString(i));
}
assertEquals(TEST_CAPACITY, cache.size());
+ assertEquals(TEST_CAPACITY, cache.getSize());
+ assertEquals(TEST_CAPACITY, cache.getCapacity());
assertEquals("0", cache.getElement("0"));
}
@@ -43,6 +45,8 @@
cache.addElement(Integer.toString(i), Integer.toString(i));
}
assertEquals(TEST_CAPACITY, cache.size());
+ assertEquals(TEST_CAPACITY, cache.getSize());
+ assertEquals(TEST_CAPACITY, cache.getCapacity());
assertEquals(null, cache.getElement("0"));
}
}
Modified:
incubator/shindig/trunk/java/common/src/test/java/org/apache/shindig/common/cache/ehcache/EhCacheCacheProviderTest.java
URL:
http://svn.apache.org/viewvc/incubator/shindig/trunk/java/common/src/test/java/org/apache/shindig/common/cache/ehcache/EhCacheCacheProviderTest.java?rev=719366&r1=719365&r2=719366&view=diff
==============================================================================
---
incubator/shindig/trunk/java/common/src/test/java/org/apache/shindig/common/cache/ehcache/EhCacheCacheProviderTest.java
(original)
+++
incubator/shindig/trunk/java/common/src/test/java/org/apache/shindig/common/cache/ehcache/EhCacheCacheProviderTest.java
Thu Nov 20 12:36:50 2008
@@ -56,5 +56,7 @@
Assert.assertEquals(cache.getElement("test"), "value1");
cache.removeElement("test");
Assert.assertNull(cache.getElement("test"));
+ Assert.assertEquals(cache.getCapacity(), cache2.getCapacity());
+ Assert.assertEquals(cache.getSize(), cache2.getSize());
}
}