You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@turbine.apache.org by tv...@apache.org on 2011/11/08 04:14:30 UTC

svn commit: r1199089 - in /turbine/core/trunk/src: changes/ java/org/apache/turbine/modules/ java/org/apache/turbine/modules/layouts/ java/org/apache/turbine/modules/pages/ java/org/apache/turbine/modules/screens/ java/org/apache/turbine/pipeline/ java...

Author: tv
Date: Tue Nov  8 03:14:28 2011
New Revision: 1199089

URL: http://svn.apache.org/viewvc?rev=1199089&view=rev
Log:
Switch from String keys to Class keys for AssemblerBrokerService

Modified:
    turbine/core/trunk/src/changes/changes.xml
    turbine/core/trunk/src/java/org/apache/turbine/modules/Action.java
    turbine/core/trunk/src/java/org/apache/turbine/modules/ActionLoader.java
    turbine/core/trunk/src/java/org/apache/turbine/modules/GenericLoader.java
    turbine/core/trunk/src/java/org/apache/turbine/modules/LayoutLoader.java
    turbine/core/trunk/src/java/org/apache/turbine/modules/NavigationLoader.java
    turbine/core/trunk/src/java/org/apache/turbine/modules/PageLoader.java
    turbine/core/trunk/src/java/org/apache/turbine/modules/ScheduledJobLoader.java
    turbine/core/trunk/src/java/org/apache/turbine/modules/ScreenLoader.java
    turbine/core/trunk/src/java/org/apache/turbine/modules/layouts/VelocityOnlyLayout.java
    turbine/core/trunk/src/java/org/apache/turbine/modules/layouts/VelocityXslLayout.java
    turbine/core/trunk/src/java/org/apache/turbine/modules/pages/DefaultPage.java
    turbine/core/trunk/src/java/org/apache/turbine/modules/screens/TemplateScreen.java
    turbine/core/trunk/src/java/org/apache/turbine/pipeline/DefaultACLCreationValve.java
    turbine/core/trunk/src/java/org/apache/turbine/pipeline/DefaultLoginValve.java
    turbine/core/trunk/src/java/org/apache/turbine/pipeline/DefaultSessionValidationValve.java
    turbine/core/trunk/src/java/org/apache/turbine/pipeline/ExecutePageValve.java
    turbine/core/trunk/src/java/org/apache/turbine/services/assemblerbroker/AssemblerBrokerService.java
    turbine/core/trunk/src/java/org/apache/turbine/services/assemblerbroker/TurbineAssemblerBroker.java
    turbine/core/trunk/src/java/org/apache/turbine/services/assemblerbroker/TurbineAssemblerBrokerService.java
    turbine/core/trunk/src/java/org/apache/turbine/services/assemblerbroker/util/AssemblerFactory.java
    turbine/core/trunk/src/java/org/apache/turbine/services/assemblerbroker/util/java/JavaActionFactory.java
    turbine/core/trunk/src/java/org/apache/turbine/services/assemblerbroker/util/java/JavaLayoutFactory.java
    turbine/core/trunk/src/java/org/apache/turbine/services/assemblerbroker/util/java/JavaNavigationFactory.java
    turbine/core/trunk/src/java/org/apache/turbine/services/assemblerbroker/util/java/JavaPageFactory.java
    turbine/core/trunk/src/java/org/apache/turbine/services/assemblerbroker/util/java/JavaScheduledJobFactory.java
    turbine/core/trunk/src/java/org/apache/turbine/services/assemblerbroker/util/java/JavaScreenFactory.java
    turbine/core/trunk/src/java/org/apache/turbine/services/assemblerbroker/util/python/PythonActionFactory.java
    turbine/core/trunk/src/java/org/apache/turbine/services/assemblerbroker/util/python/PythonLayoutFactory.java
    turbine/core/trunk/src/java/org/apache/turbine/services/assemblerbroker/util/python/PythonNavigationFactory.java
    turbine/core/trunk/src/java/org/apache/turbine/services/assemblerbroker/util/python/PythonPageFactory.java
    turbine/core/trunk/src/java/org/apache/turbine/services/assemblerbroker/util/python/PythonScreenFactory.java
    turbine/core/trunk/src/java/org/apache/turbine/services/jsp/util/JspScreenPlaceholder.java
    turbine/core/trunk/src/java/org/apache/turbine/services/template/TurbineTemplateService.java
    turbine/core/trunk/src/java/org/apache/turbine/util/template/TemplateScreen.java

Modified: turbine/core/trunk/src/changes/changes.xml
URL: http://svn.apache.org/viewvc/turbine/core/trunk/src/changes/changes.xml?rev=1199089&r1=1199088&r2=1199089&view=diff
==============================================================================
--- turbine/core/trunk/src/changes/changes.xml (original)
+++ turbine/core/trunk/src/changes/changes.xml Tue Nov  8 03:14:28 2011
@@ -26,6 +26,9 @@
   <body>
     <release version="4.0-M2" date="in Subversion">
       <action type="update" dev="tv">
+        Switch from String keys to Class keys for AssemblerBrokerService
+      </action>
+      <action type="update" dev="tv">
         Refine interface of PipelineData and add user and acl objects
         to pipelineData.
       </action>

Modified: turbine/core/trunk/src/java/org/apache/turbine/modules/Action.java
URL: http://svn.apache.org/viewvc/turbine/core/trunk/src/java/org/apache/turbine/modules/Action.java?rev=1199089&r1=1199088&r2=1199089&view=diff
==============================================================================
--- turbine/core/trunk/src/java/org/apache/turbine/modules/Action.java (original)
+++ turbine/core/trunk/src/java/org/apache/turbine/modules/Action.java Tue Nov  8 03:14:28 2011
@@ -41,7 +41,7 @@ public abstract class Action extends Ass
     public static final int CACHE_SIZE_DEFAULT = 20;
     
     /** Represents Action Objects */
-    public static final String NAME = "action";
+    public static final String NAMME = "action";
 
     /**
      * @see org.apache.turbine.modules.Assembler#getPrefix()

Modified: turbine/core/trunk/src/java/org/apache/turbine/modules/ActionLoader.java
URL: http://svn.apache.org/viewvc/turbine/core/trunk/src/java/org/apache/turbine/modules/ActionLoader.java?rev=1199089&r1=1199088&r2=1199089&view=diff
==============================================================================
--- turbine/core/trunk/src/java/org/apache/turbine/modules/ActionLoader.java (original)
+++ turbine/core/trunk/src/java/org/apache/turbine/modules/ActionLoader.java Tue Nov  8 03:14:28 2011
@@ -80,9 +80,7 @@ public class ActionLoader
 
     /**
      * Pulls out an instance of the object by name.  Name is just the
-     * single name of the object. This is equal to getInstance but
-     * returns an Assembler object and is needed to fulfil the Loader
-     * interface.
+     * single name of the object.
      *
      * @param name Name of object instance.
      * @return An Action with the specified name, or null.
@@ -91,7 +89,7 @@ public class ActionLoader
     public Action getAssembler(String name)
         throws Exception
     {
-        return getAssembler(Action.NAME, name);
+        return getAssembler(Action.class, name);
     }
 
     /**

Modified: turbine/core/trunk/src/java/org/apache/turbine/modules/GenericLoader.java
URL: http://svn.apache.org/viewvc/turbine/core/trunk/src/java/org/apache/turbine/modules/GenericLoader.java?rev=1199089&r1=1199088&r2=1199089&view=diff
==============================================================================
--- turbine/core/trunk/src/java/org/apache/turbine/modules/GenericLoader.java (original)
+++ turbine/core/trunk/src/java/org/apache/turbine/modules/GenericLoader.java Tue Nov  8 03:14:28 2011
@@ -168,7 +168,7 @@ public abstract class GenericLoader<T ex
      * @return A Screen with the specified name, or null.
      * @exception Exception a generic exception.
      */
-    protected T getAssembler(String type, String name)
+    protected T getAssembler(Class<T> type, String name)
         throws Exception
     {
         T asm = null;
@@ -178,7 +178,7 @@ public abstract class GenericLoader<T ex
             if (ab != null)
             {
                 // Attempt to load the assembler
-                asm = (T) ab.getAssembler(type, name);
+                asm = ab.getAssembler(type, name);
             }
         }
         catch (ClassCastException cce)

Modified: turbine/core/trunk/src/java/org/apache/turbine/modules/LayoutLoader.java
URL: http://svn.apache.org/viewvc/turbine/core/trunk/src/java/org/apache/turbine/modules/LayoutLoader.java?rev=1199089&r1=1199088&r2=1199089&view=diff
==============================================================================
--- turbine/core/trunk/src/java/org/apache/turbine/modules/LayoutLoader.java (original)
+++ turbine/core/trunk/src/java/org/apache/turbine/modules/LayoutLoader.java Tue Nov  8 03:14:28 2011
@@ -81,9 +81,7 @@ public class LayoutLoader
 
     /**
      * Pulls out an instance of the object by name.  Name is just the
-     * single name of the object. This is equal to getInstance but
-     * returns an Assembler object and is needed to fulfil the Loader
-     * interface.
+     * single name of the object.
      *
      * @param name Name of object instance.
      * @return A Layout with the specified name, or null.
@@ -92,7 +90,7 @@ public class LayoutLoader
     public Layout getAssembler(String name)
         throws Exception
     {
-        return getAssembler(Layout.NAME, name);
+        return getAssembler(Layout.class, name);
     }
 
     /**

Modified: turbine/core/trunk/src/java/org/apache/turbine/modules/NavigationLoader.java
URL: http://svn.apache.org/viewvc/turbine/core/trunk/src/java/org/apache/turbine/modules/NavigationLoader.java?rev=1199089&r1=1199088&r2=1199089&view=diff
==============================================================================
--- turbine/core/trunk/src/java/org/apache/turbine/modules/NavigationLoader.java (original)
+++ turbine/core/trunk/src/java/org/apache/turbine/modules/NavigationLoader.java Tue Nov  8 03:14:28 2011
@@ -120,9 +120,7 @@ public class NavigationLoader
 
     /**
      * Pulls out an instance of the object by name.  Name is just the
-     * single name of the object. This is equal to getInstance but
-     * returns an Assembler object and is needed to fulfil the Loader
-     * interface.
+     * single name of the object.
      *
      * @param name Name of object instance.
      * @return A Layout with the specified name, or null.
@@ -131,7 +129,7 @@ public class NavigationLoader
     public Navigation getAssembler(String name)
         throws Exception
     {
-        return getAssembler(Navigation.NAME, name);
+        return getAssembler(Navigation.class, name);
     }
 
     /**

Modified: turbine/core/trunk/src/java/org/apache/turbine/modules/PageLoader.java
URL: http://svn.apache.org/viewvc/turbine/core/trunk/src/java/org/apache/turbine/modules/PageLoader.java?rev=1199089&r1=1199088&r2=1199089&view=diff
==============================================================================
--- turbine/core/trunk/src/java/org/apache/turbine/modules/PageLoader.java (original)
+++ turbine/core/trunk/src/java/org/apache/turbine/modules/PageLoader.java Tue Nov  8 03:14:28 2011
@@ -79,13 +79,9 @@ public class PageLoader
         getAssembler(name).build(pipelineData);
     }
 
-
-
     /**
      * Pulls out an instance of the object by name.  Name is just the
-     * single name of the object. This is equal to getInstance but
-     * returns an Assembler object and is needed to fulfil the Loader
-     * interface.
+     * single name of the object.
      *
      * @param name Name of object instance.
      * @return A Screen with the specified name, or null.
@@ -94,7 +90,7 @@ public class PageLoader
     public Page getAssembler(String name)
         throws Exception
     {
-        return getAssembler(Page.NAME, name);
+        return getAssembler(Page.class, name);
     }
 
     /**

Modified: turbine/core/trunk/src/java/org/apache/turbine/modules/ScheduledJobLoader.java
URL: http://svn.apache.org/viewvc/turbine/core/trunk/src/java/org/apache/turbine/modules/ScheduledJobLoader.java?rev=1199089&r1=1199088&r2=1199089&view=diff
==============================================================================
--- turbine/core/trunk/src/java/org/apache/turbine/modules/ScheduledJobLoader.java (original)
+++ turbine/core/trunk/src/java/org/apache/turbine/modules/ScheduledJobLoader.java Tue Nov  8 03:14:28 2011
@@ -85,9 +85,7 @@ public class ScheduledJobLoader
 
     /**
      * Pulls out an instance of the object by name.  Name is just the
-     * single name of the object. This is equal to getInstance but
-     * returns an Assembler object and is needed to fulfil the Loader
-     * interface.
+     * single name of the object.
      *
      * @param name Name of object instance.
      * @return A ScheduledJob with the specified name, or null.
@@ -96,7 +94,7 @@ public class ScheduledJobLoader
     public ScheduledJob getAssembler(String name)
         throws Exception
     {
-        return getAssembler(ScheduledJob.NAME, name);
+        return getAssembler(ScheduledJob.class, name);
     }
 
     /**

Modified: turbine/core/trunk/src/java/org/apache/turbine/modules/ScreenLoader.java
URL: http://svn.apache.org/viewvc/turbine/core/trunk/src/java/org/apache/turbine/modules/ScreenLoader.java?rev=1199089&r1=1199088&r2=1199089&view=diff
==============================================================================
--- turbine/core/trunk/src/java/org/apache/turbine/modules/ScreenLoader.java (original)
+++ turbine/core/trunk/src/java/org/apache/turbine/modules/ScreenLoader.java Tue Nov  8 03:14:28 2011
@@ -124,9 +124,7 @@ public class ScreenLoader
 
     /**
      * Pulls out an instance of the object by name.  Name is just the
-     * single name of the object. This is equal to getInstance but
-     * returns an Assembler object and is needed to fulfil the Loader
-     * interface.
+     * single name of the object.
      *
      * @param name Name of object instance.
      * @return A Screen with the specified name, or null.
@@ -135,7 +133,7 @@ public class ScreenLoader
     public Screen getAssembler(String name)
         throws Exception
     {
-        return getAssembler(Screen.NAME, name);
+        return getAssembler(Screen.class, name);
     }
 
     /**

Modified: turbine/core/trunk/src/java/org/apache/turbine/modules/layouts/VelocityOnlyLayout.java
URL: http://svn.apache.org/viewvc/turbine/core/trunk/src/java/org/apache/turbine/modules/layouts/VelocityOnlyLayout.java?rev=1199089&r1=1199088&r2=1199089&view=diff
==============================================================================
--- turbine/core/trunk/src/java/org/apache/turbine/modules/layouts/VelocityOnlyLayout.java (original)
+++ turbine/core/trunk/src/java/org/apache/turbine/modules/layouts/VelocityOnlyLayout.java Tue Nov  8 03:14:28 2011
@@ -74,9 +74,9 @@ public class VelocityOnlyLayout
     private static Log log = LogFactory.getLog(VelocityOnlyLayout.class);
 
     /** The prefix for lookup up layout pages */
-    private String prefix = Layout.PREFIX + "/";
+    private final String prefix = Layout.PREFIX + "/";
 
-    private ScreenLoader screenLoader;
+    private final ScreenLoader screenLoader;
 
     /**
      * Default constructor
@@ -85,7 +85,7 @@ public class VelocityOnlyLayout
     {
         super();
 
-        this.screenLoader = (ScreenLoader)TurbineAssemblerBroker.getLoader(Screen.NAME);
+        this.screenLoader = (ScreenLoader)TurbineAssemblerBroker.getLoader(Screen.class);
     }
 
     /**

Modified: turbine/core/trunk/src/java/org/apache/turbine/modules/layouts/VelocityXslLayout.java
URL: http://svn.apache.org/viewvc/turbine/core/trunk/src/java/org/apache/turbine/modules/layouts/VelocityXslLayout.java?rev=1199089&r1=1199088&r2=1199089&view=diff
==============================================================================
--- turbine/core/trunk/src/java/org/apache/turbine/modules/layouts/VelocityXslLayout.java (original)
+++ turbine/core/trunk/src/java/org/apache/turbine/modules/layouts/VelocityXslLayout.java Tue Nov  8 03:14:28 2011
@@ -63,9 +63,9 @@ public class VelocityXslLayout extends L
     private static Log log = LogFactory.getLog(VelocityXslLayout.class);
 
     /** The prefix for lookup up layout pages */
-    private String prefix = Layout.PREFIX + "/";
+    private final String prefix = Layout.PREFIX + "/";
 
-    private ScreenLoader screenLoader;
+    private final ScreenLoader screenLoader;
 
     /**
      * Default constructor
@@ -74,7 +74,7 @@ public class VelocityXslLayout extends L
     {
         super();
 
-        this.screenLoader = (ScreenLoader)TurbineAssemblerBroker.getLoader(Screen.NAME);
+        this.screenLoader = (ScreenLoader)TurbineAssemblerBroker.getLoader(Screen.class);
     }
 
     /**

Modified: turbine/core/trunk/src/java/org/apache/turbine/modules/pages/DefaultPage.java
URL: http://svn.apache.org/viewvc/turbine/core/trunk/src/java/org/apache/turbine/modules/pages/DefaultPage.java?rev=1199089&r1=1199088&r2=1199089&view=diff
==============================================================================
--- turbine/core/trunk/src/java/org/apache/turbine/modules/pages/DefaultPage.java (original)
+++ turbine/core/trunk/src/java/org/apache/turbine/modules/pages/DefaultPage.java Tue Nov  8 03:14:28 2011
@@ -112,9 +112,9 @@ public class DefaultPage
     {
         super();
 
-        this.actionLoader = (ActionLoader)TurbineAssemblerBroker.getLoader(Action.NAME);
-        this.screenLoader = (ScreenLoader)TurbineAssemblerBroker.getLoader(Screen.NAME);
-        this.layoutLoader = (LayoutLoader)TurbineAssemblerBroker.getLoader(Layout.NAME);
+        this.actionLoader = (ActionLoader)TurbineAssemblerBroker.getLoader(Action.class);
+        this.screenLoader = (ScreenLoader)TurbineAssemblerBroker.getLoader(Screen.class);
+        this.layoutLoader = (LayoutLoader)TurbineAssemblerBroker.getLoader(Layout.class);
     }
 
     /**

Modified: turbine/core/trunk/src/java/org/apache/turbine/modules/screens/TemplateScreen.java
URL: http://svn.apache.org/viewvc/turbine/core/trunk/src/java/org/apache/turbine/modules/screens/TemplateScreen.java?rev=1199089&r1=1199088&r2=1199089&view=diff
==============================================================================
--- turbine/core/trunk/src/java/org/apache/turbine/modules/screens/TemplateScreen.java (original)
+++ turbine/core/trunk/src/java/org/apache/turbine/modules/screens/TemplateScreen.java Tue Nov  8 03:14:28 2011
@@ -21,16 +21,12 @@ package org.apache.turbine.modules.scree
 
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
-
 import org.apache.ecs.ConcreteElement;
-
 import org.apache.turbine.modules.Screen;
 import org.apache.turbine.modules.ScreenLoader;
 import org.apache.turbine.pipeline.PipelineData;
-
 import org.apache.turbine.services.assemblerbroker.TurbineAssemblerBroker;
 import org.apache.turbine.services.template.TurbineTemplate;
-
 import org.apache.turbine.util.RunData;
 
 /**
@@ -56,7 +52,7 @@ public abstract class TemplateScreen
     /** Logging */
     protected Log log = LogFactory.getLog(this.getClass());
 
-    private ScreenLoader screenLoader;
+    private final ScreenLoader screenLoader;
 
     /**
      * Default constructor
@@ -65,7 +61,7 @@ public abstract class TemplateScreen
     {
         super();
 
-        this.screenLoader = (ScreenLoader)TurbineAssemblerBroker.getLoader(NAME);
+        this.screenLoader = (ScreenLoader)TurbineAssemblerBroker.getLoader(Screen.class);
     }
 
     /**

Modified: turbine/core/trunk/src/java/org/apache/turbine/pipeline/DefaultACLCreationValve.java
URL: http://svn.apache.org/viewvc/turbine/core/trunk/src/java/org/apache/turbine/pipeline/DefaultACLCreationValve.java?rev=1199089&r1=1199088&r2=1199089&view=diff
==============================================================================
--- turbine/core/trunk/src/java/org/apache/turbine/pipeline/DefaultACLCreationValve.java (original)
+++ turbine/core/trunk/src/java/org/apache/turbine/pipeline/DefaultACLCreationValve.java Tue Nov  8 03:14:28 2011
@@ -28,6 +28,7 @@ import org.apache.turbine.TurbineConstan
 import org.apache.turbine.modules.Action;
 import org.apache.turbine.modules.ActionLoader;
 import org.apache.turbine.services.assemblerbroker.TurbineAssemblerBroker;
+import org.apache.turbine.util.RunData;
 import org.apache.turbine.util.TurbineException;
 
 /**
@@ -53,17 +54,17 @@ public class DefaultACLCreationValve
     {
         // empty constructor
     }
-    
+
     /**
      * Initialize this valve for use in a pipeline.
-     * 
+     *
      * @see org.apache.turbine.pipeline.AbstractValve#initialize()
      */
     public void initialize() throws Exception
     {
         super.initialize();
-        
-        this.actionLoader = (ActionLoader)TurbineAssemblerBroker.getLoader(Action.NAME);
+
+        this.actionLoader = (ActionLoader)TurbineAssemblerBroker.getLoader(Action.class);
     }
 
     /**

Modified: turbine/core/trunk/src/java/org/apache/turbine/pipeline/DefaultLoginValve.java
URL: http://svn.apache.org/viewvc/turbine/core/trunk/src/java/org/apache/turbine/pipeline/DefaultLoginValve.java?rev=1199089&r1=1199088&r2=1199089&view=diff
==============================================================================
--- turbine/core/trunk/src/java/org/apache/turbine/pipeline/DefaultLoginValve.java (original)
+++ turbine/core/trunk/src/java/org/apache/turbine/pipeline/DefaultLoginValve.java Tue Nov  8 03:14:28 2011
@@ -73,7 +73,7 @@ public class DefaultLoginValve
     {
         super.initialize();
 
-        this.actionLoader = (ActionLoader)TurbineAssemblerBroker.getLoader(Action.NAME);
+        this.actionLoader = (ActionLoader)TurbineAssemblerBroker.getLoader(Action.class);
     }
 
     /**

Modified: turbine/core/trunk/src/java/org/apache/turbine/pipeline/DefaultSessionValidationValve.java
URL: http://svn.apache.org/viewvc/turbine/core/trunk/src/java/org/apache/turbine/pipeline/DefaultSessionValidationValve.java?rev=1199089&r1=1199088&r2=1199089&view=diff
==============================================================================
--- turbine/core/trunk/src/java/org/apache/turbine/pipeline/DefaultSessionValidationValve.java (original)
+++ turbine/core/trunk/src/java/org/apache/turbine/pipeline/DefaultSessionValidationValve.java Tue Nov  8 03:14:28 2011
@@ -28,6 +28,7 @@ import org.apache.turbine.TurbineConstan
 import org.apache.turbine.modules.Action;
 import org.apache.turbine.modules.ActionLoader;
 import org.apache.turbine.services.assemblerbroker.TurbineAssemblerBroker;
+import org.apache.turbine.util.RunData;
 import org.apache.turbine.util.TurbineException;
 
 /**
@@ -51,14 +52,14 @@ public class DefaultSessionValidationVal
 
     /**
      * Initialize this valve for use in a pipeline.
-     * 
+     *
      * @see org.apache.turbine.pipeline.AbstractValve#initialize()
      */
     public void initialize() throws Exception
     {
         super.initialize();
-        
-        this.actionLoader = (ActionLoader)TurbineAssemblerBroker.getLoader(Action.NAME);
+
+        this.actionLoader = (ActionLoader)TurbineAssemblerBroker.getLoader(Action.class);
     }
 
     /**

Modified: turbine/core/trunk/src/java/org/apache/turbine/pipeline/ExecutePageValve.java
URL: http://svn.apache.org/viewvc/turbine/core/trunk/src/java/org/apache/turbine/pipeline/ExecutePageValve.java?rev=1199089&r1=1199088&r2=1199089&view=diff
==============================================================================
--- turbine/core/trunk/src/java/org/apache/turbine/pipeline/ExecutePageValve.java (original)
+++ turbine/core/trunk/src/java/org/apache/turbine/pipeline/ExecutePageValve.java Tue Nov  8 03:14:28 2011
@@ -46,7 +46,7 @@ public class ExecutePageValve
 {
     private TemplateService templateService;
     private PageLoader pageLoader;
-    
+
     /**
      * Creates a new instance.
      */
@@ -54,18 +54,18 @@ public class ExecutePageValve
     {
         // empty constructor
     }
-    
+
     /**
      * Initialize this valve for use in a pipeline.
-     * 
+     *
      * @see org.apache.turbine.pipeline.AbstractValve#initialize()
      */
     public void initialize() throws Exception
     {
         super.initialize();
-        
+
         this.templateService = TurbineTemplate.getService();
-        this.pageLoader = (PageLoader)TurbineAssemblerBroker.getLoader(Page.NAME);
+        this.pageLoader = (PageLoader)TurbineAssemblerBroker.getLoader(Page.class);
     }
 
     /**

Modified: turbine/core/trunk/src/java/org/apache/turbine/services/assemblerbroker/AssemblerBrokerService.java
URL: http://svn.apache.org/viewvc/turbine/core/trunk/src/java/org/apache/turbine/services/assemblerbroker/AssemblerBrokerService.java?rev=1199089&r1=1199088&r2=1199089&view=diff
==============================================================================
--- turbine/core/trunk/src/java/org/apache/turbine/services/assemblerbroker/AssemblerBrokerService.java (original)
+++ turbine/core/trunk/src/java/org/apache/turbine/services/assemblerbroker/AssemblerBrokerService.java Tue Nov  8 03:14:28 2011
@@ -42,12 +42,11 @@ public interface AssemblerBrokerService
     String SERVICE_NAME = "AssemblerBrokerService";
 
     /**
-     * Register an AssemblerFactory class for a given type
+     * Register an AssemblerFactory class
      *
-     * @param type Type of the Factory
      * @param factory The factory object
      */
-    void registerFactory(String type, AssemblerFactory<? extends Assembler> factory);
+    <T extends Assembler> void registerFactory(AssemblerFactory<T> factory);
 
     /**
      * Attempts to load an Assembler of a type with a given name
@@ -58,7 +57,7 @@ public interface AssemblerBrokerService
      *
      * @throws TurbineException Something went wrong while looking for the Assembler
      */
-    Assembler getAssembler(String type, String name) throws TurbineException;
+    <T extends Assembler> T getAssembler(Class<T> type, String name) throws TurbineException;
 
     /**
      * Get a Loader for the given assembler type
@@ -66,5 +65,5 @@ public interface AssemblerBrokerService
      * @param type The Type of the Assembler
      * @return A Loader instance for the requested type
      */
-    Loader<? extends Assembler> getLoader(String type);
+    <T extends Assembler> Loader<T> getLoader(Class<T> type);
 }

Modified: turbine/core/trunk/src/java/org/apache/turbine/services/assemblerbroker/TurbineAssemblerBroker.java
URL: http://svn.apache.org/viewvc/turbine/core/trunk/src/java/org/apache/turbine/services/assemblerbroker/TurbineAssemblerBroker.java?rev=1199089&r1=1199088&r2=1199089&view=diff
==============================================================================
--- turbine/core/trunk/src/java/org/apache/turbine/services/assemblerbroker/TurbineAssemblerBroker.java (original)
+++ turbine/core/trunk/src/java/org/apache/turbine/services/assemblerbroker/TurbineAssemblerBroker.java Tue Nov  8 03:14:28 2011
@@ -52,12 +52,11 @@ public abstract class TurbineAssemblerBr
     /**
      * Register a new Assembler factory with this service.
      *
-     * @param type The type of Assembler Factory
      * @param factory The actual Factory Object
      */
-    public static void registerFactory(String type, AssemblerFactory<? extends Assembler> factory)
+    public static <T extends Assembler> void registerFactory(AssemblerFactory<T> factory)
     {
-        getService().registerFactory(type, factory);
+        getService().registerFactory(factory);
     }
 
     /**
@@ -68,9 +67,9 @@ public abstract class TurbineAssemblerBr
      *
      * @return An Assembler Object.
      *
-     * @throws TurbineException If a problem locating the Assembler occured.
+     * @throws TurbineException If a problem locating the Assembler occurred.
      */
-    public static Assembler getAssembler(String type, String name)
+    public static <T extends Assembler> T getAssembler(Class<T> type, String name)
         throws TurbineException
     {
         return getService().getAssembler(type, name);
@@ -82,7 +81,7 @@ public abstract class TurbineAssemblerBr
      * @param type The Type of the Assembler
      * @return A Loader instance for the requested type
      */
-    public static Loader<? extends Assembler> getLoader(String type)
+    public static <T extends Assembler> Loader<T> getLoader(Class<T> type)
     {
         return getService().getLoader(type);
     }

Modified: turbine/core/trunk/src/java/org/apache/turbine/services/assemblerbroker/TurbineAssemblerBrokerService.java
URL: http://svn.apache.org/viewvc/turbine/core/trunk/src/java/org/apache/turbine/services/assemblerbroker/TurbineAssemblerBrokerService.java?rev=1199089&r1=1199088&r2=1199089&view=diff
==============================================================================
--- turbine/core/trunk/src/java/org/apache/turbine/services/assemblerbroker/TurbineAssemblerBrokerService.java (original)
+++ turbine/core/trunk/src/java/org/apache/turbine/services/assemblerbroker/TurbineAssemblerBrokerService.java Tue Nov  8 03:14:28 2011
@@ -21,11 +21,11 @@ package org.apache.turbine.services.asse
  */
 
 
+import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
-import java.util.Vector;
 
 import org.apache.commons.collections.map.LRUMap;
 import org.apache.commons.configuration.Configuration;
@@ -59,13 +59,13 @@ public class TurbineAssemblerBrokerServi
             = LogFactory.getLog(TurbineAssemblerBrokerService.class);
 
     /** A structure that holds the registered AssemblerFactories */
-    private Map<String, List<AssemblerFactory<? extends Assembler>>> factories = null;
+    private Map<Class<?>, List<?>> factories = null;
 
     /** A cache that holds the generated Assemblers */
     private Map<String, Assembler> assemblerCache = null;
 
     /** A cache that holds the Loaders */
-    private Map<String, Loader<? extends Assembler>> loaderCache = null;
+    private Map<Class<?>, Loader<? extends Assembler>> loaderCache = null;
 
     /** Caching on/off */
     private boolean isCaching;
@@ -76,13 +76,14 @@ public class TurbineAssemblerBrokerServi
      * @param type type of Assembler
      * @return list of AssemblerFactories
      */
-    private List<AssemblerFactory<? extends Assembler>> getFactoryGroup(String type)
+    @SuppressWarnings("unchecked")
+    private <T extends Assembler> List<AssemblerFactory<T>> getFactoryGroup(Class<T> type)
     {
         if (!factories.containsKey(type))
         {
-            factories.put(type, new Vector<AssemblerFactory<? extends Assembler>>());
+            factories.put(type, new ArrayList<AssemblerFactory<T>>());
         }
-        return factories.get(type);
+        return (List<AssemblerFactory<T>>) factories.get(type);
     }
 
     /**
@@ -103,8 +104,10 @@ public class TurbineAssemblerBrokerServi
             String factory = (String) it.next();
             try
             {
-                Object o = Class.forName(factory).newInstance();
-                registerFactory(type, (AssemblerFactory<? extends Assembler>) o);
+                @SuppressWarnings("unchecked")
+                AssemblerFactory<? extends Assembler> af =
+                    (AssemblerFactory<? extends Assembler>) Class.forName(factory).newInstance();
+                registerFactory(af);
             }
             // these must be passed to the VM
             catch (ThreadDeath e)
@@ -136,7 +139,7 @@ public class TurbineAssemblerBrokerServi
     public void init()
         throws InitializationException
     {
-        factories = new HashMap<String, List<AssemblerFactory<? extends Assembler>>>();
+        factories = new HashMap<Class<?>, List<?>>();
 
         try
         {
@@ -176,14 +179,13 @@ public class TurbineAssemblerBrokerServi
     }
 
     /**
-     * Register a new AssemblerFactory under a certain type
+     * Register a new AssemblerFactory
      *
-     * @param type type of Assembler
      * @param factory factory to register
      */
-    public void registerFactory(String type, AssemblerFactory<? extends Assembler> factory)
+    public <T extends Assembler> void registerFactory(AssemblerFactory<T> factory)
     {
-        getFactoryGroup(type).add(factory);
+        getFactoryGroup(factory.getManagedClass()).add(factory);
     }
 
     /**
@@ -197,25 +199,26 @@ public class TurbineAssemblerBrokerServi
      * @return an Assembler or null
      * @throws TurbineException
      */
-    public Assembler getAssembler(String type, String name)
+    @SuppressWarnings("unchecked")
+    public <T extends Assembler> T getAssembler(Class<T> type, String name)
         throws TurbineException
     {
         String key = type + ":" + name;
-        Assembler assembler = null;
+        T assembler = null;
 
         if (isCaching && assemblerCache.containsKey(key))
         {
-            assembler = assemblerCache.get(key);
+            assembler = (T) assemblerCache.get(key);
             log.debug("Found " + key + " in the cache!");
         }
         else
         {
             log.debug("Loading " + key);
-            List<AssemblerFactory<? extends Assembler>> facs = getFactoryGroup(type);
+            List<AssemblerFactory<T>> facs = getFactoryGroup(type);
 
-            for (Iterator<AssemblerFactory<? extends Assembler>> it = facs.iterator(); (assembler == null) && it.hasNext();)
+            for (Iterator<AssemblerFactory<T>> it = facs.iterator(); (assembler == null) && it.hasNext();)
             {
-                AssemblerFactory<? extends Assembler> fac = it.next();
+                AssemblerFactory<T> fac = it.next();
 
                 try
                 {
@@ -245,23 +248,24 @@ public class TurbineAssemblerBrokerServi
      * @param type The Type of the Assembler
      * @return A Loader instance for the requested type
      */
-    public Loader<? extends Assembler> getLoader(String type)
+    @SuppressWarnings("unchecked")
+    public <T extends Assembler> Loader<T> getLoader(Class<T> type)
     {
-        Loader<? extends Assembler> loader = null;
+        Loader<T> loader = null;
 
         if (isCaching && loaderCache.containsKey(type))
         {
-            loader = loaderCache.get(type);
+            loader = (Loader<T>) loaderCache.get(type);
             log.debug("Found " + type + " loader in the cache!");
         }
         else
         {
             log.debug("Getting Loader for " + type);
-            List<AssemblerFactory<? extends Assembler>> facs = getFactoryGroup(type);
+            List<AssemblerFactory<T>> facs = getFactoryGroup(type);
 
-            for (Iterator<AssemblerFactory<? extends Assembler>> it = facs.iterator(); (loader == null) && it.hasNext();)
+            for (Iterator<AssemblerFactory<T>> it = facs.iterator(); (loader == null) && it.hasNext();)
             {
-                AssemblerFactory<? extends Assembler> fac = it.next();
+                AssemblerFactory<T> fac = it.next();
                 loader = fac.getLoader();
             }
 

Modified: turbine/core/trunk/src/java/org/apache/turbine/services/assemblerbroker/util/AssemblerFactory.java
URL: http://svn.apache.org/viewvc/turbine/core/trunk/src/java/org/apache/turbine/services/assemblerbroker/util/AssemblerFactory.java?rev=1199089&r1=1199088&r2=1199089&view=diff
==============================================================================
--- turbine/core/trunk/src/java/org/apache/turbine/services/assemblerbroker/util/AssemblerFactory.java (original)
+++ turbine/core/trunk/src/java/org/apache/turbine/services/assemblerbroker/util/AssemblerFactory.java Tue Nov  8 03:14:28 2011
@@ -38,4 +38,11 @@ public interface AssemblerFactory<T exte
      * @return a Loader
      */
     Loader<T> getLoader();
+
+    /**
+     * Get the class of this assembler
+     *
+     * @return a class
+     */
+    Class<T> getManagedClass();
 }

Modified: turbine/core/trunk/src/java/org/apache/turbine/services/assemblerbroker/util/java/JavaActionFactory.java
URL: http://svn.apache.org/viewvc/turbine/core/trunk/src/java/org/apache/turbine/services/assemblerbroker/util/java/JavaActionFactory.java?rev=1199089&r1=1199088&r2=1199089&view=diff
==============================================================================
--- turbine/core/trunk/src/java/org/apache/turbine/services/assemblerbroker/util/java/JavaActionFactory.java (original)
+++ turbine/core/trunk/src/java/org/apache/turbine/services/assemblerbroker/util/java/JavaActionFactory.java Tue Nov  8 03:14:28 2011
@@ -56,4 +56,14 @@ public class JavaActionFactory
     {
         return ActionLoader.getInstance();
     }
+
+    /**
+     * Get the class of this assembler
+     *
+     * @return a class
+     */
+    public Class<Action> getManagedClass()
+    {
+        return Action.class;
+    }
 }

Modified: turbine/core/trunk/src/java/org/apache/turbine/services/assemblerbroker/util/java/JavaLayoutFactory.java
URL: http://svn.apache.org/viewvc/turbine/core/trunk/src/java/org/apache/turbine/services/assemblerbroker/util/java/JavaLayoutFactory.java?rev=1199089&r1=1199088&r2=1199089&view=diff
==============================================================================
--- turbine/core/trunk/src/java/org/apache/turbine/services/assemblerbroker/util/java/JavaLayoutFactory.java (original)
+++ turbine/core/trunk/src/java/org/apache/turbine/services/assemblerbroker/util/java/JavaLayoutFactory.java Tue Nov  8 03:14:28 2011
@@ -57,4 +57,14 @@ public class JavaLayoutFactory
     {
         return LayoutLoader.getInstance();
     }
+
+    /**
+     * Get the class of this assembler
+     *
+     * @return a class
+     */
+    public Class<Layout> getManagedClass()
+    {
+        return Layout.class;
+    }
 }

Modified: turbine/core/trunk/src/java/org/apache/turbine/services/assemblerbroker/util/java/JavaNavigationFactory.java
URL: http://svn.apache.org/viewvc/turbine/core/trunk/src/java/org/apache/turbine/services/assemblerbroker/util/java/JavaNavigationFactory.java?rev=1199089&r1=1199088&r2=1199089&view=diff
==============================================================================
--- turbine/core/trunk/src/java/org/apache/turbine/services/assemblerbroker/util/java/JavaNavigationFactory.java (original)
+++ turbine/core/trunk/src/java/org/apache/turbine/services/assemblerbroker/util/java/JavaNavigationFactory.java Tue Nov  8 03:14:28 2011
@@ -57,4 +57,14 @@ public class JavaNavigationFactory
     {
         return NavigationLoader.getInstance();
     }
+
+    /**
+     * Get the class of this assembler
+     *
+     * @return a class
+     */
+    public Class<Navigation> getManagedClass()
+    {
+        return Navigation.class;
+    }
 }

Modified: turbine/core/trunk/src/java/org/apache/turbine/services/assemblerbroker/util/java/JavaPageFactory.java
URL: http://svn.apache.org/viewvc/turbine/core/trunk/src/java/org/apache/turbine/services/assemblerbroker/util/java/JavaPageFactory.java?rev=1199089&r1=1199088&r2=1199089&view=diff
==============================================================================
--- turbine/core/trunk/src/java/org/apache/turbine/services/assemblerbroker/util/java/JavaPageFactory.java (original)
+++ turbine/core/trunk/src/java/org/apache/turbine/services/assemblerbroker/util/java/JavaPageFactory.java Tue Nov  8 03:14:28 2011
@@ -57,4 +57,14 @@ public class JavaPageFactory
     {
         return PageLoader.getInstance();
     }
+
+    /**
+     * Get the class of this assembler
+     *
+     * @return a class
+     */
+    public Class<Page> getManagedClass()
+    {
+        return Page.class;
+    }
 }

Modified: turbine/core/trunk/src/java/org/apache/turbine/services/assemblerbroker/util/java/JavaScheduledJobFactory.java
URL: http://svn.apache.org/viewvc/turbine/core/trunk/src/java/org/apache/turbine/services/assemblerbroker/util/java/JavaScheduledJobFactory.java?rev=1199089&r1=1199088&r2=1199089&view=diff
==============================================================================
--- turbine/core/trunk/src/java/org/apache/turbine/services/assemblerbroker/util/java/JavaScheduledJobFactory.java (original)
+++ turbine/core/trunk/src/java/org/apache/turbine/services/assemblerbroker/util/java/JavaScheduledJobFactory.java Tue Nov  8 03:14:28 2011
@@ -57,4 +57,14 @@ public class JavaScheduledJobFactory
     {
         return ScheduledJobLoader.getInstance();
     }
+
+    /**
+     * Get the class of this assembler
+     *
+     * @return a class
+     */
+    public Class<ScheduledJob> getManagedClass()
+    {
+        return ScheduledJob.class;
+    }
 }

Modified: turbine/core/trunk/src/java/org/apache/turbine/services/assemblerbroker/util/java/JavaScreenFactory.java
URL: http://svn.apache.org/viewvc/turbine/core/trunk/src/java/org/apache/turbine/services/assemblerbroker/util/java/JavaScreenFactory.java?rev=1199089&r1=1199088&r2=1199089&view=diff
==============================================================================
--- turbine/core/trunk/src/java/org/apache/turbine/services/assemblerbroker/util/java/JavaScreenFactory.java (original)
+++ turbine/core/trunk/src/java/org/apache/turbine/services/assemblerbroker/util/java/JavaScreenFactory.java Tue Nov  8 03:14:28 2011
@@ -57,4 +57,14 @@ public class JavaScreenFactory
     {
         return ScreenLoader.getInstance();
     }
+
+    /**
+     * Get the class of this assembler
+     *
+     * @return a class
+     */
+    public Class<Screen> getManagedClass()
+    {
+        return Screen.class;
+    }
 }

Modified: turbine/core/trunk/src/java/org/apache/turbine/services/assemblerbroker/util/python/PythonActionFactory.java
URL: http://svn.apache.org/viewvc/turbine/core/trunk/src/java/org/apache/turbine/services/assemblerbroker/util/python/PythonActionFactory.java?rev=1199089&r1=1199088&r2=1199089&view=diff
==============================================================================
--- turbine/core/trunk/src/java/org/apache/turbine/services/assemblerbroker/util/python/PythonActionFactory.java (original)
+++ turbine/core/trunk/src/java/org/apache/turbine/services/assemblerbroker/util/python/PythonActionFactory.java Tue Nov  8 03:14:28 2011
@@ -60,4 +60,14 @@ public class PythonActionFactory
     {
         return ActionLoader.getInstance();
     }
+
+    /**
+     * Get the class of this assembler
+     *
+     * @return a class
+     */
+    public Class<Action> getManagedClass()
+    {
+        return Action.class;
+    }
 }

Modified: turbine/core/trunk/src/java/org/apache/turbine/services/assemblerbroker/util/python/PythonLayoutFactory.java
URL: http://svn.apache.org/viewvc/turbine/core/trunk/src/java/org/apache/turbine/services/assemblerbroker/util/python/PythonLayoutFactory.java?rev=1199089&r1=1199088&r2=1199089&view=diff
==============================================================================
--- turbine/core/trunk/src/java/org/apache/turbine/services/assemblerbroker/util/python/PythonLayoutFactory.java (original)
+++ turbine/core/trunk/src/java/org/apache/turbine/services/assemblerbroker/util/python/PythonLayoutFactory.java Tue Nov  8 03:14:28 2011
@@ -61,4 +61,14 @@ public class PythonLayoutFactory
     {
         return LayoutLoader.getInstance();
     }
+
+    /**
+     * Get the class of this assembler
+     *
+     * @return a class
+     */
+    public Class<Layout> getManagedClass()
+    {
+        return Layout.class;
+    }
 }

Modified: turbine/core/trunk/src/java/org/apache/turbine/services/assemblerbroker/util/python/PythonNavigationFactory.java
URL: http://svn.apache.org/viewvc/turbine/core/trunk/src/java/org/apache/turbine/services/assemblerbroker/util/python/PythonNavigationFactory.java?rev=1199089&r1=1199088&r2=1199089&view=diff
==============================================================================
--- turbine/core/trunk/src/java/org/apache/turbine/services/assemblerbroker/util/python/PythonNavigationFactory.java (original)
+++ turbine/core/trunk/src/java/org/apache/turbine/services/assemblerbroker/util/python/PythonNavigationFactory.java Tue Nov  8 03:14:28 2011
@@ -61,4 +61,14 @@ public class PythonNavigationFactory
     {
         return NavigationLoader.getInstance();
     }
+
+    /**
+     * Get the class of this assembler
+     *
+     * @return a class
+     */
+    public Class<Navigation> getManagedClass()
+    {
+        return Navigation.class;
+    }
 }

Modified: turbine/core/trunk/src/java/org/apache/turbine/services/assemblerbroker/util/python/PythonPageFactory.java
URL: http://svn.apache.org/viewvc/turbine/core/trunk/src/java/org/apache/turbine/services/assemblerbroker/util/python/PythonPageFactory.java?rev=1199089&r1=1199088&r2=1199089&view=diff
==============================================================================
--- turbine/core/trunk/src/java/org/apache/turbine/services/assemblerbroker/util/python/PythonPageFactory.java (original)
+++ turbine/core/trunk/src/java/org/apache/turbine/services/assemblerbroker/util/python/PythonPageFactory.java Tue Nov  8 03:14:28 2011
@@ -61,4 +61,14 @@ public class PythonPageFactory
     {
         return PageLoader.getInstance();
     }
+
+    /**
+     * Get the class of this assembler
+     *
+     * @return a class
+     */
+    public Class<Page> getManagedClass()
+    {
+        return Page.class;
+    }
 }

Modified: turbine/core/trunk/src/java/org/apache/turbine/services/assemblerbroker/util/python/PythonScreenFactory.java
URL: http://svn.apache.org/viewvc/turbine/core/trunk/src/java/org/apache/turbine/services/assemblerbroker/util/python/PythonScreenFactory.java?rev=1199089&r1=1199088&r2=1199089&view=diff
==============================================================================
--- turbine/core/trunk/src/java/org/apache/turbine/services/assemblerbroker/util/python/PythonScreenFactory.java (original)
+++ turbine/core/trunk/src/java/org/apache/turbine/services/assemblerbroker/util/python/PythonScreenFactory.java Tue Nov  8 03:14:28 2011
@@ -61,4 +61,14 @@ public class PythonScreenFactory
     {
         return ScreenLoader.getInstance();
     }
+
+    /**
+     * Get the class of this assembler
+     *
+     * @return a class
+     */
+    public Class<Screen> getManagedClass()
+    {
+        return Screen.class;
+    }
 }

Modified: turbine/core/trunk/src/java/org/apache/turbine/services/jsp/util/JspScreenPlaceholder.java
URL: http://svn.apache.org/viewvc/turbine/core/trunk/src/java/org/apache/turbine/services/jsp/util/JspScreenPlaceholder.java?rev=1199089&r1=1199088&r2=1199089&view=diff
==============================================================================
--- turbine/core/trunk/src/java/org/apache/turbine/services/jsp/util/JspScreenPlaceholder.java (original)
+++ turbine/core/trunk/src/java/org/apache/turbine/services/jsp/util/JspScreenPlaceholder.java Tue Nov  8 03:14:28 2011
@@ -50,9 +50,9 @@ public class JspScreenPlaceholder
     private static Log log = LogFactory.getLog(JspNavigation.class);
 
     /* The RunData object */
-    private RunData data;
+    private final RunData data;
 
-    private ScreenLoader screenLoader;
+    private final ScreenLoader screenLoader;
 
     /**
      * Constructor
@@ -62,7 +62,7 @@ public class JspScreenPlaceholder
     public JspScreenPlaceholder(RunData data)
     {
         this.data = data;
-        this.screenLoader = (ScreenLoader)TurbineAssemblerBroker.getLoader(Screen.NAME);
+        this.screenLoader = (ScreenLoader)TurbineAssemblerBroker.getLoader(Screen.class);
     }
 
     /**

Modified: turbine/core/trunk/src/java/org/apache/turbine/services/template/TurbineTemplateService.java
URL: http://svn.apache.org/viewvc/turbine/core/trunk/src/java/org/apache/turbine/services/template/TurbineTemplateService.java?rev=1199089&r1=1199088&r2=1199089&view=diff
==============================================================================
--- turbine/core/trunk/src/java/org/apache/turbine/services/template/TurbineTemplateService.java (original)
+++ turbine/core/trunk/src/java/org/apache/turbine/services/template/TurbineTemplateService.java Tue Nov  8 03:14:28 2011
@@ -674,8 +674,9 @@ public class TurbineTemplateService
      * the Template Service.
      *
      * @param conf The current configuration object.
-     * @throws InitializationException A problem occured trying to set up the mappers.
+     * @throws InitializationException A problem occurred trying to set up the mappers.
      */
+    @SuppressWarnings("unchecked")
     private void initMapper(Configuration conf)
             throws InitializationException
     {
@@ -690,9 +691,9 @@ public class TurbineTemplateService
             LAYOUT_TEMPLATE_NAME, SCREEN_TEMPLATE_NAME, NAVIGATION_TEMPLATE_NAME
         };
 
-        String [] mapperKeys = new String [] {
-            Page.NAME, Screen.NAME, Layout.NAME, Navigation.NAME,
-            Layout.NAME, Screen.NAME, Navigation.NAME
+        Class<?> [] mapperKeys = new Class<?> [] {
+            Page.class, Screen.class, Layout.class, Navigation.class,
+            Layout.class, Screen.class, Navigation.class
         };
 
         String [] mapperClasses = new String [] {
@@ -713,11 +714,11 @@ public class TurbineTemplateService
 
         for (int i = 0; i < mapperKeys.length; i++)
         {
-            mapperLoader[i] = ab.getLoader(mapperKeys[i]);
+            mapperLoader[i] = ab.getLoader((Class<? extends Assembler>)mapperKeys[i]);
             mapperCacheSize[i] = (mapperLoader[i] != null) ? mapperLoader[i].getCacheSize() : 0;
         }
 
-        // HACK: to achieve the same behaviour as before
+        // HACK: to achieve the same behavior as before
         mapperLoader[LAYOUT_TEMPLATE_KEY] = null;
         mapperLoader[SCREEN_TEMPLATE_KEY] = null;
         mapperLoader[NAVIGATION_TEMPLATE_KEY] = null;

Modified: turbine/core/trunk/src/java/org/apache/turbine/util/template/TemplateScreen.java
URL: http://svn.apache.org/viewvc/turbine/core/trunk/src/java/org/apache/turbine/util/template/TemplateScreen.java?rev=1199089&r1=1199088&r2=1199089&view=diff
==============================================================================
--- turbine/core/trunk/src/java/org/apache/turbine/util/template/TemplateScreen.java (original)
+++ turbine/core/trunk/src/java/org/apache/turbine/util/template/TemplateScreen.java Tue Nov  8 03:14:28 2011
@@ -54,12 +54,12 @@ public class TemplateScreen
     private static Log log = LogFactory.getLog(TemplateScreen.class);
 
     /* The RunData object. */
-    private RunData data;
+    private final RunData data;
 
     /* The name of the screen template. */
     private String screen;
 
-    private ScreenLoader screenLoader;
+    private final ScreenLoader screenLoader;
 
     /**
      * Constructor
@@ -70,7 +70,7 @@ public class TemplateScreen
     {
         this.data = data;
         this.screen = data.getScreen();
-        this.screenLoader = (ScreenLoader)TurbineAssemblerBroker.getLoader(Screen.NAME);
+        this.screenLoader = (ScreenLoader)TurbineAssemblerBroker.getLoader(Screen.class);
     }
 
     /**