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]>