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 2019/03/04 20:41:39 UTC

svn commit: r1854797 - in /turbine/core/trunk/src: java/org/apache/turbine/modules/ java/org/apache/turbine/modules/actions/ java/org/apache/turbine/modules/actions/sessionvalidator/ java/org/apache/turbine/modules/layouts/ java/org/apache/turbine/modu...

Author: tv
Date: Mon Mar  4 20:41:39 2019
New Revision: 1854797

URL: http://svn.apache.org/viewvc?rev=1854797&view=rev
Log:
I guess we will need RunData for quite some time

Added:
    turbine/core/trunk/src/java/org/apache/turbine/modules/layouts/VelocityLayout.java   (with props)
Removed:
    turbine/core/trunk/src/java/org/apache/turbine/pipeline/AbstractValve.java
Modified:
    turbine/core/trunk/src/java/org/apache/turbine/modules/Assembler.java
    turbine/core/trunk/src/java/org/apache/turbine/modules/Screen.java
    turbine/core/trunk/src/java/org/apache/turbine/modules/actions/AccessController.java
    turbine/core/trunk/src/java/org/apache/turbine/modules/actions/DefaultAction.java
    turbine/core/trunk/src/java/org/apache/turbine/modules/actions/InitContextsAction.java
    turbine/core/trunk/src/java/org/apache/turbine/modules/actions/LegacyVelocityAction.java
    turbine/core/trunk/src/java/org/apache/turbine/modules/actions/LegacyVelocitySecureAction.java
    turbine/core/trunk/src/java/org/apache/turbine/modules/actions/LoginUser.java
    turbine/core/trunk/src/java/org/apache/turbine/modules/actions/LogoutUser.java
    turbine/core/trunk/src/java/org/apache/turbine/modules/actions/sessionvalidator/DefaultSessionValidator.java
    turbine/core/trunk/src/java/org/apache/turbine/modules/actions/sessionvalidator/TemplateSecureSessionValidator.java
    turbine/core/trunk/src/java/org/apache/turbine/modules/actions/sessionvalidator/TemplateSessionValidator.java
    turbine/core/trunk/src/java/org/apache/turbine/modules/layouts/DirectResponseLayout.java
    turbine/core/trunk/src/java/org/apache/turbine/modules/layouts/JspLayout.java
    turbine/core/trunk/src/java/org/apache/turbine/modules/layouts/VelocityCachedLayout.java
    turbine/core/trunk/src/java/org/apache/turbine/modules/layouts/VelocityDirectLayout.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/navigations/BaseJspNavigation.java
    turbine/core/trunk/src/java/org/apache/turbine/modules/navigations/LegacyVelocityNavigation.java
    turbine/core/trunk/src/java/org/apache/turbine/modules/navigations/VelocityNavigation.java
    turbine/core/trunk/src/java/org/apache/turbine/modules/pages/DefaultPage.java
    turbine/core/trunk/src/java/org/apache/turbine/modules/pages/TemplatePage.java
    turbine/core/trunk/src/java/org/apache/turbine/modules/pages/VelocityPage.java
    turbine/core/trunk/src/java/org/apache/turbine/modules/screens/BaseJspScreen.java
    turbine/core/trunk/src/java/org/apache/turbine/modules/screens/JSONScreen.java
    turbine/core/trunk/src/java/org/apache/turbine/modules/screens/LegacyVelocityScreen.java
    turbine/core/trunk/src/java/org/apache/turbine/modules/screens/LegacyVelocitySecureScreen.java
    turbine/core/trunk/src/java/org/apache/turbine/modules/screens/PlainJSONScreen.java
    turbine/core/trunk/src/java/org/apache/turbine/modules/screens/PlainJSONSecureAnnotatedScreen.java
    turbine/core/trunk/src/java/org/apache/turbine/modules/screens/RawScreen.java
    turbine/core/trunk/src/java/org/apache/turbine/modules/screens/VelocityCachedScreen.java
    turbine/core/trunk/src/java/org/apache/turbine/modules/screens/VelocityDirectScreen.java
    turbine/core/trunk/src/java/org/apache/turbine/modules/screens/VelocityErrorScreen.java
    turbine/core/trunk/src/java/org/apache/turbine/modules/screens/VelocityScreen.java
    turbine/core/trunk/src/java/org/apache/turbine/modules/screens/error/InvalidState.java
    turbine/core/trunk/src/java/org/apache/turbine/pipeline/CleanUpValve.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/DefaultSessionTimeoutValve.java
    turbine/core/trunk/src/java/org/apache/turbine/pipeline/DefaultSessionValidationValve.java
    turbine/core/trunk/src/java/org/apache/turbine/pipeline/DefaultSetEncodingValve.java
    turbine/core/trunk/src/java/org/apache/turbine/pipeline/DetermineActionValve.java
    turbine/core/trunk/src/java/org/apache/turbine/pipeline/DetermineRedirectRequestedValve.java
    turbine/core/trunk/src/java/org/apache/turbine/pipeline/DetermineTargetValve.java
    turbine/core/trunk/src/java/org/apache/turbine/pipeline/ExecutePageValve.java
    turbine/core/trunk/src/java/org/apache/turbine/pipeline/PipelineData.java
    turbine/core/trunk/src/java/org/apache/turbine/pipeline/Valve.java
    turbine/core/trunk/src/java/org/apache/turbine/services/pull/TurbinePullService.java
    turbine/core/trunk/src/java/org/apache/turbine/util/template/TemplateNavigation.java
    turbine/core/trunk/src/java/org/apache/turbine/util/template/TemplateScreen.java
    turbine/core/trunk/src/java/org/apache/turbine/util/template/TemplateSecurityCheck.java
    turbine/core/trunk/src/test/org/apache/turbine/pipeline/SimpleValve.java

Modified: turbine/core/trunk/src/java/org/apache/turbine/modules/Assembler.java
URL: http://svn.apache.org/viewvc/turbine/core/trunk/src/java/org/apache/turbine/modules/Assembler.java?rev=1854797&r1=1854796&r2=1854797&view=diff
==============================================================================
--- turbine/core/trunk/src/java/org/apache/turbine/modules/Assembler.java (original)
+++ turbine/core/trunk/src/java/org/apache/turbine/modules/Assembler.java Mon Mar  4 20:41:39 2019
@@ -1,27 +1,5 @@
 package org.apache.turbine.modules;
 
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-import org.apache.turbine.pipeline.PipelineData;
-import org.apache.turbine.util.RunData;
-
 /**
  * This is an interface that defines what an Assembler is. All the current
  * modules extend off of this class. It is currently empty and future use is yet
@@ -33,18 +11,5 @@ import org.apache.turbine.util.RunData;
  */
 public interface Assembler
 {
-    /**
-     * This can go once RunData is replaced...
-     *
-     * @param pipelineData Turbine request data
-     * @return RunData extracted from PipelineData
-     */
-    default RunData getRunData(PipelineData pipelineData)
-    {
-        if (!(pipelineData instanceof RunData))
-        {
-            throw new RuntimeException("Can't cast to rundata from pipeline data.");
-        }
-        return (RunData) pipelineData;
-    }
+    // empty
 }

Modified: turbine/core/trunk/src/java/org/apache/turbine/modules/Screen.java
URL: http://svn.apache.org/viewvc/turbine/core/trunk/src/java/org/apache/turbine/modules/Screen.java?rev=1854797&r1=1854796&r2=1854797&view=diff
==============================================================================
--- turbine/core/trunk/src/java/org/apache/turbine/modules/Screen.java (original)
+++ turbine/core/trunk/src/java/org/apache/turbine/modules/Screen.java Mon Mar  4 20:41:39 2019
@@ -88,7 +88,7 @@ public interface Screen extends Assemble
      */
     default String getLayout(PipelineData pipelineData)
     {
-        RunData data = getRunData(pipelineData);
+        RunData data = pipelineData.getRunData();
         return data.getLayout();
     }
 
@@ -100,7 +100,7 @@ public interface Screen extends Assemble
      */
     default void setLayout(PipelineData pipelineData, String layout)
     {
-        RunData data = getRunData(pipelineData);
+        RunData data = pipelineData.getRunData();
         data.setLayout(layout);
     }
 }

Modified: turbine/core/trunk/src/java/org/apache/turbine/modules/actions/AccessController.java
URL: http://svn.apache.org/viewvc/turbine/core/trunk/src/java/org/apache/turbine/modules/actions/AccessController.java?rev=1854797&r1=1854796&r2=1854797&view=diff
==============================================================================
--- turbine/core/trunk/src/java/org/apache/turbine/modules/actions/AccessController.java (original)
+++ turbine/core/trunk/src/java/org/apache/turbine/modules/actions/AccessController.java Mon Mar  4 20:41:39 2019
@@ -91,7 +91,7 @@ public class AccessController implements
     public void doPerform(PipelineData pipelineData)
     	throws FulcrumSecurityException
     {
-        RunData data = getRunData(pipelineData);
+        RunData data = pipelineData.getRunData();
         User user = data.getUser();
 
         if (!security.isAnonymousUser(user)

Modified: turbine/core/trunk/src/java/org/apache/turbine/modules/actions/DefaultAction.java
URL: http://svn.apache.org/viewvc/turbine/core/trunk/src/java/org/apache/turbine/modules/actions/DefaultAction.java?rev=1854797&r1=1854796&r2=1854797&view=diff
==============================================================================
--- turbine/core/trunk/src/java/org/apache/turbine/modules/actions/DefaultAction.java (original)
+++ turbine/core/trunk/src/java/org/apache/turbine/modules/actions/DefaultAction.java Mon Mar  4 20:41:39 2019
@@ -45,7 +45,7 @@ public class DefaultAction implements Ac
     public void doPerform(PipelineData pipelineData)
             throws Exception
     {
-        RunData data = getRunData(pipelineData);
+        RunData data = pipelineData.getRunData();
         data.setMessage(data.getAction() + " has been executed!");
     }
 }

Modified: turbine/core/trunk/src/java/org/apache/turbine/modules/actions/InitContextsAction.java
URL: http://svn.apache.org/viewvc/turbine/core/trunk/src/java/org/apache/turbine/modules/actions/InitContextsAction.java?rev=1854797&r1=1854796&r2=1854797&view=diff
==============================================================================
--- turbine/core/trunk/src/java/org/apache/turbine/modules/actions/InitContextsAction.java (original)
+++ turbine/core/trunk/src/java/org/apache/turbine/modules/actions/InitContextsAction.java Mon Mar  4 20:41:39 2019
@@ -60,7 +60,7 @@ public class InitContextsAction implemen
     public void doPerform(PipelineData pipelineData)
             throws NamingException
     {
-        RunData data = getRunData(pipelineData);
+        RunData data = pipelineData.getRunData();
         // Context properties are specified in lines in the properties
         // file that begin with "context.contextname.", allowing
         // multiple named contexts to be used. Everything after the

Modified: turbine/core/trunk/src/java/org/apache/turbine/modules/actions/LegacyVelocityAction.java
URL: http://svn.apache.org/viewvc/turbine/core/trunk/src/java/org/apache/turbine/modules/actions/LegacyVelocityAction.java?rev=1854797&r1=1854796&r2=1854797&view=diff
==============================================================================
--- turbine/core/trunk/src/java/org/apache/turbine/modules/actions/LegacyVelocityAction.java (original)
+++ turbine/core/trunk/src/java/org/apache/turbine/modules/actions/LegacyVelocityAction.java Mon Mar  4 20:41:39 2019
@@ -56,7 +56,7 @@ public abstract class LegacyVelocityActi
     public void doPerform(PipelineData pipelineData, Context context)
             throws Exception
     {
-        doPerform(getRunData(pipelineData), context);
+        doPerform(pipelineData.getRunData(), context);
     }
 
     /**
@@ -76,7 +76,7 @@ public abstract class LegacyVelocityActi
             initialize();
         }
 
-        RunData data = getRunData(pipelineData);
+        RunData data = pipelineData.getRunData();
         ParameterParser pp = pipelineData.get(Turbine.class, ParameterParser.class);
         Context context = velocity.getContext(pipelineData);
         executeEvents(pp, new Class<?>[]{ RunData.class, Context.class },

Modified: turbine/core/trunk/src/java/org/apache/turbine/modules/actions/LegacyVelocitySecureAction.java
URL: http://svn.apache.org/viewvc/turbine/core/trunk/src/java/org/apache/turbine/modules/actions/LegacyVelocitySecureAction.java?rev=1854797&r1=1854796&r2=1854797&view=diff
==============================================================================
--- turbine/core/trunk/src/java/org/apache/turbine/modules/actions/LegacyVelocitySecureAction.java (original)
+++ turbine/core/trunk/src/java/org/apache/turbine/modules/actions/LegacyVelocitySecureAction.java Mon Mar  4 20:41:39 2019
@@ -50,7 +50,7 @@ public abstract class LegacyVelocitySecu
     @Override
     public void perform(PipelineData pipelineData) throws Exception
     {
-        if (isAuthorized(getRunData(pipelineData)))
+        if (isAuthorized(pipelineData.getRunData()))
         {
             super.perform(pipelineData);
         }

Modified: turbine/core/trunk/src/java/org/apache/turbine/modules/actions/LoginUser.java
URL: http://svn.apache.org/viewvc/turbine/core/trunk/src/java/org/apache/turbine/modules/actions/LoginUser.java?rev=1854797&r1=1854796&r2=1854797&view=diff
==============================================================================
--- turbine/core/trunk/src/java/org/apache/turbine/modules/actions/LoginUser.java (original)
+++ turbine/core/trunk/src/java/org/apache/turbine/modules/actions/LoginUser.java Mon Mar  4 20:41:39 2019
@@ -85,7 +85,7 @@ public class LoginUser implements Action
     public void doPerform(PipelineData pipelineData)
             throws FulcrumSecurityException
     {
-        RunData data = getRunData(pipelineData);
+        RunData data = pipelineData.getRunData();
         String username = data.getParameters().getString(CGI_USERNAME, "");
         String password = data.getParameters().getString(CGI_PASSWORD, "");
 

Modified: turbine/core/trunk/src/java/org/apache/turbine/modules/actions/LogoutUser.java
URL: http://svn.apache.org/viewvc/turbine/core/trunk/src/java/org/apache/turbine/modules/actions/LogoutUser.java?rev=1854797&r1=1854796&r2=1854797&view=diff
==============================================================================
--- turbine/core/trunk/src/java/org/apache/turbine/modules/actions/LogoutUser.java (original)
+++ turbine/core/trunk/src/java/org/apache/turbine/modules/actions/LogoutUser.java Mon Mar  4 20:41:39 2019
@@ -75,7 +75,7 @@ public class LogoutUser implements Actio
     public void doPerform(PipelineData pipelineData)
             throws FulcrumSecurityException
     {
-        RunData data = getRunData(pipelineData);
+        RunData data = pipelineData.getRunData();
 
         // Session validator did not run, so RunData is not populated
         User user = data.getUserFromSession();

Modified: turbine/core/trunk/src/java/org/apache/turbine/modules/actions/sessionvalidator/DefaultSessionValidator.java
URL: http://svn.apache.org/viewvc/turbine/core/trunk/src/java/org/apache/turbine/modules/actions/sessionvalidator/DefaultSessionValidator.java?rev=1854797&r1=1854796&r2=1854797&view=diff
==============================================================================
--- turbine/core/trunk/src/java/org/apache/turbine/modules/actions/sessionvalidator/DefaultSessionValidator.java (original)
+++ turbine/core/trunk/src/java/org/apache/turbine/modules/actions/sessionvalidator/DefaultSessionValidator.java Mon Mar  4 20:41:39 2019
@@ -84,7 +84,7 @@ public class DefaultSessionValidator
     public void doPerform(PipelineData pipelineData)
             throws Exception
     {
-        RunData data = getRunData(pipelineData);
+        RunData data = pipelineData.getRunData();
         // Pull user from session.
         data.populate();
 

Modified: turbine/core/trunk/src/java/org/apache/turbine/modules/actions/sessionvalidator/TemplateSecureSessionValidator.java
URL: http://svn.apache.org/viewvc/turbine/core/trunk/src/java/org/apache/turbine/modules/actions/sessionvalidator/TemplateSecureSessionValidator.java?rev=1854797&r1=1854796&r2=1854797&view=diff
==============================================================================
--- turbine/core/trunk/src/java/org/apache/turbine/modules/actions/sessionvalidator/TemplateSecureSessionValidator.java (original)
+++ turbine/core/trunk/src/java/org/apache/turbine/modules/actions/sessionvalidator/TemplateSecureSessionValidator.java Mon Mar  4 20:41:39 2019
@@ -84,7 +84,7 @@ public class TemplateSecureSessionValida
     public void doPerform(PipelineData pipelineData)
     throws Exception
     {
-        RunData data = getRunData(pipelineData);
+        RunData data = pipelineData.getRunData();
         // Pull user from session.
         data.populate();
 

Modified: turbine/core/trunk/src/java/org/apache/turbine/modules/actions/sessionvalidator/TemplateSessionValidator.java
URL: http://svn.apache.org/viewvc/turbine/core/trunk/src/java/org/apache/turbine/modules/actions/sessionvalidator/TemplateSessionValidator.java?rev=1854797&r1=1854796&r2=1854797&view=diff
==============================================================================
--- turbine/core/trunk/src/java/org/apache/turbine/modules/actions/sessionvalidator/TemplateSessionValidator.java (original)
+++ turbine/core/trunk/src/java/org/apache/turbine/modules/actions/sessionvalidator/TemplateSessionValidator.java Mon Mar  4 20:41:39 2019
@@ -62,7 +62,7 @@ public class TemplateSessionValidator
     @Override
     public void doPerform(PipelineData pipelineData) throws Exception
     {
-        RunData data = getRunData(pipelineData);
+        RunData data = pipelineData.getRunData();
         // Pull user from session.
         data.populate();
 

Modified: turbine/core/trunk/src/java/org/apache/turbine/modules/layouts/DirectResponseLayout.java
URL: http://svn.apache.org/viewvc/turbine/core/trunk/src/java/org/apache/turbine/modules/layouts/DirectResponseLayout.java?rev=1854797&r1=1854796&r2=1854797&view=diff
==============================================================================
--- turbine/core/trunk/src/java/org/apache/turbine/modules/layouts/DirectResponseLayout.java (original)
+++ turbine/core/trunk/src/java/org/apache/turbine/modules/layouts/DirectResponseLayout.java Mon Mar  4 20:41:39 2019
@@ -46,7 +46,7 @@ public class DirectResponseLayout implem
     public void doBuild(PipelineData pipelineData)
             throws Exception
     {
-        RunData data = getRunData(pipelineData);
+        RunData data = pipelineData.getRunData();
         if (!data.isOutSet())
         {
             throw new TurbineException(

Modified: turbine/core/trunk/src/java/org/apache/turbine/modules/layouts/JspLayout.java
URL: http://svn.apache.org/viewvc/turbine/core/trunk/src/java/org/apache/turbine/modules/layouts/JspLayout.java?rev=1854797&r1=1854796&r2=1854797&view=diff
==============================================================================
--- turbine/core/trunk/src/java/org/apache/turbine/modules/layouts/JspLayout.java (original)
+++ turbine/core/trunk/src/java/org/apache/turbine/modules/layouts/JspLayout.java Mon Mar  4 20:41:39 2019
@@ -58,7 +58,7 @@ public class JspLayout implements Layout
     public void doBuild(PipelineData pipelineData)
         throws Exception
     {
-        RunData data = getRunData(pipelineData);
+        RunData data = pipelineData.getRunData();
         data.getResponse().setContentType( TurbineConstants.DEFAULT_HTML_CONTENT_TYPE );
         data.declareDirectResponse();
 

Modified: turbine/core/trunk/src/java/org/apache/turbine/modules/layouts/VelocityCachedLayout.java
URL: http://svn.apache.org/viewvc/turbine/core/trunk/src/java/org/apache/turbine/modules/layouts/VelocityCachedLayout.java?rev=1854797&r1=1854796&r2=1854797&view=diff
==============================================================================
--- turbine/core/trunk/src/java/org/apache/turbine/modules/layouts/VelocityCachedLayout.java (original)
+++ turbine/core/trunk/src/java/org/apache/turbine/modules/layouts/VelocityCachedLayout.java Mon Mar  4 20:41:39 2019
@@ -1,36 +1,8 @@
 package org.apache.turbine.modules.layouts;
 
-import org.apache.logging.log4j.LogManager;
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-
-import org.apache.logging.log4j.Logger;
-import org.apache.turbine.TurbineConstants;
-import org.apache.turbine.annotation.TurbineService;
-import org.apache.turbine.modules.Layout;
 import org.apache.turbine.modules.pages.DefaultPage;
 import org.apache.turbine.pipeline.PipelineData;
-import org.apache.turbine.services.velocity.VelocityService;
 import org.apache.turbine.util.RunData;
-import org.apache.turbine.util.template.TemplateNavigation;
-import org.apache.turbine.util.template.TemplateScreen;
 import org.apache.velocity.context.Context;
 
 /**
@@ -48,55 +20,24 @@ import org.apache.velocity.context.Conte
  * @author <a href="mailto:hps@intermeta.de">Henning P. Schmiedehausen</a>
  * @version $Id$
  */
-public class VelocityCachedLayout implements Layout
+public class VelocityCachedLayout extends VelocityDirectLayout
 {
-    /** Logging */
-    protected final Logger log = LogManager.getLogger(this.getClass());
-
-    /** The prefix for lookup up layout pages */
-    private static final String prefix = PREFIX + "/";
-
-    /** Injected service instance */
-    @TurbineService
-    private VelocityService velocityService;
-
     /**
-     * Method called by LayoutLoader.
-     *
+     * Render layout
      *
      * @param pipelineData PipelineData
-     * @throws Exception generic exception
+     * @param context the Velocity context
+     * @param templateName relative path to Velocity template
+     *
+     * @throws Exception if rendering fails
      */
     @Override
-    public void doBuild(PipelineData pipelineData)
+    protected void render(PipelineData pipelineData, Context context, String templateName)
         throws Exception
     {
-        RunData data = getRunData(pipelineData);
-        // Get the context needed by Velocity.
-        Context context = velocityService.getContext(pipelineData);
-
-        // variable for the screen in the layout template
-        context.put(TurbineConstants.SCREEN_PLACEHOLDER,
-                    new TemplateScreen(data));
-
-        // variable to reference the navigation screen in the layout template
-        context.put(TurbineConstants.NAVIGATION_PLACEHOLDER,
-                    new TemplateNavigation(data));
-
-        // Grab the layout template set in the VelocityPage.
-        // If null, then use the default layout template
-        // (done by the TemplateInfo object)
-        String templateName = data.getTemplateInfo().getLayoutTemplate();
-
-        // Set the locale and content type
-        data.getResponse().setLocale(data.getLocale());
-        data.getResponse().setContentType(data.getContentType());
-
-        log.debug("Now trying to render layout {}", templateName);
-
-        // Finally, generate the layout template and send it to the browser
         velocityService.handleRequest(context,
-                prefix + templateName, data.getOut());
+                prefix + templateName,
+                pipelineData.getRunData().getOut());
     }
 }
 

Modified: turbine/core/trunk/src/java/org/apache/turbine/modules/layouts/VelocityDirectLayout.java
URL: http://svn.apache.org/viewvc/turbine/core/trunk/src/java/org/apache/turbine/modules/layouts/VelocityDirectLayout.java?rev=1854797&r1=1854796&r2=1854797&view=diff
==============================================================================
--- turbine/core/trunk/src/java/org/apache/turbine/modules/layouts/VelocityDirectLayout.java (original)
+++ turbine/core/trunk/src/java/org/apache/turbine/modules/layouts/VelocityDirectLayout.java Mon Mar  4 20:41:39 2019
@@ -1,8 +1,5 @@
 package org.apache.turbine.modules.layouts;
 
-
-import org.apache.logging.log4j.LogManager;
-
 /*
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
@@ -22,14 +19,8 @@ import org.apache.logging.log4j.LogManag
  * under the License.
  */
 
-
-import org.apache.logging.log4j.Logger;
 import org.apache.turbine.TurbineConstants;
-import org.apache.turbine.annotation.TurbineService;
-import org.apache.turbine.modules.Layout;
 import org.apache.turbine.pipeline.PipelineData;
-import org.apache.turbine.services.velocity.VelocityService;
-import org.apache.turbine.util.RunData;
 import org.apache.turbine.util.template.TemplateNavigation;
 import org.apache.turbine.util.template.TemplateScreen;
 import org.apache.velocity.context.Context;
@@ -48,56 +39,20 @@ import org.apache.velocity.context.Conte
  * @author <a href="mailto:peter@courcoux.biz">Peter Courcoux</a>
  * @version $Id$
  */
-public class VelocityDirectLayout implements Layout
+public class VelocityDirectLayout extends VelocityLayout
 {
-    /** Logging */
-    protected final Logger log = LogManager.getLogger(this.getClass());
-
-    /** The prefix for lookup up layout pages */
-    private static final String prefix = PREFIX + "/";
-
-    /** Injected service instance */
-    @TurbineService
-    private VelocityService velocityService;
-
     /**
-     * Method called by LayoutLoader.
-     *
-     *
-     * @param pipelineData PipelineData
-     * @throws Exception generic exception
+     * @see org.apache.turbine.modules.layouts.VelocityLayout#populateContext(org.apache.turbine.pipeline.PipelineData, org.apache.velocity.context.Context)
      */
     @Override
-    public void doBuild(PipelineData pipelineData)
-        throws Exception
+    protected void populateContext(PipelineData pipelineData, Context context) throws Exception
     {
-        RunData data = getRunData(pipelineData);
-        // Get the context needed by Velocity.
-        Context context = velocityService.getContext(pipelineData);
-
         // variable for the screen in the layout template
         context.put(TurbineConstants.SCREEN_PLACEHOLDER,
-                    new TemplateScreen(data));
+                    new TemplateScreen(pipelineData));
 
         // variable to reference the navigation screen in the layout template
         context.put(TurbineConstants.NAVIGATION_PLACEHOLDER,
-                    new TemplateNavigation(data));
-
-        // Grab the layout template set in the VelocityPage.
-        // If null, then use the default layout template
-        // (done by the TemplateInfo object)
-        String templateName = data.getTemplateInfo().getLayoutTemplate();
-
-        // Set the locale and content type
-        data.getResponse().setLocale(data.getLocale());
-        data.getResponse().setContentType(data.getContentType());
-
-        log.debug("Now trying to render layout {}", templateName);
-
-        // Finally, generate the layout template and send it to the browser
-        velocityService.handleRequest(context,
-                prefix + templateName, data.getResponse().getOutputStream());
+                    new TemplateNavigation(pipelineData));
     }
-
-
 }

Added: turbine/core/trunk/src/java/org/apache/turbine/modules/layouts/VelocityLayout.java
URL: http://svn.apache.org/viewvc/turbine/core/trunk/src/java/org/apache/turbine/modules/layouts/VelocityLayout.java?rev=1854797&view=auto
==============================================================================
--- turbine/core/trunk/src/java/org/apache/turbine/modules/layouts/VelocityLayout.java (added)
+++ turbine/core/trunk/src/java/org/apache/turbine/modules/layouts/VelocityLayout.java Mon Mar  4 20:41:39 2019
@@ -0,0 +1,116 @@
+package org.apache.turbine.modules.layouts;
+
+
+import javax.servlet.http.HttpServletResponse;
+
+import org.apache.logging.log4j.LogManager;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+
+import org.apache.logging.log4j.Logger;
+import org.apache.turbine.Turbine;
+import org.apache.turbine.annotation.TurbineService;
+import org.apache.turbine.modules.Layout;
+import org.apache.turbine.pipeline.PipelineData;
+import org.apache.turbine.services.velocity.VelocityService;
+import org.apache.turbine.util.RunData;
+import org.apache.velocity.context.Context;
+
+/**
+ * This Layout module allows Velocity templates
+ * to be used as layouts.
+ *
+ * @author <a href="mailto:tv@apache.org">Thomas Vandahl</a>
+ */
+public abstract class VelocityLayout implements Layout
+{
+    /** Logging */
+    protected final Logger log = LogManager.getLogger(this.getClass());
+
+    /** The prefix for lookup up layout pages */
+    protected static final String prefix = PREFIX + "/";
+
+    /** Injected service instance */
+    @TurbineService
+    protected VelocityService velocityService;
+
+    /**
+     * Method called by LayoutLoader.
+     *
+     *
+     * @param pipelineData PipelineData
+     * @throws Exception generic exception
+     */
+    @Override
+    public void doBuild(PipelineData pipelineData)
+        throws Exception
+    {
+        RunData data = pipelineData.getRunData();
+        // Get the context needed by Velocity.
+        Context context = velocityService.getContext(pipelineData);
+
+        // Provide objects to Velocity context
+        populateContext(pipelineData, context);
+
+        // Grab the layout template set in the VelocityPage.
+        // If null, then use the default layout template
+        // (done by the TemplateInfo object)
+        String templateName = data.getTemplateInfo().getLayoutTemplate();
+
+        // Set the locale and content type
+        data.getResponse().setLocale(data.getLocale());
+        data.getResponse().setContentType(data.getContentType());
+
+        log.debug("Now trying to render layout {}", templateName);
+
+        // Finally, generate the layout template and send it to the browser
+        render(pipelineData, context, templateName);
+    }
+
+    /**
+     * Populate Velocity context
+     *
+     * @param pipelineData PipelineData
+     * @param context the Velocity context
+     *
+     * @throws Exception if evaluation fails
+     */
+    protected abstract void populateContext(PipelineData pipelineData, Context context)
+        throws Exception;
+
+    /**
+     * Render layout
+     *
+     * @param pipelineData PipelineData
+     * @param context the Velocity context
+     * @param templateName relative path to Velocity template
+     *
+     * @throws Exception if rendering fails
+     */
+    protected void render(PipelineData pipelineData, Context context, String templateName)
+        throws Exception
+    {
+        velocityService.handleRequest(context,
+                prefix + templateName,
+                pipelineData.get(Turbine.class, HttpServletResponse.class)
+                    .getOutputStream());
+    }
+}

Propchange: turbine/core/trunk/src/java/org/apache/turbine/modules/layouts/VelocityLayout.java
------------------------------------------------------------------------------
    svn:mime-type = text/plain

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=1854797&r1=1854796&r2=1854797&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 Mon Mar  4 20:41:39 2019
@@ -22,17 +22,11 @@ package org.apache.turbine.modules.layou
 
 
 import org.apache.commons.lang3.StringUtils;
-import org.apache.logging.log4j.LogManager;
-import org.apache.logging.log4j.Logger;
 import org.apache.turbine.TurbineConstants;
 import org.apache.turbine.annotation.TurbineLoader;
-import org.apache.turbine.annotation.TurbineService;
-import org.apache.turbine.modules.Layout;
 import org.apache.turbine.modules.Screen;
 import org.apache.turbine.modules.ScreenLoader;
 import org.apache.turbine.pipeline.PipelineData;
-import org.apache.turbine.services.velocity.VelocityService;
-import org.apache.turbine.util.RunData;
 import org.apache.turbine.util.template.TemplateNavigation;
 import org.apache.velocity.context.Context;
 
@@ -68,39 +62,19 @@ import org.apache.velocity.context.Conte
  * @author <a href="mailto:peter@courcoux.biz">Peter Courcoux</a>
  * @version $Id$
  */
-public class VelocityOnlyLayout implements Layout
+public class VelocityOnlyLayout extends VelocityLayout
 {
-    /** Logging */
-    protected final Logger log = LogManager.getLogger(this.getClass());
-
-    /** The prefix for lookup up layout pages */
-    private static final String prefix = PREFIX + "/";
-
-    /** Injected service instance */
-    @TurbineService
-    private VelocityService velocityService;
-
     /** Injected loader instance */
     @TurbineLoader( Screen.class )
     private ScreenLoader screenLoader;
 
     /**
-     * Build the layout.  Also sets the ContentType and Locale headers
-     * of the HttpServletResponse object.
-     *
-     *
-     * @param pipelineData PipelineData
-     * @throws Exception generic exception
+     * @see org.apache.turbine.modules.layouts.VelocityLayout#populateContext(org.apache.turbine.pipeline.PipelineData, org.apache.velocity.context.Context)
      */
     @Override
-    public void doBuild(PipelineData pipelineData)
-        throws Exception
+    protected void populateContext(PipelineData pipelineData, Context context) throws Exception
     {
-        RunData data = getRunData(pipelineData);
-        // Get the context needed by Velocity.
-        Context context = velocityService.getContext(pipelineData);
-
-        String screenName = data.getScreen();
+        String screenName = pipelineData.getRunData().getScreen();
 
         log.debug("Loading Screen {}", screenName);
 
@@ -114,21 +88,6 @@ public class VelocityOnlyLayout implemen
 
         // variable to reference the navigation screen in the layout template
         context.put(TurbineConstants.NAVIGATION_PLACEHOLDER,
-                    new TemplateNavigation(data));
-
-        // Grab the layout template set in the VelocityPage.
-        // If null, then use the default layout template
-        // (done by the TemplateInfo object)
-        String templateName = data.getTemplateInfo().getLayoutTemplate();
-
-        // Set the locale and content type
-        data.getResponse().setLocale(data.getLocale());
-        data.getResponse().setContentType(data.getContentType());
-
-        log.debug("Now trying to render layout {}", templateName);
-
-        // Finally, generate the layout template and send it to the browser
-        velocityService.handleRequest(context,
-                prefix + templateName, data.getResponse().getOutputStream());
+                    new TemplateNavigation(pipelineData));
     }
 }

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=1854797&r1=1854796&r2=1854797&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 Mon Mar  4 20:41:39 2019
@@ -23,20 +23,14 @@ package org.apache.turbine.modules.layou
 
 import java.io.StringReader;
 
-import org.apache.commons.lang3.StringUtils;
 import org.apache.fulcrum.xslt.XSLTService;
-import org.apache.logging.log4j.LogManager;
-import org.apache.logging.log4j.Logger;
 import org.apache.turbine.TurbineConstants;
 import org.apache.turbine.annotation.TurbineLoader;
 import org.apache.turbine.annotation.TurbineService;
-import org.apache.turbine.modules.Layout;
 import org.apache.turbine.modules.Screen;
 import org.apache.turbine.modules.ScreenLoader;
 import org.apache.turbine.pipeline.PipelineData;
-import org.apache.turbine.services.velocity.VelocityService;
 import org.apache.turbine.util.RunData;
-import org.apache.turbine.util.template.TemplateNavigation;
 import org.apache.velocity.context.Context;
 
 /**
@@ -58,18 +52,8 @@ import org.apache.velocity.context.Conte
  * @author <a href="mailto:hps@intermeta.de">Henning P. Schmiedehausen</a>
  * @version $Id$
  */
-public class VelocityXslLayout implements Layout
+public class VelocityXslLayout extends VelocityOnlyLayout
 {
-    /** Logging */
-    protected final Logger log = LogManager.getLogger(this.getClass());
-
-    /** The prefix for lookup up layout pages */
-    private static final String prefix = PREFIX + "/";
-
-    /** Injected service instance */
-    @TurbineService
-    private VelocityService velocityService;
-
     /** Injected service instance */
     @TurbineService
     private XSLTService xsltService;
@@ -89,27 +73,14 @@ public class VelocityXslLayout implement
     public void doBuild(PipelineData pipelineData)
         throws Exception
     {
-        RunData data = getRunData(pipelineData);
+        RunData data = pipelineData.getRunData();
         // Get the context needed by Velocity.
         Context context = velocityService.getContext(pipelineData);
 
         data.getResponse().setContentType(TurbineConstants.DEFAULT_HTML_CONTENT_TYPE);
 
-        String screenName = data.getScreen();
-
-        log.debug("Loading Screen {}", screenName);
-
-        // First, generate the screen and put it in the context so
-        // we can grab it the layout template.
-        String results = screenLoader.eval(pipelineData, screenName);
-        String returnValue = StringUtils.defaultIfEmpty(results, StringUtils.EMPTY);
-
-        // variable for the screen in the layout template
-        context.put(TurbineConstants.SCREEN_PLACEHOLDER, returnValue);
-
-        // variable to reference the navigation screen in the layout template
-        context.put(TurbineConstants.NAVIGATION_PLACEHOLDER,
-                    new TemplateNavigation(data));
+        // Provide objects to Velocity context
+        populateContext(pipelineData, context);
 
         // Grab the layout template set in the VelocityPage.
         // If null, then use the default layout template

Modified: turbine/core/trunk/src/java/org/apache/turbine/modules/navigations/BaseJspNavigation.java
URL: http://svn.apache.org/viewvc/turbine/core/trunk/src/java/org/apache/turbine/modules/navigations/BaseJspNavigation.java?rev=1854797&r1=1854796&r2=1854797&view=diff
==============================================================================
--- turbine/core/trunk/src/java/org/apache/turbine/modules/navigations/BaseJspNavigation.java (original)
+++ turbine/core/trunk/src/java/org/apache/turbine/modules/navigations/BaseJspNavigation.java Mon Mar  4 20:41:39 2019
@@ -69,7 +69,7 @@ public class BaseJspNavigation
     public String buildTemplate(PipelineData pipelineData)
         throws Exception
     {
-        RunData data = getRunData(pipelineData);
+        RunData data = pipelineData.getRunData();
         // get the name of the JSP we want to use
         String templateName = data.getTemplateInfo().getNavigationTemplate();
 

Modified: turbine/core/trunk/src/java/org/apache/turbine/modules/navigations/LegacyVelocityNavigation.java
URL: http://svn.apache.org/viewvc/turbine/core/trunk/src/java/org/apache/turbine/modules/navigations/LegacyVelocityNavigation.java?rev=1854797&r1=1854796&r2=1854797&view=diff
==============================================================================
--- turbine/core/trunk/src/java/org/apache/turbine/modules/navigations/LegacyVelocityNavigation.java (original)
+++ turbine/core/trunk/src/java/org/apache/turbine/modules/navigations/LegacyVelocityNavigation.java Mon Mar  4 20:41:39 2019
@@ -56,6 +56,6 @@ public class LegacyVelocityNavigation
     @Override
     protected void doBuildTemplate(PipelineData pipelineData, Context context) throws Exception
     {
-        doBuildTemplate(getRunData(pipelineData), context);
+        doBuildTemplate(pipelineData.getRunData(), context);
     }
 }

Modified: turbine/core/trunk/src/java/org/apache/turbine/modules/navigations/VelocityNavigation.java
URL: http://svn.apache.org/viewvc/turbine/core/trunk/src/java/org/apache/turbine/modules/navigations/VelocityNavigation.java?rev=1854797&r1=1854796&r2=1854797&view=diff
==============================================================================
--- turbine/core/trunk/src/java/org/apache/turbine/modules/navigations/VelocityNavigation.java (original)
+++ turbine/core/trunk/src/java/org/apache/turbine/modules/navigations/VelocityNavigation.java Mon Mar  4 20:41:39 2019
@@ -97,7 +97,7 @@ public class VelocityNavigation
     public String buildTemplate(PipelineData pipelineData)
             throws Exception
     {
-        RunData data = getRunData(pipelineData);
+        RunData data = pipelineData.getRunData();
         Context context = velocity.getContext(pipelineData);
 
         String navigationTemplate = data.getTemplateInfo().getNavigationTemplate();

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=1854797&r1=1854796&r2=1854797&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 Mon Mar  4 20:41:39 2019
@@ -116,7 +116,7 @@ public class DefaultPage implements Page
     public void doBuild(PipelineData pipelineData)
             throws Exception
     {
-        RunData data = getRunData(pipelineData);
+        RunData data = pipelineData.getRunData();
         // Template pages can use this to set up the context, so it is
         // available to the Action and Screen.  It does nothing here.
         doBuildBeforeAction(pipelineData);

Modified: turbine/core/trunk/src/java/org/apache/turbine/modules/pages/TemplatePage.java
URL: http://svn.apache.org/viewvc/turbine/core/trunk/src/java/org/apache/turbine/modules/pages/TemplatePage.java?rev=1854797&r1=1854796&r2=1854797&view=diff
==============================================================================
--- turbine/core/trunk/src/java/org/apache/turbine/modules/pages/TemplatePage.java (original)
+++ turbine/core/trunk/src/java/org/apache/turbine/modules/pages/TemplatePage.java Mon Mar  4 20:41:39 2019
@@ -97,7 +97,7 @@ public class TemplatePage
     protected void doBuildAfterAction(PipelineData pipelineData)
         throws Exception
     {
-        RunData data = getRunData(pipelineData);
+        RunData data = pipelineData.getRunData();
         // The Template Service at this point must fetch the Screen class
         // to match a given template. If the Screen class has already been
         // set by an action, skip this, because the user has the already

Modified: turbine/core/trunk/src/java/org/apache/turbine/modules/pages/VelocityPage.java
URL: http://svn.apache.org/viewvc/turbine/core/trunk/src/java/org/apache/turbine/modules/pages/VelocityPage.java?rev=1854797&r1=1854796&r2=1854797&view=diff
==============================================================================
--- turbine/core/trunk/src/java/org/apache/turbine/modules/pages/VelocityPage.java (original)
+++ turbine/core/trunk/src/java/org/apache/turbine/modules/pages/VelocityPage.java Mon Mar  4 20:41:39 2019
@@ -54,7 +54,7 @@ public class VelocityPage
     protected void doBuildBeforeAction(PipelineData pipelineData)
         throws Exception
     {
-        RunData data = getRunData(pipelineData);
+        RunData data = pipelineData.getRunData();
         Context context = velocity.getContext(pipelineData);
         data.getTemplateInfo()
             .setTemplateContext(VelocityService.CONTEXT, context);

Modified: turbine/core/trunk/src/java/org/apache/turbine/modules/screens/BaseJspScreen.java
URL: http://svn.apache.org/viewvc/turbine/core/trunk/src/java/org/apache/turbine/modules/screens/BaseJspScreen.java?rev=1854797&r1=1854796&r2=1854797&view=diff
==============================================================================
--- turbine/core/trunk/src/java/org/apache/turbine/modules/screens/BaseJspScreen.java (original)
+++ turbine/core/trunk/src/java/org/apache/turbine/modules/screens/BaseJspScreen.java Mon Mar  4 20:41:39 2019
@@ -61,7 +61,7 @@ public class BaseJspScreen
     public String buildTemplate(PipelineData pipelineData)
             throws Exception
     {
-        RunData data = getRunData(pipelineData);
+        RunData data = pipelineData.getRunData();
         String screenTemplate = data.getTemplateInfo().getScreenTemplate();
         // get the name of the template we want to use
         String templateName

Modified: turbine/core/trunk/src/java/org/apache/turbine/modules/screens/JSONScreen.java
URL: http://svn.apache.org/viewvc/turbine/core/trunk/src/java/org/apache/turbine/modules/screens/JSONScreen.java?rev=1854797&r1=1854796&r2=1854797&view=diff
==============================================================================
--- turbine/core/trunk/src/java/org/apache/turbine/modules/screens/JSONScreen.java (original)
+++ turbine/core/trunk/src/java/org/apache/turbine/modules/screens/JSONScreen.java Mon Mar  4 20:41:39 2019
@@ -106,7 +106,7 @@ public class JSONScreen extends RawScree
     @Override
     protected void doOutput(PipelineData pipelineData) throws Exception
     {
-        RunData data = getRunData(pipelineData);
+        RunData data = pipelineData.getRunData();
         data.declareDirectResponse();
         HttpServletRequest request = data.getRequest();
 

Modified: turbine/core/trunk/src/java/org/apache/turbine/modules/screens/LegacyVelocityScreen.java
URL: http://svn.apache.org/viewvc/turbine/core/trunk/src/java/org/apache/turbine/modules/screens/LegacyVelocityScreen.java?rev=1854797&r1=1854796&r2=1854797&view=diff
==============================================================================
--- turbine/core/trunk/src/java/org/apache/turbine/modules/screens/LegacyVelocityScreen.java (original)
+++ turbine/core/trunk/src/java/org/apache/turbine/modules/screens/LegacyVelocityScreen.java Mon Mar  4 20:41:39 2019
@@ -60,6 +60,6 @@ public class LegacyVelocityScreen
                                    Context context)
             throws Exception
     {
-        doBuildTemplate(getRunData(pipelineData), context);
+        doBuildTemplate(pipelineData.getRunData(), context);
     }
 }

Modified: turbine/core/trunk/src/java/org/apache/turbine/modules/screens/LegacyVelocitySecureScreen.java
URL: http://svn.apache.org/viewvc/turbine/core/trunk/src/java/org/apache/turbine/modules/screens/LegacyVelocitySecureScreen.java?rev=1854797&r1=1854796&r2=1854797&view=diff
==============================================================================
--- turbine/core/trunk/src/java/org/apache/turbine/modules/screens/LegacyVelocitySecureScreen.java (original)
+++ turbine/core/trunk/src/java/org/apache/turbine/modules/screens/LegacyVelocitySecureScreen.java Mon Mar  4 20:41:39 2019
@@ -56,9 +56,9 @@ public abstract class LegacyVelocitySecu
     protected void doBuildTemplate(PipelineData pipelineData)
         throws Exception
     {
-        if (isAuthorized(getRunData(pipelineData)))
+        if (isAuthorized(pipelineData.getRunData()))
         {
-            doBuildTemplate(getRunData(pipelineData), velocity.getContext(pipelineData));
+            doBuildTemplate(pipelineData.getRunData(), velocity.getContext(pipelineData));
         }
     }
 

Modified: turbine/core/trunk/src/java/org/apache/turbine/modules/screens/PlainJSONScreen.java
URL: http://svn.apache.org/viewvc/turbine/core/trunk/src/java/org/apache/turbine/modules/screens/PlainJSONScreen.java?rev=1854797&r1=1854796&r2=1854797&view=diff
==============================================================================
--- turbine/core/trunk/src/java/org/apache/turbine/modules/screens/PlainJSONScreen.java (original)
+++ turbine/core/trunk/src/java/org/apache/turbine/modules/screens/PlainJSONScreen.java Mon Mar  4 20:41:39 2019
@@ -43,7 +43,7 @@ import org.slf4j.LoggerFactory;
  *
  * public void doOutput(PipelineData pipelineData) throws Exception
  * {
- *     RunData data = getRunData(pipelineData);
+ *     RunData data = pipelineData.getRunData();
  *     JSONStrategy strategy = null;
  *     
  *     try
@@ -98,7 +98,7 @@ public class PlainJSONScreen extends Raw
     @Override
     protected void doOutput(PipelineData pipelineData) throws Exception
     {
-        RunData data = getRunData(pipelineData);
+        RunData data = pipelineData.getRunData();
         // read in json!
         String charset =  "UTF-8"; //request.getCharacterEncoding();
         

Modified: turbine/core/trunk/src/java/org/apache/turbine/modules/screens/PlainJSONSecureAnnotatedScreen.java
URL: http://svn.apache.org/viewvc/turbine/core/trunk/src/java/org/apache/turbine/modules/screens/PlainJSONSecureAnnotatedScreen.java?rev=1854797&r1=1854796&r2=1854797&view=diff
==============================================================================
--- turbine/core/trunk/src/java/org/apache/turbine/modules/screens/PlainJSONSecureAnnotatedScreen.java (original)
+++ turbine/core/trunk/src/java/org/apache/turbine/modules/screens/PlainJSONSecureAnnotatedScreen.java Mon Mar  4 20:41:39 2019
@@ -57,7 +57,7 @@ public class PlainJSONSecureAnnotatedScr
      * @throws Exception A generic exception.
      */
     protected boolean isAuthorized(PipelineData pipelineData) throws Exception {
-        RunData data = getRunData(pipelineData);
+        RunData data = pipelineData.getRunData();
         Method[] methods = getClass().getMethods();
         for (Method m : methods) {
             if (m.getName().equals( "doOutput" )) {

Modified: turbine/core/trunk/src/java/org/apache/turbine/modules/screens/RawScreen.java
URL: http://svn.apache.org/viewvc/turbine/core/trunk/src/java/org/apache/turbine/modules/screens/RawScreen.java?rev=1854797&r1=1854796&r2=1854797&view=diff
==============================================================================
--- turbine/core/trunk/src/java/org/apache/turbine/modules/screens/RawScreen.java (original)
+++ turbine/core/trunk/src/java/org/apache/turbine/modules/screens/RawScreen.java Mon Mar  4 20:41:39 2019
@@ -56,7 +56,7 @@ public abstract class RawScreen implemen
     public final String doBuild(PipelineData pipelineData)
             throws Exception
     {
-        RunData data = getRunData(pipelineData);
+        RunData data = pipelineData.getRunData();
         data.getResponse().setContentType(getContentType(pipelineData));
         data.declareDirectResponse();
         doOutput(pipelineData);

Modified: turbine/core/trunk/src/java/org/apache/turbine/modules/screens/VelocityCachedScreen.java
URL: http://svn.apache.org/viewvc/turbine/core/trunk/src/java/org/apache/turbine/modules/screens/VelocityCachedScreen.java?rev=1854797&r1=1854796&r2=1854797&view=diff
==============================================================================
--- turbine/core/trunk/src/java/org/apache/turbine/modules/screens/VelocityCachedScreen.java (original)
+++ turbine/core/trunk/src/java/org/apache/turbine/modules/screens/VelocityCachedScreen.java Mon Mar  4 20:41:39 2019
@@ -50,7 +50,7 @@ public class VelocityCachedScreen
     public String buildTemplate(PipelineData pipelineData)
         throws Exception
     {
-        RunData data = getRunData(pipelineData);
+        RunData data = pipelineData.getRunData();
         Context context = velocity.getContext(pipelineData);
 
         String screenTemplate = data.getTemplateInfo().getScreenTemplate();

Modified: turbine/core/trunk/src/java/org/apache/turbine/modules/screens/VelocityDirectScreen.java
URL: http://svn.apache.org/viewvc/turbine/core/trunk/src/java/org/apache/turbine/modules/screens/VelocityDirectScreen.java?rev=1854797&r1=1854796&r2=1854797&view=diff
==============================================================================
--- turbine/core/trunk/src/java/org/apache/turbine/modules/screens/VelocityDirectScreen.java (original)
+++ turbine/core/trunk/src/java/org/apache/turbine/modules/screens/VelocityDirectScreen.java Mon Mar  4 20:41:39 2019
@@ -51,7 +51,7 @@ public class VelocityDirectScreen
     public String buildTemplate(PipelineData pipelineData)
         throws Exception
     {
-        RunData data = getRunData(pipelineData);
+        RunData data = pipelineData.getRunData();
         Context context = velocity.getContext(pipelineData);
 
         String screenTemplate = data.getTemplateInfo().getScreenTemplate();

Modified: turbine/core/trunk/src/java/org/apache/turbine/modules/screens/VelocityErrorScreen.java
URL: http://svn.apache.org/viewvc/turbine/core/trunk/src/java/org/apache/turbine/modules/screens/VelocityErrorScreen.java?rev=1854797&r1=1854796&r2=1854797&view=diff
==============================================================================
--- turbine/core/trunk/src/java/org/apache/turbine/modules/screens/VelocityErrorScreen.java (original)
+++ turbine/core/trunk/src/java/org/apache/turbine/modules/screens/VelocityErrorScreen.java Mon Mar  4 20:41:39 2019
@@ -47,7 +47,7 @@ public class VelocityErrorScreen
     protected void doBuildTemplate(PipelineData pipelineData, Context context)
             throws Exception
     {
-        RunData data = getRunData(pipelineData);
+        RunData data = pipelineData.getRunData();
         context.put (TurbineConstants.PROCESSING_EXCEPTION_PLACEHOLDER,
                 data.getStackTraceException().toString());
         context.put (TurbineConstants.STACK_TRACE_PLACEHOLDER,

Modified: turbine/core/trunk/src/java/org/apache/turbine/modules/screens/VelocityScreen.java
URL: http://svn.apache.org/viewvc/turbine/core/trunk/src/java/org/apache/turbine/modules/screens/VelocityScreen.java?rev=1854797&r1=1854796&r2=1854797&view=diff
==============================================================================
--- turbine/core/trunk/src/java/org/apache/turbine/modules/screens/VelocityScreen.java (original)
+++ turbine/core/trunk/src/java/org/apache/turbine/modules/screens/VelocityScreen.java Mon Mar  4 20:41:39 2019
@@ -104,7 +104,7 @@ public class VelocityScreen
     public String buildTemplate(PipelineData pipelineData)
         throws Exception
     {
-        RunData data = getRunData(pipelineData);
+        RunData data = pipelineData.getRunData();
         String screenData = null;
 
         Context context = velocity.getContext(pipelineData);

Modified: turbine/core/trunk/src/java/org/apache/turbine/modules/screens/error/InvalidState.java
URL: http://svn.apache.org/viewvc/turbine/core/trunk/src/java/org/apache/turbine/modules/screens/error/InvalidState.java?rev=1854797&r1=1854796&r2=1854797&view=diff
==============================================================================
--- turbine/core/trunk/src/java/org/apache/turbine/modules/screens/error/InvalidState.java (original)
+++ turbine/core/trunk/src/java/org/apache/turbine/modules/screens/error/InvalidState.java Mon Mar  4 20:41:39 2019
@@ -55,7 +55,7 @@ public class InvalidState implements Scr
     public String doBuild(PipelineData pipelineData)
             throws Exception
     {
-        RunData data = getRunData(pipelineData);
+        RunData data = pipelineData.getRunData();
         StringBuilder body = new StringBuilder();
         body.append("<body>");
 

Modified: turbine/core/trunk/src/java/org/apache/turbine/pipeline/CleanUpValve.java
URL: http://svn.apache.org/viewvc/turbine/core/trunk/src/java/org/apache/turbine/pipeline/CleanUpValve.java?rev=1854797&r1=1854796&r2=1854797&view=diff
==============================================================================
--- turbine/core/trunk/src/java/org/apache/turbine/pipeline/CleanUpValve.java (original)
+++ turbine/core/trunk/src/java/org/apache/turbine/pipeline/CleanUpValve.java Mon Mar  4 20:41:39 2019
@@ -41,7 +41,7 @@ import org.apache.turbine.util.TurbineEx
  * @version $Id$
  */
 public class CleanUpValve
-    extends AbstractValve
+    implements Valve
 {
     /**
      * Creates a new instance.
@@ -78,7 +78,7 @@ public class CleanUpValve
      */
     protected void cleanUp(PipelineData pipelineData)
     {
-        RunData data = getRunData(pipelineData);
+        RunData data = pipelineData.getRunData();
         // If a module has set data.acl = null, remove acl from
         // the session.
         if (data.getACL() == null)

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=1854797&r1=1854796&r2=1854797&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 Mon Mar  4 20:41:39 2019
@@ -39,7 +39,7 @@ import org.apache.turbine.util.TurbineEx
  * @version $Id$
  */
 public class DefaultACLCreationValve
-    extends AbstractValve
+    implements Valve
 {
     /** Injected loader instance */
     @TurbineLoader( 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=1854797&r1=1854796&r2=1854797&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 Mon Mar  4 20:41:39 2019
@@ -48,7 +48,7 @@ import org.apache.turbine.util.template.
  * @version $Id$
  */
 public class DefaultLoginValve
-    extends AbstractValve
+    implements Valve
 {
     /** Injected loader instance */
     @TurbineLoader( Action.class )
@@ -91,7 +91,7 @@ public class DefaultLoginValve
     protected void process(PipelineData pipelineData)
         throws Exception
     {
-        RunData data = getRunData(pipelineData);
+        RunData data = pipelineData.getRunData();
         // Special case for login and logout, this must happen before the
         // session validator is executed in order either to allow a user to
         // even login, or to ensure that the session validator gets to

Modified: turbine/core/trunk/src/java/org/apache/turbine/pipeline/DefaultSessionTimeoutValve.java
URL: http://svn.apache.org/viewvc/turbine/core/trunk/src/java/org/apache/turbine/pipeline/DefaultSessionTimeoutValve.java?rev=1854797&r1=1854796&r2=1854797&view=diff
==============================================================================
--- turbine/core/trunk/src/java/org/apache/turbine/pipeline/DefaultSessionTimeoutValve.java (original)
+++ turbine/core/trunk/src/java/org/apache/turbine/pipeline/DefaultSessionTimeoutValve.java Mon Mar  4 20:41:39 2019
@@ -38,7 +38,7 @@ import org.apache.turbine.util.TurbineEx
  * @version $Id$
  */
 public class DefaultSessionTimeoutValve
-    extends AbstractValve
+    implements Valve
 {
     @TurbineConfiguration( TurbineConstants.SESSION_TIMEOUT_KEY )
     protected int timeout = TurbineConstants.SESSION_TIMEOUT_DEFAULT;
@@ -50,7 +50,7 @@ public class DefaultSessionTimeoutValve
     public void invoke(PipelineData pipelineData, ValveContext context)
         throws IOException, TurbineException
     {
-        RunData runData = getRunData(pipelineData);
+        RunData runData = pipelineData.getRunData();
         // If the session is new take this opportunity to
         // set the session timeout if specified in TR.properties
         if (runData.getSession().isNew() && timeout != TurbineConstants.SESSION_TIMEOUT_DEFAULT)

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=1854797&r1=1854796&r2=1854797&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 Mon Mar  4 20:41:39 2019
@@ -39,7 +39,7 @@ import org.apache.turbine.util.TurbineEx
  * @version $Id$
  */
 public class DefaultSessionValidationValve
-    extends AbstractValve
+    implements Valve
 {
     /** Injected loader instance */
     @TurbineLoader( Action.class )

Modified: turbine/core/trunk/src/java/org/apache/turbine/pipeline/DefaultSetEncodingValve.java
URL: http://svn.apache.org/viewvc/turbine/core/trunk/src/java/org/apache/turbine/pipeline/DefaultSetEncodingValve.java?rev=1854797&r1=1854796&r2=1854797&view=diff
==============================================================================
--- turbine/core/trunk/src/java/org/apache/turbine/pipeline/DefaultSetEncodingValve.java (original)
+++ turbine/core/trunk/src/java/org/apache/turbine/pipeline/DefaultSetEncodingValve.java Mon Mar  4 20:41:39 2019
@@ -44,7 +44,7 @@ import org.apache.turbine.util.TurbineEx
  * @author <a href="mailto:tv@apache.org">Thomas Vandahl</a>
  */
 public class DefaultSetEncodingValve
-    extends AbstractValve
+    implements Valve
 {
     private static final Logger log = LogManager.getLogger(DefaultSetEncodingValve.class);
 
@@ -84,7 +84,7 @@ public class DefaultSetEncodingValve
             outputEncoding = requestEncoding;
         }
 
-        getRunData(pipelineData).setCharSet(outputEncoding);
+        pipelineData.getRunData().setCharSet(outputEncoding);
 
         // Pass control to the next Valve in the Pipeline
         context.invokeNext(pipelineData);

Modified: turbine/core/trunk/src/java/org/apache/turbine/pipeline/DetermineActionValve.java
URL: http://svn.apache.org/viewvc/turbine/core/trunk/src/java/org/apache/turbine/pipeline/DetermineActionValve.java?rev=1854797&r1=1854796&r2=1854797&view=diff
==============================================================================
--- turbine/core/trunk/src/java/org/apache/turbine/pipeline/DetermineActionValve.java (original)
+++ turbine/core/trunk/src/java/org/apache/turbine/pipeline/DetermineActionValve.java Mon Mar  4 20:41:39 2019
@@ -38,7 +38,7 @@ import org.apache.turbine.util.uri.URICo
  * @author <a href="mailto:peter@courcoux.biz">Peter Courcoux</a>
  */
 public class DetermineActionValve
-    extends AbstractValve
+    implements Valve
 {
     private static final Logger log
         = LogManager.getLogger(DetermineActionValve.class);
@@ -50,7 +50,7 @@ public class DetermineActionValve
     public void invoke(PipelineData pipelineData, ValveContext context)
         throws IOException, TurbineException
     {
-        RunData data = getRunData(pipelineData);
+        RunData data = pipelineData.getRunData();
         if (! data.hasAction())
         {
             String action =

Modified: turbine/core/trunk/src/java/org/apache/turbine/pipeline/DetermineRedirectRequestedValve.java
URL: http://svn.apache.org/viewvc/turbine/core/trunk/src/java/org/apache/turbine/pipeline/DetermineRedirectRequestedValve.java?rev=1854797&r1=1854796&r2=1854797&view=diff
==============================================================================
--- turbine/core/trunk/src/java/org/apache/turbine/pipeline/DetermineRedirectRequestedValve.java (original)
+++ turbine/core/trunk/src/java/org/apache/turbine/pipeline/DetermineRedirectRequestedValve.java Mon Mar  4 20:41:39 2019
@@ -38,7 +38,7 @@ import org.apache.turbine.util.TurbineEx
  * @version $Id$
  */
 public class DetermineRedirectRequestedValve
-    extends AbstractValve
+    implements Valve
 {
     private static final Logger log = LogManager.getLogger(DetermineRedirectRequestedValve.class);
 
@@ -73,7 +73,7 @@ public class DetermineRedirectRequestedV
     protected void redirectRequested(PipelineData pipelineData)
         throws IOException
     {
-        RunData data = getRunData(pipelineData);
+        RunData data = pipelineData.getRunData();
         // handle a redirect request
         boolean requestRedirected = StringUtils.isNotEmpty(data.getRedirectURI());
         if (requestRedirected)

Modified: turbine/core/trunk/src/java/org/apache/turbine/pipeline/DetermineTargetValve.java
URL: http://svn.apache.org/viewvc/turbine/core/trunk/src/java/org/apache/turbine/pipeline/DetermineTargetValve.java?rev=1854797&r1=1854796&r2=1854797&view=diff
==============================================================================
--- turbine/core/trunk/src/java/org/apache/turbine/pipeline/DetermineTargetValve.java (original)
+++ turbine/core/trunk/src/java/org/apache/turbine/pipeline/DetermineTargetValve.java Mon Mar  4 20:41:39 2019
@@ -42,7 +42,7 @@ import org.apache.turbine.util.uri.URICo
  * @author <a href="mailto:peter@courcoux.biz">Peter Courcoux</a>
  */
 public class DetermineTargetValve
-    extends AbstractValve
+    implements Valve
 {
     private static final Logger log
         = LogManager.getLogger(DetermineTargetValve.class);
@@ -54,7 +54,7 @@ public class DetermineTargetValve
     public void invoke(PipelineData pipelineData, ValveContext context)
         throws IOException, TurbineException
     {
-        RunData runData = getRunData(pipelineData);
+        RunData runData = pipelineData.getRunData();
         if (! runData.hasScreen())
         {
             String target = runData.getParameters().getString(URIConstants.CGI_SCREEN_PARAM);

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=1854797&r1=1854796&r2=1854797&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 Mon Mar  4 20:41:39 2019
@@ -41,7 +41,7 @@ import org.apache.turbine.util.TurbineEx
  * @version $Id$
  */
 public class ExecutePageValve
-    extends AbstractValve
+    implements Valve
 {
     /** Injected service instance */
     @TurbineService

Modified: turbine/core/trunk/src/java/org/apache/turbine/pipeline/PipelineData.java
URL: http://svn.apache.org/viewvc/turbine/core/trunk/src/java/org/apache/turbine/pipeline/PipelineData.java?rev=1854797&r1=1854796&r2=1854797&view=diff
==============================================================================
--- turbine/core/trunk/src/java/org/apache/turbine/pipeline/PipelineData.java (original)
+++ turbine/core/trunk/src/java/org/apache/turbine/pipeline/PipelineData.java Mon Mar  4 20:41:39 2019
@@ -2,6 +2,9 @@ package org.apache.turbine.pipeline;
 
 import java.util.Map;
 
+import org.apache.turbine.util.RunData;
+import org.apache.turbine.util.TurbineRuntimeException;
+
 
 /*
  * Licensed to the Apache Software Foundation (ASF) under one
@@ -65,4 +68,18 @@ public interface PipelineData extends Au
      * @return the inner value or null if no such keys exist
      */
     <T> T get(Class<?> key, Class<T> innerKey);
+
+    /**
+     * Get RunData from PipelineData
+     *
+     * @return RunData extracted from PipelineData
+     */
+    default RunData getRunData()
+    {
+        if (!(this instanceof RunData))
+        {
+            throw new TurbineRuntimeException("Cannot cast to rundata from pipeline data.");
+        }
+        return (RunData) this;
+    }
 }

Modified: turbine/core/trunk/src/java/org/apache/turbine/pipeline/Valve.java
URL: http://svn.apache.org/viewvc/turbine/core/trunk/src/java/org/apache/turbine/pipeline/Valve.java?rev=1854797&r1=1854796&r2=1854797&view=diff
==============================================================================
--- turbine/core/trunk/src/java/org/apache/turbine/pipeline/Valve.java (original)
+++ turbine/core/trunk/src/java/org/apache/turbine/pipeline/Valve.java Mon Mar  4 20:41:39 2019
@@ -96,6 +96,8 @@ public interface Valve
      * Initialize the valve before using in a pipeline.
      * @throws Exception if initialization fails
      */
-    void initialize()
-        throws Exception;
+    default void initialize() throws Exception
+    {
+        // empty
+    }
 }

Modified: turbine/core/trunk/src/java/org/apache/turbine/services/pull/TurbinePullService.java
URL: http://svn.apache.org/viewvc/turbine/core/trunk/src/java/org/apache/turbine/services/pull/TurbinePullService.java?rev=1854797&r1=1854796&r2=1854797&view=diff
==============================================================================
--- turbine/core/trunk/src/java/org/apache/turbine/services/pull/TurbinePullService.java (original)
+++ turbine/core/trunk/src/java/org/apache/turbine/services/pull/TurbinePullService.java Mon Mar  4 20:41:39 2019
@@ -421,7 +421,7 @@ public class TurbinePullService
     @Override
     public void populateContext(Context context, PipelineData pipelineData)
     {
-        RunData data = getRunData(pipelineData);
+        RunData data = pipelineData.getRunData();
 
         populateWithRequestTools(context, pipelineData);
         // session tools (whether session-only or persistent are
@@ -814,7 +814,7 @@ public class TurbinePullService
         if (dataObject instanceof PipelineData)
         {
             pipelineData = (PipelineData)dataObject;
-            data = getRunData(pipelineData);
+            data = pipelineData.getRunData();
             if (tool instanceof PipelineDataApplicationTool)
             {
                 ((PipelineDataApplicationTool) tool).refresh(pipelineData);

Modified: turbine/core/trunk/src/java/org/apache/turbine/util/template/TemplateNavigation.java
URL: http://svn.apache.org/viewvc/turbine/core/trunk/src/java/org/apache/turbine/util/template/TemplateNavigation.java?rev=1854797&r1=1854796&r2=1854797&view=diff
==============================================================================
--- turbine/core/trunk/src/java/org/apache/turbine/util/template/TemplateNavigation.java (original)
+++ turbine/core/trunk/src/java/org/apache/turbine/util/template/TemplateNavigation.java Mon Mar  4 20:41:39 2019
@@ -25,9 +25,9 @@ import org.apache.logging.log4j.LogManag
 
 import org.apache.logging.log4j.Logger;
 import org.apache.turbine.modules.NavigationLoader;
+import org.apache.turbine.pipeline.PipelineData;
 import org.apache.turbine.services.TurbineServices;
 import org.apache.turbine.services.template.TemplateService;
-import org.apache.turbine.util.RunData;
 
 /**
  * Returns output of a Navigation module.  An instance of this is
@@ -48,8 +48,8 @@ public class TemplateNavigation
     /** Logging */
     private static final Logger log = LogManager.getLogger(TemplateNavigation.class);
 
-    /* The RunData object. */
-    private RunData data;
+    /* The PipelineData object. */
+    private final PipelineData pipelineData;
 
     /* The name of the navigation template. */
     private String template = null;
@@ -57,11 +57,11 @@ public class TemplateNavigation
     /**
      * Constructor
      *
-     * @param data A Turbine RunData object.
+     * @param pipelineData A Turbine PipelineData object.
      */
-    public TemplateNavigation(RunData data)
+    public TemplateNavigation(PipelineData pipelineData)
     {
-        this.data = data;
+        this.pipelineData = pipelineData;
     }
 
     /**
@@ -97,8 +97,9 @@ public class TemplateNavigation
                 throw new Exception(returnValue);
             }
 
-            data.getTemplateInfo().setNavigationTemplate(template);
-            TemplateService templateService = (TemplateService)TurbineServices.getInstance().getService(TemplateService.SERVICE_NAME);
+            pipelineData.getRunData().getTemplateInfo().setNavigationTemplate(template);
+            TemplateService templateService = (TemplateService)TurbineServices.getInstance()
+                    .getService(TemplateService.SERVICE_NAME);
             module = templateService.getNavigationName(template);
 
             if (module == null)
@@ -107,7 +108,7 @@ public class TemplateNavigation
                 throw new Exception(returnValue);
             }
 
-            returnValue = NavigationLoader.getInstance().eval(data, module);
+            returnValue = NavigationLoader.getInstance().eval(pipelineData, module);
         }
         catch (Exception e)
         {

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=1854797&r1=1854796&r2=1854797&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 Mon Mar  4 20:41:39 2019
@@ -24,11 +24,8 @@ import org.apache.logging.log4j.LogManag
 
 
 import org.apache.logging.log4j.Logger;
-import org.apache.turbine.modules.Screen;
 import org.apache.turbine.modules.ScreenLoader;
-import org.apache.turbine.services.TurbineServices;
-import org.apache.turbine.services.assemblerbroker.AssemblerBrokerService;
-import org.apache.turbine.util.RunData;
+import org.apache.turbine.pipeline.PipelineData;
 
 /**
  * Returns output of a Screen module.  An instance of this is
@@ -54,26 +51,21 @@ public class TemplateScreen
     /** Logging */
     private static final Logger log = LogManager.getLogger(TemplateScreen.class);
 
-    /* The RunData object. */
-    private final RunData data;
+    /* The PipelineData object. */
+    private final PipelineData pipelineData;
 
     /* The name of the screen template. */
     private String screen;
 
-    private final ScreenLoader screenLoader;
-
     /**
      * Constructor
      *
-     * @param data A Turbine RunData object.
+     * @param pipelineData A Turbine PipelineData object.
      */
-    public TemplateScreen(RunData data)
+    public TemplateScreen(PipelineData pipelineData)
     {
-        this.data = data;
-        this.screen = data.getScreen();
-        AssemblerBrokerService abs = (AssemblerBrokerService)TurbineServices.getInstance()
-            .getService(AssemblerBrokerService.SERVICE_NAME);
-        this.screenLoader = (ScreenLoader)abs.getLoader(Screen.class);
+        this.pipelineData = pipelineData;
+        this.screen = pipelineData.getRunData().getScreen();
     }
 
     /**
@@ -100,7 +92,7 @@ public class TemplateScreen
 
         try
         {
-            String results = screenLoader.eval(data, this.screen);
+            String results = ScreenLoader.getInstance().eval(pipelineData, this.screen);
 
             if (results != null)
             {

Modified: turbine/core/trunk/src/java/org/apache/turbine/util/template/TemplateSecurityCheck.java
URL: http://svn.apache.org/viewvc/turbine/core/trunk/src/java/org/apache/turbine/util/template/TemplateSecurityCheck.java?rev=1854797&r1=1854796&r2=1854797&view=diff
==============================================================================
--- turbine/core/trunk/src/java/org/apache/turbine/util/template/TemplateSecurityCheck.java (original)
+++ turbine/core/trunk/src/java/org/apache/turbine/util/template/TemplateSecurityCheck.java Mon Mar  4 20:41:39 2019
@@ -27,6 +27,7 @@ import org.apache.fulcrum.security.model
 import org.apache.fulcrum.security.model.turbine.TurbineUserManager;
 import org.apache.turbine.Turbine;
 import org.apache.turbine.TurbineConstants;
+import org.apache.turbine.pipeline.PipelineData;
 import org.apache.turbine.services.TurbineServices;
 import org.apache.turbine.services.template.TemplateService;
 import org.apache.turbine.util.RunData;
@@ -53,30 +54,33 @@ public class TemplateSecurityCheck
     private String message = "Sorry, you do not have permission to access this area.";
     private String failScreen;
     private String failTemplate;
-    private RunData data = null;
+
+    /* The RunData object. */
+    private final RunData data;
 
     /**
      * Constructor.
      *
-     * @param data A Turbine RunData object.
+     * @param pipelineData A Turbine PipelineData object.
      * @param message A String with the message to display upon
      * failure.
      */
-    public TemplateSecurityCheck(RunData data, String message)
+    public TemplateSecurityCheck(PipelineData pipelineData, String message)
     {
-        this(data);
-        this.message = message;
+        this(pipelineData);
+        setMessage(message);
     }
 
     /**
      * Generic Constructor.
      *
-     * @param data A Turbine RunData object.
+     * @param pipelineData A Turbine PipelineData object.
      */
-    public TemplateSecurityCheck(RunData data)
+    public TemplateSecurityCheck(PipelineData pipelineData)
     {
-        this.data = data;
-        TemplateService templateService = (TemplateService)TurbineServices.getInstance().getService(TemplateService.SERVICE_NAME);
+        this.data = pipelineData.getRunData();
+        TemplateService templateService = (TemplateService)TurbineServices.getInstance()
+                .getService(TemplateService.SERVICE_NAME);
         this.failScreen = templateService.getDefaultScreen();
     }
 

Modified: turbine/core/trunk/src/test/org/apache/turbine/pipeline/SimpleValve.java
URL: http://svn.apache.org/viewvc/turbine/core/trunk/src/test/org/apache/turbine/pipeline/SimpleValve.java?rev=1854797&r1=1854796&r2=1854797&view=diff
==============================================================================
--- turbine/core/trunk/src/test/org/apache/turbine/pipeline/SimpleValve.java (original)
+++ turbine/core/trunk/src/test/org/apache/turbine/pipeline/SimpleValve.java Mon Mar  4 20:41:39 2019
@@ -24,7 +24,6 @@ package org.apache.turbine.pipeline;
 import java.io.IOException;
 import java.io.Writer;
 
-import org.apache.turbine.util.RunData;
 import org.apache.turbine.util.TurbineException;
 
 /**
@@ -33,15 +32,14 @@ import org.apache.turbine.util.TurbineEx
  * @author <a href="mailto:dlr@finemaltcoding.com">Daniel Rall</a>
  * @version $Id$
  */
-class SimpleValve
-    extends AbstractValve
+class SimpleValve implements Valve
 {
     private String value;
 
     private Writer writer;
 
     /**
-     * The value for the associated <code>Writer</code> to write.
+     * @param value The value for the associated <code>Writer</code> to write.
      */
     public void setValue(String value)
     {
@@ -54,8 +52,9 @@ class SimpleValve
     }
 
     /**
-     * @see org.apache.turbine.Valve#invoke(RunData, ValveContext)
+     * @see org.apache.turbine.pipeline.Valve#invoke(PipelineData, ValveContext)
      */
+    @Override
     public void invoke(PipelineData data, ValveContext context)
         throws IOException, TurbineException
     {