org.apache.turbine.services.pull
Class TurbinePullService

java.lang.Object
  extended byorg.apache.turbine.services.BaseInitable
      extended byorg.apache.turbine.services.BaseService
          extended byorg.apache.turbine.services.TurbineBaseService
              extended byorg.apache.turbine.services.pull.TurbinePullService
All Implemented Interfaces:
Initable, PullService, Service

public class TurbinePullService
extends TurbineBaseService
implements PullService

This is the concrete implementation of the Turbine Pull Service.

These are tools that are placed in the context by the service These tools will be made available to all your templates. You list the tools in the following way:

 tool.<scope>.<id> = <classname>

 <scope>      is the tool scope: global, request, session,
              authorized or persistent (see below for more details)
 <id>         is the name of the tool in the context

 You can configure the tools in this way:
 tool.<id>.<parameter> = <value>

 So if you find "global", "request", "session" or "persistent" as second
 part, it is a configuration to put a tool into the toolbox, else it is a
 tool specific configuration.

 For example:

 tool.global.ui    = org.apache.turbine.util.pull.UIManager
 tool.global.mm    = org.apache.turbine.util.pull.MessageManager
 tool.request.link = org.apache.turbine.services.pull.tools.TemplateLink
 tool.request.page = org.apache.turbine.util.template.HtmlPageAttributes

 Then:

 tool.ui.skin = default

 configures the value of "skin" for the "ui" tool.

 Tools are accessible in all templates by the  given
 to the tool. So for the above listings the UIManager would
 be available as $ui, the MessageManager as $mm, the TemplateLink
 as $link and the HtmlPageAttributes as $page.

 You should avoid using tool names called "global", "request",
 "session" or "persistent" because of clashes with the possible Scopes.

 Scopes:

  global:     tool is instantiated once and that instance is available
              to all templates for all requests. Tool must be threadsafe.

  request:    tool is instantiated once for each request (although the
              PoolService is used to recycle instances). Tool need not
              be threadsafe.

  session:    tool is instantiated once for each user session, and is
              stored in the session.  These tools do not need to be
              threadsafe.

  authorized: tool is instantiated once for each user session once the
              user logs in. After this, it is a normal session tool.

  persistent: tool is instantiated once for each user session once
              the user logs in and is is stored in the user's permanent
              hashtable.
              This means for a logged in user the tool will be persisted
              in the user's objectdata. Tool should be Serializable.  These
              tools do not need to be threadsafe.
              persistent scope tools are deprecated in 2.3

 Defaults: none
 

Version:
$Id: TurbinePullService.java 535743 2007-05-07 05:13:47Z seade $
Author:
Jason van Zyl, Sean Legassick, Henning P. Schmiedehausen, Quinton McCombs

Field Summary
 
Fields inherited from class org.apache.turbine.services.BaseService
configuration, name, serviceBroker
 
Fields inherited from class org.apache.turbine.services.BaseInitable
initableBroker, isInitialized
 
Fields inherited from interface org.apache.turbine.services.pull.PullService
AUTHORIZED_TOOL, GLOBAL_TOOL, PERSISTENT_TOOL, REQUEST_TOOL, SERVICE_NAME, SESSION_TOOL, SESSION_TOOLS_ATTRIBUTE_PREFIX, TOOL_RESOURCES_DIR_DEFAULT, TOOL_RESOURCES_DIR_KEY, TOOLS_PER_REQUEST_REFRESH_DEFAULT, TOOLS_PER_REQUEST_REFRESH_KEY
 
Constructor Summary
TurbinePullService()
           
 
Method Summary
 java.lang.String getAbsolutePathToResourcesDirectory()
          Return the absolute path to the resources directory used by the application tools.
 org.apache.velocity.context.Context getGlobalContext()
          Return the Context which contains all global tools that are to be used in conjunction with the Turbine Pull Model.
 java.lang.String getResourcesDirectory()
          Return the resources directory.
 void init()
          Called the first time the Service is used.
 void populateContext(org.apache.velocity.context.Context context, RunData data)
          Populate the given context with all request, session, authorized and persistent scope tools (it is assumed that the context already wraps the global context, and thus already contains the global tools).
 void refreshGlobalTools()
          Deprecated. Will be made private after 2.3
 boolean refreshToolsPerRequest()
          Deprecated. No longer needed as Pull and Velocity Service are now more separate.
 void releaseTools(org.apache.velocity.context.Context context)
          Release the request-scope tool instances in the given Context back to the pool
 
Methods inherited from class org.apache.turbine.services.TurbineBaseService
init, init, init, shutdown
 
Methods inherited from class org.apache.turbine.services.BaseService
getConfiguration, getName, getProperties, getServiceBroker, setName, setServiceBroker
 
Methods inherited from class org.apache.turbine.services.BaseInitable
getInit, getInitableBroker, setInit, setInitableBroker
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
Methods inherited from interface org.apache.turbine.services.Service
getConfiguration, getName, getProperties, setName, setServiceBroker
 
Methods inherited from interface org.apache.turbine.services.Initable
getInit, init, setInitableBroker, shutdown
 

Constructor Detail

TurbinePullService

public TurbinePullService()
Method Detail

init

public void init()
          throws InitializationException
Called the first time the Service is used.

Specified by:
init in interface Initable
Overrides:
init in class TurbineBaseService
Throws:
InitializationException

getGlobalContext

public org.apache.velocity.context.Context getGlobalContext()
Return the Context which contains all global tools that are to be used in conjunction with the Turbine Pull Model. The tools are refreshed every time the global Context is pulled.

Specified by:
getGlobalContext in interface PullService
Returns:
A Context object which contains the Global Tool instances.

populateContext

public void populateContext(org.apache.velocity.context.Context context,
                            RunData data)
Populate the given context with all request, session, authorized and persistent scope tools (it is assumed that the context already wraps the global context, and thus already contains the global tools).

Specified by:
populateContext in interface PullService
Parameters:
context - a Velocity Context to populate
data - a RunData object for request specific data

getAbsolutePathToResourcesDirectory

public java.lang.String getAbsolutePathToResourcesDirectory()
Return the absolute path to the resources directory used by the application tools.

Specified by:
getAbsolutePathToResourcesDirectory in interface PullService
Returns:
the absolute path of the resources directory

getResourcesDirectory

public java.lang.String getResourcesDirectory()
Return the resources directory. This is relative to the web context.

Specified by:
getResourcesDirectory in interface PullService
Returns:
the relative path of the resources directory

refreshGlobalTools

public void refreshGlobalTools()
Deprecated. Will be made private after 2.3

Refresh the global tools. We can only refresh those tools that adhere to ApplicationTool interface because we know those types of tools have a refresh method.

Specified by:
refreshGlobalTools in interface PullService

refreshToolsPerRequest

public boolean refreshToolsPerRequest()
Deprecated. No longer needed as Pull and Velocity Service are now more separate.

Should we refresh the ToolBox on a per request basis.

Specified by:
refreshToolsPerRequest in interface PullService
Returns:
true if we should refresh the tools on every request.

releaseTools

public void releaseTools(org.apache.velocity.context.Context context)
Release the request-scope tool instances in the given Context back to the pool

Specified by:
releaseTools in interface PullService
Parameters:
context - the Velocity Context to release tools from


Copyright © 2000-2008 Apache Software Foundation. All Rights Reserved.