Author: tv
Date: Sun Mar 22 16:43:31 2009
New Revision: 757213
URL: http://svn.apache.org/viewvc?rev=757213&view=rev
Log:
Use dynamic loaders where possible.
Modified:
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/pages/DefaultPage.java
turbine/core/trunk/src/java/org/apache/turbine/modules/screens/TemplateScreen.java
turbine/core/trunk/src/java/org/apache/turbine/modules/screens/VelocityDirectScreen.java
turbine/core/trunk/src/java/org/apache/turbine/pipeline/AbstractValve.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/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/services/jsp/TurbineJspService.java
turbine/core/trunk/src/java/org/apache/turbine/services/jsp/util/JspNavigation.java
turbine/core/trunk/src/java/org/apache/turbine/services/jsp/util/JspScreenPlaceholder.java
turbine/core/trunk/src/java/org/apache/turbine/util/template/TemplateScreen.java
turbine/core/trunk/src/test/org/apache/turbine/pipeline/DefaultACLCreationValveTest.java
turbine/core/trunk/src/test/org/apache/turbine/pipeline/DefaultLoginValveTest.java
turbine/core/trunk/src/test/org/apache/turbine/pipeline/DefaultSessionValidationValveTest.java
turbine/core/trunk/src/test/org/apache/turbine/pipeline/ExecutePageValveTest.java
turbine/core/trunk/xdocs/changes.xml
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=757213&r1=757212&r2=757213&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
Sun Mar 22 16:43:31 2009
@@ -91,7 +91,7 @@
// Finally, generate the layout template and send it to the browser
TurbineVelocity.handleRequest(context,
- prefix + templateName, data.getOut());
+ prefix + templateName, data.getResponse().getOutputStream());
}
/**
@@ -104,7 +104,7 @@
public void doBuild(PipelineData pipelineData)
throws Exception
{
- RunData data = (RunData) getRunData(pipelineData);
+ RunData data = getRunData(pipelineData);
// Get the context needed by Velocity.
Context context = TurbineVelocity.getContext(pipelineData);
@@ -129,7 +129,7 @@
// Finally, generate the layout template and send it to the browser
TurbineVelocity.handleRequest(context,
- prefix + templateName, data.getOut());
+ prefix + templateName, data.getResponse().getOutputStream());
}
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=757213&r1=757212&r2=757213&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
Sun Mar 22 16:43:31 2009
@@ -23,17 +23,16 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-
import org.apache.ecs.ConcreteElement;
-
import org.apache.turbine.TurbineConstants;
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.assemblerbroker.TurbineAssemblerBroker;
import org.apache.turbine.services.velocity.TurbineVelocity;
import org.apache.turbine.util.RunData;
import org.apache.turbine.util.template.TemplateNavigation;
-
import org.apache.velocity.context.Context;
/**
@@ -77,6 +76,18 @@
/** The prefix for lookup up layout pages */
private String prefix = Layout.PREFIX + "/";
+ private ScreenLoader screenLoader;
+
+ /**
+ * Default constructor
+ */
+ public VelocityOnlyLayout()
+ {
+ super();
+
+ this.screenLoader =
(ScreenLoader)TurbineAssemblerBroker.getLoader(Screen.NAME);
+ }
+
/**
* Build the layout. Also sets the ContentType and Locale headers
* of the HttpServletResponse object.
@@ -97,7 +108,7 @@
// First, generate the screen and put it in the context so
// we can grab it the layout template.
ConcreteElement results =
- ScreenLoader.getInstance().eval(data, screenName);
+ screenLoader.eval(data, screenName);
String returnValue = (results == null) ? "" : results.toString();
@@ -120,8 +131,8 @@
log.debug("Now trying to render layout " + templateName);
// Finally, generate the layout template and send it to the browser
- data.getOut().print(TurbineVelocity
- .handleRequest(context, prefix + templateName));
+ TurbineVelocity.handleRequest(context,
+ prefix + templateName, data.getResponse().getOutputStream());
}
/**
@@ -135,7 +146,7 @@
public void doBuild(PipelineData pipelineData)
throws Exception
{
- RunData data = (RunData) getRunData(pipelineData);
+ RunData data = getRunData(pipelineData);
// Get the context needed by Velocity.
Context context = TurbineVelocity.getContext(pipelineData);
@@ -146,7 +157,7 @@
// First, generate the screen and put it in the context so
// we can grab it the layout template.
ConcreteElement results =
- ScreenLoader.getInstance().eval(pipelineData, screenName);
+ screenLoader.eval(pipelineData, screenName);
String returnValue = (results == null) ? "" : results.toString();
@@ -169,9 +180,7 @@
log.debug("Now trying to render layout " + templateName);
// Finally, generate the layout template and send it to the browser
- data.getOut().print(TurbineVelocity
- .handleRequest(context, prefix + templateName));
+ TurbineVelocity.handleRequest(context,
+ prefix + templateName, data.getResponse().getOutputStream());
}
-
-
}
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=757213&r1=757212&r2=757213&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
Sun Mar 22 16:43:31 2009
@@ -30,8 +30,10 @@
import org.apache.turbine.TurbineConstants;
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.assemblerbroker.TurbineAssemblerBroker;
import org.apache.turbine.services.velocity.TurbineVelocity;
import org.apache.turbine.services.xslt.TurbineXSLT;
import org.apache.turbine.util.RunData;
@@ -66,6 +68,18 @@
/** The prefix for lookup up layout pages */
private String prefix = Layout.PREFIX + "/";
+ private ScreenLoader screenLoader;
+
+ /**
+ * Default constructor
+ */
+ public VelocityXslLayout()
+ {
+ super();
+
+ this.screenLoader =
(ScreenLoader)TurbineAssemblerBroker.getLoader(Screen.NAME);
+ }
+
/**
* Build the layout. Also sets the ContentType and Locale headers
* of the HttpServletResponse object.
@@ -88,7 +102,7 @@
// First, generate the screen and put it in the context so
// we can grab it the layout template.
ConcreteElement results =
- ScreenLoader.getInstance().eval(data, screenName);
+ screenLoader.eval(data, screenName);
String returnValue = (results == null) ? "" : results.toString();
@@ -114,7 +128,7 @@
// back to the browser
TurbineXSLT.transform(
data.getTemplateInfo().getScreenTemplate(),
- new StringReader(temp), data.getOut());
+ new StringReader(temp), data.getResponse().getWriter());
}
/**
@@ -127,7 +141,7 @@
public void doBuild(PipelineData pipelineData)
throws Exception
{
- RunData data = (RunData) getRunData(pipelineData);
+ RunData data = getRunData(pipelineData);
// Get the context needed by Velocity.
Context context = TurbineVelocity.getContext(pipelineData);
@@ -140,7 +154,7 @@
// First, generate the screen and put it in the context so
// we can grab it the layout template.
ConcreteElement results =
- ScreenLoader.getInstance().eval(pipelineData, screenName);
+ screenLoader.eval(pipelineData, screenName);
String returnValue = (results == null) ? "" : results.toString();
@@ -166,7 +180,6 @@
// back to the browser
TurbineXSLT.transform(
data.getTemplateInfo().getScreenTemplate(),
- new StringReader(temp), data.getOut());
+ new StringReader(temp), data.getResponse().getWriter());
}
-
}
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=757213&r1=757212&r2=757213&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
Sun Mar 22 16:43:31 2009
@@ -29,12 +29,15 @@
import org.apache.ecs.Doctype;
import org.apache.turbine.Turbine;
import org.apache.turbine.TurbineConstants;
+import org.apache.turbine.modules.Action;
import org.apache.turbine.modules.ActionLoader;
+import org.apache.turbine.modules.Layout;
import org.apache.turbine.modules.LayoutLoader;
import org.apache.turbine.modules.Page;
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.util.RunData;
import org.apache.turbine.util.TurbineException;
@@ -98,6 +101,22 @@
/** Logging */
protected Log log = LogFactory.getLog(this.getClass());
+ protected ActionLoader actionLoader;
+ protected ScreenLoader screenLoader;
+ protected LayoutLoader layoutLoader;
+
+ /**
+ * Default constructor
+ */
+ public DefaultPage()
+ {
+ super();
+
+ this.actionLoader =
(ActionLoader)TurbineAssemblerBroker.getLoader(Action.NAME);
+ this.screenLoader =
(ScreenLoader)TurbineAssemblerBroker.getLoader(Screen.NAME);
+ this.layoutLoader =
(LayoutLoader)TurbineAssemblerBroker.getLoader(Layout.NAME);
+ }
+
/**
* Builds the Page.
*
@@ -116,7 +135,7 @@
// can re-define the template definition.
if (data.hasAction())
{
- ActionLoader.getInstance().exec(data, data.getAction());
+ actionLoader.exec(data, data.getAction());
}
// if a redirect was setup in data, don't do anything else
@@ -141,19 +160,18 @@
// The Screen can override the getLayout() method to re-define
// the Layout depending on data passed in via the
// data.parameters object.
- ScreenLoader sl = ScreenLoader.getInstance();
- Screen aScreen = sl.getInstance(screenName);
+ Screen aScreen = screenLoader.getInstance(screenName);
String layout = aScreen.getLayout(data);
// If the Layout has been set to be null, attempt to execute
// the Screen that has been defined.
if (layout != null)
{
- LayoutLoader.getInstance().exec(data, layout);
+ layoutLoader.exec(data, layout);
}
else
{
- ScreenLoader.getInstance().exec(data, screenName);
+ screenLoader.exec(data, screenName);
}
// Do any post build actions (overridable by subclasses -
@@ -170,7 +188,7 @@
public void doBuild(PipelineData pipelineData)
throws Exception
{
- RunData data = (RunData)getRunData(pipelineData);
+ RunData data = getRunData(pipelineData);
// 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);
@@ -179,7 +197,7 @@
// can re-define the template definition.
if (data.hasAction())
{
- ActionLoader.getInstance().exec(pipelineData, data.getAction());
+ actionLoader.exec(pipelineData, data.getAction());
}
// if a redirect was setup in data, don't do anything else
@@ -204,19 +222,18 @@
// The Screen can override the getLayout() method to re-define
// the Layout depending on data passed in via the
// data.parameters object.
- ScreenLoader sl = ScreenLoader.getInstance();
- Screen aScreen = sl.getInstance(screenName);
+ Screen aScreen = screenLoader.getInstance(screenName);
String layout = aScreen.getLayout(pipelineData);
// If the Layout has been set to be null, attempt to execute
// the Screen that has been defined.
if (layout != null)
{
- LayoutLoader.getInstance().exec(pipelineData, layout);
+ layoutLoader.exec(pipelineData, layout);
}
else
{
- ScreenLoader.getInstance().exec(pipelineData, screenName);
+ screenLoader.exec(pipelineData, screenName);
}
// Do any post build actions (overridable by subclasses -
@@ -238,6 +255,7 @@
protected void doBuildBeforeAction(RunData data)
throws Exception
{
+ // do nothing by default
}
/**
@@ -251,6 +269,7 @@
protected void doBuildAfterAction(RunData data)
throws Exception
{
+ // do nothing by default
}
/**
@@ -263,6 +282,7 @@
protected void doPostBuild(RunData data)
throws Exception
{
+ // do nothing by default
}
@@ -277,6 +297,7 @@
protected void doBuildBeforeAction(PipelineData pipelineData)
throws Exception
{
+ // do nothing by default
}
/**
@@ -289,6 +310,7 @@
protected void doBuildAfterAction(PipelineData pipelineData)
throws Exception
{
+ // do nothing by default
}
/**
@@ -301,10 +323,9 @@
protected void doPostBuild(PipelineData pipelineData)
throws Exception
{
+ // do nothing by default
}
-
-
/**
* Set the default Doctype. If Doctype is set to null, it will
* not be added. The default Doctype can be set in
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=757213&r1=757212&r2=757213&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
Sun Mar 22 16:43:31 2009
@@ -30,6 +30,7 @@
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;
@@ -57,6 +58,18 @@
/** Logging */
protected Log log = LogFactory.getLog(this.getClass());
+ private ScreenLoader screenLoader;
+
+ /**
+ * Default constructor
+ */
+ public TemplateScreen()
+ {
+ super();
+
+ this.screenLoader =
(ScreenLoader)TurbineAssemblerBroker.getLoader(NAME);
+ }
+
/**
* This method should be overidden by subclasses that wish to add
* specific business logic.
@@ -264,7 +277,7 @@
{
log.debug("doRedirect(data, " + screen + ", " + template + ")");
setTemplate(data, template);
- ScreenLoader.getInstance().exec(data, screen);
+ screenLoader.exec(data, screen);
}
/**
@@ -292,7 +305,7 @@
RunData data = getRunData(pipelineData);
log.debug("doRedirect(data, " + screen + ", " + template + ")");
setTemplate(data, template);
- ScreenLoader.getInstance().exec(pipelineData, screen);
+ screenLoader.exec(pipelineData, screen);
}
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=757213&r1=757212&r2=757213&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
Sun Mar 22 16:43:31 2009
@@ -77,7 +77,7 @@
{
TurbineVelocity.handleRequest(context,
prefix + templateName,
- data.getOut());
+
data.getResponse().getOutputStream());
}
catch (Exception e)
@@ -94,7 +94,7 @@
TurbineVelocity.handleRequest(context,
prefix + templateName,
- data.getOut());
+ data.getResponse().getOutputStream());
}
return null;
@@ -110,44 +110,44 @@
public ConcreteElement buildTemplate(PipelineData pipelineData)
throws Exception
{
- RunData data = getRunData(pipelineData);
- Context context = TurbineVelocity.getContext(pipelineData);
+ RunData data = getRunData(pipelineData);
+ Context context = TurbineVelocity.getContext(pipelineData);
- String screenTemplate = data.getTemplateInfo().getScreenTemplate();
- String templateName
- = TurbineTemplate.getScreenTemplateName(screenTemplate);
-
- // The Template Service could not find the Screen
- if (StringUtils.isEmpty(templateName))
- {
- log.error("Screen " + screenTemplate + " not found!");
- throw new Exception("Could not find screen for " +
screenTemplate);
- }
-
- try
- {
- TurbineVelocity.handleRequest(context,
- prefix + templateName,
- data.getOut());
-
- }
- catch (Exception e)
- {
- // If there is an error, build a $processingException and
- // attempt to call the error.vm template in the screens
- // directory.
- context.put
(TurbineConstants.PROCESSING_EXCEPTION_PLACEHOLDER, e.toString());
- context.put (TurbineConstants.STACK_TRACE_PLACEHOLDER,
ExceptionUtils.getStackTrace(e));
-
- templateName = Turbine.getConfiguration()
- .getString(TurbineConstants.TEMPLATE_ERROR_KEY,
- TurbineConstants.TEMPLATE_ERROR_VM);
-
- TurbineVelocity.handleRequest(context,
- prefix + templateName,
- data.getOut());
- }
+ String screenTemplate = data.getTemplateInfo().getScreenTemplate();
+ String templateName
+ = TurbineTemplate.getScreenTemplateName(screenTemplate);
- return null;
+ // The Template Service could not find the Screen
+ if (StringUtils.isEmpty(templateName))
+ {
+ log.error("Screen " + screenTemplate + " not found!");
+ throw new Exception("Could not find screen for " + screenTemplate);
+ }
+
+ try
+ {
+ TurbineVelocity.handleRequest(context,
+ prefix + templateName,
+
data.getResponse().getOutputStream());
+
+ }
+ catch (Exception e)
+ {
+ // If there is an error, build a $processingException and
+ // attempt to call the error.vm template in the screens
+ // directory.
+ context.put (TurbineConstants.PROCESSING_EXCEPTION_PLACEHOLDER,
e.toString());
+ context.put (TurbineConstants.STACK_TRACE_PLACEHOLDER,
ExceptionUtils.getStackTrace(e));
+
+ templateName = Turbine.getConfiguration()
+ .getString(TurbineConstants.TEMPLATE_ERROR_KEY,
+ TurbineConstants.TEMPLATE_ERROR_VM);
+
+ TurbineVelocity.handleRequest(context,
+ prefix + templateName,
+ data.getResponse().getOutputStream());
+ }
+
+ return null;
}
}
Modified:
turbine/core/trunk/src/java/org/apache/turbine/pipeline/AbstractValve.java
URL:
http://svn.apache.org/viewvc/turbine/core/trunk/src/java/org/apache/turbine/pipeline/AbstractValve.java?rev=757213&r1=757212&r2=757213&view=diff
==============================================================================
--- turbine/core/trunk/src/java/org/apache/turbine/pipeline/AbstractValve.java
(original)
+++ turbine/core/trunk/src/java/org/apache/turbine/pipeline/AbstractValve.java
Sun Mar 22 16:43:31 2009
@@ -44,6 +44,7 @@
public void initialize()
throws Exception
{
+ // empty
}
/**
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=757213&r1=757212&r2=757213&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
Sun Mar 22 16:43:31 2009
@@ -48,6 +48,7 @@
*/
public CleanUpValve()
{
+ // empty constructor
}
/**
@@ -77,7 +78,7 @@
protected void cleanUp(PipelineData pipelineData)
throws Exception
{
- RunData data = (RunData)getRunData(pipelineData);
+ RunData data = getRunData(pipelineData);
// 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=757213&r1=757212&r2=757213&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
Sun Mar 22 16:43:31 2009
@@ -25,8 +25,10 @@
import org.apache.turbine.Turbine;
import org.apache.turbine.TurbineConstants;
+import org.apache.turbine.modules.Action;
import org.apache.turbine.modules.ActionLoader;
import org.apache.turbine.modules.actions.AccessController;
+import org.apache.turbine.services.assemblerbroker.TurbineAssemblerBroker;
import org.apache.turbine.util.RunData;
import org.apache.turbine.util.TurbineException;
@@ -42,6 +44,7 @@
extends AbstractValve
{
protected AccessController accessController = null;
+ private ActionLoader actionLoader;
/**
* Here we can setup objects that are thread safe and can be
@@ -51,7 +54,19 @@
public DefaultACLCreationValve()
throws Exception
{
-
+ // 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);
}
/**
@@ -67,7 +82,7 @@
// into the session for serialization. Modules can null
// out the ACL to force it to be rebuilt based on more
// information.
- ActionLoader.getInstance().exec(
+ actionLoader.exec(
pipelineData, Turbine.getConfiguration().getString(
TurbineConstants.ACTION_ACCESS_CONTROLLER_KEY,
TurbineConstants.ACTION_ACCESS_CONTROLLER_DEFAULT));
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=757213&r1=757212&r2=757213&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
Sun Mar 22 16:43:31 2009
@@ -31,7 +31,9 @@
import org.apache.turbine.Turbine;
import org.apache.turbine.TurbineConstants;
+import org.apache.turbine.modules.Action;
import org.apache.turbine.modules.ActionLoader;
+import org.apache.turbine.services.assemblerbroker.TurbineAssemblerBroker;
import org.apache.turbine.services.velocity.VelocityService;
import org.apache.turbine.util.RunData;
import org.apache.turbine.util.TurbineException;
@@ -49,6 +51,8 @@
public class DefaultLoginValve
extends AbstractValve
{
+ private ActionLoader actionLoader;
+
/**
* Here we can setup objects that are thread safe and can be
* reused. We setup the session validator and the access
@@ -57,6 +61,19 @@
public DefaultLoginValve()
throws Exception
{
+ // 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);
}
/**
@@ -87,7 +104,7 @@
protected void process(PipelineData pipelineData)
throws Exception
{
- RunData data = (RunData)getRunData(pipelineData);
+ RunData data = getRunData(pipelineData);
// 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
@@ -142,7 +159,7 @@
}
- ActionLoader.getInstance().exec(pipelineData, data.getAction());
+ actionLoader.exec(pipelineData, data.getAction());
cleanupTemplateContext(data);
data.setAction(null);
}
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=757213&r1=757212&r2=757213&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
Sun Mar 22 16:43:31 2009
@@ -65,7 +65,7 @@
public void invoke(PipelineData pipelineData, ValveContext context)
throws IOException, TurbineException
{
- RunData runData = (RunData)getRunData(pipelineData);
+ RunData runData = getRunData(pipelineData);
// 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=757213&r1=757212&r2=757213&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
Sun Mar 22 16:43:31 2009
@@ -25,8 +25,10 @@
import org.apache.turbine.Turbine;
import org.apache.turbine.TurbineConstants;
+import org.apache.turbine.modules.Action;
import org.apache.turbine.modules.ActionLoader;
import org.apache.turbine.modules.actions.sessionvalidator.SessionValidator;
+import org.apache.turbine.services.assemblerbroker.TurbineAssemblerBroker;
import org.apache.turbine.util.RunData;
import org.apache.turbine.util.TurbineException;
@@ -42,12 +44,24 @@
extends AbstractValve
{
protected SessionValidator sessionValidator = null;
-
+ private ActionLoader actionLoader;
public DefaultSessionValidationValve()
throws Exception
{
+ // 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);
}
/**
@@ -66,7 +80,7 @@
// screen other than Login, you need to change that within
// TurbineResources.properties...screen.homepage; or, you
// can specify your own SessionValidator action.
- ActionLoader.getInstance().exec(pipelineData,
+ actionLoader.exec(pipelineData,
Turbine.getConfiguration().getString(
TurbineConstants.ACTION_SESSION_VALIDATOR_KEY,
TurbineConstants.ACTION_SESSION_VALIDATOR_DEFAULT));
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=757213&r1=757212&r2=757213&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
Sun Mar 22 16:43:31 2009
@@ -41,38 +41,38 @@
extends AbstractValve
{
private static final Log log
- = LogFactory.getLog( DetermineActionValve.class );
+ = LogFactory.getLog(DetermineActionValve.class);
/**
* @see org.apache.turbine.Valve#invoke(RunData, ValveContext)
*/
- public void invoke( PipelineData pipelineData, ValveContext context )
+ public void invoke(PipelineData pipelineData, ValveContext context)
throws IOException, TurbineException
{
- RunData data = (RunData)getRunData(pipelineData);
- if ( ! data.hasAction() )
+ RunData data = getRunData(pipelineData);
+ if (! data.hasAction())
{
String action =
- data.getParameters().getString( URIConstants.CGI_ACTION_PARAM
);
+ data.getParameters().getString(URIConstants.CGI_ACTION_PARAM);
- if ( action != null )
+ if (action != null)
{
- data.setAction( action );
+ data.setAction(action);
- log.debug( "Set action from request parameter" );
+ log.debug("Set action from request parameter");
}
else
{
- log.debug( "No action" );
+ log.debug("No action");
}
}
- if ( log.isDebugEnabled() )
+ if (log.isDebugEnabled())
{
- log.debug( "Action is now: " + data.getAction() );
+ log.debug("Action is now: " + data.getAction());
}
// Pass control to the next Valve in the Pipeline
- context.invokeNext( pipelineData );
+ context.invokeNext(pipelineData);
}
}
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=757213&r1=757212&r2=757213&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
Sun Mar 22 16:43:31 2009
@@ -39,12 +39,13 @@
public class DetermineRedirectRequestedValve
extends AbstractValve
{
- Log log = LogFactory.getLog(DetermineRedirectRequestedValve.class);
+ private static final Log log =
LogFactory.getLog(DetermineRedirectRequestedValve.class);
/**
* Creates a new instance.
*/
public DetermineRedirectRequestedValve()
{
+ // empty constructor
}
/**
@@ -74,7 +75,7 @@
protected void redirectRequested(PipelineData pipelineData)
throws Exception
{
- RunData data = (RunData)getRunData(pipelineData);
+ RunData data = getRunData(pipelineData);
// handle a redirect request
boolean requestRedirected = ((data.getRedirectURI() != null)
&& (data.getRedirectURI().length() > 0));
@@ -115,7 +116,7 @@
// Set the status code.
data.getResponse().setStatus(data.getStatusCode());
// Output the Page.
- data.getPage().output(data.getOut());
+ data.getPage().output(data.getResponse().getWriter());
}
}
catch (Exception e)
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=757213&r1=757212&r2=757213&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
Sun Mar 22 16:43:31 2009
@@ -45,43 +45,43 @@
extends AbstractValve
{
private static final Log log
- = LogFactory.getLog( DetermineTargetValve.class );
+ = LogFactory.getLog(DetermineTargetValve.class);
/**
* @see org.apache.turbine.Valve#invoke(RunData, ValveContext)
*/
- public void invoke( PipelineData pipelineData, ValveContext context )
+ public void invoke(PipelineData pipelineData, ValveContext context)
throws IOException, TurbineException
{
- RunData runData = (RunData)getRunData(pipelineData);
- if ( ! runData.hasScreen() )
+ RunData runData = getRunData(pipelineData);
+ if (! runData.hasScreen())
{
String target =
runData.getParameters().getString(URIConstants.CGI_SCREEN_PARAM);
- if ( target != null )
+ if (target != null)
{
- runData.setScreen( target );
+ runData.setScreen(target);
- log.debug( "Set screen target from request parameter" );
+ log.debug("Set screen target from request parameter");
}
else
{
- /* data.setScreen( Turbine.getConfiguration().getString(
- Turbine.TEMPLATE_HOMEPAGE ) );
+ /* data.setScreen(Turbine.getConfiguration().getString(
+ Turbine.TEMPLATE_HOMEPAGE));
- log.debug( "Set target using default value" );
+ log.debug("Set target using default value");
*/
- log.debug( "No target screen" );
+ log.debug("No target screen");
}
}
- if ( log.isDebugEnabled() )
+ if (log.isDebugEnabled())
{
- log.debug( "Screen Target is now: " + runData.getScreen() );
+ log.debug("Screen Target is now: " + runData.getScreen());
}
// Pass control to the next Valve in the Pipeline
- context.invokeNext( pipelineData );
+ context.invokeNext(pipelineData);
}
}
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=757213&r1=757212&r2=757213&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
Sun Mar 22 16:43:31 2009
@@ -23,14 +23,11 @@
import java.io.IOException;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
import org.apache.turbine.Turbine;
import org.apache.turbine.TurbineConstants;
+import org.apache.turbine.modules.Page;
import org.apache.turbine.modules.PageLoader;
-import org.apache.turbine.pipeline.AbstractValve;
-import org.apache.turbine.pipeline.PipelineData;
-import org.apache.turbine.pipeline.ValveContext;
+import org.apache.turbine.services.assemblerbroker.TurbineAssemblerBroker;
import org.apache.turbine.services.template.TemplateService;
import org.apache.turbine.services.template.TurbineTemplate;
import org.apache.turbine.util.RunData;
@@ -47,14 +44,28 @@
public class ExecutePageValve
extends AbstractValve
{
- Log log = LogFactory.getLog(ExecutePageValve.class);
- TemplateService templateService;
+ private TemplateService templateService;
+ private PageLoader pageLoader;
+
/**
* Creates a new instance.
*/
public 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);
}
/**
@@ -84,7 +95,7 @@
protected void executePage(PipelineData pipelineData)
throws Exception
{
- RunData data = (RunData)getRunData(pipelineData);
+ RunData data = getRunData(pipelineData);
// Start the execution phase. DefaultPage will execute the
// appropriate action as well as get the Layout from the
@@ -98,10 +109,6 @@
// than just the default page. If you do, add logic to
// DefaultPage to do what you want.
- // see if this should be static or not... Or loaded from
- // Turbine.java.
- templateService = TurbineTemplate.getService();
-
String defaultPage = (templateService == null)
? null :templateService.getDefaultPageName(data);
@@ -122,7 +129,6 @@
TurbineConstants.PAGE_DEFAULT_DEFAULT);
}
- PageLoader.getInstance().exec(pipelineData, defaultPage);
-
+ pageLoader.exec(pipelineData, defaultPage);
}
}
Modified:
turbine/core/trunk/src/java/org/apache/turbine/services/jsp/TurbineJspService.java
URL:
http://svn.apache.org/viewvc/turbine/core/trunk/src/java/org/apache/turbine/services/jsp/TurbineJspService.java?rev=757213&r1=757212&r2=757213&view=diff
==============================================================================
---
turbine/core/trunk/src/java/org/apache/turbine/services/jsp/TurbineJspService.java
(original)
+++
turbine/core/trunk/src/java/org/apache/turbine/services/jsp/TurbineJspService.java
Sun Mar 22 16:43:31 2009
@@ -29,12 +29,9 @@
import javax.servlet.http.HttpServletRequest;
import org.apache.commons.configuration.Configuration;
-
import org.apache.commons.lang.StringUtils;
-
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-
import org.apache.turbine.Turbine;
import org.apache.turbine.services.InitializationException;
import org.apache.turbine.services.pull.ApplicationTool;
@@ -176,7 +173,7 @@
// get the RequestDispatcher for the JSP
RequestDispatcher dispatcher = data.getServletContext()
.getRequestDispatcher(relativeTemplateName);
-
+
try
{
if (isForward)
@@ -186,7 +183,7 @@
}
else
{
- data.getOut().flush();
+ data.getResponse().getWriter().flush();
// include the JSP
dispatcher.include(data.getRequest(), data.getResponse());
}
@@ -197,9 +194,9 @@
// error message to the browser, to speed up debugging
try
{
- data.getOut().print("Error encountered processing a template: "
+ data.getResponse().getWriter().print("Error encountered
processing a template: "
+ templateName);
- e.printStackTrace(data.getOut());
+ e.printStackTrace(data.getResponse().getWriter());
}
catch (IOException ignored)
{
Modified:
turbine/core/trunk/src/java/org/apache/turbine/services/jsp/util/JspNavigation.java
URL:
http://svn.apache.org/viewvc/turbine/core/trunk/src/java/org/apache/turbine/services/jsp/util/JspNavigation.java?rev=757213&r1=757212&r2=757213&view=diff
==============================================================================
---
turbine/core/trunk/src/java/org/apache/turbine/services/jsp/util/JspNavigation.java
(original)
+++
turbine/core/trunk/src/java/org/apache/turbine/services/jsp/util/JspNavigation.java
Sun Mar 22 16:43:31 2009
@@ -81,7 +81,7 @@
log.error(message, e);
try
{
- data.getOut().print("Error processing navigation template: "
+ data.getResponse().getWriter().print("Error processing
navigation template: "
+ template + " using module: " + module);
}
catch (java.io.IOException ioe)
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=757213&r1=757212&r2=757213&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
Sun Mar 22 16:43:31 2009
@@ -23,8 +23,9 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-
+import org.apache.turbine.modules.Screen;
import org.apache.turbine.modules.ScreenLoader;
+import org.apache.turbine.services.assemblerbroker.TurbineAssemblerBroker;
import org.apache.turbine.services.template.TurbineTemplate;
import org.apache.turbine.util.RunData;
@@ -51,6 +52,8 @@
/* The RunData object */
private RunData data;
+ private ScreenLoader screenLoader;
+
/**
* Constructor
*
@@ -59,6 +62,7 @@
public JspScreenPlaceholder(RunData data)
{
this.data = data;
+ this.screenLoader =
(ScreenLoader)TurbineAssemblerBroker.getLoader(Screen.NAME);
}
/**
@@ -72,7 +76,7 @@
{
template = data.getTemplateInfo().getScreenTemplate();
module = TurbineTemplate.getScreenName(template);
- ScreenLoader.getInstance().exec(data, module);
+ screenLoader.exec(data, module);
}
catch (Exception e)
{
@@ -81,11 +85,12 @@
log.error(message, e);
try
{
- data.getOut().print("Error processing navigation template: "
+ data.getResponse().getWriter().print("Error processing
navigation template: "
+ template + " using module: " + module);
}
catch (java.io.IOException ioe)
{
+ // ignore
}
}
}
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=757213&r1=757212&r2=757213&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
Sun Mar 22 16:43:31 2009
@@ -23,10 +23,10 @@
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.services.assemblerbroker.TurbineAssemblerBroker;
import org.apache.turbine.util.RunData;
/**
@@ -59,6 +59,8 @@
/* The name of the screen template. */
private String screen;
+ private ScreenLoader screenLoader;
+
/**
* Constructor
*
@@ -68,6 +70,7 @@
{
this.data = data;
this.screen = data.getScreen();
+ this.screenLoader =
(ScreenLoader)TurbineAssemblerBroker.getLoader(Screen.NAME);
}
/**
@@ -93,8 +96,7 @@
try
{
- ConcreteElement results = ScreenLoader.getInstance()
- .eval(data, this.screen);
+ ConcreteElement results = screenLoader.eval(data, this.screen);
if (results != null)
{
Modified:
turbine/core/trunk/src/test/org/apache/turbine/pipeline/DefaultACLCreationValveTest.java
URL:
http://svn.apache.org/viewvc/turbine/core/trunk/src/test/org/apache/turbine/pipeline/DefaultACLCreationValveTest.java?rev=757213&r1=757212&r2=757213&view=diff
==============================================================================
---
turbine/core/trunk/src/test/org/apache/turbine/pipeline/DefaultACLCreationValveTest.java
(original)
+++
turbine/core/trunk/src/test/org/apache/turbine/pipeline/DefaultACLCreationValveTest.java
Sun Mar 22 16:43:31 2009
@@ -117,6 +117,7 @@
DefaultACLCreationValve valve = new DefaultACLCreationValve();
pipeline.addValve(valve);
+ pipeline.initialize();
pipeline.invoke(pipelineData);
User user = runData.getUser();
Modified:
turbine/core/trunk/src/test/org/apache/turbine/pipeline/DefaultLoginValveTest.java
URL:
http://svn.apache.org/viewvc/turbine/core/trunk/src/test/org/apache/turbine/pipeline/DefaultLoginValveTest.java?rev=757213&r1=757212&r2=757213&view=diff
==============================================================================
---
turbine/core/trunk/src/test/org/apache/turbine/pipeline/DefaultLoginValveTest.java
(original)
+++
turbine/core/trunk/src/test/org/apache/turbine/pipeline/DefaultLoginValveTest.java
Sun Mar 22 16:43:31 2009
@@ -122,6 +122,7 @@
DefaultLoginValve valve = new DefaultLoginValve();
pipeline.addValve(valve);
+ pipeline.initialize();
pipeline.invoke(pipelineData);
User user = runData.getUser();
Modified:
turbine/core/trunk/src/test/org/apache/turbine/pipeline/DefaultSessionValidationValveTest.java
URL:
http://svn.apache.org/viewvc/turbine/core/trunk/src/test/org/apache/turbine/pipeline/DefaultSessionValidationValveTest.java?rev=757213&r1=757212&r2=757213&view=diff
==============================================================================
---
turbine/core/trunk/src/test/org/apache/turbine/pipeline/DefaultSessionValidationValveTest.java
(original)
+++
turbine/core/trunk/src/test/org/apache/turbine/pipeline/DefaultSessionValidationValveTest.java
Sun Mar 22 16:43:31 2009
@@ -123,6 +123,7 @@
DefaultSessionValidationValve valve = new
DefaultSessionValidationValve();
pipeline.addValve(valve);
+ pipeline.initialize();
pipeline.invoke(pipelineData);
User user = runData.getUser();
@@ -155,6 +156,7 @@
DefaultSessionValidationValve valve = new
DefaultSessionValidationValve();
pipeline.addValve(valve);
+ pipeline.initialize();
pipeline.invoke(pipelineData);
User user = runData.getUser();
Modified:
turbine/core/trunk/src/test/org/apache/turbine/pipeline/ExecutePageValveTest.java
URL:
http://svn.apache.org/viewvc/turbine/core/trunk/src/test/org/apache/turbine/pipeline/ExecutePageValveTest.java?rev=757213&r1=757212&r2=757213&view=diff
==============================================================================
---
turbine/core/trunk/src/test/org/apache/turbine/pipeline/ExecutePageValveTest.java
(original)
+++
turbine/core/trunk/src/test/org/apache/turbine/pipeline/ExecutePageValveTest.java
Sun Mar 22 16:43:31 2009
@@ -126,6 +126,7 @@
PipelineData pipelineData = runData;
ExecutePageValve valve = new ExecutePageValve();
pipeline.addValve(valve);
+ pipeline.initialize();
int numberOfCalls = VelocityActionDoesNothing.numberOfCalls;
pipeline.invoke(pipelineData);
Modified: turbine/core/trunk/xdocs/changes.xml
URL:
http://svn.apache.org/viewvc/turbine/core/trunk/xdocs/changes.xml?rev=757213&r1=757212&r2=757213&view=diff
==============================================================================
--- turbine/core/trunk/xdocs/changes.xml (original)
+++ turbine/core/trunk/xdocs/changes.xml Sun Mar 22 16:43:31 2009
@@ -26,6 +26,14 @@
<body>
<release version="4.0-dev" date="in Subversion">
<action type="update" dev="tv">
+ Moved the initialization of the pipeline so that all services are
+ initialized first and can be used in the pipeline.
+ </action>
+ <action type="update" dev="tv">
+ Added a getLoader() method to the AssemblerBrokerService to allow
dynamic
+ loaders. Loaders are expected to be provided by the module factories.
+ </action>
+ <action type="update" dev="tv">
Moved the different loader caches into the AssemblerBrokerService and
centralized several loader features. The loaders do no longer extend
Hashtable.