You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@commons.apache.org by tv...@apache.org on 2012/01/16 22:05:50 UTC
svn commit: r1232163 [7/10] - in
/commons/proper/jcs/branches/generics-interface/src: java/org/apache/jcs/
java/org/apache/jcs/access/ java/org/apache/jcs/access/behavior/
java/org/apache/jcs/admin/ java/org/apache/jcs/auxiliary/
java/org/apache/jcs/au...
Modified: commons/proper/jcs/branches/generics-interface/src/java/org/apache/jcs/engine/memory/AbstractDoulbeLinkedListMemoryCache.java
URL: http://svn.apache.org/viewvc/commons/proper/jcs/branches/generics-interface/src/java/org/apache/jcs/engine/memory/AbstractDoulbeLinkedListMemoryCache.java?rev=1232163&r1=1232162&r2=1232163&view=diff
==============================================================================
--- commons/proper/jcs/branches/generics-interface/src/java/org/apache/jcs/engine/memory/AbstractDoulbeLinkedListMemoryCache.java (original)
+++ commons/proper/jcs/branches/generics-interface/src/java/org/apache/jcs/engine/memory/AbstractDoulbeLinkedListMemoryCache.java Mon Jan 16 21:05:44 2012
@@ -30,8 +30,8 @@ import org.apache.jcs.utils.struct.Doubl
* the list will be the one removed when the list fills. For instance LRU should more items to the
* front as they are used. FIFO should simply add new items to the front of the list.
*/
-public abstract class AbstractDoulbeLinkedListMemoryCache
- extends AbstractMemoryCache
+public abstract class AbstractDoulbeLinkedListMemoryCache<K extends Serializable, V extends Serializable>
+ extends AbstractMemoryCache<K, V>
{
/** Don't change. */
private static final long serialVersionUID = 1422569420563967389L;
@@ -40,7 +40,7 @@ public abstract class AbstractDoulbeLink
private final static Log log = LogFactory.getLog( AbstractDoulbeLinkedListMemoryCache.class );
/** thread-safe double linked list for lru */
- protected DoubleLinkedList<MemoryElementDescriptor> list;
+ protected DoubleLinkedList<MemoryElementDescriptor<K, V>> list;
/** number of hits */
protected int hitCnt = 0;
@@ -57,10 +57,10 @@ public abstract class AbstractDoulbeLink
* @param hub
*/
@Override
- public synchronized void initialize( CompositeCache hub )
+ public synchronized void initialize( CompositeCache<K, V> hub )
{
super.initialize( hub );
- list = new DoubleLinkedList<MemoryElementDescriptor>();
+ list = new DoubleLinkedList<MemoryElementDescriptor<K, V>>();
log.info( "initialized MemoryCache for " + cacheName );
}
@@ -70,9 +70,9 @@ public abstract class AbstractDoulbeLink
* @return new Hashtable()
*/
@Override
- public Map<Serializable, MemoryElementDescriptor> createMap()
+ public Map<K, MemoryElementDescriptor<K, V>> createMap()
{
- return new Hashtable<Serializable, MemoryElementDescriptor>();
+ return new Hashtable<K, MemoryElementDescriptor<K, V>>();
}
/**
@@ -84,7 +84,7 @@ public abstract class AbstractDoulbeLink
* @exception IOException
*/
@Override
- public final void update( ICacheElement ce )
+ public final void update( ICacheElement<K, V> ce )
throws IOException
{
putCnt++;
@@ -93,10 +93,10 @@ public abstract class AbstractDoulbeLink
synchronized ( this )
{
// ABSTRACT
- MemoryElementDescriptor newNode = adjustListForUpdate( ce );
+ MemoryElementDescriptor<K, V> newNode = adjustListForUpdate( ce );
// this must be synchronized
- MemoryElementDescriptor oldNode = map.put( newNode.ce.getKey(), newNode );
+ MemoryElementDescriptor<K, V> oldNode = map.put( newNode.ce.getKey(), newNode );
// If the node was the same as an existing node, remove it.
if ( oldNode != null && ( newNode.ce.getKey().equals( oldNode.ce.getKey() ) ) )
@@ -116,7 +116,7 @@ public abstract class AbstractDoulbeLink
* @return MemoryElementDescriptor the new node
* @throws IOException
*/
- protected abstract MemoryElementDescriptor adjustListForUpdate( ICacheElement ce )
+ protected abstract MemoryElementDescriptor<K, V> adjustListForUpdate( ICacheElement<K, V> ce )
throws IOException;
/**
@@ -167,21 +167,21 @@ public abstract class AbstractDoulbeLink
* Get an item from the cache If the item is found, it is removed from the list and added first.
* <p>
* @param key Identifies item to find
- * @return ICacheElement if found, else null
+ * @return ICacheElement<K, V> if found, else null
* @exception IOException
*/
@Override
- public final synchronized ICacheElement get( Serializable key )
+ public final synchronized ICacheElement<K, V> get( K key )
throws IOException
{
- ICacheElement ce = null;
+ ICacheElement<K, V> ce = null;
if ( log.isDebugEnabled() )
{
log.debug( "getting item from cache " + cacheName + " for key " + key );
}
- MemoryElementDescriptor me = map.get( key );
+ MemoryElementDescriptor<K, V> me = map.get( key );
if ( me != null )
{
@@ -214,7 +214,7 @@ public abstract class AbstractDoulbeLink
* <p>
* @param me
*/
- protected abstract void adjustListForGet( MemoryElementDescriptor me );
+ protected abstract void adjustListForGet( MemoryElementDescriptor<K, V> me );
/**
* This instructs the memory cache to remove the <i>numberToFree</i> according to its eviction
@@ -232,7 +232,7 @@ public abstract class AbstractDoulbeLink
int freed = 0;
for ( ; freed < numberToFree; freed++ )
{
- ICacheElement element = spoolLastElement();
+ ICacheElement<K, V> element = spoolLastElement();
if ( element == null )
{
break;
@@ -244,13 +244,13 @@ public abstract class AbstractDoulbeLink
/**
* This spools the last element in the LRU, if one exists.
* <p>
- * @return ICacheElement if there was a last element, else null.
+ * @return ICacheElement<K, V> if there was a last element, else null.
* @throws Error
*/
- protected ICacheElement spoolLastElement()
+ protected ICacheElement<K, V> spoolLastElement()
throws Error
{
- ICacheElement toSpool = null;
+ ICacheElement<K, V> toSpool = null;
synchronized ( this )
{
if ( list.getLast() != null )
@@ -305,7 +305,7 @@ public abstract class AbstractDoulbeLink
* @exception IOException
*/
@Override
- public synchronized boolean remove( Serializable key )
+ public synchronized boolean remove( K key )
throws IOException
{
if ( log.isDebugEnabled() )
@@ -321,10 +321,10 @@ public abstract class AbstractDoulbeLink
// remove all keys of the same name hierarchy.
synchronized ( map )
{
- for (Iterator<Map.Entry<Serializable, MemoryElementDescriptor>> itr = map.entrySet().iterator(); itr.hasNext(); )
+ for (Iterator<Map.Entry<K, MemoryElementDescriptor<K, V>>> itr = map.entrySet().iterator(); itr.hasNext(); )
{
- Map.Entry<Serializable, MemoryElementDescriptor> entry = itr.next();
- Object k = entry.getKey();
+ Map.Entry<K, MemoryElementDescriptor<K, V>> entry = itr.next();
+ K k = entry.getKey();
if ( k instanceof String && ( (String) k ).startsWith( key.toString() ) )
{
@@ -340,10 +340,10 @@ public abstract class AbstractDoulbeLink
// remove all keys of the same name hierarchy.
synchronized ( map )
{
- for (Iterator<Map.Entry<Serializable, MemoryElementDescriptor>> itr = map.entrySet().iterator(); itr.hasNext(); )
+ for (Iterator<Map.Entry<K, MemoryElementDescriptor<K, V>>> itr = map.entrySet().iterator(); itr.hasNext(); )
{
- Map.Entry<Serializable, MemoryElementDescriptor> entry = itr.next();
- Object k = entry.getKey();
+ Map.Entry<K, MemoryElementDescriptor<K, V>> entry = itr.next();
+ K k = entry.getKey();
if ( k instanceof GroupAttrName && ( (GroupAttrName) k ).groupId.equals( key ) )
{
@@ -357,7 +357,7 @@ public abstract class AbstractDoulbeLink
else
{
// remove single item.
- MemoryElementDescriptor me = map.remove( key );
+ MemoryElementDescriptor<K, V> me = map.remove( key );
if ( me != null )
{
@@ -390,9 +390,9 @@ public abstract class AbstractDoulbeLink
* @param ce The feature to be added to the First
* @return MemoryElementDescriptor
*/
- protected synchronized MemoryElementDescriptor addFirst( ICacheElement ce )
+ protected synchronized MemoryElementDescriptor<K, V> addFirst( ICacheElement<K, V> ce )
{
- MemoryElementDescriptor me = new MemoryElementDescriptor( ce );
+ MemoryElementDescriptor<K, V> me = new MemoryElementDescriptor<K, V>( ce );
list.addFirst( me );
verifyCache( ce.getKey() );
return me;
@@ -404,9 +404,9 @@ public abstract class AbstractDoulbeLink
* @param ce The feature to be added to the First
* @return MemoryElementDescriptor
*/
- protected synchronized MemoryElementDescriptor addLast( ICacheElement ce )
+ protected synchronized MemoryElementDescriptor<K, V> addLast( ICacheElement<K, V> ce )
{
- MemoryElementDescriptor me = new MemoryElementDescriptor( ce );
+ MemoryElementDescriptor<K, V> me = new MemoryElementDescriptor<K, V>( ce );
list.addLast( me );
verifyCache( ce.getKey() );
return me;
@@ -420,7 +420,7 @@ public abstract class AbstractDoulbeLink
public void dumpCacheEntries()
{
log.debug( "dumpingCacheEntries" );
- for ( MemoryElementDescriptor me = list.getFirst(); me != null; me = (MemoryElementDescriptor) me.next )
+ for ( MemoryElementDescriptor<K, V> me = list.getFirst(); me != null; me = (MemoryElementDescriptor<K, V>) me.next )
{
log.debug( "dumpCacheEntries> key=" + me.ce.getKey() + ", val=" + me.ce.getVal() );
}
@@ -451,7 +451,7 @@ public abstract class AbstractDoulbeLink
log.debug( "verifycache[" + cacheName + "]: mapContains " + map.size() + " elements, linked list contains "
+ dumpCacheSize() + " elements" );
log.debug( "verifycache: checking linked list by key " );
- for ( MemoryElementDescriptor li = list.getFirst(); li != null; li = (MemoryElementDescriptor) li.next )
+ for ( MemoryElementDescriptor<K, V> li = list.getFirst(); li != null; li = (MemoryElementDescriptor<K, V>) li.next )
{
Object key = li.ce.getKey();
if ( !map.containsKey( key ) )
@@ -479,7 +479,7 @@ public abstract class AbstractDoulbeLink
}
log.debug( "verifycache: checking linked list by value " );
- for ( MemoryElementDescriptor li3 = list.getFirst(); li3 != null; li3 = (MemoryElementDescriptor) li3.next )
+ for ( MemoryElementDescriptor<K, V> li3 = list.getFirst(); li3 != null; li3 = (MemoryElementDescriptor<K, V>) li3.next )
{
if ( map.containsValue( li3 ) == false )
{
@@ -493,7 +493,7 @@ public abstract class AbstractDoulbeLink
{
found = false;
- for ( MemoryElementDescriptor li2 = list.getFirst(); li2 != null; li2 = (MemoryElementDescriptor) li2.next )
+ for ( MemoryElementDescriptor<K, V> li2 = list.getFirst(); li2 != null; li2 = (MemoryElementDescriptor<K, V>) li2.next )
{
if ( val.equals( li2.ce.getKey() ) )
{
@@ -522,7 +522,7 @@ public abstract class AbstractDoulbeLink
* <p>
* @param key
*/
- private void verifyCache( Serializable key )
+ private void verifyCache( K key )
{
if ( !log.isDebugEnabled() )
{
@@ -532,7 +532,7 @@ public abstract class AbstractDoulbeLink
boolean found = false;
// go through the linked list looking for the key
- for ( MemoryElementDescriptor li = list.getFirst(); li != null; li = (MemoryElementDescriptor) li.next )
+ for ( MemoryElementDescriptor<K, V> li = list.getFirst(); li != null; li = (MemoryElementDescriptor<K, V>) li.next )
{
if ( li.ce.getKey() == key )
{
@@ -551,17 +551,17 @@ public abstract class AbstractDoulbeLink
/**
* iteration aid
*/
- public static class IteratorWrapper
- implements Iterator<Entry<Serializable, MemoryElementDescriptor>>
+ public static class IteratorWrapper<K extends Serializable, V extends Serializable>
+ implements Iterator<Entry<K, MemoryElementDescriptor<K, V>>>
{
/** The internal iterator */
- private final Iterator<Entry<Serializable, MemoryElementDescriptor>> i;
+ private final Iterator<Entry<K, MemoryElementDescriptor<K, V>>> i;
/**
* Wrapped to remove our wrapper object
* @param m
*/
- protected IteratorWrapper(Map<Serializable, MemoryElementDescriptor> m)
+ protected IteratorWrapper(Map<K, MemoryElementDescriptor<K, V>> m)
{
i = m.entrySet().iterator();
}
@@ -573,7 +573,7 @@ public abstract class AbstractDoulbeLink
}
/** @return new MapEntryWrapper( (Map.Entry) i.next() ) */
- public Entry<Serializable, MemoryElementDescriptor> next()
+ public Entry<K, MemoryElementDescriptor<K, V>> next()
{
// return new MapEntryWrapper<Serializable>( i.next() );
return i.next();
@@ -606,16 +606,16 @@ public abstract class AbstractDoulbeLink
/**
* @author Aaron Smuts
*/
- public static class MapEntryWrapper<K>
- implements Map.Entry<K, ICacheElement>
+ public static class MapEntryWrapper<K extends Serializable, V extends Serializable>
+ implements Map.Entry<K, ICacheElement<K, V>>
{
/** The internal entry */
- private final Map.Entry<K, MemoryElementDescriptor> e;
+ private final Map.Entry<K, MemoryElementDescriptor<K, V>> e;
/**
* @param e
*/
- private MapEntryWrapper( Map.Entry<K, MemoryElementDescriptor> e )
+ private MapEntryWrapper( Map.Entry<K, MemoryElementDescriptor<K, V>> e )
{
this.e = e;
}
@@ -637,7 +637,7 @@ public abstract class AbstractDoulbeLink
}
/** @return ( (MemoryElementDescriptor) e.getValue() ).ce */
- public ICacheElement getValue()
+ public ICacheElement<K, V> getValue()
{
return e.getValue().ce;
}
@@ -654,7 +654,7 @@ public abstract class AbstractDoulbeLink
* @param value
* @return always throws
*/
- public ICacheElement setValue(ICacheElement value)
+ public ICacheElement<K, V> setValue(ICacheElement<K, V> value)
{
throw new UnsupportedOperationException( "Use normal cache methods"
+ " to alter the contents of the cache." );
@@ -667,9 +667,9 @@ public abstract class AbstractDoulbeLink
* @return The iterator value
*/
@Override
- public Iterator<Entry<Serializable, MemoryElementDescriptor>> getIterator()
+ public Iterator<Entry<K, MemoryElementDescriptor<K, V>>> getIterator()
{
- return new IteratorWrapper( map );
+ return new IteratorWrapper<K, V>( map );
}
/**
@@ -677,13 +677,13 @@ public abstract class AbstractDoulbeLink
* @return An Object[]
*/
@Override
- public Object[] getKeyArray()
+ public K[] getKeyArray()
{
// need a better locking strategy here.
synchronized ( this )
{
// may need to lock to map here?
- return map.keySet().toArray();
+ return (K[]) map.keySet().toArray();
}
}
Modified: commons/proper/jcs/branches/generics-interface/src/java/org/apache/jcs/engine/memory/AbstractMemoryCache.java
URL: http://svn.apache.org/viewvc/commons/proper/jcs/branches/generics-interface/src/java/org/apache/jcs/engine/memory/AbstractMemoryCache.java?rev=1232163&r1=1232162&r2=1232163&view=diff
==============================================================================
--- commons/proper/jcs/branches/generics-interface/src/java/org/apache/jcs/engine/memory/AbstractMemoryCache.java (original)
+++ commons/proper/jcs/branches/generics-interface/src/java/org/apache/jcs/engine/memory/AbstractMemoryCache.java Mon Jan 16 21:05:44 2012
@@ -51,8 +51,8 @@ import org.apache.jcs.engine.stats.behav
* This keeps a static reference to a memory shrinker clock daemon. If this region is configured to
* use the shrinker, the clock daemon will be setup to run the shrinker on this region.
*/
-public abstract class AbstractMemoryCache
- implements MemoryCache, Serializable
+public abstract class AbstractMemoryCache<K extends Serializable, V extends Serializable>
+ implements MemoryCache<K, V>, Serializable
{
/** Don't change. */
private static final long serialVersionUID = -4494626991630099575L;
@@ -64,7 +64,7 @@ public abstract class AbstractMemoryCach
protected String cacheName;
/** Map where items are stored by key. This is created by the concrete child class. */
- protected Map<Serializable, MemoryElementDescriptor> map;
+ protected Map<K, MemoryElementDescriptor<K, V>> map;
/** Region Elemental Attributes, used as a default and copied for each item. */
public IElementAttributes elementAttributes;
@@ -73,7 +73,7 @@ public abstract class AbstractMemoryCach
public ICompositeCacheAttributes cacheAttributes;
/** The cache region this store is associated with */
- protected CompositeCache cache;
+ protected CompositeCache<K, V> cache;
/** status */
protected int status;
@@ -90,7 +90,7 @@ public abstract class AbstractMemoryCach
* <p>
* @param hub
*/
- public synchronized void initialize( CompositeCache hub )
+ public synchronized void initialize( CompositeCache<K, V> hub )
{
this.cacheName = hub.getCacheName();
this.cacheAttributes = hub.getCacheAttributes();
@@ -107,7 +107,7 @@ public abstract class AbstractMemoryCach
shrinkerDaemon = Executors.newScheduledThreadPool(1, new MyThreadFactory());
}
- shrinkerDaemon.scheduleAtFixedRate(new ShrinkerThread(this), 0, cacheAttributes.getShrinkerIntervalSeconds(), TimeUnit.SECONDS);
+ shrinkerDaemon.scheduleAtFixedRate(new ShrinkerThread<K, V>(this), 0, cacheAttributes.getShrinkerIntervalSeconds(), TimeUnit.SECONDS);
}
}
@@ -117,7 +117,7 @@ public abstract class AbstractMemoryCach
* <p>
* @return a threadsafe Map
*/
- public abstract Map<Serializable, MemoryElementDescriptor> createMap();
+ public abstract Map<K, MemoryElementDescriptor<K, V>> createMap();
/**
* Removes an item from the cache
@@ -126,7 +126,7 @@ public abstract class AbstractMemoryCach
* @return Description of the Return Value
* @exception IOException Description of the Exception
*/
- public abstract boolean remove( Serializable key )
+ public abstract boolean remove( K key )
throws IOException;
/**
@@ -136,27 +136,27 @@ public abstract class AbstractMemoryCach
* @return Description of the Return Value
* @exception IOException Description of the Exception
*/
- public abstract ICacheElement get( Serializable key )
+ public abstract ICacheElement<K, V> get( K key )
throws IOException;
/**
* Gets multiple items from the cache based on the given set of keys.
* <p>
* @param keys
- * @return a map of Serializable key to ICacheElement element, or an empty map if there is no
+ * @return a map of K key to ICacheElement<K, V> element, or an empty map if there is no
* data in cache for any of these keys
* @throws IOException
*/
- public Map<Serializable, ICacheElement> getMultiple( Set<Serializable> keys )
+ public Map<K, ICacheElement<K, V>> getMultiple( Set<K> keys )
throws IOException
{
- Map<Serializable, ICacheElement> elements = new HashMap<Serializable, ICacheElement>();
+ Map<K, ICacheElement<K, V>> elements = new HashMap<K, ICacheElement<K, V>>();
if ( keys != null && !keys.isEmpty() )
{
- for (Serializable key : keys)
+ for (K key : keys)
{
- ICacheElement element = get( key );
+ ICacheElement<K, V> element = get( key );
if ( element != null )
{
@@ -176,12 +176,12 @@ public abstract class AbstractMemoryCach
* @return Element matching key if found, or null
* @exception IOException
*/
- public ICacheElement getQuiet( Serializable key )
+ public ICacheElement<K, V> getQuiet( K key )
throws IOException
{
- ICacheElement ce = null;
+ ICacheElement<K, V> ce = null;
- MemoryElementDescriptor me = map.get( key );
+ MemoryElementDescriptor<K, V> me = map.get( key );
if ( me != null )
{
if ( log.isDebugEnabled() )
@@ -205,7 +205,7 @@ public abstract class AbstractMemoryCach
* @param ce Description of the Parameter
* @exception IOException Description of the Exception
*/
- public abstract void update( ICacheElement ce )
+ public abstract void update( ICacheElement<K, V> ce )
throws IOException;
/**
@@ -213,7 +213,7 @@ public abstract class AbstractMemoryCach
* <p>
* @return An Object[]
*/
- public abstract Object[] getKeyArray();
+ public abstract K[] getKeyArray();
/**
* Removes all cached items from the cache.
@@ -287,7 +287,7 @@ public abstract class AbstractMemoryCach
* @param ce
* @exception IOException
*/
- public void waterfal( ICacheElement ce )
+ public void waterfal( ICacheElement<K, V> ce )
throws IOException
{
this.cache.spoolToDisk( ce );
@@ -298,7 +298,7 @@ public abstract class AbstractMemoryCach
* <p>
* @return The iterator value
*/
- public Iterator<Map.Entry<Serializable, MemoryElementDescriptor>> getIterator()
+ public Iterator<Map.Entry<K, MemoryElementDescriptor<K, V>>> getIterator()
{
return map.entrySet().iterator();
}
@@ -310,9 +310,9 @@ public abstract class AbstractMemoryCach
public void dumpMap()
{
log.debug( "dumpingMap" );
- for (Map.Entry<Serializable, MemoryElementDescriptor> e : map.entrySet())
+ for (Map.Entry<K, MemoryElementDescriptor<K, V>> e : map.entrySet())
{
- MemoryElementDescriptor me = e.getValue();
+ MemoryElementDescriptor<K, V> me = e.getValue();
log.debug( "dumpMap> key=" + e.getKey() + ", val=" + me.ce.getVal() );
}
}
@@ -342,7 +342,7 @@ public abstract class AbstractMemoryCach
* <p>
* @return The cache value
*/
- public CompositeCache getCompositeCache()
+ public CompositeCache<K, V> getCompositeCache()
{
return this.cache;
}
@@ -351,19 +351,19 @@ public abstract class AbstractMemoryCach
* @param groupName
* @return group keys
*/
- public Set<Serializable> getGroupKeys( String groupName )
+ public Set<K> getGroupKeys( String groupName )
{
GroupId groupId = new GroupId( getCacheName(), groupName );
- HashSet<Serializable> keys = new HashSet<Serializable>();
+ HashSet<K> keys = new HashSet<K>();
synchronized ( map )
{
- for (Map.Entry<Serializable, MemoryElementDescriptor> entry : map.entrySet())
+ for (Map.Entry<K, MemoryElementDescriptor<K, V>> entry : map.entrySet())
{
- Object k = entry.getKey();
+ K k = entry.getKey();
if ( k instanceof GroupAttrName && ( (GroupAttrName) k ).groupId.equals( groupId ) )
{
- keys.add((Serializable) ( (GroupAttrName) k ).attrName );
+ keys.add(( (GroupAttrName) k ).attrName );
}
}
}
Modified: commons/proper/jcs/branches/generics-interface/src/java/org/apache/jcs/engine/memory/MemoryCache.java
URL: http://svn.apache.org/viewvc/commons/proper/jcs/branches/generics-interface/src/java/org/apache/jcs/engine/memory/MemoryCache.java?rev=1232163&r1=1232162&r2=1232163&view=diff
==============================================================================
--- commons/proper/jcs/branches/generics-interface/src/java/org/apache/jcs/engine/memory/MemoryCache.java (original)
+++ commons/proper/jcs/branches/generics-interface/src/java/org/apache/jcs/engine/memory/MemoryCache.java Mon Jan 16 21:05:44 2012
@@ -19,6 +19,8 @@ package org.apache.jcs.engine.memory;
* under the License.
*/
+import java.io.Serializable;
+
import org.apache.jcs.engine.memory.behavior.IMemoryCache;
/**
@@ -30,8 +32,8 @@ import org.apache.jcs.engine.memory.beha
* of.
* <p>
*/
-public interface MemoryCache
- extends IMemoryCache
+public interface MemoryCache<K extends Serializable, V extends Serializable>
+ extends IMemoryCache<K, V>
{
// temporary, for backward compatibility.
}
Modified: commons/proper/jcs/branches/generics-interface/src/java/org/apache/jcs/engine/memory/behavior/IMemoryCache.java
URL: http://svn.apache.org/viewvc/commons/proper/jcs/branches/generics-interface/src/java/org/apache/jcs/engine/memory/behavior/IMemoryCache.java?rev=1232163&r1=1232162&r2=1232163&view=diff
==============================================================================
--- commons/proper/jcs/branches/generics-interface/src/java/org/apache/jcs/engine/memory/behavior/IMemoryCache.java (original)
+++ commons/proper/jcs/branches/generics-interface/src/java/org/apache/jcs/engine/memory/behavior/IMemoryCache.java Mon Jan 16 21:05:44 2012
@@ -32,14 +32,14 @@ import org.apache.jcs.engine.memory.util
import org.apache.jcs.engine.stats.behavior.IStats;
/** For the framework. Insures methods a MemoryCache needs to access. */
-public interface IMemoryCache
+public interface IMemoryCache<K extends Serializable, V extends Serializable>
{
/**
* Initialize the memory cache
* <p>
* @param cache The cache (region) this memory store is attached to.
*/
- void initialize( CompositeCache cache );
+ void initialize( CompositeCache<K, V> cache );
/**
* Destroy the memory cache
@@ -70,7 +70,7 @@ public interface IMemoryCache
* <p>
* @return An iterator
*/
- Iterator<Map.Entry<Serializable, MemoryElementDescriptor>> getIterator();
+ Iterator<Map.Entry<K, MemoryElementDescriptor<K, V>>> getIterator();
/**
* Get an Array of the keys for all elements in the memory cache.
@@ -80,7 +80,7 @@ public interface IMemoryCache
* will be a problem if someone puts a 1,000,000 or so items in a
* region.
*/
- Object[] getKeyArray();
+ K[] getKeyArray();
/**
* Removes an item from the cache
@@ -91,7 +91,7 @@ public interface IMemoryCache
* @exception IOException
* Description of the Exception
*/
- boolean remove( Serializable key )
+ boolean remove( K key )
throws IOException;
/**
@@ -126,18 +126,18 @@ public interface IMemoryCache
* @exception IOException
* Description of the Exception
*/
- ICacheElement get( Serializable key )
+ ICacheElement<K, V> get( K key )
throws IOException;
/**
* Gets multiple items from the cache based on the given set of keys.
* <p>
* @param keys
- * @return a map of Serializable key to ICacheElement element, or an empty map
+ * @return a map of K key to ICacheElement<K, V> element, or an empty map
* if there is no data in cache for any of these keys
* @throws IOException
*/
- Map<Serializable, ICacheElement> getMultiple( Set<Serializable> keys )
+ Map<K, ICacheElement<K, V>> getMultiple( Set<K> keys )
throws IOException;
/**
@@ -150,7 +150,7 @@ public interface IMemoryCache
* @exception IOException
* Description of the Exception
*/
- ICacheElement getQuiet( Serializable key )
+ ICacheElement<K, V> getQuiet( K key )
throws IOException;
/**
@@ -161,7 +161,7 @@ public interface IMemoryCache
* @exception IOException
* Description of the Exception
*/
- void waterfal( ICacheElement ce )
+ void waterfal( ICacheElement<K, V> ce )
throws IOException;
/**
@@ -172,7 +172,7 @@ public interface IMemoryCache
* @exception IOException
* Description of the Exception
*/
- void update( ICacheElement ce )
+ void update( ICacheElement<K, V> ce )
throws IOException;
/**
@@ -195,7 +195,7 @@ public interface IMemoryCache
* <p>
* @return The cache value
*/
- CompositeCache getCompositeCache();
+ CompositeCache<K, V> getCompositeCache();
/**
* Gets the set of keys of objects currently in the group.
@@ -203,5 +203,5 @@ public interface IMemoryCache
* @param group
* @return a Set of group keys.
*/
- Set<Serializable> getGroupKeys( String group );
+ Set<K> getGroupKeys( String group );
}
Modified: commons/proper/jcs/branches/generics-interface/src/java/org/apache/jcs/engine/memory/fifo/FIFOMemoryCache.java
URL: http://svn.apache.org/viewvc/commons/proper/jcs/branches/generics-interface/src/java/org/apache/jcs/engine/memory/fifo/FIFOMemoryCache.java?rev=1232163&r1=1232162&r2=1232163&view=diff
==============================================================================
--- commons/proper/jcs/branches/generics-interface/src/java/org/apache/jcs/engine/memory/fifo/FIFOMemoryCache.java (original)
+++ commons/proper/jcs/branches/generics-interface/src/java/org/apache/jcs/engine/memory/fifo/FIFOMemoryCache.java Mon Jan 16 21:05:44 2012
@@ -20,6 +20,7 @@ package org.apache.jcs.engine.memory.fif
*/
import java.io.IOException;
+import java.io.Serializable;
import org.apache.jcs.engine.behavior.ICacheElement;
import org.apache.jcs.engine.memory.AbstractDoulbeLinkedListMemoryCache;
@@ -28,8 +29,8 @@ import org.apache.jcs.engine.memory.util
/**
* The items are spooled in the order they are added. No adjustments to the list are made on get.
*/
-public class FIFOMemoryCache
- extends AbstractDoulbeLinkedListMemoryCache
+public class FIFOMemoryCache<K extends Serializable, V extends Serializable>
+ extends AbstractDoulbeLinkedListMemoryCache<K, V>
{
/** Don't change */
private static final long serialVersionUID = 6403738094136424201L;
@@ -42,7 +43,7 @@ public class FIFOMemoryCache
* @return MemoryElementDescriptor the new node
* @exception IOException
*/
- protected MemoryElementDescriptor adjustListForUpdate( ICacheElement ce )
+ protected MemoryElementDescriptor<K, V> adjustListForUpdate( ICacheElement<K, V> ce )
throws IOException
{
return addFirst( ce );
@@ -53,7 +54,7 @@ public class FIFOMemoryCache
* <p>
* @param me
*/
- protected void adjustListForGet( MemoryElementDescriptor me )
+ protected void adjustListForGet( MemoryElementDescriptor<K, V> me )
{
// DO NOTHING
}
Modified: commons/proper/jcs/branches/generics-interface/src/java/org/apache/jcs/engine/memory/lru/LHMLRUMemoryCache.java
URL: http://svn.apache.org/viewvc/commons/proper/jcs/branches/generics-interface/src/java/org/apache/jcs/engine/memory/lru/LHMLRUMemoryCache.java?rev=1232163&r1=1232162&r2=1232163&view=diff
==============================================================================
--- commons/proper/jcs/branches/generics-interface/src/java/org/apache/jcs/engine/memory/lru/LHMLRUMemoryCache.java (original)
+++ commons/proper/jcs/branches/generics-interface/src/java/org/apache/jcs/engine/memory/lru/LHMLRUMemoryCache.java Mon Jan 16 21:05:44 2012
@@ -43,8 +43,8 @@ import org.apache.jcs.engine.stats.behav
/**
* This is a test memory manager using the jdk1.4 LinkedHashMap.
*/
-public class LHMLRUMemoryCache
- extends AbstractMemoryCache
+public class LHMLRUMemoryCache<K extends Serializable, V extends Serializable>
+ extends AbstractMemoryCache<K, V>
{
/** Don't change */
private static final long serialVersionUID = 6403738094136424101L;
@@ -67,7 +67,7 @@ public class LHMLRUMemoryCache
* @param hub
*/
@Override
- public synchronized void initialize( CompositeCache hub )
+ public synchronized void initialize( CompositeCache<K, V> hub )
{
super.initialize( hub );
log.info( "initialized LHMLRUMemoryCache for " + cacheName );
@@ -79,7 +79,7 @@ public class LHMLRUMemoryCache
* @return Collections.synchronizedMap( new LHMSpooler() )
*/
@Override
- public Map<Serializable, MemoryElementDescriptor> createMap()
+ public Map<K, MemoryElementDescriptor<K, V>> createMap()
{
return Collections.synchronizedMap( new LHMSpooler() );
}
@@ -91,12 +91,12 @@ public class LHMLRUMemoryCache
* @exception IOException
*/
@Override
- public void update( ICacheElement ce )
+ public void update( ICacheElement<K, V> ce )
throws IOException
{
putCnt++;
ce.getElementAttributes().setLastAccessTimeNow();
- map.put( ce.getKey(), new MemoryElementDescriptor(ce) );
+ map.put( ce.getKey(), new MemoryElementDescriptor<K, V>(ce) );
}
/**
@@ -108,7 +108,7 @@ public class LHMLRUMemoryCache
* @exception IOException
*/
@Override
- public ICacheElement getQuiet( Serializable key )
+ public ICacheElement<K, V> getQuiet( K key )
throws IOException
{
return map.get( key ).ce;
@@ -118,14 +118,14 @@ public class LHMLRUMemoryCache
* Get an item from the cache
* <p>
* @param key Identifies item to find
- * @return ICacheElement if found, else null
+ * @return ICacheElement<K, V> if found, else null
* @exception IOException
*/
@Override
- public synchronized ICacheElement get( Serializable key )
+ public synchronized ICacheElement<K, V> get( K key )
throws IOException
{
- MemoryElementDescriptor me = null;
+ MemoryElementDescriptor<K, V> me = null;
if ( log.isDebugEnabled() )
{
@@ -163,7 +163,7 @@ public class LHMLRUMemoryCache
* @exception IOException
*/
@Override
- public synchronized boolean remove( Serializable key )
+ public synchronized boolean remove( K key )
throws IOException
{
if ( log.isDebugEnabled() )
@@ -179,10 +179,10 @@ public class LHMLRUMemoryCache
// remove all keys of the same name hierarchy.
synchronized ( map )
{
- for (Iterator<Map.Entry<Serializable, MemoryElementDescriptor>> itr = map.entrySet().iterator(); itr.hasNext(); )
+ for (Iterator<Map.Entry<K, MemoryElementDescriptor<K, V>>> itr = map.entrySet().iterator(); itr.hasNext(); )
{
- Map.Entry<Serializable, MemoryElementDescriptor> entry = itr.next();
- Object k = entry.getKey();
+ Map.Entry<K, MemoryElementDescriptor<K, V>> entry = itr.next();
+ K k = entry.getKey();
if ( k instanceof String && ( (String) k ).startsWith( key.toString() ) )
{
@@ -197,10 +197,10 @@ public class LHMLRUMemoryCache
// remove all keys of the same name hierarchy.
synchronized ( map )
{
- for (Iterator<Map.Entry<Serializable, MemoryElementDescriptor>> itr = map.entrySet().iterator(); itr.hasNext(); )
+ for (Iterator<Map.Entry<K, MemoryElementDescriptor<K, V>>> itr = map.entrySet().iterator(); itr.hasNext(); )
{
- Map.Entry<Serializable, MemoryElementDescriptor> entry = itr.next();
- Object k = entry.getKey();
+ Map.Entry<K, MemoryElementDescriptor<K, V>> entry = itr.next();
+ K k = entry.getKey();
if ( k instanceof GroupAttrName && ( (GroupAttrName) k ).groupId.equals( key ) )
{
@@ -213,7 +213,7 @@ public class LHMLRUMemoryCache
else
{
// remove single item.
- MemoryElementDescriptor me = map.remove( key );
+ MemoryElementDescriptor<K, V> me = map.remove( key );
if ( me != null )
{
removed = true;
@@ -229,13 +229,13 @@ public class LHMLRUMemoryCache
* @return An Object[]
*/
@Override
- public Object[] getKeyArray()
+ public K[] getKeyArray()
{
// need a better locking strategy here.
synchronized ( this )
{
// may need to lock to map here?
- return map.keySet().toArray();
+ return (K[])map.keySet().toArray();
}
}
@@ -315,7 +315,7 @@ public class LHMLRUMemoryCache
* Implementation of removeEldestEntry in LinkedHashMap
*/
public class LHMSpooler
- extends java.util.LinkedHashMap<Serializable, MemoryElementDescriptor>
+ extends java.util.LinkedHashMap<K, MemoryElementDescriptor<K, V>>
{
/** Don't change. */
private static final long serialVersionUID = -1255907868906762484L;
@@ -336,9 +336,9 @@ public class LHMLRUMemoryCache
* @return true if removed
*/
@Override
- protected boolean removeEldestEntry( Map.Entry<Serializable, MemoryElementDescriptor> eldest )
+ protected boolean removeEldestEntry( Map.Entry<K, MemoryElementDescriptor<K, V>> eldest )
{
- ICacheElement element = eldest.getValue().ce;
+ ICacheElement<K, V> element = eldest.getValue().ce;
if ( size() <= cache.getCacheAttributes().getMaxObjects() )
{
@@ -367,13 +367,13 @@ public class LHMLRUMemoryCache
* <p>
* @param element The CacheElement
*/
- private void spoolToDisk( ICacheElement element )
+ private void spoolToDisk( ICacheElement<K, V> element )
{
cache.spoolToDisk( element );
if ( log.isDebugEnabled() )
{
- log.debug( cache.getCacheName() + "Spoolled element to disk: " + element.getKey() );
+ log.debug( cache.getCacheName() + "Spooled element to disk: " + element.getKey() );
}
}
}
Modified: commons/proper/jcs/branches/generics-interface/src/java/org/apache/jcs/engine/memory/lru/LRUMemoryCache.java
URL: http://svn.apache.org/viewvc/commons/proper/jcs/branches/generics-interface/src/java/org/apache/jcs/engine/memory/lru/LRUMemoryCache.java?rev=1232163&r1=1232162&r2=1232163&view=diff
==============================================================================
--- commons/proper/jcs/branches/generics-interface/src/java/org/apache/jcs/engine/memory/lru/LRUMemoryCache.java (original)
+++ commons/proper/jcs/branches/generics-interface/src/java/org/apache/jcs/engine/memory/lru/LRUMemoryCache.java Mon Jan 16 21:05:44 2012
@@ -20,6 +20,7 @@ package org.apache.jcs.engine.memory.lru
*/
import java.io.IOException;
+import java.io.Serializable;
import org.apache.jcs.engine.behavior.ICacheElement;
import org.apache.jcs.engine.memory.AbstractDoulbeLinkedListMemoryCache;
@@ -36,8 +37,8 @@ import org.apache.jcs.engine.memory.util
* The LRUMemoryCache is most efficient when the first element is selected. The smaller the region,
* the better the chance that this will be the case. < .04 ms per put, p3 866, 1/10 of that per get
*/
-public class LRUMemoryCache
- extends AbstractDoulbeLinkedListMemoryCache
+public class LRUMemoryCache<K extends Serializable, V extends Serializable>
+ extends AbstractDoulbeLinkedListMemoryCache<K, V>
{
/** Don't change */
private static final long serialVersionUID = 6403738094136424201L;
@@ -50,7 +51,7 @@ public class LRUMemoryCache
* @return MemoryElementDescriptor the new node
* @exception IOException
*/
- protected MemoryElementDescriptor adjustListForUpdate( ICacheElement ce )
+ protected MemoryElementDescriptor<K, V> adjustListForUpdate( ICacheElement<K, V> ce )
throws IOException
{
return addFirst( ce );
@@ -61,7 +62,7 @@ public class LRUMemoryCache
* <p>
* @param me
*/
- protected void adjustListForGet( MemoryElementDescriptor me )
+ protected void adjustListForGet( MemoryElementDescriptor<K, V> me )
{
list.makeFirst( me );
}
Modified: commons/proper/jcs/branches/generics-interface/src/java/org/apache/jcs/engine/memory/mru/MRUMemoryCache.java
URL: http://svn.apache.org/viewvc/commons/proper/jcs/branches/generics-interface/src/java/org/apache/jcs/engine/memory/mru/MRUMemoryCache.java?rev=1232163&r1=1232162&r2=1232163&view=diff
==============================================================================
--- commons/proper/jcs/branches/generics-interface/src/java/org/apache/jcs/engine/memory/mru/MRUMemoryCache.java (original)
+++ commons/proper/jcs/branches/generics-interface/src/java/org/apache/jcs/engine/memory/mru/MRUMemoryCache.java Mon Jan 16 21:05:44 2012
@@ -20,6 +20,7 @@ package org.apache.jcs.engine.memory.mru
*/
import java.io.IOException;
+import java.io.Serializable;
import org.apache.jcs.engine.behavior.ICacheElement;
import org.apache.jcs.engine.memory.AbstractDoulbeLinkedListMemoryCache;
@@ -29,8 +30,8 @@ import org.apache.jcs.engine.memory.util
* The most recently used items move to the front of the list and get spooled to disk if the cache
* hub is configured to use a disk cache.
*/
-public class MRUMemoryCache
- extends AbstractDoulbeLinkedListMemoryCache
+public class MRUMemoryCache<K extends Serializable, V extends Serializable>
+ extends AbstractDoulbeLinkedListMemoryCache<K, V>
{
/** Don't change */
private static final long serialVersionUID = 5013101678192336129L;
@@ -45,7 +46,7 @@ public class MRUMemoryCache
* @return MemoryElementDescriptor the new node
* @exception IOException
*/
- protected MemoryElementDescriptor adjustListForUpdate( ICacheElement ce )
+ protected MemoryElementDescriptor<K, V> adjustListForUpdate( ICacheElement<K, V> ce )
throws IOException
{
return addFirst( ce );
@@ -56,7 +57,7 @@ public class MRUMemoryCache
* <p>
* @param me
*/
- protected void adjustListForGet( MemoryElementDescriptor me )
+ protected void adjustListForGet( MemoryElementDescriptor<K, V> me )
{
list.makeLast( me );
}
Modified: commons/proper/jcs/branches/generics-interface/src/java/org/apache/jcs/engine/memory/shrinking/ShrinkerThread.java
URL: http://svn.apache.org/viewvc/commons/proper/jcs/branches/generics-interface/src/java/org/apache/jcs/engine/memory/shrinking/ShrinkerThread.java?rev=1232163&r1=1232162&r2=1232163&view=diff
==============================================================================
--- commons/proper/jcs/branches/generics-interface/src/java/org/apache/jcs/engine/memory/shrinking/ShrinkerThread.java (original)
+++ commons/proper/jcs/branches/generics-interface/src/java/org/apache/jcs/engine/memory/shrinking/ShrinkerThread.java Mon Jan 16 21:05:44 2012
@@ -38,14 +38,14 @@ import org.apache.jcs.engine.memory.Memo
* acting directly on an iterator of the underlying memory cache should have been solved.
* @version $Id$
*/
-public class ShrinkerThread
+public class ShrinkerThread<K extends Serializable, V extends Serializable>
implements Runnable
{
/** The logger */
private final static Log log = LogFactory.getLog( ShrinkerThread.class );
/** The MemoryCache instance which this shrinker is watching */
- private final MemoryCache cache;
+ private final MemoryCache<K, V> cache;
/** Maximum memory idle time for the whole cache */
private final long maxMemoryIdleTime;
@@ -61,7 +61,7 @@ public class ShrinkerThread
* <p>
* @param cache The MemoryCache which the new shrinker should watch.
*/
- public ShrinkerThread( MemoryCache cache )
+ public ShrinkerThread( MemoryCache<K, V> cache )
{
super();
@@ -95,7 +95,7 @@ public class ShrinkerThread
}
/**
- * This method is called when the thread wakes up. Frist the method obtains an array of keys for
+ * This method is called when the thread wakes up. First the method obtains an array of keys for
* the cache region. It iterates through the keys and tries to get the item from the cache
* without affecting the last access or position of the item. The item is checked for
* expiration, the expiration check has 3 parts:
@@ -103,7 +103,7 @@ public class ShrinkerThread
* <li>Has the cacheattributes.MaxMemoryIdleTimeSeconds defined for the region been exceeded? If
* so, the item should be move to disk.</li> <li>Has the item exceeded MaxLifeSeconds defined in
* the element attributes? If so, remove it.</li> <li>Has the item exceeded IdleTime defined in
- * the element atributes? If so, remove it. If there are event listeners registered for the
+ * the element attributes? If so, remove it. If there are event listeners registered for the
* cache element, they will be called.</li>
* </ol>
* @todo Change element event handling to use the queue, then move the queue to the region and
@@ -121,22 +121,22 @@ public class ShrinkerThread
try
{
- Object[] keys = cache.getKeyArray();
+ K[] keys = cache.getKeyArray();
int size = keys.length;
if ( log.isDebugEnabled() )
{
log.debug( "Keys size: " + size );
}
- Serializable key;
- ICacheElement cacheElement;
+ K key;
+ ICacheElement<K, V> cacheElement;
IElementAttributes attributes;
int spoolCount = 0;
for ( int i = 0; i < size; i++ )
{
- key = (Serializable) keys[i];
+ key = keys[i];
cacheElement = cache.getQuiet( key );
if ( cacheElement == null )
@@ -233,7 +233,7 @@ public class ShrinkerThread
* @return true if the element should be removed, or false.
* @throws IOException
*/
- protected boolean checkForRemoval( ICacheElement cacheElement, long now )
+ protected boolean checkForRemoval( ICacheElement<?, ?> cacheElement, long now )
throws IOException
{
IElementAttributes attributes = cacheElement.getElementAttributes();
@@ -280,7 +280,7 @@ public class ShrinkerThread
* @param eventType Type of event to handle
* @throws IOException If an error occurs
*/
- private void handleElementEvents( ICacheElement cacheElement, int eventType )
+ private void handleElementEvents( ICacheElement<?, ?> cacheElement, int eventType )
throws IOException
{
IElementAttributes attributes = cacheElement.getElementAttributes();
Modified: commons/proper/jcs/branches/generics-interface/src/java/org/apache/jcs/engine/memory/util/MemoryElementDescriptor.java
URL: http://svn.apache.org/viewvc/commons/proper/jcs/branches/generics-interface/src/java/org/apache/jcs/engine/memory/util/MemoryElementDescriptor.java?rev=1232163&r1=1232162&r2=1232163&view=diff
==============================================================================
--- commons/proper/jcs/branches/generics-interface/src/java/org/apache/jcs/engine/memory/util/MemoryElementDescriptor.java (original)
+++ commons/proper/jcs/branches/generics-interface/src/java/org/apache/jcs/engine/memory/util/MemoryElementDescriptor.java Mon Jan 16 21:05:44 2012
@@ -19,27 +19,29 @@ package org.apache.jcs.engine.memory.uti
* under the License.
*/
+import java.io.Serializable;
+
import org.apache.jcs.engine.behavior.ICacheElement;
import org.apache.jcs.utils.struct.DoubleLinkedListNode;
/**
* This wrapper is needed for double linked lists.
*/
-public class MemoryElementDescriptor
- extends DoubleLinkedListNode<ICacheElement>
+public class MemoryElementDescriptor<K extends Serializable, V extends Serializable>
+ extends DoubleLinkedListNode<ICacheElement<K, V>>
{
/** Don't change */
private static final long serialVersionUID = -1905161209035522460L;
/** The CacheElement wrapped by this descriptor */
- public ICacheElement ce;
+ public ICacheElement<K, V> ce;
/**
* Constructs a usable MemoryElementDescriptor.
* <p>
* @param ce
*/
- public MemoryElementDescriptor( ICacheElement ce )
+ public MemoryElementDescriptor( ICacheElement<K, V> ce )
{
super( ce );
this.ce = ce;
Modified: commons/proper/jcs/branches/generics-interface/src/java/org/apache/jcs/utils/access/JCSWorker.java
URL: http://svn.apache.org/viewvc/commons/proper/jcs/branches/generics-interface/src/java/org/apache/jcs/utils/access/JCSWorker.java?rev=1232163&r1=1232162&r2=1232163&view=diff
==============================================================================
--- commons/proper/jcs/branches/generics-interface/src/java/org/apache/jcs/utils/access/JCSWorker.java (original)
+++ commons/proper/jcs/branches/generics-interface/src/java/org/apache/jcs/utils/access/JCSWorker.java Mon Jan 16 21:05:44 2012
@@ -35,9 +35,9 @@ import org.apache.jcs.access.exception.C
* org.apache.jcs.utils.access.AbstractJCSWorkerHelper and implement Object
* doWork() and do the work in there, returning the object to be cached. Then
* call .getResult() with the key and the AbstractJCSWorkerHelper to get the
- * result of the work. If the object isn't allready in the Cache,
+ * result of the work. If the object isn't already in the Cache,
* AbstractJCSWorkerHelper.doWork() will get called, and the result will be put
- * into the cache. If the object is allready in cache, the cached result will be
+ * into the cache. If the object is already in cache, the cached result will be
* returned instead.
* <p>
* As an added bonus, multiple JCSWorkers with the same region, and key won't do
@@ -90,13 +90,13 @@ import org.apache.jcs.access.exception.C
* <p>
* @author Travis Savo
*/
-public class JCSWorker
+public class JCSWorker<K extends Serializable, V extends Serializable>
{
/** The logger */
private static final Log logger = LogFactory.getLog( JCSWorker.class );
/** The cache we are working with */
- private JCS cache;
+ private JCS<K, V> cache;
/**
* Map to hold who's doing work presently.
@@ -139,7 +139,7 @@ public class JCSWorker
* Gets the cached result for this region/key OR does the work and caches
* the result, returning the result. If the result has not been cached yet,
* this calls doWork() on the JCSWorkerHelper to do the work and cache the
- * result. This is also an opertunity to do any post processing of the
+ * result. This is also an opportunity to do any post processing of the
* result in your CachedWorker implementation.
* @param aKey
* The key to get/put with on the Cache.
@@ -152,7 +152,7 @@ public class JCSWorker
* Throws an exception if anything goes wrong while doing the
* work.
*/
- public Object getResult( Serializable aKey, JCSWorkerHelper aWorker )
+ public V getResult( K aKey, JCSWorkerHelper aWorker )
throws Exception
{
return run( aKey, null, aWorker );
@@ -177,7 +177,7 @@ public class JCSWorker
* Throws an exception if anything goes wrong while doing the
* work.
*/
- public Object getResult( Serializable aKey, String aGroup, JCSWorkerHelper aWorker )
+ public V getResult( K aKey, String aGroup, JCSWorkerHelper aWorker )
throws Exception
{
return run( aKey, aGroup, aWorker );
@@ -197,17 +197,17 @@ public class JCSWorker
* If something goes wrong while doing the work, throw an
* exception.
*/
- private Object run( Serializable aKey, String aGroup, JCSWorkerHelper aHelper )
+ private V run( K aKey, String aGroup, JCSWorkerHelper aHelper )
throws Exception
{
- Serializable result = null;
+ V result = null;
// long start = 0;
// long dbTime = 0;
JCSWorkerHelper helper = null;
synchronized ( map )
{
- // Check to see if we allready have a thread doing this work.
+ // Check to see if we already have a thread doing this work.
helper = map.get( getRegion() + aKey );
if ( helper == null )
{
@@ -255,7 +255,7 @@ public class JCSWorker
// If the cache dosn't have it, do the work.
if ( result == null )
{
- result = (Serializable)aHelper.doWork();
+ result = (V)aHelper.doWork();
if ( logger.isDebugEnabled() )
{
logger.debug( "Work Done, caching: key:" + aKey + ", group:" + aGroup + ", result:" + result + "." );
Modified: commons/proper/jcs/branches/generics-interface/src/java/org/apache/jcs/utils/serialization/CompressingSerializer.java
URL: http://svn.apache.org/viewvc/commons/proper/jcs/branches/generics-interface/src/java/org/apache/jcs/utils/serialization/CompressingSerializer.java?rev=1232163&r1=1232162&r2=1232163&view=diff
==============================================================================
--- commons/proper/jcs/branches/generics-interface/src/java/org/apache/jcs/utils/serialization/CompressingSerializer.java (original)
+++ commons/proper/jcs/branches/generics-interface/src/java/org/apache/jcs/utils/serialization/CompressingSerializer.java Mon Jan 16 21:05:44 2012
@@ -37,13 +37,13 @@ public class CompressingSerializer
implements IElementSerializer
{
/**
- * Serializes an object using default serilaization. Compresses the byte array.
+ * Serializes an object using default serialization. Compresses the byte array.
* <p>
* @param obj object
* @return byte[]
* @throws IOException on i/o problem
*/
- public byte[] serialize( Serializable obj )
+ public <T extends Serializable> byte[] serialize( T obj )
throws IOException
{
byte[] uncompressed = serializeObject( obj );
@@ -58,7 +58,7 @@ public class CompressingSerializer
* @return byte[]
* @throws IOException on i/o problem
*/
- protected byte[] serializeObject( Serializable obj )
+ protected <T extends Serializable> byte[] serializeObject( T obj )
throws IOException
{
ByteArrayOutputStream baos = new ByteArrayOutputStream();
@@ -84,7 +84,7 @@ public class CompressingSerializer
* @throws IOException on i/o problem
* @throws ClassNotFoundException if class is not found during deserialization
*/
- public Object deSerialize( byte[] data )
+ public <T extends Serializable> T deSerialize( byte[] data )
throws IOException, ClassNotFoundException
{
if ( data == null )
@@ -103,7 +103,7 @@ public class CompressingSerializer
* @throws IOException on i/o error
* @throws ClassNotFoundException if class is not found during deserialization
*/
- protected Object deserializeObject( byte[] decompressedByteArray )
+ protected <T extends Serializable> T deserializeObject( byte[] decompressedByteArray )
throws IOException, ClassNotFoundException
{
ByteArrayInputStream bais = new ByteArrayInputStream( decompressedByteArray );
@@ -114,7 +114,7 @@ public class CompressingSerializer
{
try
{
- return ois.readObject();
+ return (T) ois.readObject();
}
catch ( IOException e )
{
Modified: commons/proper/jcs/branches/generics-interface/src/java/org/apache/jcs/utils/serialization/SerializationConversionUtil.java
URL: http://svn.apache.org/viewvc/commons/proper/jcs/branches/generics-interface/src/java/org/apache/jcs/utils/serialization/SerializationConversionUtil.java?rev=1232163&r1=1232162&r2=1232163&view=diff
==============================================================================
--- commons/proper/jcs/branches/generics-interface/src/java/org/apache/jcs/utils/serialization/SerializationConversionUtil.java (original)
+++ commons/proper/jcs/branches/generics-interface/src/java/org/apache/jcs/utils/serialization/SerializationConversionUtil.java Mon Jan 16 21:05:44 2012
@@ -20,6 +20,7 @@ package org.apache.jcs.utils.serializati
*/
import java.io.IOException;
+import java.io.Serializable;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
@@ -49,7 +50,7 @@ public class SerializationConversionUtil
* @return null for null;
* @throws IOException
*/
- public static ICacheElementSerialized getSerializedCacheElement( ICacheElement element,
+ public static <K extends Serializable, V extends Serializable> ICacheElementSerialized<K, V> getSerializedCacheElement( ICacheElement<K, V> element,
IElementSerializer elementSerializer )
throws IOException
{
@@ -58,12 +59,12 @@ public class SerializationConversionUtil
return null;
}
- byte[] serialzedValue = null;
+ byte[] serializedValue = null;
// if it has already been serialized, don't do it again.
if ( element instanceof ICacheElementSerialized )
{
- serialzedValue = ( (ICacheElementSerialized) element ).getSerializedValue();
+ serializedValue = ( (ICacheElementSerialized<K, V>) element ).getSerializedValue();
}
else
{
@@ -71,7 +72,7 @@ public class SerializationConversionUtil
{
try
{
- serialzedValue = elementSerializer.serialize( element.getVal() );
+ serializedValue = elementSerializer.serialize( element.getVal() );
}
catch ( IOException e )
{
@@ -86,8 +87,8 @@ public class SerializationConversionUtil
throw new IOException( "Could not serialize object. The ElementSerializer is null." );
}
}
- ICacheElementSerialized serialized = new CacheElementSerialized( element.getCacheName(), element.getKey(),
- serialzedValue, element.getElementAttributes() );
+ ICacheElementSerialized<K, V> serialized = new CacheElementSerialized<K, V>(
+ element.getCacheName(), element.getKey(), serializedValue, element.getElementAttributes() );
return serialized;
}
@@ -103,7 +104,7 @@ public class SerializationConversionUtil
* @throws IOException
* @throws ClassNotFoundException
*/
- public static ICacheElement getDeSerializedCacheElement( ICacheElementSerialized serialized,
+ public static <K extends Serializable, V extends Serializable> ICacheElement<K, V> getDeSerializedCacheElement( ICacheElementSerialized<K, V> serialized,
IElementSerializer elementSerializer )
throws IOException, ClassNotFoundException
{
@@ -112,7 +113,7 @@ public class SerializationConversionUtil
return null;
}
- Object deSerialzedValue = null;
+ V deSerializedValue = null;
if ( elementSerializer != null )
{
@@ -120,7 +121,7 @@ public class SerializationConversionUtil
{
try
{
- deSerialzedValue = elementSerializer.deSerialize( serialized.getSerializedValue() );
+ deSerializedValue = elementSerializer.deSerialize( serialized.getSerializedValue() );
}
catch ( ClassNotFoundException e )
{
@@ -139,7 +140,7 @@ public class SerializationConversionUtil
// we could just use the default.
log.warn( "ElementSerializer is null. Could not serialize object." );
}
- ICacheElement deSerialized = new CacheElement( serialized.getCacheName(), serialized.getKey(), deSerialzedValue );
+ ICacheElement<K, V> deSerialized = new CacheElement<K, V>( serialized.getCacheName(), serialized.getKey(), deSerializedValue );
deSerialized.setElementAttributes( serialized.getElementAttributes() );
return deSerialized;
Modified: commons/proper/jcs/branches/generics-interface/src/java/org/apache/jcs/utils/serialization/StandardSerializer.java
URL: http://svn.apache.org/viewvc/commons/proper/jcs/branches/generics-interface/src/java/org/apache/jcs/utils/serialization/StandardSerializer.java?rev=1232163&r1=1232162&r2=1232163&view=diff
==============================================================================
--- commons/proper/jcs/branches/generics-interface/src/java/org/apache/jcs/utils/serialization/StandardSerializer.java (original)
+++ commons/proper/jcs/branches/generics-interface/src/java/org/apache/jcs/utils/serialization/StandardSerializer.java Mon Jan 16 21:05:44 2012
@@ -40,14 +40,14 @@ public class StandardSerializer
/**
* Serializes an object using default serialization.
* <p>
- * @param obj
+ * @param obj
* @return byte[]
- * @throws IOException
+ * @throws IOException
*/
- public byte[] serialize( Serializable obj )
+ public <T extends Serializable> byte[] serialize( T obj )
throws IOException
{
- ByteArrayOutputStream baos = new ByteArrayOutputStream();
+ ByteArrayOutputStream baos = new ByteArrayOutputStream();
ObjectOutputStream oos = new ObjectOutputStream( baos );
try
{
@@ -69,7 +69,7 @@ public class StandardSerializer
* @throws IOException
* @throws ClassNotFoundException
*/
- public Object deSerialize( byte[] data )
+ public <T extends Serializable> T deSerialize( byte[] data )
throws IOException, ClassNotFoundException
{
ByteArrayInputStream bais = new ByteArrayInputStream( data );
@@ -79,7 +79,7 @@ public class StandardSerializer
{
try
{
- return ois.readObject();
+ return (T) ois.readObject();
}
catch ( IOException e )
{
Modified: commons/proper/jcs/branches/generics-interface/src/test/org/apache/jcs/JCSCacheElementRetrievalUnitTest.java
URL: http://svn.apache.org/viewvc/commons/proper/jcs/branches/generics-interface/src/test/org/apache/jcs/JCSCacheElementRetrievalUnitTest.java?rev=1232163&r1=1232162&r2=1232163&view=diff
==============================================================================
--- commons/proper/jcs/branches/generics-interface/src/test/org/apache/jcs/JCSCacheElementRetrievalUnitTest.java (original)
+++ commons/proper/jcs/branches/generics-interface/src/test/org/apache/jcs/JCSCacheElementRetrievalUnitTest.java Mon Jan 16 21:05:44 2012
@@ -43,7 +43,7 @@ public class JCSCacheElementRetrievalUni
jcs.put( "test_key", "test_data" );
long now = System.currentTimeMillis();
- ICacheElement elem = jcs.getCacheElement( "test_key" );
+ ICacheElement<String, String> elem = jcs.getCacheElement( "test_key" );
assertEquals( "Name wasn't right", "testCache1", elem.getCacheName() );
long diff = now - elem.getElementAttributes().getCreateTime();
Modified: commons/proper/jcs/branches/generics-interface/src/test/org/apache/jcs/access/CacheAccessUnitTest.java
URL: http://svn.apache.org/viewvc/commons/proper/jcs/branches/generics-interface/src/test/org/apache/jcs/access/CacheAccessUnitTest.java?rev=1232163&r1=1232162&r2=1232163&view=diff
==============================================================================
--- commons/proper/jcs/branches/generics-interface/src/test/org/apache/jcs/access/CacheAccessUnitTest.java (original)
+++ commons/proper/jcs/branches/generics-interface/src/test/org/apache/jcs/access/CacheAccessUnitTest.java Mon Jan 16 21:05:44 2012
@@ -147,7 +147,7 @@ public class CacheAccessUnitTest
access.put( key, value );
- ICacheElement element = access.getCacheElement( key );
+ ICacheElement<String, String> element = access.getCacheElement( key );
assertEquals( "Wrong max life. Should have the new value.", maxLife, element.getElementAttributes()
.getMaxLifeSeconds() );
@@ -184,10 +184,10 @@ public class CacheAccessUnitTest
//VERIFY
assertEquals( "map size", 2, result.size() );
- ICacheElement elementOne = (ICacheElement) result.get( keyOne );
+ ICacheElement<String, String> elementOne = (ICacheElement) result.get( keyOne );
assertEquals( "value one", keyOne, elementOne.getKey() );
assertEquals( "value one", valueOne, elementOne.getVal() );
- ICacheElement elementTwo = (ICacheElement) result.get( keyTwo );
+ ICacheElement<String, String> elementTwo = (ICacheElement) result.get( keyTwo );
assertEquals( "value two", keyTwo, elementTwo.getKey() );
assertEquals( "value two", valueTwo, elementTwo.getVal() );
}
@@ -291,7 +291,7 @@ public class CacheAccessUnitTest
assertEquals( "Wrong number returned 1:", numToInsertPrefix1, result1.size() );
assertEquals( "Wrong number returned 2:", numToInsertPrefix2, result2.size() );
//System.out.println( result1 );
-
+
// verify that the elements are unwrapped
Set keySet1 = result1.keySet();
Iterator it1 = keySet1.iterator();
@@ -302,7 +302,7 @@ public class CacheAccessUnitTest
assertFalse( "Should not be a cache element.", value instanceof ICacheElement );
}
}
-
+
/**
* Verify we can get some matching elements..
* <p>
@@ -348,7 +348,7 @@ public class CacheAccessUnitTest
assertEquals( "Wrong number returned 1:", numToInsertPrefix1, result1.size() );
assertEquals( "Wrong number returned 2:", numToInsertPrefix2, result2.size() );
//System.out.println( result1 );
-
+
// verify that the elements are wrapped
Set keySet1 = result1.keySet();
Iterator it1 = keySet1.iterator();
@@ -357,6 +357,6 @@ public class CacheAccessUnitTest
Object key = it1.next();
Object value = result1.get( key );
assertTrue( "Should be a cache element.", value instanceof ICacheElement );
- }
+ }
}
}
Modified: commons/proper/jcs/branches/generics-interface/src/test/org/apache/jcs/auxiliary/MockAuxiliaryCache.java
URL: http://svn.apache.org/viewvc/commons/proper/jcs/branches/generics-interface/src/test/org/apache/jcs/auxiliary/MockAuxiliaryCache.java?rev=1232163&r1=1232162&r2=1232163&view=diff
==============================================================================
--- commons/proper/jcs/branches/generics-interface/src/test/org/apache/jcs/auxiliary/MockAuxiliaryCache.java (original)
+++ commons/proper/jcs/branches/generics-interface/src/test/org/apache/jcs/auxiliary/MockAuxiliaryCache.java Mon Jan 16 21:05:44 2012
@@ -35,8 +35,8 @@ import org.apache.jcs.engine.stats.behav
* <p>
* @author Aaron Smuts
*/
-public class MockAuxiliaryCache
- extends AbstractAuxiliaryCache
+public class MockAuxiliaryCache<K extends Serializable, V extends Serializable>
+ extends AbstractAuxiliaryCache<K, V>
{
/** Don't change */
private static final long serialVersionUID = 1L;
@@ -54,7 +54,7 @@ public class MockAuxiliaryCache
* @param ce
* @throws IOException
*/
- public void update( ICacheElement ce )
+ public void update( ICacheElement<K, V> ce )
throws IOException
{
// TODO Auto-generated method stub
@@ -66,7 +66,7 @@ public class MockAuxiliaryCache
* @return ICacheElement
* @throws IOException
*/
- public ICacheElement get( Serializable key )
+ public ICacheElement<K, V> get( K key )
throws IOException
{
// TODO Auto-generated method stub
@@ -78,23 +78,23 @@ public class MockAuxiliaryCache
* @return Map
* @throws IOException
*/
- public Map<Serializable, ICacheElement> getMatching(String pattern)
+ public Map<K, ICacheElement<K, V>> getMatching(String pattern)
throws IOException
{
getMatchingCallCount++;
- return new HashMap<Serializable, ICacheElement>();
+ return new HashMap<K, ICacheElement<K, V>>();
}
/**
* Gets multiple items from the cache based on the given set of keys.
* <p>
* @param keys
- * @return a map of Serializable key to ICacheElement element, or an empty map if there is no
+ * @return a map of K key to ICacheElement<String, String> element, or an empty map if there is no
* data in cache for any of these keys
*/
- public Map<Serializable, ICacheElement> getMultiple(Set<Serializable> keys)
+ public Map<K, ICacheElement<K, V>> getMultiple(Set<K> keys)
{
- return new HashMap<Serializable, ICacheElement>();
+ return new HashMap<K, ICacheElement<K, V>>();
}
/**
@@ -102,7 +102,7 @@ public class MockAuxiliaryCache
* @return boolean
* @throws IOException
*/
- public boolean remove( Serializable key )
+ public boolean remove( K key )
throws IOException
{
// TODO Auto-generated method stub
@@ -159,7 +159,7 @@ public class MockAuxiliaryCache
* @return null
* @throws IOException
*/
- public Set<Serializable> getGroupKeys( String group )
+ public Set<K> getGroupKeys( String group )
throws IOException
{
return null;
Modified: commons/proper/jcs/branches/generics-interface/src/test/org/apache/jcs/auxiliary/MockCacheEventLogger.java
URL: http://svn.apache.org/viewvc/commons/proper/jcs/branches/generics-interface/src/test/org/apache/jcs/auxiliary/MockCacheEventLogger.java?rev=1232163&r1=1232162&r2=1232163&view=diff
==============================================================================
--- commons/proper/jcs/branches/generics-interface/src/test/org/apache/jcs/auxiliary/MockCacheEventLogger.java (original)
+++ commons/proper/jcs/branches/generics-interface/src/test/org/apache/jcs/auxiliary/MockCacheEventLogger.java Mon Jan 16 21:05:44 2012
@@ -4,7 +4,6 @@ import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
-import org.apache.jcs.engine.behavior.ICacheElement;
import org.apache.jcs.engine.logging.CacheEvent;
import org.apache.jcs.engine.logging.behavior.ICacheEvent;
import org.apache.jcs.engine.logging.behavior.ICacheEventLogger;
@@ -44,7 +43,7 @@ public class MockCacheEventLogger
/**
* @param cacheEvent
*/
- public void logICacheEvent( ICacheEvent cacheEvent )
+ public <T extends Serializable> void logICacheEvent( ICacheEvent<T> event )
{
endICacheEventCalls++;
}
@@ -68,25 +67,10 @@ public class MockCacheEventLogger
* @param key
* @return ICacheEvent
*/
- public ICacheEvent createICacheEvent( String source, String region, String eventName, String optionalDetails,
- Serializable key )
+ public <T extends Serializable> ICacheEvent<T> createICacheEvent( String source, String region,
+ String eventName, String optionalDetails, T key )
{
startICacheEventCalls++;
- return new CacheEvent();
- }
-
- /**
- * @param source
- * @param region
- * @param eventName
- * @param optionalDetails
- * @param item
- * @return ICacheEvent
- */
- public ICacheEvent createICacheEvent( String source, String region, String eventName, String optionalDetails,
- ICacheElement item )
- {
- startICacheEventCalls++;
- return new CacheEvent();
+ return new CacheEvent<T>();
}
}
Modified: commons/proper/jcs/branches/generics-interface/src/test/org/apache/jcs/auxiliary/disk/AbstractDiskCacheUnitTest.java
URL: http://svn.apache.org/viewvc/commons/proper/jcs/branches/generics-interface/src/test/org/apache/jcs/auxiliary/disk/AbstractDiskCacheUnitTest.java?rev=1232163&r1=1232162&r2=1232163&view=diff
==============================================================================
--- commons/proper/jcs/branches/generics-interface/src/test/org/apache/jcs/auxiliary/disk/AbstractDiskCacheUnitTest.java (original)
+++ commons/proper/jcs/branches/generics-interface/src/test/org/apache/jcs/auxiliary/disk/AbstractDiskCacheUnitTest.java Mon Jan 16 21:05:44 2012
@@ -37,17 +37,17 @@ public class AbstractDiskCacheUnitTest
IDiskCacheAttributes diskCacheAttributes = new IndexedDiskCacheAttributes();
diskCacheAttributes.setCacheName( cacheName );
- AbstractDiskCacheTestInstance diskCache = new AbstractDiskCacheTestInstance( diskCacheAttributes );
+ AbstractDiskCacheTestInstance<String, String> diskCache = new AbstractDiskCacheTestInstance<String, String>( diskCacheAttributes );
String key = "myKey";
String value = "myValue";
IElementAttributes elementAttributes = new ElementAttributes();
- ICacheElement cacheElement = new CacheElement( cacheName, key, value, elementAttributes );
+ ICacheElement<String, String> cacheElement = new CacheElement<String, String>( cacheName, key, value, elementAttributes );
diskCache.update( cacheElement );
// DO WORK
- ICacheElement result = diskCache.get( key );
+ ICacheElement<String, String> result = diskCache.get( key );
// VERIFY
//System.out.println( diskCache.getStats() );
@@ -67,12 +67,12 @@ public class AbstractDiskCacheUnitTest
IDiskCacheAttributes diskCacheAttributes = new IndexedDiskCacheAttributes();
diskCacheAttributes.setCacheName( cacheName );
- AbstractDiskCacheTestInstance diskCache = new AbstractDiskCacheTestInstance( diskCacheAttributes );
+ AbstractDiskCacheTestInstance<String, String> diskCache = new AbstractDiskCacheTestInstance<String, String>( diskCacheAttributes );
String key = "myKey";
String value = "myValue";
IElementAttributes elementAttributes = new ElementAttributes();
- ICacheElement cacheElement = new CacheElement( cacheName, key, value, elementAttributes );
+ ICacheElement<String, String> cacheElement = new CacheElement<String, String>( cacheName, key, value, elementAttributes );
diskCache.update( cacheElement );
@@ -99,13 +99,13 @@ public class AbstractDiskCacheUnitTest
IDiskCacheAttributes diskCacheAttributes = new IndexedDiskCacheAttributes();
diskCacheAttributes.setAllowRemoveAll( false );
- AbstractDiskCacheTestInstance diskCache = new AbstractDiskCacheTestInstance( diskCacheAttributes );
+ AbstractDiskCacheTestInstance<String, String> diskCache = new AbstractDiskCacheTestInstance<String, String>( diskCacheAttributes );
String cacheName = "testRemoveAll_notAllowed";
String key = "myKey";
String value = "myValue";
IElementAttributes elementAttributes = new ElementAttributes();
- ICacheElement cacheElement = new CacheElement( cacheName, key, value, elementAttributes );
+ ICacheElement<String, String> cacheElement = new CacheElement<String, String>( cacheName, key, value, elementAttributes );
diskCache.update( cacheElement );
@@ -130,13 +130,13 @@ public class AbstractDiskCacheUnitTest
IDiskCacheAttributes diskCacheAttributes = new IndexedDiskCacheAttributes();
diskCacheAttributes.setAllowRemoveAll( true );
- AbstractDiskCacheTestInstance diskCache = new AbstractDiskCacheTestInstance( diskCacheAttributes );
+ AbstractDiskCacheTestInstance<String, String> diskCache = new AbstractDiskCacheTestInstance<String, String>( diskCacheAttributes );
String cacheName = "testRemoveAll_allowed";
String key = "myKey";
String value = "myValue";
IElementAttributes elementAttributes = new ElementAttributes();
- ICacheElement cacheElement = new CacheElement( cacheName, key, value, elementAttributes );
+ ICacheElement<String, String> cacheElement = new CacheElement<String, String>( cacheName, key, value, elementAttributes );
diskCache.update( cacheElement );
@@ -148,11 +148,11 @@ public class AbstractDiskCacheUnitTest
}
/** Concrete, testable instance. */
- protected static class AbstractDiskCacheTestInstance
- extends AbstractDiskCache
+ protected static class AbstractDiskCacheTestInstance<K extends Serializable, V extends Serializable>
+ extends AbstractDiskCache<K, V>
{
/** Internal map */
- protected Map<Serializable, ICacheElement> map = new HashMap<Serializable, ICacheElement>();
+ protected Map<K, ICacheElement<K, V>> map = new HashMap<K, ICacheElement<K, V>>();
/** used by the abstract aux class */
protected IDiskCacheAttributes diskCacheAttributes;
@@ -188,7 +188,7 @@ public class AbstractDiskCacheUnitTest
* @return Collections.EMPTY_SET
*/
@Override
- public Set<Serializable> getGroupKeys(String groupName)
+ public Set<K> getGroupKeys(String groupName)
{
return Collections.emptySet();
}
@@ -218,7 +218,7 @@ public class AbstractDiskCacheUnitTest
* @throws IOException
*/
@Override
- protected ICacheElement processGet( Serializable key )
+ protected ICacheElement<K, V> processGet( K key )
throws IOException
{
//System.out.println( "processGet: " + key );
@@ -231,7 +231,7 @@ public class AbstractDiskCacheUnitTest
* @throws IOException
*/
@Override
- protected Map<Serializable, ICacheElement> processGetMatching( String pattern )
+ protected Map<K, ICacheElement<K, V>> processGetMatching( String pattern )
throws IOException
{
return Collections.emptyMap();
@@ -243,7 +243,7 @@ public class AbstractDiskCacheUnitTest
* @throws IOException
*/
@Override
- protected boolean processRemove( Serializable key )
+ protected boolean processRemove( K key )
throws IOException
{
return map.remove( key ) != null;
@@ -265,7 +265,7 @@ public class AbstractDiskCacheUnitTest
* @throws IOException
*/
@Override
- protected void processUpdate( ICacheElement cacheElement )
+ protected void processUpdate( ICacheElement<K, V> cacheElement )
throws IOException
{
//System.out.println( "processUpdate: " + cacheElement );
Modified: commons/proper/jcs/branches/generics-interface/src/test/org/apache/jcs/auxiliary/disk/PurgatoryElementUnitTest.java
URL: http://svn.apache.org/viewvc/commons/proper/jcs/branches/generics-interface/src/test/org/apache/jcs/auxiliary/disk/PurgatoryElementUnitTest.java?rev=1232163&r1=1232162&r2=1232163&view=diff
==============================================================================
--- commons/proper/jcs/branches/generics-interface/src/test/org/apache/jcs/auxiliary/disk/PurgatoryElementUnitTest.java (original)
+++ commons/proper/jcs/branches/generics-interface/src/test/org/apache/jcs/auxiliary/disk/PurgatoryElementUnitTest.java Mon Jan 16 21:05:44 2012
@@ -19,8 +19,8 @@ public class PurgatoryElementUnitTest
String key = "myKey";
String value = "myValue";
IElementAttributes elementAttributes = new ElementAttributes();
- ICacheElement cacheElement = new CacheElement( cacheName, key, value, elementAttributes );
- PurgatoryElement purgatoryElement = new PurgatoryElement( cacheElement );
+ ICacheElement<String, String> cacheElement = new CacheElement<String, String>( cacheName, key, value, elementAttributes );
+ PurgatoryElement<String, String> purgatoryElement = new PurgatoryElement<String, String>( cacheElement );
purgatoryElement.setSpoolable( false );
// DO WORK
@@ -39,8 +39,8 @@ public class PurgatoryElementUnitTest
String value = "myValue";
IElementAttributes elementAttributes = new ElementAttributes();
- ICacheElement cacheElement = new CacheElement( cacheName, key, value );
- PurgatoryElement purgatoryElement = new PurgatoryElement( cacheElement );
+ ICacheElement<String, String> cacheElement = new CacheElement<String, String>( cacheName, key, value );
+ PurgatoryElement<String, String> purgatoryElement = new PurgatoryElement<String, String>( cacheElement );
purgatoryElement.setElementAttributes( elementAttributes );
// DO WORK
@@ -58,8 +58,8 @@ public class PurgatoryElementUnitTest
String key = "myKey";
String value = "myValue";
IElementAttributes elementAttributes = new ElementAttributes();
- ICacheElement cacheElement = new CacheElement( cacheName, key, value, elementAttributes );
- PurgatoryElement purgatoryElement = new PurgatoryElement( cacheElement );
+ ICacheElement<String, String> cacheElement = new CacheElement<String, String>( cacheName, key, value, elementAttributes );
+ PurgatoryElement<String, String> purgatoryElement = new PurgatoryElement<String, String>( cacheElement );
// DO WORK
String result = purgatoryElement.toString();
Modified: commons/proper/jcs/branches/generics-interface/src/test/org/apache/jcs/auxiliary/disk/block/BlockDiskCacheConcurrentUnitTest.java
URL: http://svn.apache.org/viewvc/commons/proper/jcs/branches/generics-interface/src/test/org/apache/jcs/auxiliary/disk/block/BlockDiskCacheConcurrentUnitTest.java?rev=1232163&r1=1232162&r2=1232163&view=diff
==============================================================================
--- commons/proper/jcs/branches/generics-interface/src/test/org/apache/jcs/auxiliary/disk/block/BlockDiskCacheConcurrentUnitTest.java (original)
+++ commons/proper/jcs/branches/generics-interface/src/test/org/apache/jcs/auxiliary/disk/block/BlockDiskCacheConcurrentUnitTest.java Mon Jan 16 21:05:44 2012
@@ -142,7 +142,7 @@ public class BlockDiskCacheConcurrentUni
public void runTestForRegion( String region )
throws Exception
{
- JCS jcs = JCS.getInstance( region );
+ JCS<String, String> jcs = JCS.getInstance( region );
// Add items to cache
for ( int i = 0; i <= items; i++ )
@@ -153,22 +153,22 @@ public class BlockDiskCacheConcurrentUni
// Test that all items are in cache
for ( int i = 0; i <= items; i++ )
{
- String value = (String) jcs.get( i + ":key" );
+ String value = jcs.get( i + ":key" );
assertEquals( region + " data " + i, value );
}
// Test that getElements returns all the expected values
- Set keys = new HashSet();
+ Set<String> keys = new HashSet<String>();
for ( int i = 0; i <= items; i++ )
{
keys.add( i + ":key" );
}
- Map elements = jcs.getCacheElements( keys );
+ Map<String, ICacheElement<String, String>> elements = jcs.getCacheElements( keys );
for ( int i = 0; i <= items; i++ )
{
- ICacheElement element = (ICacheElement) elements.get( i + ":key" );
+ ICacheElement<String, String> element = elements.get( i + ":key" );
assertNotNull( "element " + i + ":key is missing", element );
assertEquals( "value " + i + ":key", region + " data " + i, element.getVal() );
}
@@ -203,7 +203,7 @@ public class BlockDiskCacheConcurrentUni
public void runTestForRegionInRange( String region, int start, int end )
throws Exception
{
- JCS jcs = JCS.getInstance( region );
+ JCS<String, String> jcs = JCS.getInstance( region );
// Add items to cache
for ( int i = start; i <= end; i++ )
@@ -214,22 +214,22 @@ public class BlockDiskCacheConcurrentUni
// Test that all items are in cache
for ( int i = start; i <= end; i++ )
{
- String value = (String) jcs.get( i + ":key" );
+ String value = jcs.get( i + ":key" );
assertEquals( region + " data " + i, value );
}
// Test that getElements returns all the expected values
- Set keys = new HashSet();
+ Set<String> keys = new HashSet<String>();
for ( int i = start; i <= end; i++ )
{
keys.add( i + ":key" );
}
- Map elements = jcs.getCacheElements( keys );
+ Map<String, ICacheElement<String, String>> elements = jcs.getCacheElements( keys );
for ( int i = start; i <= end; i++ )
{
- ICacheElement element = (ICacheElement) elements.get( i + ":key" );
+ ICacheElement<String, String> element = elements.get( i + ":key" );
assertNotNull( "element " + i + ":key is missing", element );
assertEquals( "value " + i + ":key", region + " data " + i, element.getVal() );
}
Modified: commons/proper/jcs/branches/generics-interface/src/test/org/apache/jcs/auxiliary/disk/block/BlockDiskCacheSameRegionConcurrentUnitTest.java
URL: http://svn.apache.org/viewvc/commons/proper/jcs/branches/generics-interface/src/test/org/apache/jcs/auxiliary/disk/block/BlockDiskCacheSameRegionConcurrentUnitTest.java?rev=1232163&r1=1232162&r2=1232163&view=diff
==============================================================================
--- commons/proper/jcs/branches/generics-interface/src/test/org/apache/jcs/auxiliary/disk/block/BlockDiskCacheSameRegionConcurrentUnitTest.java (original)
+++ commons/proper/jcs/branches/generics-interface/src/test/org/apache/jcs/auxiliary/disk/block/BlockDiskCacheSameRegionConcurrentUnitTest.java Mon Jan 16 21:05:44 2012
@@ -135,7 +135,7 @@ public class BlockDiskCacheSameRegionCon
public void runTestForRegion( String region, int start, int end )
throws Exception
{
- JCS jcs = JCS.getInstance( region );
+ JCS<String, String> jcs = JCS.getInstance( region );
// Add items to cache
@@ -149,22 +149,22 @@ public class BlockDiskCacheSameRegionCon
for ( int i = start; i <= end; i++ )
{
String key = i + ":key";
- String value = (String) jcs.get( key );
+ String value = jcs.get( key );
assertEquals( "Wrong value for key [" + key + "]", region + " data " + i + "-" + region, value );
}
// Test that getElements returns all the expected values
- Set keys = new HashSet();
+ Set<String> keys = new HashSet<String>();
for ( int i = start; i <= end; i++ )
{
keys.add( i + ":key" );
}
- Map elements = jcs.getCacheElements( keys );
+ Map<String, ICacheElement<String, String>> elements = jcs.getCacheElements( keys );
for ( int i = start; i <= end; i++ )
{
- ICacheElement element = (ICacheElement) elements.get( i + ":key" );
+ ICacheElement<String, String> element = elements.get( i + ":key" );
assertNotNull( "element " + i + ":key is missing", element );
assertEquals( "value " + i + ":key", region + " data " + i + "-" + region, element.getVal() );
}