mikeh       01/11/15 09:27:45

  Modified:    src/java/org/apache/turbine/modules ModuleLoader.java
               src/java/org/apache/turbine/pipeline DefaultResolver.java
  Removed:     src/java/org/apache/turbine/util DoubleKeyCache.java
  Log:
  Got rid of the util/DoubleKeyCache via jason's request.
  Put the gut of it in the DefaultResolver
  
  Revision  Changes    Path
  1.6       +31 -63    
jakarta-turbine-3/src/java/org/apache/turbine/modules/ModuleLoader.java
  
  Index: ModuleLoader.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-turbine-3/src/java/org/apache/turbine/modules/ModuleLoader.java,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- ModuleLoader.java 2001/11/13 21:35:44     1.5
  +++ ModuleLoader.java 2001/11/15 17:27:45     1.6
  @@ -74,21 +74,11 @@
    * Load modules for use in the view pipeline.
    *
    * @author <a href="mailto:[EMAIL PROTECTED]";>Jason van Zyl</a>
  - * @version $Id: ModuleLoader.java,v 1.5 2001/11/13 21:35:44 mikeh Exp $
  + * @version $Id: ModuleLoader.java,v 1.6 2001/11/15 17:27:45 mikeh Exp $
    */
   public class ModuleLoader
   {
       /**
  -     * Controls the caching of modules in the system.
  -     */
  -    protected boolean cacheEnabled;
  -
  -    /**
  -     * Cache for processed modules.
  -     */
  -    protected Map moduleCache;
  -
  -    /**
        * Module packages for this module loader.
        */
       protected List modulePackages;
  @@ -123,7 +113,6 @@
        */
       public ModuleLoader()
       {
  -        moduleCache = new FastHashMap();
           modulePackages = new FastArrayList();
           modulePackagesNames = new StringBuffer();
           defaultModules = new FastHashMap();
  @@ -140,15 +129,6 @@
           modulePackagesNames.append(modulePackage).append("\n");
       }
   
  -    /**
  -     * Add a new module type for this module loader.
  -     *
  -     * @param String type
  -     */
  -    public void addModuleType(String type)
  -    {
  -        moduleCache.put(type, new FastHashMap());
  -    }
   
       /**
        * Set the configuration for the module loader
  @@ -178,7 +158,6 @@
           {
               String moduleType = (String) j.next();
               String defaultModule = moduleTypes.getString(moduleType);
  -            addModuleType(moduleType);
   
               // Add the default module for the particular
               // module type to our container for module defaults.
  @@ -205,6 +184,11 @@
       /**
        * Get an instance of a module
        *
  +     * NOTE  
  +     * All clients should use Turbine.getResolver().getModule(type,name)
  +     * to get the module.  The only client of ModuleLoader.getModule(type,name)
  +     * should be the resolver.
  +     *
        * @param String name
        * @param String type
        * @return Module
  @@ -212,55 +196,39 @@
       public Module getModule(String type, String name)
           throws Exception
       {
  -        // Try and retrieve the module of the specified type
  -        Module module = (Module) ((Map) moduleCache.get(type)).get(name);
  +        Module module = null; 
  +        
  +        Iterator i,j,k = null;
  +        i = modulePackages.iterator();
           
  -        if (module != null)
  +        if (type.equals("actions"))
           {
  -            return module;
  +            k = getAllPossibleActions(i,name);            
           }
           else
           {
  -            Iterator i,j,k = null;
  -            i = modulePackages.iterator();
  -            
  -            if (type.equals("actions"))
  -            {
  -                k = getAllPossibleActions(i,name);            
  -            }
  -            else
  +            StringBuffer sb = new StringBuffer();
  +            PipelineUtil.parseTemplatePath(name, sb);
  +            j = getPossibleModules(sb.toString());
  +            k = getAllPossibleModules(i,j,type);
  +        }
  +        
  +        while (k.hasNext())
  +        {
  +            String moduleClass = (String) k.next();
  +          
  +            try
               {
  -                StringBuffer sb = new StringBuffer();
  -                PipelineUtil.parseTemplatePath(name, sb);
  -                j = getPossibleModules(sb.toString());
  -                k = getAllPossibleModules(i,j,type);
  -            }
  -            
  -            while (k.hasNext())
  +                Log.debug("[ModuleLoader] Looking for " + moduleClass);
  +                module = (Module) Class.forName(moduleClass).newInstance();
  +                Log.debug("[ModuleLoader] " + name + " => " + moduleClass);
  +                break;
  +            }                        
  +            catch (Exception e)
               {
  -                String moduleClass = (String) k.next();
  -              
  -                try
  -                {
  -                    Log.debug("[ModuleLoader] Looking for " + moduleClass);
  -                    module = (Module) Class.forName(moduleClass).newInstance();
  -                
  -                    // Store the found module if caching is enabled.
  -                    if (cacheEnabled)
  -                    {
  -                        Log.debug("[ModuleLoader] Adding to cache => " + 
moduleClass);
  -                        ((Map) moduleCache.get(type)).put(name, module);
  -                    }
  -
  -                    Log.debug("[ModuleLoader] " + name + " => " + moduleClass);
  -                    break;
  -                }                        
  -                catch (Exception e)
  -                {
  -                    // do nothing.
  -                }
  +                // do nothing.
               }
  -        }            
  +        }
   
           if (module == null)
           {
  
  
  
  1.5       +35 -2     
jakarta-turbine-3/src/java/org/apache/turbine/pipeline/DefaultResolver.java
  
  Index: DefaultResolver.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-turbine-3/src/java/org/apache/turbine/pipeline/DefaultResolver.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- DefaultResolver.java      2001/11/15 15:58:33     1.4
  +++ DefaultResolver.java      2001/11/15 17:27:45     1.5
  @@ -58,6 +58,8 @@
   // We need to match up the target template with sibling
   // templates and context builders for each of these templates.
   
  +import java.util.Map;
  +import org.apache.commons.collections.FastHashMap;
   import java.util.ArrayList;
   import java.util.List;
   import java.util.Iterator;
  @@ -67,7 +69,6 @@
   import org.apache.turbine.Resolver;
   import org.apache.turbine.modules.Module;
   
  -import org.apache.turbine.util.DoubleKeyCache;
   
   // Given a target template
   
  @@ -134,7 +135,7 @@
    *
    * @author <a href="mailto:[EMAIL PROTECTED]";>Jason van Zyl</a>
    * @author <a href="mailto:[EMAIL PROTECTED]";>Mike Haberman</a>
  - * @version $Id: DefaultResolver.java,v 1.4 2001/11/15 15:58:33 mikeh Exp $
  + * @version $Id: DefaultResolver.java,v 1.5 2001/11/15 17:27:45 mikeh Exp $
    */
   
   public class DefaultResolver
  @@ -338,5 +339,37 @@
           // perhaps that code should be put here 
           //
           return Turbine.getModuleLoader().getModule(type,name);
  +    }
  +}
  +
  +class DoubleKeyCache
  +{
  +    Map map = null; 
  +
  +    public DoubleKeyCache()
  +    {
  +        // map must be a synchronized data structure
  +        map = new FastHashMap();
  +    }
  +
  +    public Object put(Object key1, Object key2, Object value)
  +    {
  +        Map table = (Map) map.get(key1);
  +        if (table == null) 
  +        {
  +           table = new FastHashMap();
  +           map.put(key1, table);
  +        }
  +        return table.put(key2, value);
  +    }
  +
  +    public Object get(Object key1, Object key2)
  +    {
  +        Map table = (Map) map.get(key1);
  +        if (table == null)
  +        {
  +           return null;
  +        }
  +        return table.get(key2);
       }
   }
  
  
  

--
To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>

Reply via email to