This is an automated email from the ASF dual-hosted git repository.

tv pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/commons-jcs.git

commit 13e8707aed689b9348937aea00c5637428d8f93a
Author: Thomas Vandahl <[email protected]>
AuthorDate: Wed Mar 18 16:20:40 2026 +0100

    Change type of CompositeCacheAttributes.MaxMemoryIdleTime to Duration
---
 .../jcs4/engine/CompositeCacheAttributes.java      | 13 +++---
 .../engine/behavior/ICompositeCacheAttributes.java |  4 +-
 .../engine/memory/shrinking/ShrinkerThread.java    | 47 +++++++++-------------
 commons-jcs4-core/src/test/conf/cache.ccf          |  2 +-
 commons-jcs4-core/src/test/conf/remote.cache.ccf   |  2 +-
 .../commons/jcs4/access/CacheAccessUnitTest.java   | 13 +++---
 .../jcs4/engine/TestCompositeCacheAttributes.java  | 24 ++++++-----
 .../memory/shrinking/ShrinkerThreadUnitTest.java   | 36 ++++++++++-------
 .../src/test/test-conf/TestHSQLDiskCache.ccf       |  2 +-
 .../test/test-conf/TestHSQLDiskCacheConcurrent.ccf |  2 +-
 .../src/test/test-conf/TestJCS-73.ccf              |  2 +-
 .../src/test/test-conf/TestJDBCDiskCache.ccf       |  2 +-
 .../test/test-conf/TestJDBCDiskCacheRemoval.ccf    |  2 +-
 .../test/test-conf/TestJDBCDiskCacheSharedPool.ccf |  2 +-
 .../src/test/test-conf/TestJDBCDiskCacheShrink.ccf |  2 +-
 .../src/test/test-conf/TestMRUCache.ccf            |  2 +-
 .../src/test/test-conf/TestMySQLDiskCache.ccf      |  2 +-
 .../src/test/test-conf/TestRemoteClient.ccf        |  2 +-
 .../src/test/test-conf/TestRemoteHttpCache.ccf     |  2 +-
 .../src/test/test-conf/TestRemoteServer.ccf        |  2 +-
 .../src/test/test-conf/TestSoftReferenceCache.ccf  |  2 +-
 .../src/test/test-conf/TestZeroSizeCache.ccf       |  2 +-
 .../commons/jcs4/jcache/JCSCachingManager.java     |  2 +-
 src/site/xdoc/BasicJCSConfiguration.xml            |  6 +--
 src/site/xdoc/ElementAttributes.xml                |  2 +-
 src/site/xdoc/IndexedDiskAuxCache.xml              |  2 +-
 src/site/xdoc/JDBCDiskCache.xml                    |  6 +--
 src/site/xdoc/RegionProperties.xml                 | 12 +++---
 src/site/xdoc/UpgradingFrom3x.xml                  | 10 +++++
 src/site/xdoc/getting_started/intro.xml            |  4 +-
 30 files changed, 113 insertions(+), 100 deletions(-)

diff --git 
a/commons-jcs4-core/src/main/java/org/apache/commons/jcs4/engine/CompositeCacheAttributes.java
 
b/commons-jcs4-core/src/main/java/org/apache/commons/jcs4/engine/CompositeCacheAttributes.java
index c4355cdf..2352a0af 100644
--- 
a/commons-jcs4-core/src/main/java/org/apache/commons/jcs4/engine/CompositeCacheAttributes.java
+++ 
b/commons-jcs4-core/src/main/java/org/apache/commons/jcs4/engine/CompositeCacheAttributes.java
@@ -22,6 +22,7 @@ package org.apache.commons.jcs4.engine;
 import java.time.Duration;
 
 import org.apache.commons.jcs4.engine.behavior.ICompositeCacheAttributes;
+import org.apache.commons.jcs4.engine.memory.lru.LRUMemoryCache;
 
 /**
  * The CompositeCacheAttributes defines the general cache region settings. If 
a region is not
@@ -46,8 +47,8 @@ public record CompositeCacheAttributes(
         /** The maximum number the shrinker will spool to disk per run. */
         int MaxSpoolPerRun,
 
-        /** MaxMemoryIdleTimeSeconds */
-        long MaxMemoryIdleTimeSeconds,
+        /** MaxMemoryIdleTime */
+        Duration MaxMemoryIdleTime,
 
         /** The name of the memory cache implementation class. */
         String MemoryCacheName,
@@ -75,10 +76,10 @@ public record CompositeCacheAttributes(
     private static final int DEFAULT_MAX_SPOOL_PER_RUN = -1;
 
     /** Default */
-    private static final int DEFAULT_MAX_MEMORY_IDLE_TIME_SECONDS = 60 * 120;
+    private static final Duration DEFAULT_MAX_MEMORY_IDLE_TIME = 
Duration.ofHours(2);
 
     /** Default */
-    private static final String DEFAULT_MEMORY_CACHE_NAME = 
"org.apache.commons.jcs4.engine.memory.lru.LRUMemoryCache";
+    private static final String DEFAULT_MEMORY_CACHE_NAME = 
LRUMemoryCache.class.getName();
 
     /** Default number to send to disk at a time when memory fills. */
     private static final int DEFAULT_CHUNK_SIZE = 2;
@@ -90,7 +91,7 @@ public record CompositeCacheAttributes(
             DEFAULT_USE_SHRINKER,
             DEFAULT_SHRINKER_INTERVAL,
             DEFAULT_MAX_SPOOL_PER_RUN,
-            DEFAULT_MAX_MEMORY_IDLE_TIME_SECONDS,
+            DEFAULT_MAX_MEMORY_IDLE_TIME,
             DEFAULT_MEMORY_CACHE_NAME,
             DiskUsagePatternEnum.SWAP,
             DEFAULT_CHUNK_SIZE
@@ -117,7 +118,7 @@ public record CompositeCacheAttributes(
                 UseMemoryShrinker(),
                 ShrinkerInterval(),
                 MaxSpoolPerRun(),
-                MaxMemoryIdleTimeSeconds(),
+                MaxMemoryIdleTime(),
                 MemoryCacheName(),
                 DiskUsagePattern(),
                 SpoolChunkSize());
diff --git 
a/commons-jcs4-core/src/main/java/org/apache/commons/jcs4/engine/behavior/ICompositeCacheAttributes.java
 
b/commons-jcs4-core/src/main/java/org/apache/commons/jcs4/engine/behavior/ICompositeCacheAttributes.java
index abc912f1..80114dde 100644
--- 
a/commons-jcs4-core/src/main/java/org/apache/commons/jcs4/engine/behavior/ICompositeCacheAttributes.java
+++ 
b/commons-jcs4-core/src/main/java/org/apache/commons/jcs4/engine/behavior/ICompositeCacheAttributes.java
@@ -56,9 +56,9 @@ public interface ICompositeCacheAttributes
      * If UseMemoryShrinker is true the memory cache should auto-expire 
elements
      * to reclaim space.
      *
-     * @return The MaxMemoryIdleTimeSeconds value
+     * @return The MaxMemoryIdleTime value
      */
-    long MaxMemoryIdleTimeSeconds();
+    Duration MaxMemoryIdleTime();
 
     /**
      * Gets the maxObjects attribute of the ICompositeCacheAttributes object
diff --git 
a/commons-jcs4-core/src/main/java/org/apache/commons/jcs4/engine/memory/shrinking/ShrinkerThread.java
 
b/commons-jcs4-core/src/main/java/org/apache/commons/jcs4/engine/memory/shrinking/ShrinkerThread.java
index d946f406..e895c479 100644
--- 
a/commons-jcs4-core/src/main/java/org/apache/commons/jcs4/engine/memory/shrinking/ShrinkerThread.java
+++ 
b/commons-jcs4-core/src/main/java/org/apache/commons/jcs4/engine/memory/shrinking/ShrinkerThread.java
@@ -19,6 +19,8 @@ package org.apache.commons.jcs4.engine.memory.shrinking;
  * under the License.
  */
 
+import java.time.Duration;
+import java.time.Instant;
 import java.util.Set;
 
 import org.apache.commons.jcs4.engine.behavior.ICacheElement;
@@ -42,7 +44,7 @@ public class ShrinkerThread<K, V>
     private final CompositeCache<K, V> cache;
 
     /** Maximum memory idle time for the whole cache */
-    private final long maxMemoryIdleTime;
+    private final Duration maxMemoryIdleTime;
 
     /** Maximum number of items to spool per run. Default is -1, or no limit. 
*/
     private final int maxSpoolPerRun;
@@ -58,24 +60,12 @@ public class ShrinkerThread<K, V>
     public ShrinkerThread( final CompositeCache<K, V> cache )
     {
         this.cache = cache;
-
-        final long maxMemoryIdleTimeSeconds = 
cache.getCacheAttributes().MaxMemoryIdleTimeSeconds();
-
-        if ( maxMemoryIdleTimeSeconds < 0 )
-        {
-            this.maxMemoryIdleTime = -1;
-        }
-        else
-        {
-            this.maxMemoryIdleTime = maxMemoryIdleTimeSeconds * 1000;
-        }
-
+        this.maxMemoryIdleTime = 
cache.getCacheAttributes().MaxMemoryIdleTime();
         this.maxSpoolPerRun = cache.getCacheAttributes().MaxSpoolPerRun();
         if ( this.maxSpoolPerRun != -1 )
         {
             this.spoolLimit = true;
         }
-
     }
 
     /**
@@ -93,11 +83,12 @@ public class ShrinkerThread<K, V>
      * without affecting the last access or position of the item. The item is 
checked for
      * expiration, the expiration check has 3 parts:
      * <ol>
-     * <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 attributes? If so, remove it. If there are event listeners 
registered for the
-     * cache element, they will be called.</li>
+     * <li>Has the cacheattributes.MaxMemoryIdleTime 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 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
      *       access via the Cache.
@@ -126,16 +117,15 @@ public class ShrinkerThread<K, V>
                 }
 
                 final IElementAttributes attributes = 
cacheElement.elementAttributes();
+                final Instant now = Instant.now();
 
                 boolean remove = false;
 
-                final long now = System.currentTimeMillis();
-
                 // If the element is not eternal, check if it should be
                 // removed and remove it if so.
                 if ( !attributes.IsEternal() )
                 {
-                    remove = cache.isExpired( cacheElement, now,
+                    remove = cache.isExpired( cacheElement, now.toEpochMilli(),
                             ElementEventType.EXCEEDED_MAXLIFE_BACKGROUND,
                             ElementEventType.EXCEEDED_IDLETIME_BACKGROUND );
 
@@ -148,24 +138,25 @@ public class ShrinkerThread<K, V>
                 // If the item is not removed, check is it has been idle
                 // long enough to be spooled.
 
-                if ( !remove && maxMemoryIdleTime != -1 )
+                if (!remove && !maxMemoryIdleTime.isNegative())
                 {
-                    if ( !spoolLimit || spoolCount < this.maxSpoolPerRun )
+                    if (!spoolLimit || spoolCount < this.maxSpoolPerRun)
                     {
-                        final long lastAccessTime = 
attributes.lastAccessTime();
+                        final Instant idleExpiryTime = Instant
+                                .ofEpochMilli(attributes.lastAccessTime())
+                                .plus(maxMemoryIdleTime);
 
-                        if ( lastAccessTime + maxMemoryIdleTime < now )
+                        if (idleExpiryTime.isBefore(now))
                         {
                             log.debug( "Exceeded memory idle time: {0}", key );
 
                             // Shouldn't we ensure that the element is
                             // spooled before removing it from memory?
-                            // No the disk caches have a purgatory. If it fails
+                            // Now the disk caches have a purgatory. If it 
fails
                             // to spool that does not affect the
                             // responsibilities of the memory cache.
 
                             spoolCount++;
-
                             memCache.remove( key );
                             memCache.waterfall( cacheElement );
                         }
diff --git a/commons-jcs4-core/src/test/conf/cache.ccf 
b/commons-jcs4-core/src/test/conf/cache.ccf
index 2250506d..db7bf102 100644
--- a/commons-jcs4-core/src/test/conf/cache.ccf
+++ b/commons-jcs4-core/src/test/conf/cache.ccf
@@ -20,7 +20,7 @@
 jcs.default=DC
 jcs.default.cacheattributes.MaxObjects=200001
 jcs.default.cacheattributes.UseMemoryShrinker=true
-jcs.default.cacheattributes.MaxMemoryIdleTimeSeconds=3600
+jcs.default.cacheattributes.MaxMemoryIdleTime=PT1h
 jcs.default.cacheattributes.ShrinkerInterval=PT1m
 jcs.default.elementattributes.IsEternal=false
 jcs.default.elementattributes.MaxLife=700
diff --git a/commons-jcs4-core/src/test/conf/remote.cache.ccf 
b/commons-jcs4-core/src/test/conf/remote.cache.ccf
index 65c0e413..cd10bde6 100644
--- a/commons-jcs4-core/src/test/conf/remote.cache.ccf
+++ b/commons-jcs4-core/src/test/conf/remote.cache.ccf
@@ -30,7 +30,7 @@ jcs.remotecache.serverattributes.LocalClusterConsistency=true
 jcs.default=DC,RCluster
 jcs.default.cacheattributes.MaxObjects=200000
 jcs.default.cacheattributes.UseMemoryShrinker=true
-jcs.default.cacheattributes.MaxMemoryIdleTimeSeconds=3600
+jcs.default.cacheattributes.MaxMemoryIdleTime=PT1h
 jcs.default.cacheattributes.ShrinkerInterval=PT1m
 jcs.default.elementattributes.IsEternal=false
 jcs.default.elementattributes.MaxLife=7000
diff --git 
a/commons-jcs4-core/src/test/java/org/apache/commons/jcs4/access/CacheAccessUnitTest.java
 
b/commons-jcs4-core/src/test/java/org/apache/commons/jcs4/access/CacheAccessUnitTest.java
index 85b3abb4..8539e6fb 100644
--- 
a/commons-jcs4-core/src/test/java/org/apache/commons/jcs4/access/CacheAccessUnitTest.java
+++ 
b/commons-jcs4-core/src/test/java/org/apache/commons/jcs4/access/CacheAccessUnitTest.java
@@ -27,6 +27,7 @@ import static org.junit.jupiter.api.Assertions.assertNull;
 import static org.junit.jupiter.api.Assertions.assertTrue;
 import static org.junit.jupiter.api.Assertions.fail;
 
+import java.time.Duration;
 import java.util.HashSet;
 import java.util.Map;
 import java.util.Set;
@@ -306,15 +307,15 @@ class CacheAccessUnitTest
     void testRegionDefinitonWithAttributes()
         throws Exception
     {
-        final long maxIdleTime = 8765;
+        final Duration maxIdleTime = Duration.ofSeconds(8765);
         final CompositeCacheAttributes ca = TestCompositeCacheAttributes
-                .withMaxMemoryIdleTimeSeconds(maxIdleTime);
+                .withMaxMemoryIdleTime(maxIdleTime);
 
         final CacheAccess<String, String> access = JCS.getInstance( 
"testRegionDefinitonWithAttributes", ca );
         assertNotNull( access, "We should have an access class" );
 
         final ICompositeCacheAttributes ca2 = access.getCacheAttributes();
-        assertEquals( ca.MaxMemoryIdleTimeSeconds(), 
ca2.MaxMemoryIdleTimeSeconds(), "Wrong idle time setting." );
+        assertEquals( ca.MaxMemoryIdleTime(), ca2.MaxMemoryIdleTime(), "Wrong 
idle time setting." );
     }
 
     /**
@@ -326,9 +327,9 @@ class CacheAccessUnitTest
     void testRegionDefinitonWithBothAttributes()
         throws Exception
     {
-        final long maxIdleTime = 8765;
+        final Duration maxIdleTime = Duration.ofSeconds(8765);
         final CompositeCacheAttributes ca = TestCompositeCacheAttributes
-                .withMaxMemoryIdleTimeSeconds(maxIdleTime);
+                .withMaxMemoryIdleTime(maxIdleTime);
 
         final long maxLife = 9876;
         final ElementAttributes attr = 
TestElementAttributes.withEternalFalseAndMaxLife(maxLife);
@@ -337,7 +338,7 @@ class CacheAccessUnitTest
         assertNotNull( access, "We should have an access class" );
 
         final ICompositeCacheAttributes ca2 = access.getCacheAttributes();
-        assertEquals( ca.MaxMemoryIdleTimeSeconds(), 
ca2.MaxMemoryIdleTimeSeconds(), "Wrong idle time setting." );
+        assertEquals( ca.MaxMemoryIdleTime(), ca2.MaxMemoryIdleTime(), "Wrong 
idle time setting." );
     }
 
     /**
diff --git 
a/commons-jcs4-core/src/test/java/org/apache/commons/jcs4/engine/TestCompositeCacheAttributes.java
 
b/commons-jcs4-core/src/test/java/org/apache/commons/jcs4/engine/TestCompositeCacheAttributes.java
index 0771c477..1817172d 100644
--- 
a/commons-jcs4-core/src/test/java/org/apache/commons/jcs4/engine/TestCompositeCacheAttributes.java
+++ 
b/commons-jcs4-core/src/test/java/org/apache/commons/jcs4/engine/TestCompositeCacheAttributes.java
@@ -1,5 +1,7 @@
 package org.apache.commons.jcs4.engine;
 
+import java.time.Duration;
+
 /*
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
@@ -43,7 +45,7 @@ public class TestCompositeCacheAttributes
                 CompositeCacheAttributes.defaults().UseMemoryShrinker(),
                 CompositeCacheAttributes.defaults().ShrinkerInterval(),
                 CompositeCacheAttributes.defaults().MaxSpoolPerRun(),
-                CompositeCacheAttributes.defaults().MaxMemoryIdleTimeSeconds(),
+                CompositeCacheAttributes.defaults().MaxMemoryIdleTime(),
                 memoryCacheName,
                 CompositeCacheAttributes.defaults().DiskUsagePattern(),
                 CompositeCacheAttributes.defaults().SpoolChunkSize());
@@ -53,18 +55,18 @@ public class TestCompositeCacheAttributes
      * Get a CompositeCacheAttributes object suitable for tests
      *
      * @param memoryCacheName the new memoryCacheName value
-     * @param maxMemoryIdleTimeSeconds the new maxMemoryIdleTimeSeconds value
+     * @param maxMemoryIdleTime the new maxMemoryIdleTime value
      * @param maxSpoolPerRun the new maxSpoolPerRun value
      */
-    public static CompositeCacheAttributes 
withMemoryCacheNameMaxMemoryIdleTimeSecondsAndMaxSpoolPerRun(
-            String memoryCacheName, long maxMemoryIdleTimeSeconds, int 
maxSpoolPerRun)
+    public static CompositeCacheAttributes 
withMemoryCacheNameMaxMemoryIdleTimeAndMaxSpoolPerRun(
+            String memoryCacheName, Duration maxMemoryIdleTime, int 
maxSpoolPerRun)
     {
         return new 
CompositeCacheAttributes(CompositeCacheAttributes.defaults().cacheName(),
                 CompositeCacheAttributes.defaults().MaxObjects(),
                 CompositeCacheAttributes.defaults().UseMemoryShrinker(),
                 CompositeCacheAttributes.defaults().ShrinkerInterval(),
                 maxSpoolPerRun,
-                maxMemoryIdleTimeSeconds,
+                maxMemoryIdleTime,
                 memoryCacheName,
                 CompositeCacheAttributes.defaults().DiskUsagePattern(),
                 CompositeCacheAttributes.defaults().SpoolChunkSize());
@@ -83,25 +85,25 @@ public class TestCompositeCacheAttributes
                 CompositeCacheAttributes.defaults().UseMemoryShrinker(),
                 CompositeCacheAttributes.defaults().ShrinkerInterval(),
                 CompositeCacheAttributes.defaults().MaxSpoolPerRun(),
-                CompositeCacheAttributes.defaults().MaxMemoryIdleTimeSeconds(),
+                CompositeCacheAttributes.defaults().MaxMemoryIdleTime(),
                 CompositeCacheAttributes.defaults().MemoryCacheName(),
                 CompositeCacheAttributes.defaults().DiskUsagePattern(),
                 spoolChunkSize);
     }
 
     /**
-     * Sets the maximum memory idle-time in seconds of the cache.
+     * Sets the maximum memory idle-time of the cache.
      *
-     * @param maxMemoryIdleTimeSeconds the new maxMemoryIdleTimeSeconds value
+     * @param maxMemoryIdleTime the new maxMemoryIdleTime value
      */
-    public static CompositeCacheAttributes withMaxMemoryIdleTimeSeconds(long 
maxMemoryIdleTimeSeconds)
+    public static CompositeCacheAttributes withMaxMemoryIdleTime(Duration 
maxMemoryIdleTime)
     {
         return new 
CompositeCacheAttributes(CompositeCacheAttributes.defaults().cacheName(),
                 CompositeCacheAttributes.defaults().MaxObjects(),
                 CompositeCacheAttributes.defaults().UseMemoryShrinker(),
                 CompositeCacheAttributes.defaults().ShrinkerInterval(),
                 CompositeCacheAttributes.defaults().MaxSpoolPerRun(),
-                maxMemoryIdleTimeSeconds,
+                maxMemoryIdleTime,
                 CompositeCacheAttributes.defaults().MemoryCacheName(),
                 CompositeCacheAttributes.defaults().DiskUsagePattern(),
                 CompositeCacheAttributes.defaults().SpoolChunkSize());
@@ -119,7 +121,7 @@ public class TestCompositeCacheAttributes
                 CompositeCacheAttributes.defaults().UseMemoryShrinker(),
                 CompositeCacheAttributes.defaults().ShrinkerInterval(),
                 CompositeCacheAttributes.defaults().MaxSpoolPerRun(),
-                CompositeCacheAttributes.defaults().MaxMemoryIdleTimeSeconds(),
+                CompositeCacheAttributes.defaults().MaxMemoryIdleTime(),
                 CompositeCacheAttributes.defaults().MemoryCacheName(),
                 diskUsagePattern,
                 CompositeCacheAttributes.defaults().SpoolChunkSize());
diff --git 
a/commons-jcs4-core/src/test/java/org/apache/commons/jcs4/engine/memory/shrinking/ShrinkerThreadUnitTest.java
 
b/commons-jcs4-core/src/test/java/org/apache/commons/jcs4/engine/memory/shrinking/ShrinkerThreadUnitTest.java
index 946bdd04..806c0277 100644
--- 
a/commons-jcs4-core/src/test/java/org/apache/commons/jcs4/engine/memory/shrinking/ShrinkerThreadUnitTest.java
+++ 
b/commons-jcs4-core/src/test/java/org/apache/commons/jcs4/engine/memory/shrinking/ShrinkerThreadUnitTest.java
@@ -26,6 +26,7 @@ import static org.junit.jupiter.api.Assertions.assertNull;
 import static org.junit.jupiter.api.Assertions.assertTrue;
 
 import java.io.IOException;
+import java.time.Duration;
 
 import org.apache.commons.jcs4.engine.CacheElement;
 import org.apache.commons.jcs4.engine.CompositeCacheAttributes;
@@ -53,8 +54,9 @@ class ShrinkerThreadUnitTest
     {
         // SETUP
         final CompositeCacheAttributes cacheAttr = TestCompositeCacheAttributes
-                .withMemoryCacheNameMaxMemoryIdleTimeSecondsAndMaxSpoolPerRun(
-                        CompositeCacheAttributes.defaults().MemoryCacheName(), 
10, 10)
+                .withMemoryCacheNameMaxMemoryIdleTimeAndMaxSpoolPerRun(
+                        CompositeCacheAttributes.defaults().MemoryCacheName(),
+                        Duration.ofSeconds(10), 10)
                 .withCacheName("testRegion");
 
         final CompositeCache<String, String> cache = new 
CompositeCache<>(cacheAttr, new ElementAttributes());
@@ -87,8 +89,9 @@ class ShrinkerThreadUnitTest
     {
         // SETUP
         final CompositeCacheAttributes cacheAttr = TestCompositeCacheAttributes
-                .withMemoryCacheNameMaxMemoryIdleTimeSecondsAndMaxSpoolPerRun(
-                        CompositeCacheAttributes.defaults().MemoryCacheName(), 
10, 10)
+                .withMemoryCacheNameMaxMemoryIdleTimeAndMaxSpoolPerRun(
+                        CompositeCacheAttributes.defaults().MemoryCacheName(),
+                        Duration.ofSeconds(10), 10)
                 .withCacheName("testRegion");
 
         final CompositeCache<String, String> cache = new 
CompositeCache<>(cacheAttr, new ElementAttributes());
@@ -121,8 +124,9 @@ class ShrinkerThreadUnitTest
     {
         // SETUP
         final CompositeCacheAttributes cacheAttr = TestCompositeCacheAttributes
-                .withMemoryCacheNameMaxMemoryIdleTimeSecondsAndMaxSpoolPerRun(
-                        CompositeCacheAttributes.defaults().MemoryCacheName(), 
10, 10)
+                .withMemoryCacheNameMaxMemoryIdleTimeAndMaxSpoolPerRun(
+                        CompositeCacheAttributes.defaults().MemoryCacheName(),
+                        Duration.ofSeconds(10), 10)
                 .withCacheName("testRegion");
 
         final CompositeCache<String, String> cache = new 
CompositeCache<>(cacheAttr, new ElementAttributes());
@@ -155,8 +159,9 @@ class ShrinkerThreadUnitTest
     {
         // SETUP
         final CompositeCacheAttributes cacheAttr = TestCompositeCacheAttributes
-                .withMemoryCacheNameMaxMemoryIdleTimeSecondsAndMaxSpoolPerRun(
-                        CompositeCacheAttributes.defaults().MemoryCacheName(), 
10, 10)
+                .withMemoryCacheNameMaxMemoryIdleTimeAndMaxSpoolPerRun(
+                        CompositeCacheAttributes.defaults().MemoryCacheName(),
+                        Duration.ofSeconds(10), 10)
                 .withCacheName("testRegion");
 
         final CompositeCache<String, String> cache = new 
CompositeCache<>(cacheAttr, new ElementAttributes());
@@ -192,8 +197,9 @@ class ShrinkerThreadUnitTest
     {
         // SETUP
         final CompositeCacheAttributes cacheAttr = TestCompositeCacheAttributes
-                .withMemoryCacheNameMaxMemoryIdleTimeSecondsAndMaxSpoolPerRun(
-                        
"org.apache.commons.jcs4.engine.memory.MockMemoryCache", 1, 10)
+                .withMemoryCacheNameMaxMemoryIdleTimeAndMaxSpoolPerRun(
+                        
"org.apache.commons.jcs4.engine.memory.MockMemoryCache",
+                        Duration.ofSeconds(1), 10)
                 .withCacheName("testRegion");
 
         final CompositeCache<String, String> cache = new 
CompositeCache<>(cacheAttr, new ElementAttributes());
@@ -236,8 +242,9 @@ class ShrinkerThreadUnitTest
     {
         // SETUP
         final CompositeCacheAttributes cacheAttr = TestCompositeCacheAttributes
-                .withMemoryCacheNameMaxMemoryIdleTimeSecondsAndMaxSpoolPerRun(
-                        
"org.apache.commons.jcs4.engine.memory.MockMemoryCache", 1, 3)
+                .withMemoryCacheNameMaxMemoryIdleTimeAndMaxSpoolPerRun(
+                        
"org.apache.commons.jcs4.engine.memory.MockMemoryCache",
+                        Duration.ofSeconds(1), 3)
                 .withCacheName("testRegion");
 
         final CompositeCache<String, String> cache = new 
CompositeCache<>(cacheAttr, new ElementAttributes());
@@ -283,8 +290,9 @@ class ShrinkerThreadUnitTest
     {
         // SETUP
         final CompositeCacheAttributes cacheAttr = TestCompositeCacheAttributes
-                .withMemoryCacheNameMaxMemoryIdleTimeSecondsAndMaxSpoolPerRun(
-                        
"org.apache.commons.jcs4.engine.memory.MockMemoryCache", 1, 3)
+                .withMemoryCacheNameMaxMemoryIdleTimeAndMaxSpoolPerRun(
+                        
"org.apache.commons.jcs4.engine.memory.MockMemoryCache",
+                        Duration.ofSeconds(1), 3)
                 .withCacheName("testRegion");
 
         final CompositeCache<String, String> cache = new 
CompositeCache<>(cacheAttr, new ElementAttributes());
diff --git a/commons-jcs4-core/src/test/test-conf/TestHSQLDiskCache.ccf 
b/commons-jcs4-core/src/test/test-conf/TestHSQLDiskCache.ccf
index 5a781cf1..a4b04d4b 100644
--- a/commons-jcs4-core/src/test/test-conf/TestHSQLDiskCache.ccf
+++ b/commons-jcs4-core/src/test/test-conf/TestHSQLDiskCache.ccf
@@ -20,7 +20,7 @@
 jcs.default=HSQL
 jcs.default.cacheattributes.MaxObjects=0
 jcs.default.cacheattributes.UseMemoryShrinker=false
-jcs.default.cacheattributes.MaxMemoryIdleTimeSeconds=3600
+jcs.default.cacheattributes.MaxMemoryIdleTime=PT1h
 jcs.default.cacheattributes.ShrinkerInterval=PT1m
 jcs.default.elementattributes.IsEternal=false
 jcs.default.elementattributes.MaxLife=700
diff --git 
a/commons-jcs4-core/src/test/test-conf/TestHSQLDiskCacheConcurrent.ccf 
b/commons-jcs4-core/src/test/test-conf/TestHSQLDiskCacheConcurrent.ccf
index c4a82df8..c0994be5 100644
--- a/commons-jcs4-core/src/test/test-conf/TestHSQLDiskCacheConcurrent.ccf
+++ b/commons-jcs4-core/src/test/test-conf/TestHSQLDiskCacheConcurrent.ccf
@@ -20,7 +20,7 @@
 jcs.default=HSQL
 jcs.default.cacheattributes.MaxObjects=0
 jcs.default.cacheattributes.UseMemoryShrinker=false
-jcs.default.cacheattributes.MaxMemoryIdleTimeSeconds=3600
+jcs.default.cacheattributes.MaxMemoryIdleTime=PT1h
 jcs.default.cacheattributes.ShrinkerInterval=PT1m
 jcs.default.elementattributes.IsEternal=false
 jcs.default.elementattributes.MaxLife=700
diff --git a/commons-jcs4-core/src/test/test-conf/TestJCS-73.ccf 
b/commons-jcs4-core/src/test/test-conf/TestJCS-73.ccf
index d615f974..d790c946 100644
--- a/commons-jcs4-core/src/test/test-conf/TestJCS-73.ccf
+++ b/commons-jcs4-core/src/test/test-conf/TestJCS-73.ccf
@@ -20,7 +20,7 @@ jcs.default=CACHE
 jcs.default.cacheattributes.MaxObjects=-1
 jcs.default.cacheattributes.DiskUsagePattern=UPDATE
 jcs.default.cacheattributes.UseMemoryShrinker=true
-jcs.default.cacheattributes.MaxMemoryIdleTimeSeconds=10
+jcs.default.cacheattributes.MaxMemoryIdleTime=PT10s
 jcs.default.cacheattributes.ShrinkerInterval=PT10s
 jcs.default.elementattributes.IsRemote=false
 jcs.default.elementattributes.IsLateral=false
diff --git a/commons-jcs4-core/src/test/test-conf/TestJDBCDiskCache.ccf 
b/commons-jcs4-core/src/test/test-conf/TestJDBCDiskCache.ccf
index 4c4dbee6..6abbf934 100644
--- a/commons-jcs4-core/src/test/test-conf/TestJDBCDiskCache.ccf
+++ b/commons-jcs4-core/src/test/test-conf/TestJDBCDiskCache.ccf
@@ -19,7 +19,7 @@
 
 jcs.default=JDBC
 jcs.default.cacheattributes.UseMemoryShrinker=false
-jcs.default.cacheattributes.MaxMemoryIdleTimeSeconds=3600
+jcs.default.cacheattributes.MaxMemoryIdleTime=PT1h
 jcs.default.cacheattributes.ShrinkerInterval=PT1m
 jcs.default.elementattributes.IsEternal=false
 jcs.default.elementattributes.MaxLife=700
diff --git a/commons-jcs4-core/src/test/test-conf/TestJDBCDiskCacheRemoval.ccf 
b/commons-jcs4-core/src/test/test-conf/TestJDBCDiskCacheRemoval.ccf
index e71e1295..54151af1 100644
--- a/commons-jcs4-core/src/test/test-conf/TestJDBCDiskCacheRemoval.ccf
+++ b/commons-jcs4-core/src/test/test-conf/TestJDBCDiskCacheRemoval.ccf
@@ -20,7 +20,7 @@
 jcs.default=JDBC
 jcs.default.cacheattributes.MaxObjects=0
 jcs.default.cacheattributes.UseMemoryShrinker=false
-jcs.default.cacheattributes.MaxMemoryIdleTimeSeconds=3600
+jcs.default.cacheattributes.MaxMemoryIdleTime=PT1h
 jcs.default.cacheattributes.ShrinkerInterval=PT1m
 jcs.default.elementattributes.IsEternal=false
 jcs.default.elementattributes.MaxLife=700
diff --git 
a/commons-jcs4-core/src/test/test-conf/TestJDBCDiskCacheSharedPool.ccf 
b/commons-jcs4-core/src/test/test-conf/TestJDBCDiskCacheSharedPool.ccf
index 3038c078..dbae3be2 100644
--- a/commons-jcs4-core/src/test/test-conf/TestJDBCDiskCacheSharedPool.ccf
+++ b/commons-jcs4-core/src/test/test-conf/TestJDBCDiskCacheSharedPool.ccf
@@ -19,7 +19,7 @@
 
 jcs.default=JDBC_0
 jcs.default.cacheattributes.UseMemoryShrinker=false
-jcs.default.cacheattributes.MaxMemoryIdleTimeSeconds=3600
+jcs.default.cacheattributes.MaxMemoryIdleTime=PT1h
 jcs.default.cacheattributes.ShrinkerInterval=PT1m
 jcs.default.elementattributes.IsEternal=false
 jcs.default.elementattributes.MaxLife=700
diff --git a/commons-jcs4-core/src/test/test-conf/TestJDBCDiskCacheShrink.ccf 
b/commons-jcs4-core/src/test/test-conf/TestJDBCDiskCacheShrink.ccf
index 92ff99ed..ea64be8f 100644
--- a/commons-jcs4-core/src/test/test-conf/TestJDBCDiskCacheShrink.ccf
+++ b/commons-jcs4-core/src/test/test-conf/TestJDBCDiskCacheShrink.ccf
@@ -19,7 +19,7 @@
 
 jcs.default=JDBC
 jcs.default.cacheattributes.UseMemoryShrinker=false
-jcs.default.cacheattributes.MaxMemoryIdleTimeSeconds=3600
+jcs.default.cacheattributes.MaxMemoryIdleTime=PT1h
 jcs.default.cacheattributes.ShrinkerInterval=PT1m
 jcs.default.elementattributes.IsEternal=false
 jcs.default.elementattributes.MaxLife=700
diff --git a/commons-jcs4-core/src/test/test-conf/TestMRUCache.ccf 
b/commons-jcs4-core/src/test/test-conf/TestMRUCache.ccf
index 470ad265..7fb0e72c 100644
--- a/commons-jcs4-core/src/test/test-conf/TestMRUCache.ccf
+++ b/commons-jcs4-core/src/test/test-conf/TestMRUCache.ccf
@@ -21,7 +21,7 @@ jcs.default=
 jcs.default.cacheattributes.MaxObjects=1000
 
jcs.default.cacheattributes.MemoryCacheName=org.apache.commons.jcs4.engine.memory.mru.MRUMemoryCache
 jcs.default.cacheattributes.UseMemoryShrinker=true
-jcs.default.cacheattributes.MaxMemoryIdleTimeSeconds=3600
+jcs.default.cacheattributes.MaxMemoryIdleTime=PT1h
 jcs.default.cacheattributes.ShrinkerInterval=PT1s
 jcs.default.elementattributes.IsEternal=false
 jcs.default.elementattributes.MaxLife=600
diff --git a/commons-jcs4-core/src/test/test-conf/TestMySQLDiskCache.ccf 
b/commons-jcs4-core/src/test/test-conf/TestMySQLDiskCache.ccf
index 92615687..2ee668fb 100644
--- a/commons-jcs4-core/src/test/test-conf/TestMySQLDiskCache.ccf
+++ b/commons-jcs4-core/src/test/test-conf/TestMySQLDiskCache.ccf
@@ -22,7 +22,7 @@
 jcs.default=MYSQL
 jcs.default.cacheattributes.MaxObjects=0
 jcs.default.cacheattributes.UseMemoryShrinker=false
-jcs.default.cacheattributes.MaxMemoryIdleTimeSeconds=3600
+jcs.default.cacheattributes.MaxMemoryIdleTime=PT1h
 jcs.default.cacheattributes.ShrinkerInterval=PT1m
 jcs.default.elementattributes.IsEternal=false
 jcs.default.elementattributes.MaxLife=700
diff --git a/commons-jcs4-core/src/test/test-conf/TestRemoteClient.ccf 
b/commons-jcs4-core/src/test/test-conf/TestRemoteClient.ccf
index feff2939..81b344b6 100644
--- a/commons-jcs4-core/src/test/test-conf/TestRemoteClient.ccf
+++ b/commons-jcs4-core/src/test/test-conf/TestRemoteClient.ccf
@@ -20,7 +20,7 @@
 jcs.default=RC
 jcs.default.cacheattributes.MaxObjects=200001
 jcs.default.cacheattributes.UseMemoryShrinker=true
-jcs.default.cacheattributes.MaxMemoryIdleTimeSeconds=3600
+jcs.default.cacheattributes.MaxMemoryIdleTime=PT1h
 jcs.default.cacheattributes.ShrinkerInterval=PT1m
 jcs.default.elementattributes.IsEternal=false
 jcs.default.elementattributes.MaxLife=700
diff --git a/commons-jcs4-core/src/test/test-conf/TestRemoteHttpCache.ccf 
b/commons-jcs4-core/src/test/test-conf/TestRemoteHttpCache.ccf
index f5977a87..0e0ca49c 100644
--- a/commons-jcs4-core/src/test/test-conf/TestRemoteHttpCache.ccf
+++ b/commons-jcs4-core/src/test/test-conf/TestRemoteHttpCache.ccf
@@ -20,7 +20,7 @@
 jcs.default=RC
 jcs.default.cacheattributes.MaxObjects=0
 jcs.default.cacheattributes.UseMemoryShrinker=true
-jcs.default.cacheattributes.MaxMemoryIdleTimeSeconds=3600
+jcs.default.cacheattributes.MaxMemoryIdleTime=PT1h
 jcs.default.cacheattributes.ShrinkerInterval=PT1m
 jcs.default.elementattributes.IsEternal=false
 jcs.default.elementattributes.MaxLife=700
diff --git a/commons-jcs4-core/src/test/test-conf/TestRemoteServer.ccf 
b/commons-jcs4-core/src/test/test-conf/TestRemoteServer.ccf
index 97ba0acf..f62ed072 100644
--- a/commons-jcs4-core/src/test/test-conf/TestRemoteServer.ccf
+++ b/commons-jcs4-core/src/test/test-conf/TestRemoteServer.ccf
@@ -30,7 +30,7 @@ jcs.remotecache.serverattributes.LocalClusterConsistency=true
 jcs.default=
 jcs.default.cacheattributes.MaxObjects=200000
 jcs.default.cacheattributes.UseMemoryShrinker=true
-jcs.default.cacheattributes.MaxMemoryIdleTimeSeconds=3600
+jcs.default.cacheattributes.MaxMemoryIdleTime=PT1h
 jcs.default.cacheattributes.ShrinkerInterval=PT1m
 jcs.default.cacheattributes.ShrinkerInterval=PT1m
 jcs.default.elementattributes.IsEternal=false
diff --git a/commons-jcs4-core/src/test/test-conf/TestSoftReferenceCache.ccf 
b/commons-jcs4-core/src/test/test-conf/TestSoftReferenceCache.ccf
index c3413443..c493f3bc 100644
--- a/commons-jcs4-core/src/test/test-conf/TestSoftReferenceCache.ccf
+++ b/commons-jcs4-core/src/test/test-conf/TestSoftReferenceCache.ccf
@@ -19,7 +19,7 @@
 jcs.default=
 
jcs.default.cacheattributes.MemoryCacheName=org.apache.commons.jcs4.engine.memory.soft.SoftReferenceMemoryCache
 jcs.default.cacheattributes.UseMemoryShrinker=false
-jcs.default.cacheattributes.MaxMemoryIdleTimeSeconds=3600
+jcs.default.cacheattributes.MaxMemoryIdleTime=PT1h
 jcs.default.elementattributes.IsEternal=false
 jcs.default.elementattributes.MaxLife=600
 jcs.default.elementattributes.MaxIdleTime=1800
diff --git a/commons-jcs4-core/src/test/test-conf/TestZeroSizeCache.ccf 
b/commons-jcs4-core/src/test/test-conf/TestZeroSizeCache.ccf
index 40f53809..3d13b088 100644
--- a/commons-jcs4-core/src/test/test-conf/TestZeroSizeCache.ccf
+++ b/commons-jcs4-core/src/test/test-conf/TestZeroSizeCache.ccf
@@ -20,7 +20,7 @@
 jcs.default=
 jcs.default.cacheattributes.MaxObjects=0
 jcs.default.cacheattributes.UseMemoryShrinker=true
-jcs.default.cacheattributes.MaxMemoryIdleTimeSeconds=3600
+jcs.default.cacheattributes.MaxMemoryIdleTime=PT1h
 jcs.default.cacheattributes.ShrinkerInterval=PT1s
 jcs.default.elementattributes.IsEternal=false
 jcs.default.elementattributes.MaxLife=600
diff --git 
a/commons-jcs4-jcache/src/main/java/org/apache/commons/jcs4/jcache/JCSCachingManager.java
 
b/commons-jcs4-jcache/src/main/java/org/apache/commons/jcs4/jcache/JCSCachingManager.java
index 7842a0c7..b7f458ec 100644
--- 
a/commons-jcs4-jcache/src/main/java/org/apache/commons/jcs4/jcache/JCSCachingManager.java
+++ 
b/commons-jcs4-jcache/src/main/java/org/apache/commons/jcs4/jcache/JCSCachingManager.java
@@ -82,7 +82,7 @@ public class JCSCachingManager implements CacheManager
        jcs.default.cacheattributes.MaxObjects=200001
        
jcs.default.cacheattributes.MemoryCacheName=org.apache.commons.jcs4.engine.memory.lru.LRUMemoryCache
        jcs.default.cacheattributes.UseMemoryShrinker=true
-       jcs.default.cacheattributes.MaxMemoryIdleTimeSeconds=3600
+       jcs.default.cacheattributes.MaxMemoryIdleTime=PT1h
        jcs.default.cacheattributes.ShrinkerInterval=PT1m
        
jcs.default.elementattributes=org.apache.commons.jcs4.engine.ElementAttributes
        jcs.default.elementattributes.IsEternal=false
diff --git a/src/site/xdoc/BasicJCSConfiguration.xml 
b/src/site/xdoc/BasicJCSConfiguration.xml
index 508da08a..34e3019a 100644
--- a/src/site/xdoc/BasicJCSConfiguration.xml
+++ b/src/site/xdoc/BasicJCSConfiguration.xml
@@ -53,7 +53,7 @@ jcs.default.cacheattributes.MaxObjects=1000
         </p>
         <source><![CDATA[
 jcs.default.cacheattributes.UseMemoryShrinker=true
-jcs.default.cacheattributes.MaxMemoryIdleTimeSeconds=3600
+jcs.default.cacheattributes.MaxMemoryIdleTime=PT1h
 jcs.default.cacheattributes.ShrinkerInterval=PT1m
 jcs.default.cacheattributes.MaxSpoolPerRun=500
 jcs.default.elementattributes.IsEternal=false
@@ -84,7 +84,7 @@ jcs.default=DC
 jcs.region.testCache1=DC
 jcs.region.testCache1.cacheattributes.MaxObjects=1000
 jcs.region.testCache1.cacheattributes.UseMemoryShrinker=true
-jcs.region.testCache1.cacheattributes.MaxMemoryIdleTimeSeconds=3600
+jcs.region.testCache1.cacheattributes.MaxMemoryIdleTime=PT1h
 jcs.region.testCache1.cacheattributes.ShrinkerInterval=PT1m
 jcs.region.testCache1.cacheattributes.MaxSpoolPerRun=500
 jcs.region.testCache1.elementattributes.IsEternal=false
@@ -140,7 +140,7 @@ jcs.default.cacheattributes.MaxObjects=1000
 jcs.region.testCache1=DC,LTCP
 jcs.region.testCache1.cacheattributes.MaxObjects=1000
 jcs.region.testCache1.cacheattributes.UseMemoryShrinker=true
-jcs.region.testCache1.cacheattributes.MaxMemoryIdleTimeSeconds=3600
+jcs.region.testCache1.cacheattributes.MaxMemoryIdleTime=PT1h
 jcs.region.testCache1.cacheattributes.ShrinkerInterval=PT1m
 jcs.region.testCache1.cacheattributes.MaxSpoolPerRun=500
 jcs.region.testCache1.elementattributes.IsEternal=false
diff --git a/src/site/xdoc/ElementAttributes.xml 
b/src/site/xdoc/ElementAttributes.xml
index 9f74fbf4..3022df10 100644
--- a/src/site/xdoc/ElementAttributes.xml
+++ b/src/site/xdoc/ElementAttributes.xml
@@ -50,7 +50,7 @@
 jcs.default=DC
 jcs.default.cacheattributes.MaxObjects=1000
 jcs.default.cacheattributes.UseMemoryShrinker=true
-jcs.default.cacheattributes.MaxMemoryIdleTimeSeconds=3600
+jcs.default.cacheattributes.MaxMemoryIdleTime=PT1h
 jcs.default.cacheattributes.ShrinkerInterval=PT1m
 jcs.default.elementattributes.IsEternal=false
 jcs.default.elementattributes.MaxLife=700
diff --git a/src/site/xdoc/IndexedDiskAuxCache.xml 
b/src/site/xdoc/IndexedDiskAuxCache.xml
index 3fe1fe17..38996077 100644
--- a/src/site/xdoc/IndexedDiskAuxCache.xml
+++ b/src/site/xdoc/IndexedDiskAuxCache.xml
@@ -238,7 +238,7 @@ jcs.auxiliary.DC.attributes.DiskLimitType=COUNT
 jcs.default=DC2
 jcs.default.cacheattributes.MaxObjects=200001
 jcs.default.cacheattributes.UseMemoryShrinker=false
-jcs.default.cacheattributes.MaxMemoryIdleTimeSeconds=3600
+jcs.default.cacheattributes.MaxMemoryIdleTime=PT1h
 jcs.default.cacheattributes.ShrinkerInterval=PT1m
 jcs.default.elementattributes.IsEternal=false
 jcs.default.elementattributes.MaxLife=700
diff --git a/src/site/xdoc/JDBCDiskCache.xml b/src/site/xdoc/JDBCDiskCache.xml
index 4f3a769d..c796191f 100644
--- a/src/site/xdoc/JDBCDiskCache.xml
+++ b/src/site/xdoc/JDBCDiskCache.xml
@@ -40,7 +40,7 @@
 jcs.default=MYSQL,RCluster
 jcs.default.cacheattributes.MaxObjects=5000
 jcs.default.cacheattributes.UseMemoryShrinker=true
-jcs.default.cacheattributes.MaxMemoryIdleTimeSeconds=7200
+jcs.default.cacheattributes.MaxMemoryIdleTime=PT2h
 jcs.default.cacheattributes.ShrinkerInterval=PT1m
 jcs.default.elementattributes.IsEternal=false
 jcs.default.elementattributes.MaxLife=14400
@@ -89,7 +89,7 @@ thread_pool.disk_cache_event_queue.startUpSize=10
                                        <![CDATA[
 jcs.default=JDBC_0
 jcs.default.cacheattributes.UseMemoryShrinker=false
-jcs.default.cacheattributes.MaxMemoryIdleTimeSeconds=3600
+jcs.default.cacheattributes.MaxMemoryIdleTime=PT1h
 jcs.default.cacheattributes.ShrinkerInterval=PT1m
 jcs.default.elementattributes.IsEternal=false
 jcs.default.elementattributes.MaxLife=700
@@ -154,7 +154,7 @@ thread_pool.disk_cache_event_queue.startUpSize=10
                     <![CDATA[
 jcs.default=JDBC_0
 jcs.default.cacheattributes.UseMemoryShrinker=false
-jcs.default.cacheattributes.MaxMemoryIdleTimeSeconds=3600
+jcs.default.cacheattributes.MaxMemoryIdleTime=PT1h
 jcs.default.cacheattributes.ShrinkerInterval=PT1m
 jcs.default.elementattributes.IsEternal=false
 jcs.default.elementattributes.MaxLife=700
diff --git a/src/site/xdoc/RegionProperties.xml 
b/src/site/xdoc/RegionProperties.xml
index a5f23d70..8f628af2 100644
--- a/src/site/xdoc/RegionProperties.xml
+++ b/src/site/xdoc/RegionProperties.xml
@@ -119,7 +119,7 @@
                                                <td>false</td>
                                        </tr>
                                        <tr>
-                                               
<td>MaxMemoryIdleTimeSeconds</td>
+                                               <td>MaxMemoryIdleTime</td>
                                                <td>
                                                        This is only used if 
you are using the
                                                        memory shrinker. If 
this value is set above
@@ -129,10 +129,10 @@
                                                        register an event 
handler on this event.
                                                </td>
                                                <td>N</td>
-                                               <td>7200</td>
+                                               <td>PT2h</td>
                                        </tr>
                                        <tr>
-                                               <td>ShrinkerIntervalSeconds</td>
+                                               <td>ShrinkerInterval</td>
                                                <td>
                                                        This specifies how 
often the shrinker should
                                                        run, if it has been 
activated. If you set
@@ -140,7 +140,7 @@
                                                        setting has no effect.
                                                </td>
                                                <td>N</td>
-                                               <td>30</td>
+                                               <td>PT30s</td>
                                        </tr>
                     <tr>
                         <td>MaxSpoolPerRun</td>
@@ -259,7 +259,7 @@
 jcs.default=
 jcs.default.cacheattributes.MaxObjects=200001
 jcs.default.cacheattributes.UseMemoryShrinker=true
-jcs.default.cacheattributes.MaxMemoryIdleTimeSeconds=3600
+jcs.default.cacheattributes.MaxMemoryIdleTime=PT1h
 jcs.default.cacheattributes.ShrinkerInterval=PT1m
 jcs.default.elementattributes.IsEternal=false
 jcs.default.elementattributes.MaxLife=700
@@ -268,7 +268,7 @@ jcs.default.elementattributes.MaxLife=700
 jcs.region.testCache1=
 jcs.region.testCache1.cacheattributes.MaxObjects=123456
 jcs.region.testCache1.cacheattributes.ShrinkerInterval=PT30s
-jcs.region.testCache1.cacheattributes.MaxMemoryIdleTimeSeconds=300
+jcs.region.testCache1.cacheattributes.MaxMemoryIdleTime=PT5m
 jcs.region.testCache1.cacheattributes.MaxSpoolPerRun=100
 jcs.region.testCache1.elementattributes.MaxLife=60000
         ]]>
diff --git a/src/site/xdoc/UpgradingFrom3x.xml 
b/src/site/xdoc/UpgradingFrom3x.xml
index b1105516..3a65fc2c 100644
--- a/src/site/xdoc/UpgradingFrom3x.xml
+++ b/src/site/xdoc/UpgradingFrom3x.xml
@@ -138,6 +138,11 @@ java.util.logging.SimpleFormatter.format=[%1$tF %1$tT] 
%3$s [%4$-7s] %5$s %n
               <td>DiskUsagePatternName</td>
               <td>DiskUsagePattern</td>
             </tr>
+            <tr>
+              <td></td>
+              <td>MaxMemoryIdleTimeSeconds</td>
+              <td>MaxMemoryIdleTime</td>
+            </tr>
             <tr>
               <td></td>
               <td>ShrinkerIntervalSeconds</td>
@@ -189,6 +194,11 @@ java.util.logging.SimpleFormatter.format=[%1$tF %1$tT] 
%3$s [%4$-7s] %5$s %n
             </tr>
             <tr>
               <td>Region configuration (CompositeCacheAttributes)</td>
+              <td>MaxMemoryIdleTime</td>
+              <td>PT2h</td>
+            </tr>
+            <tr>
+              <td></td>
               <td>ShrinkerInterval</td>
               <td>PT30s</td>
             </tr>
diff --git a/src/site/xdoc/getting_started/intro.xml 
b/src/site/xdoc/getting_started/intro.xml
index 7faf8453..49dfbfa4 100644
--- a/src/site/xdoc/getting_started/intro.xml
+++ b/src/site/xdoc/getting_started/intro.xml
@@ -150,7 +150,7 @@
 jcs.default=DC
 jcs.default.cacheattributes.MaxObjects=1000
 jcs.default.cacheattributes.UseMemoryShrinker=false
-jcs.default.cacheattributes.MaxMemoryIdleTimeSeconds=3600
+jcs.default.cacheattributes.MaxMemoryIdleTime=PT1h
 jcs.default.cacheattributes.ShrinkerInterval=PT1m
 jcs.default.elementattributes.IsEternal=false
 jcs.default.elementattributes.MaxLife=21600
@@ -160,7 +160,7 @@ jcs.default.elementattributes.MaxIdleTime=1800
 jcs.region.testCache1=DC
 jcs.region.testCache1.cacheattributes.MaxObjects=1000
 jcs.region.testCache1.cacheattributes.UseMemoryShrinker=false
-jcs.region.testCache1.cacheattributes.MaxMemoryIdleTimeSeconds=3600
+jcs.region.testCache1.cacheattributes.MaxMemoryIdleTime=PT1h
 jcs.region.testCache1.cacheattributes.ShrinkerInterval=PT1m
 jcs.region.testCache1.cacheattributes.MaxSpoolPerRun=500
 jcs.region.testCache1.elementattributes.IsEternal=false


Reply via email to