You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@manifoldcf.apache.org by kw...@apache.org on 2011/04/15 22:45:15 UTC

svn commit: r1092805 - in /incubator/lcf/trunk: ./ framework/core/src/main/java/org/apache/manifoldcf/core/cachemanager/ framework/core/src/main/java/org/apache/manifoldcf/core/interfaces/

Author: kwright
Date: Fri Apr 15 20:45:15 2011
New Revision: 1092805

URL: http://svn.apache.org/viewvc?rev=1092805&view=rev
Log:
Fix for CONNECTORS-181. Improve the way cache expiration works so that the model is more flexible.

Modified:
    incubator/lcf/trunk/CHANGES.txt
    incubator/lcf/trunk/framework/core/src/main/java/org/apache/manifoldcf/core/cachemanager/BaseDescription.java
    incubator/lcf/trunk/framework/core/src/main/java/org/apache/manifoldcf/core/cachemanager/CacheManager.java
    incubator/lcf/trunk/framework/core/src/main/java/org/apache/manifoldcf/core/interfaces/ICacheDescription.java

Modified: incubator/lcf/trunk/CHANGES.txt
URL: http://svn.apache.org/viewvc/incubator/lcf/trunk/CHANGES.txt?rev=1092805&r1=1092804&r2=1092805&view=diff
==============================================================================
--- incubator/lcf/trunk/CHANGES.txt (original)
+++ incubator/lcf/trunk/CHANGES.txt Fri Apr 15 20:45:15 2011
@@ -3,6 +3,11 @@ $Id$
 
 ======================= 0.3-dev =========================
 
+CONNECTORS-181: Fix the way timed expiration works to agree with
+the description, and pass in a current time parameter to make it
+work readily for continuous renewal.
+(Karl Wright)
+
 CONNECTORS-179: Add ability to throw ManifoldCFException from the
 IConnector method setThreadContext.
 (Karl Wright)

Modified: incubator/lcf/trunk/framework/core/src/main/java/org/apache/manifoldcf/core/cachemanager/BaseDescription.java
URL: http://svn.apache.org/viewvc/incubator/lcf/trunk/framework/core/src/main/java/org/apache/manifoldcf/core/cachemanager/BaseDescription.java?rev=1092805&r1=1092804&r2=1092805&view=diff
==============================================================================
--- incubator/lcf/trunk/framework/core/src/main/java/org/apache/manifoldcf/core/cachemanager/BaseDescription.java (original)
+++ incubator/lcf/trunk/framework/core/src/main/java/org/apache/manifoldcf/core/cachemanager/BaseDescription.java Fri Apr 15 20:45:15 2011
@@ -56,7 +56,7 @@ public abstract class BaseDescription im
   * @return a time in milliseconds for the object to expire, or -1 if there is no expiration
   * desired.
   */
-  public long getObjectExpirationTime()
+  public long getObjectExpirationTime(long currentTime)
   {
     return -1;
   }

Modified: incubator/lcf/trunk/framework/core/src/main/java/org/apache/manifoldcf/core/cachemanager/CacheManager.java
URL: http://svn.apache.org/viewvc/incubator/lcf/trunk/framework/core/src/main/java/org/apache/manifoldcf/core/cachemanager/CacheManager.java?rev=1092805&r1=1092804&r2=1092805&view=diff
==============================================================================
--- incubator/lcf/trunk/framework/core/src/main/java/org/apache/manifoldcf/core/cachemanager/CacheManager.java (original)
+++ incubator/lcf/trunk/framework/core/src/main/java/org/apache/manifoldcf/core/cachemanager/CacheManager.java Fri Apr 15 20:45:15 2011
@@ -487,9 +487,7 @@ public class CacheManager implements ICa
   {
 
     // Update the expiration time for this object.
-    long expireInterval = objectDescription.getObjectExpirationTime();
-    if (expireInterval >= 0)
-      expireInterval += currentTime;
+    long expireInterval = objectDescription.getObjectExpirationTime(currentTime);
     cache.setObjectExpiration(objectDescription,expireInterval);
 
     // Update LRU and max counts.  This also flushes the cache to meet the criteria.

Modified: incubator/lcf/trunk/framework/core/src/main/java/org/apache/manifoldcf/core/interfaces/ICacheDescription.java
URL: http://svn.apache.org/viewvc/incubator/lcf/trunk/framework/core/src/main/java/org/apache/manifoldcf/core/interfaces/ICacheDescription.java?rev=1092805&r1=1092804&r2=1092805&view=diff
==============================================================================
--- incubator/lcf/trunk/framework/core/src/main/java/org/apache/manifoldcf/core/interfaces/ICacheDescription.java (original)
+++ incubator/lcf/trunk/framework/core/src/main/java/org/apache/manifoldcf/core/interfaces/ICacheDescription.java Fri Apr 15 20:45:15 2011
@@ -54,11 +54,12 @@ public interface ICacheDescription
   public ICacheClass getObjectClass();
 
   /** Obtain an expiration time for an object, in milliseconds since epoch.
-  * The cache manager will call this method for all objects that are being operated on,
-  * so that their expiration timestamps get properly updated to a new time.
+  * The cache manager will call this method whenever the object is being looked up,
+  * so that its expiration timestamps can be properly updated to a new time.
+  * @param currentTime is the time of the lookup, in milliseconds since epoch.
   * @return a time in milliseconds since epoch for the object to expire, or -1 if there is no expiration
   * desired.
   */
-  public long getObjectExpirationTime();
+  public long getObjectExpirationTime(long currentTime);
 
 }