You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by re...@apache.org on 2002/06/11 02:31:43 UTC

cvs commit: jakarta-tomcat-4.0/catalina/src/share/org/apache/naming/resources ProxyDirContext.java

remm        2002/06/10 17:31:43

  Modified:    catalina/src/share/org/apache/naming/resources
                        ProxyDirContext.java
  Log:
  - Switch to use a LRUMap from Collections 2.0.
  - Note: The cacheSize attribute must be on the BaseDirContext (ProxyDirContext
    is a only a wrapper which adds caching).
  - Patch submitted by Robert Herrmann <bob at jadn.com>
  
  Revision  Changes    Path
  1.12      +21 -8     jakarta-tomcat-4.0/catalina/src/share/org/apache/naming/resources/ProxyDirContext.java
  
  Index: ProxyDirContext.java
  ===================================================================
  RCS file: /home/cvs/jakarta-tomcat-4.0/catalina/src/share/org/apache/naming/resources/ProxyDirContext.java,v
  retrieving revision 1.11
  retrieving revision 1.12
  diff -u -r1.11 -r1.12
  --- ProxyDirContext.java	27 Feb 2002 01:17:00 -0000	1.11
  +++ ProxyDirContext.java	11 Jun 2002 00:31:43 -0000	1.12
  @@ -64,11 +64,14 @@
   
   package org.apache.naming.resources;
   
  -import java.util.Hashtable;
  +import java.util.Collections;
   import java.util.Date;
  +import java.util.Hashtable;
  +import java.util.Map;
   import java.io.InputStream;
   import java.io.IOException;
   import java.io.ByteArrayInputStream;
  +
   import javax.naming.Context;
   import javax.naming.Name;
   import javax.naming.NameParser;
  @@ -79,8 +82,11 @@
   import javax.naming.directory.Attribute;
   import javax.naming.directory.ModificationItem;
   import javax.naming.directory.SearchControls;
  +
   import org.apache.naming.StringManager;
   
  +import org.apache.commons.collections.LRUMap;
  +
   /**
    * Proxy Directory Context implementation.
    *
  @@ -111,7 +117,7 @@
               // Initialize parameters based on the associated dir context, like
               // the caching policy.
               if (((BaseDirContext) dirContext).isCached()) {
  -                cache = new Hashtable();
  +                cache = Collections.synchronizedMap(new LRUMap(cacheSize));
                   cacheTTL = ((BaseDirContext) dirContext).getCacheTTL();
                   cacheObjectMaxSize = 
                       ((BaseDirContext) dirContext).getCacheObjectMaxSize();
  @@ -132,6 +138,7 @@
           this.dirContext = dirContext;
           this.vPath = vPath;
           this.cache = proxyDirContext.cache;
  +        this.cacheSize = proxyDirContext.cacheSize;
           this.cacheTTL = proxyDirContext.cacheTTL;
           this.cacheObjectMaxSize = proxyDirContext.cacheObjectMaxSize;
           this.hostName = proxyDirContext.hostName;
  @@ -182,7 +189,13 @@
        * Cache.
        * Path -> Cache entry.
        */
  -    protected Hashtable cache = null;
  +    protected Map cache = null;
  +
  +
  +    /**
  +     * Cache size
  +     */
  +    protected int cacheSize = 1000;
   
   
       /**
  @@ -676,7 +689,7 @@
        */
       public Name composeName(Name name, Name prefix)
           throws NamingException {
  -	prefix = (Name) name.clone();
  +        prefix = (Name) name.clone();
   	return prefix.addAll(name);
       }
   
  
  
  

--
To unsubscribe, e-mail:   <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>