org.apache.turbine.services.pull
Interface PullService

All Superinterfaces:
Initable, Service
All Known Implementing Classes:
TurbinePullService

public interface PullService
extends Service

The Pull Service manages the creation of application tools that are available to all templates in a Turbine application. By using the Pull Service you can avoid having to make Screens to populate a context for use in a particular template. The Pull Service creates a set of tools, as specified in the TR.props file. These tools can have global scope, request scope, authorized or session scope (i.e. stored in user temp hashmap) or persistent scope (i.e. stored in user perm hashmap) The standard way of referencing these global tools is through the toolbox handle. This handle is typically $toolbox, but can be specified in the TR.props file. So, for example, if you had a UI Manager tool which created a set of UI attributes from a properties file, and one of the properties was 'bgcolor', then you could access this UI attribute with $ui.bgcolor. The identifier that is given to the tool, in this case 'ui', can be specified as well.

Version:
$Id: PullService.java 534527 2007-05-02 16:10:59Z tv $
Author:
Jason van Zyl, Henning P. Schmiedehausen

Field Summary
static java.lang.String AUTHORIZED_TOOL
          Property Key for the authorized tools
static java.lang.String GLOBAL_TOOL
          Property Key for the global tools
static java.lang.String PERSISTENT_TOOL
          Property Key for the persistent tools
static java.lang.String REQUEST_TOOL
          Property Key for the request tools
static java.lang.String SERVICE_NAME
          The key under which this service is stored in TurbineServices.
static java.lang.String SESSION_TOOL
          Property Key for the session tools
static java.lang.String SESSION_TOOLS_ATTRIBUTE_PREFIX
          prefix for key used in the session to store session scope pull tools
static java.lang.String TOOL_RESOURCES_DIR_DEFAULT
          Default value for the application tool resources.
static java.lang.String TOOL_RESOURCES_DIR_KEY
          Property tag for application tool resources directory
static boolean TOOLS_PER_REQUEST_REFRESH_DEFAULT
          Default value for per request tool refreshing
static java.lang.String TOOLS_PER_REQUEST_REFRESH_KEY
          Property tag for per request tool refreshing (for obvious reasons has no effect for per-request tools)
 
Method Summary
 java.lang.String getAbsolutePathToResourcesDirectory()
          Return the absolute path of the resources directory used by application tools.
 org.apache.velocity.context.Context getGlobalContext()
          Get the context containing global tools that will be use as part of the Turbine Pull Model.
 java.lang.String getResourcesDirectory()
          Return the resources directory.
 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. No longer needed as Pull and Velocity Service are now more separate.
 boolean refreshToolsPerRequest()
          Deprecated. No longer needed as Pull and Velocity Service are now more separate.
 void releaseTools(org.apache.velocity.context.Context context)
          Release tool instances from the given context to the object pool
 
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, init, setInitableBroker, shutdown
 

Field Detail

SERVICE_NAME

public static final java.lang.String SERVICE_NAME
The key under which this service is stored in TurbineServices.

See Also:
Constant Field Values

GLOBAL_TOOL

public static final java.lang.String GLOBAL_TOOL
Property Key for the global tools

See Also:
Constant Field Values

REQUEST_TOOL

public static final java.lang.String REQUEST_TOOL
Property Key for the request tools

See Also:
Constant Field Values

SESSION_TOOL

public static final java.lang.String SESSION_TOOL
Property Key for the session tools

See Also:
Constant Field Values

AUTHORIZED_TOOL

public static final java.lang.String AUTHORIZED_TOOL
Property Key for the authorized tools

See Also:
Constant Field Values

PERSISTENT_TOOL

public static final java.lang.String PERSISTENT_TOOL
Property Key for the persistent tools

See Also:
Constant Field Values

TOOL_RESOURCES_DIR_KEY

public static final java.lang.String TOOL_RESOURCES_DIR_KEY
Property tag for application tool resources directory

See Also:
Constant Field Values

TOOL_RESOURCES_DIR_DEFAULT

public static final java.lang.String TOOL_RESOURCES_DIR_DEFAULT
Default value for the application tool resources. This is relative to the webapp root

See Also:
Constant Field Values

TOOLS_PER_REQUEST_REFRESH_KEY

public static final java.lang.String TOOLS_PER_REQUEST_REFRESH_KEY
Property tag for per request tool refreshing (for obvious reasons has no effect for per-request tools)

See Also:
Constant Field Values

TOOLS_PER_REQUEST_REFRESH_DEFAULT

public static final boolean TOOLS_PER_REQUEST_REFRESH_DEFAULT
Default value for per request tool refreshing

See Also:
Constant Field Values

SESSION_TOOLS_ATTRIBUTE_PREFIX

public static final java.lang.String SESSION_TOOLS_ATTRIBUTE_PREFIX
prefix for key used in the session to store session scope pull tools

See Also:
Constant Field Values
Method Detail

getGlobalContext

public org.apache.velocity.context.Context getGlobalContext()
Get the context containing global tools that will be use as part of the Turbine Pull Model.

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).

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 of the resources directory used by application tools.

Returns:
A directory path in the file system or null.

getResourcesDirectory

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

Returns:
A directory path to the resources directory relative to the webapp root or null.

refreshGlobalTools

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

Refresh the global tools .


refreshToolsPerRequest

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

Shoud we refresh the tools on each request. For development purposes.

Returns:
true if we should refresh the tools on every request.

releaseTools

public void releaseTools(org.apache.velocity.context.Context context)
Release tool instances from the given context to the object pool

Parameters:
context - a Velocity Context to release tools from


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