bpapez 2005/12/01 10:50:35 CET
Modified files:
core/src/java/org/jahia/services/cache/jms JMSCacheImpl.java
core/src/java/org/jahia/services/cache/oscache
OSCacheImpl.java
core/src/java/org/jahia/services/cache
CacheImplementation.java
Cache.java
core/src/java/org/jahia/services/cache/simple
SimpleCacheImpl.java
Log:
cache interface changes (containsKey and listener registration)
Revision Changes Path
1.11 +3 -3 jahia/core/src/java/org/jahia/services/cache/Cache.java
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/jahia/core/src/java/org/jahia/services/cache/Cache.java.diff?r1=1.10&r2=1.11&f=h
1.3 +4 -1
jahia/core/src/java/org/jahia/services/cache/CacheImplementation.java
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/jahia/core/src/java/org/jahia/services/cache/CacheImplementation.java.diff?r1=1.2&r2=1.3&f=h
1.4 +21 -3
jahia/core/src/java/org/jahia/services/cache/jms/JMSCacheImpl.java
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/jahia/core/src/java/org/jahia/services/cache/jms/JMSCacheImpl.java.diff?r1=1.3&r2=1.4&f=h
1.3 +18 -3
jahia/core/src/java/org/jahia/services/cache/oscache/OSCacheImpl.java
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/jahia/core/src/java/org/jahia/services/cache/oscache/OSCacheImpl.java.diff?r1=1.2&r2=1.3&f=h
1.4 +10 -2
jahia/core/src/java/org/jahia/services/cache/simple/SimpleCacheImpl.java
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/jahia/core/src/java/org/jahia/services/cache/simple/SimpleCacheImpl.java.diff?r1=1.3&r2=1.4&f=h
Index: JMSCacheImpl.java
===================================================================
RCS file:
/home/cvs/repository/jahia/core/src/java/org/jahia/services/cache/jms/JMSCacheImpl.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- JMSCacheImpl.java 17 Aug 2005 16:08:14 -0000 1.3
+++ JMSCacheImpl.java 1 Dec 2005 09:50:34 -0000 1.4
@@ -42,6 +42,7 @@
import org.jahia.services.cache.*;
import org.apache.commons.collections.FastHashMap;
+import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.Iterator;
@@ -68,7 +69,7 @@
/** reference to the JMS hub to send messages. */
private JMSHub jmsHub = null;
- private ArrayList listeners = null;
+ private List listeners = new ArrayList();
/** <p>Creates a new <code>Cache</code> instance.</p>
@@ -81,6 +82,20 @@
init (name, hub);
}
+ /** <p>Checks whether the cache contains the entry associated to the
<code>entryKey</code>
+ * object stored in fetched cache entry. <code>null</code> is returned
when the
+ * <code>entryKey</code> is <code>null</code>, or when no cache entry
could be found
+ * for the specified <code>entryKey</code>.</p>
+ *
+ * @param entryKey the key associated to the requested object. A
<code>null</code>
+ * key will return in a <code>null</code> result.
+ *
+ * @return the object associated to the code <code>entryKey</code>
cache entry.
+ */
+ public boolean containsKey (Object entryKey) {
+ return cache.containsKey(entryKey);
+ }
+
/** <p>Fetchs the cache entry associated to the <code>entryKey</code>
and returns the
* object stored in fetched cache entry. <code>null</code> is returned
when the
* <code>entryKey</code> is <code>null</code>, or when no cache entry
could be found
@@ -430,7 +445,10 @@
"] from cache [" + name + "]!");
}
- public void setListeners(ArrayList listeners) {
- this.listeners = listeners;
+ public void addListener(CacheListener listener) {
+ this.listeners.add(listener);
}
+ public void removeListener(CacheListener listener) {
+ this.listeners.remove(listener);
+ }
}
\ No newline at end of file
Index: OSCacheImpl.java
===================================================================
RCS file:
/home/cvs/repository/jahia/core/src/java/org/jahia/services/cache/oscache/OSCacheImpl.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- OSCacheImpl.java 29 Jul 2005 16:28:53 -0000 1.2
+++ OSCacheImpl.java 1 Dec 2005 09:50:35 -0000 1.3
@@ -1,8 +1,10 @@
package org.jahia.services.cache.oscache;
import org.jahia.services.cache.CacheImplementation;
+import org.jahia.services.cache.CacheListener;
import java.util.ArrayList;
+import java.util.List;
import java.util.Properties;
import com.opensymphony.oscache.general.GeneralCacheAdministrator;
@@ -21,7 +23,7 @@
private final int refreshPeriod;
private final String cron;
private final String name;
- private ArrayList listeners = null;
+ private List listeners = new ArrayList();
public OSCacheImpl(String name, int refreshPeriod, String cron,
Properties properties) {
this.name = name;
@@ -30,6 +32,16 @@
cache = new GeneralCacheAdministrator(properties);
}
+ public boolean containsKey(Object key) {
+ try {
+ return (cache.getFromCache( key.toString() , refreshPeriod, cron
) != null);
+ }
+ catch (NeedsRefreshException e) {
+ cache.cancelUpdate( key.toString() );
+ return false;
+ }
+ }
+
public Object get(Object key) {
try {
return cache.getFromCache( key.toString() , refreshPeriod, cron
);
@@ -72,9 +84,12 @@
return name;
}
- public void setListeners(ArrayList listeners) {
- this.listeners = listeners;
+ public void addListener(CacheListener listener) {
+ this.listeners.add(listener);
}
+ public void removeListener(CacheListener listener) {
+ this.listeners.remove(listener);
+ }
/**
* <p>Returns the maximum size allowed for the cache.</p>
Index: CacheImplementation.java
===================================================================
RCS file:
/home/cvs/repository/jahia/core/src/java/org/jahia/services/cache/CacheImplementation.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- CacheImplementation.java 29 Jul 2005 16:28:52 -0000 1.2
+++ CacheImplementation.java 1 Dec 2005 09:50:35 -0000 1.3
@@ -10,6 +10,8 @@
* To change this template use File | Settings | File Templates.
*/
public interface CacheImplementation {
+ boolean containsKey(Object key);
+
Object get(Object key);
/**
@@ -30,7 +32,8 @@
public String getName();
- void setListeners(ArrayList listeners);
+ void addListener(CacheListener listener);
+ void removeListener(CacheListener listener);
/** <p>Returns the maximum size allowed for the cache.</p>
*
Index: Cache.java
===================================================================
RCS file:
/home/cvs/repository/jahia/core/src/java/org/jahia/services/cache/Cache.java,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -r1.10 -r1.11
--- Cache.java 29 Jul 2005 16:28:52 -0000 1.10
+++ Cache.java 1 Dec 2005 09:50:35 -0000 1.11
@@ -422,7 +422,7 @@
* otherwise return <code>false</code>
*/
final public boolean containsKey (final Object entryKey) {
- return (cacheImplementation.get (entryKey) != null);
+ return cacheImplementation.containsKey (entryKey);
}
/** <p>Remove the cache entry associated to the <code>entryKey</code>.
This method
@@ -462,7 +462,7 @@
}
listeners.add (listener);
- cacheImplementation.setListeners(listeners);
+ cacheImplementation.addListener(listener);
}
/**
@@ -478,7 +478,7 @@
return;
listeners.remove (listener);
- cacheImplementation.setListeners(listeners);
+ cacheImplementation.removeListener(listener);
}
public CacheImplementation getCacheImplementation() {
Index: SimpleCacheImpl.java
===================================================================
RCS file:
/home/cvs/repository/jahia/core/src/java/org/jahia/services/cache/simple/SimpleCacheImpl.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- SimpleCacheImpl.java 9 Nov 2005 13:32:57 -0000 1.3
+++ SimpleCacheImpl.java 1 Dec 2005 09:50:35 -0000 1.4
@@ -1,6 +1,7 @@
package org.jahia.services.cache.simple;
import org.jahia.services.cache.CacheImplementation;
+import org.jahia.services.cache.CacheListener;
import org.jahia.services.cache.GroupCacheKey;
import org.jahia.services.cache.CacheEntry;
import org.apache.commons.collections.FastHashMap;
@@ -27,6 +28,10 @@
this.name = name;
}
+ public boolean containsKey(Object key) {
+ return cache.containsKey(key);
+ }
+
public Object get(Object key) {
return cache.get(key);
}
@@ -96,10 +101,13 @@
return name;
}
- public void setListeners(ArrayList listeners) {
+ public void addListener(CacheListener listener) {
//To change body of implemented methods use File | Settings | File
Templates.
}
-
+ public void removeListener(CacheListener listener) {
+ //To change body of implemented methods use File | Settings | File
Templates.
+ }
+
/**
* <p>Returns the maximum size allowed for the cache.</p>
*