You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@cocoon.apache.org by ar...@apache.org on 2005/11/11 18:18:09 UTC

svn commit: r332608 - /cocoon/trunk/src/java/org/apache/cocoon/components/store/impl/EHDefaultStore.java

Author: arje
Date: Fri Nov 11 09:17:23 2005
New Revision: 332608

URL: http://svn.apache.org/viewcvs?rev=332608&view=rev
Log:
Applied patch for issue 1683: Allow configuration of expiry in EHDefaultStore
http://issues.apache.org/jira/browse/COCOON-1683
+ Changed the copyright notice to "2004, 2005"
Please let me know if I did it wrong 8-%

Modified:
    cocoon/trunk/src/java/org/apache/cocoon/components/store/impl/EHDefaultStore.java

Modified: cocoon/trunk/src/java/org/apache/cocoon/components/store/impl/EHDefaultStore.java
URL: http://svn.apache.org/viewcvs/cocoon/trunk/src/java/org/apache/cocoon/components/store/impl/EHDefaultStore.java?rev=332608&r1=332607&r2=332608&view=diff
==============================================================================
--- cocoon/trunk/src/java/org/apache/cocoon/components/store/impl/EHDefaultStore.java (original)
+++ cocoon/trunk/src/java/org/apache/cocoon/components/store/impl/EHDefaultStore.java Fri Nov 11 09:17:23 2005
@@ -1,5 +1,5 @@
 /*
- * Copyright 2004,2004 The Apache Software Foundation.
+ * Copyright 2004, 2005 The Apache Software Foundation.
  * 
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -70,6 +70,9 @@
     // configuration options
     private int maxObjects;
     private boolean overflowToDisk;
+    private boolean eternal;
+    private long timeToLiveSeconds;
+    private long timeToIdleSeconds;
 
     /** The service manager */
     private ServiceManager manager;
@@ -109,6 +112,15 @@
      *  <li><code>maxobjects</code> (10000) - The maximum number of in-memory objects.</li>
      *  <li><code>overflow-to-disk</code> (true) - Whether to spool elements to disk after
      *   maxobjects has been exceeded.</li>
+     * <li><code>eternal</code> (true) - whether or not entries expire. When set to
+     * <code>false</code> the <code>timeToLiveSeconds</code> and
+     * <code>timeToIdleSeconds</code> parameters are used to determine when an
+     * item expires.</li>
+     * <li><code>timeToLiveSeconds</code> (0) - how long an entry may live in the cache
+     * before it is removed. The entry will be removed no matter how frequently it is retrieved.</li>
+     * <li><code>timeToIdleSeconds</code> (0) - the maximum time between retrievals
+     * of an entry. If the entry is not retrieved for this period, it is removed from the
+     * cache.</li>
      *  <li><code>use-cache-directory</code> (false) - If true the <i>cache-directory</i>
      *   context entry will be used as the location of the disk store. 
      *   Within the servlet environment this is set in web.xml.</li>
@@ -117,11 +129,50 @@
      *   Within the servlet environment this is set in web.xml.</li>
      *  <li><code>directory</code> - Specify an alternative location of the disk store.
      * </ul>
+     * 
+     * <p>
+     * Setting <code>eternal</code> to <code>false</code> but not setting
+     * <code>timeToLiveSeconds</code> and/or <code>timeToIdleSeconds</code>, has the
+     * same effect as setting <code>eternal</code> to <code>true</code>.
+     * </p>
+     * 
+     * <p>
+     * Here is an example to clarify the purpose of the <code>timeToLiveSeconds</code> and
+     * <code>timeToIdleSeconds</code> parameters:
+     * </p>
+     * <ul>
+     *   <li>timeToLiveSeconds = 86400 (1 day)</li>
+     *   <li>timeToIdleSeconds = 10800 (3 hours)</li>
+     * </ul>
+     * 
+     * <p>
+     * With these settings the entry will be removed from the cache after 24 hours. If within
+     * that 24-hour period the entry is not retrieved within 3 hours after the last retrieval, it will
+     * also be removed from the cache.
+     * </p>
+     * 
+     * <p>
+     * By setting <code>timeToLiveSeconds</code> to <code>0</code>, an item can stay in
+     * the cache as long as it is retrieved within <code>timeToIdleSeconds</code> after the
+     * last retrieval.
+     * </p>
+     * 
+     * <p>
+     * By setting <code>timeToIdleSeconds</code> to <code>0</code>, an item will stay in
+     * the cache for exactly <code>timeToLiveSeconds</code>.
+     * </p>
      */
     public void parameterize(Parameters parameters) throws ParameterException {
 
         this.maxObjects = parameters.getParameterAsInteger("maxobjects", 10000);
         this.overflowToDisk = parameters.getParameterAsBoolean("overflow-to-disk", true);
+        
+        this.eternal = parameters.getParameterAsBoolean("eternal", true);
+        if (!this.eternal)
+        {
+            this.timeToLiveSeconds = parameters.getParameterAsLong("timeToLiveSeconds", 0L);
+            this.timeToIdleSeconds = parameters.getParameterAsLong("timeToIdleSeconds", 0L);
+        }
 
         try {
             if (parameters.getParameterAsBoolean("use-cache-directory", false)) {
@@ -211,7 +262,8 @@
     public void initialize() throws Exception {
         URL configFileURL = Thread.currentThread().getContextClassLoader().getResource(CONFIG_FILE);
         this.cacheManager = CacheManager.create(configFileURL);
-        this.cache = new Cache(this.cacheName, this.maxObjects, this.overflowToDisk, true, 0, 0, true, 120);
+        this.cache = new Cache(this.cacheName, this.maxObjects, this.overflowToDisk, this.eternal,
+                this.timeToLiveSeconds, this.timeToIdleSeconds, true, 120);
         this.cacheManager.addCache(this.cache);
         this.storeJanitor.register(this);
     }



Re: svn commit: r332608 - /cocoon/trunk/src/java/org/apache/cocoon/components/store/impl/EHDefaultStore.java

Posted by Antonio Gallardo <ag...@agssa.net>.
David Crossley wrote:

>Antonio Gallardo wrote:
>  
>
>>>Author: arje
>>>Date: Fri Nov 11 09:17:23 2005
>>>New Revision: 332608
>>>
>>>URL: http://svn.apache.org/viewcvs?rev=332608&view=rev
>>>Log:
>>>Applied patch for issue 1683: Allow configuration of expiry in 
>>>EHDefaultStore
>>>http://issues.apache.org/jira/browse/COCOON-1683
>>>+ Changed the copyright notice to "2004, 2005"
>>>Please let me know if I did it wrong 8-%
>>>
>>>      
>>>
>>Do you doing very well! :-)
>>
>>2 small points:
>>
>>A. Use 2004-2005 instead
>>B. Patch also 2.1.8. ;-)
>>    
>>
>
>Mentioning the issue number is great: COCOON-1683
>That lets Jira create links to SVN commit logs.
>
>You should also mention
>Contributed by: Johan Stuyts
>
>The other way that we give recognition is to add
>an entry to the status.xml files in trunk and branch.
>See the fix-for and due-to attributes. This generates
>the Changes notes.
>  
>
Yep. As a sample to see the auto SVN integration:

http://issues.apache.org/jira/browse/COCOON-1365?page=all

Best Regards,

Antonio Gallardo.


Re: svn commit: r332608 - /cocoon/trunk/src/java/org/apache/cocoon/components/store/impl/EHDefaultStore.java

Posted by David Crossley <cr...@apache.org>.
Antonio Gallardo wrote:
> >Author: arje
> >Date: Fri Nov 11 09:17:23 2005
> >New Revision: 332608
> >
> >URL: http://svn.apache.org/viewcvs?rev=332608&view=rev
> >Log:
> >Applied patch for issue 1683: Allow configuration of expiry in 
> >EHDefaultStore
> >http://issues.apache.org/jira/browse/COCOON-1683
> >+ Changed the copyright notice to "2004, 2005"
> >Please let me know if I did it wrong 8-%
> > 
> Do you doing very well! :-)
> 
> 2 small points:
> 
> A. Use 2004-2005 instead
> B. Patch also 2.1.8. ;-)

Mentioning the issue number is great: COCOON-1683
That lets Jira create links to SVN commit logs.

You should also mention
Contributed by: Johan Stuyts

The other way that we give recognition is to add
an entry to the status.xml files in trunk and branch.
See the fix-for and due-to attributes. This generates
the Changes notes.

-David

Re: svn commit: r332608 - /cocoon/trunk/src/java/org/apache/cocoon/components/store/impl/EHDefaultStore.java

Posted by Antonio Gallardo <ag...@agssa.net>.
arje@apache.org wrote:

>Author: arje
>Date: Fri Nov 11 09:17:23 2005
>New Revision: 332608
>
>URL: http://svn.apache.org/viewcvs?rev=332608&view=rev
>Log:
>Applied patch for issue 1683: Allow configuration of expiry in EHDefaultStore
>http://issues.apache.org/jira/browse/COCOON-1683
>+ Changed the copyright notice to "2004, 2005"
>Please let me know if I did it wrong 8-%
>  
>
Do you doing very well! :-)

2 small points:

A. Use 2004-2005 instead
B. Patch also 2.1.8. ;-)

Best Regards,

Antonio Gallardo.

>Modified:
>    cocoon/trunk/src/java/org/apache/cocoon/components/store/impl/EHDefaultStore.java
>
>Modified: cocoon/trunk/src/java/org/apache/cocoon/components/store/impl/EHDefaultStore.java
>URL: http://svn.apache.org/viewcvs/cocoon/trunk/src/java/org/apache/cocoon/components/store/impl/EHDefaultStore.java?rev=332608&r1=332607&r2=332608&view=diff
>==============================================================================
>--- cocoon/trunk/src/java/org/apache/cocoon/components/store/impl/EHDefaultStore.java (original)
>+++ cocoon/trunk/src/java/org/apache/cocoon/components/store/impl/EHDefaultStore.java Fri Nov 11 09:17:23 2005
>@@ -1,5 +1,5 @@
> /*
>- * Copyright 2004,2004 The Apache Software Foundation.
>+ * Copyright 2004, 2005 The Apache Software Foundation.
>  * 
>  * Licensed under the Apache License, Version 2.0 (the "License");
>  * you may not use this file except in compliance with the License.
>@@ -70,6 +70,9 @@
>     // configuration options
>     private int maxObjects;
>     private boolean overflowToDisk;
>+    private boolean eternal;
>+    private long timeToLiveSeconds;
>+    private long timeToIdleSeconds;
> 
>     /** The service manager */
>     private ServiceManager manager;
>@@ -109,6 +112,15 @@
>      *  <li><code>maxobjects</code> (10000) - The maximum number of in-memory objects.</li>
>      *  <li><code>overflow-to-disk</code> (true) - Whether to spool elements to disk after
>      *   maxobjects has been exceeded.</li>
>+     * <li><code>eternal</code> (true) - whether or not entries expire. When set to
>+     * <code>false</code> the <code>timeToLiveSeconds</code> and
>+     * <code>timeToIdleSeconds</code> parameters are used to determine when an
>+     * item expires.</li>
>+     * <li><code>timeToLiveSeconds</code> (0) - how long an entry may live in the cache
>+     * before it is removed. The entry will be removed no matter how frequently it is retrieved.</li>
>+     * <li><code>timeToIdleSeconds</code> (0) - the maximum time between retrievals
>+     * of an entry. If the entry is not retrieved for this period, it is removed from the
>+     * cache.</li>
>      *  <li><code>use-cache-directory</code> (false) - If true the <i>cache-directory</i>
>      *   context entry will be used as the location of the disk store. 
>      *   Within the servlet environment this is set in web.xml.</li>
>@@ -117,11 +129,50 @@
>      *   Within the servlet environment this is set in web.xml.</li>
>      *  <li><code>directory</code> - Specify an alternative location of the disk store.
>      * </ul>
>+     * 
>+     * <p>
>+     * Setting <code>eternal</code> to <code>false</code> but not setting
>+     * <code>timeToLiveSeconds</code> and/or <code>timeToIdleSeconds</code>, has the
>+     * same effect as setting <code>eternal</code> to <code>true</code>.
>+     * </p>
>+     * 
>+     * <p>
>+     * Here is an example to clarify the purpose of the <code>timeToLiveSeconds</code> and
>+     * <code>timeToIdleSeconds</code> parameters:
>+     * </p>
>+     * <ul>
>+     *   <li>timeToLiveSeconds = 86400 (1 day)</li>
>+     *   <li>timeToIdleSeconds = 10800 (3 hours)</li>
>+     * </ul>
>+     * 
>+     * <p>
>+     * With these settings the entry will be removed from the cache after 24 hours. If within
>+     * that 24-hour period the entry is not retrieved within 3 hours after the last retrieval, it will
>+     * also be removed from the cache.
>+     * </p>
>+     * 
>+     * <p>
>+     * By setting <code>timeToLiveSeconds</code> to <code>0</code>, an item can stay in
>+     * the cache as long as it is retrieved within <code>timeToIdleSeconds</code> after the
>+     * last retrieval.
>+     * </p>
>+     * 
>+     * <p>
>+     * By setting <code>timeToIdleSeconds</code> to <code>0</code>, an item will stay in
>+     * the cache for exactly <code>timeToLiveSeconds</code>.
>+     * </p>
>      */
>     public void parameterize(Parameters parameters) throws ParameterException {
> 
>         this.maxObjects = parameters.getParameterAsInteger("maxobjects", 10000);
>         this.overflowToDisk = parameters.getParameterAsBoolean("overflow-to-disk", true);
>+        
>+        this.eternal = parameters.getParameterAsBoolean("eternal", true);
>+        if (!this.eternal)
>+        {
>+            this.timeToLiveSeconds = parameters.getParameterAsLong("timeToLiveSeconds", 0L);
>+            this.timeToIdleSeconds = parameters.getParameterAsLong("timeToIdleSeconds", 0L);
>+        }
> 
>         try {
>             if (parameters.getParameterAsBoolean("use-cache-directory", false)) {
>@@ -211,7 +262,8 @@
>     public void initialize() throws Exception {
>         URL configFileURL = Thread.currentThread().getContextClassLoader().getResource(CONFIG_FILE);
>         this.cacheManager = CacheManager.create(configFileURL);
>-        this.cache = new Cache(this.cacheName, this.maxObjects, this.overflowToDisk, true, 0, 0, true, 120);
>+        this.cache = new Cache(this.cacheName, this.maxObjects, this.overflowToDisk, this.eternal,
>+                this.timeToLiveSeconds, this.timeToIdleSeconds, true, 120);
>         this.cacheManager.addCache(this.cache);
>         this.storeJanitor.register(this);
>     }
>
>  
>