ovidiu      2003/01/08 21:40:24

  Modified:    src/java/org/apache/cocoon/components/flow
                        WebContinuation.java
  Log:
  Added support for expiring continuations.
  
  Revision  Changes    Path
  1.6       +36 -3     
xml-cocoon2/src/java/org/apache/cocoon/components/flow/WebContinuation.java
  
  Index: WebContinuation.java
  ===================================================================
  RCS file: 
/home/cvs/xml-cocoon2/src/java/org/apache/cocoon/components/flow/WebContinuation.java,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- WebContinuation.java      6 Dec 2002 18:20:15 -0000       1.5
  +++ WebContinuation.java      9 Jan 2003 05:40:24 -0000       1.6
  @@ -51,6 +51,8 @@
   
   import org.apache.avalon.framework.logger.AbstractLogEnabled;
   
  +import org.apache.avalon.framework.logger.AbstractLogEnabled;
  +
   /**
    * Representation of continuations in a Web environment.
    *
  @@ -225,6 +227,17 @@
     }
   
     /**
  +   * Returns the the timetolive for this 
  +   * <code>WebContinuation</code>.
  +   *
  +   * @return a <code>long</code> value
  +   */
  +  public long getTimeToLive()
  +  {
  +    return this.timeToLive;
  +  }
  +
  +  /**
      * Sets the user object associated with this instance.
      *
      * @param obj an <code>Object</code> value
  @@ -314,15 +327,23 @@
   
       tree.append("WK: WebContinuation ")
           .append(id)
  -        .append(" Last Touched [")
  -        .append(lastAccessTime)
  -        .append("]");
  +        .append(" ExpireTime [");
  +    
  +    if ((lastAccessTime + timeToLive) < System.currentTimeMillis()) {
  +      tree.append("Expired");
  +    }
  +    else {
  +      tree.append(lastAccessTime + timeToLive);
  +    }
  +
  +    tree.append("]");
   
       //REVISIT: is this needed for some reason?
       //System.out.print(spaces); System.out.println("WebContinuation " + id);
   
       int size = children.size();
       depth++;
  +
       for (int i = 0; i < size; i++) {
         tree.append(((WebContinuation)children.get(i)).display(depth));
       }
  @@ -336,5 +357,17 @@
     protected void updateLastAccessTime()
     {
       lastAccessTime = new Date().getTime();
  +  }
  +
  +  /**
  +   * Determines whether this continuation has expired 
  +   *
  +   * @return a <code>boolean</code> value
  +   */
  +  public boolean hasExpired() {
  +    long currentTime = System.currentTimeMillis();
  +    long expireTime = this.getLastAccessTime() + this.timeToLive;
  +
  +    return  (currentTime > expireTime); 
     }
   }
  
  
  

----------------------------------------------------------------------
In case of troubles, e-mail:     [EMAIL PROTECTED]
To unsubscribe, e-mail:          [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to