KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > apache > roller > util > cache > ExpiringLRUCacheFactoryImpl


1 /*
2  * Licensed to the Apache Software Foundation (ASF) under one or more
3  * contributor license agreements. The ASF licenses this file to You
4  * under the Apache License, Version 2.0 (the "License"); you may not
5  * use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License. For additional information regarding
15  * copyright in this work, please see the NOTICE file in the top level
16  * directory of this distribution.
17  */

18
19 package org.apache.roller.util.cache;
20
21 import java.util.Map JavaDoc;
22 import org.apache.commons.logging.Log;
23 import org.apache.commons.logging.LogFactory;
24
25
26 /**
27  * Roller Expiring LRU cache factory.
28  */

29 public class ExpiringLRUCacheFactoryImpl implements CacheFactory {
30     
31     private static Log log = LogFactory.getLog(ExpiringLRUCacheFactoryImpl.class);
32     
33     
34     // protected so only the CacheManager can instantiate us
35
protected ExpiringLRUCacheFactoryImpl() {}
36     
37     
38     /**
39      * Construct a new instance of a Roller Expiring LRUCache.
40      */

41     public Cache constructCache(Map JavaDoc properties) {
42         
43         int size = 100;
44         long timeout = 15 * 60;
45         String JavaDoc id = "unknown";
46         
47         try {
48             size = Integer.parseInt((String JavaDoc) properties.get("size"));
49         } catch(Exception JavaDoc e) {
50             // ignored
51
}
52         
53         try {
54             timeout = Long.parseLong((String JavaDoc) properties.get("timeout"));
55         } catch(Exception JavaDoc e) {
56             // ignored
57
}
58         
59         String JavaDoc cacheId = (String JavaDoc) properties.get("id");
60         if(cacheId != null) {
61             id = cacheId;
62         }
63         
64         Cache cache = new ExpiringLRUCacheImpl(id, size, timeout);
65         
66         log.debug("new cache constructed. size="+size+", timeout="+timeout);
67         
68         return cache;
69     }
70     
71 }
72
Popular Tags