org.blojsom.dispatcher
Class VelocityDispatcher

java.lang.Object
  extended byorg.blojsom.dispatcher.VelocityDispatcher
All Implemented Interfaces:
BlojsomConstants, BlojsomDispatcher

public class VelocityDispatcher
extends java.lang.Object
implements BlojsomDispatcher

VelocityDispatcher

Version:
$Id: VelocityDispatcher.java,v 1.23 2006/01/04 16:59:54 czarneckid Exp $
Author:
David Czarnecki

Nested Class Summary
 class VelocityDispatcher.BlojsomRenderTool
          Blojsom render tool mimics the functionality of the Velocity render tool to parse VTL markup added to a template
 
Field Summary
 
Fields inherited from interface org.blojsom.util.BlojsomConstants
ADMINISTRATORS_IP, BLOG_ADMIN_URL_IP, BLOG_ADMINISTRATION_LOCALE_IP, BLOG_AUTHORIZATION_IP, BLOG_BASE_URL_IP, BLOG_BLACKLIST_FILE_IP, BLOG_COMMENTS_DIRECTORY_IP, BLOG_COMMENTS_ENABLED_IP, BLOG_COUNTRY_DEFAULT, BLOG_COUNTRY_IP, BLOG_DEFAULT_CATEGORY_EXCLUSION_MAPPING_IP, BLOG_DEFAULT_CATEGORY_MAPPING_IP, BLOG_DEFAULT_FETCHER, BLOG_DEFAULT_FILE_EXTENSION_IP, BLOG_DEFAULT_FLAVOR_IP, BLOG_DEFAULT_PROPERTIES, BLOG_DEPTH_IP, BLOG_DESCRIPTION_IP, BLOG_DIRECTORY_FILTER_IP, BLOG_EMAIL_ENABLED_IP, BLOG_ENTRIES_DISPLAY_DEFAULT, BLOG_ENTRIES_DISPLAY_IP, BLOG_ENTRY_META_DATA_EXTENSION_IP, BLOG_FILE_ENCODING_IP, BLOG_FILE_EXTENSIONS_IP, BLOG_HOME_IP, BLOG_LANGUAGE_DEFAULT, BLOG_LANGUAGE_IP, BLOG_NAME_IP, BLOG_OWNER, BLOG_OWNER_EMAIL, BLOG_PERMISSIONS_IP, BLOG_PINGBACKS_DIRECTORY_IP, BLOG_PINGBACKS_ENABLED_IP, BLOG_PROPERTIES_EXTENSIONS_IP, BLOG_TRACKBACK_DIRECTORY_IP, BLOG_TRACKBACKS_ENABLED_IP, BLOG_URL_IP, BLOJSOM_ALL_CATEGORIES, BLOJSOM_AUTHORIZATION_PROVIDER_IP, BLOJSOM_BLOG, BLOJSOM_BLOG_HOME_IP, BLOJSOM_BROADCASTER_IP, BLOJSOM_CATEGORIES, BLOJSOM_COMMENTS_ENABLED, BLOJSOM_CONFIGURATION_BASE_DIRECTORY_IP, BLOJSOM_CONFIGURATION_IP, BLOJSOM_DATE, BLOJSOM_DATE_ISO8601, BLOJSOM_DATE_OBJECT, BLOJSOM_DATE_UTC, BLOJSOM_DEFAULT_BROADCASTER, BLOJSOM_DEFAULT_CONFIGURATION_BASE_DIRECTORY, BLOJSOM_DEFAULT_RESOURCE_DIRECTORY, BLOJSOM_DEFAULT_RESOURCE_MANAGER, BLOJSOM_DEFAULT_TEMPLATES_DIRECTORY, BLOJSOM_DEFAULT_USER_IP, BLOJSOM_EMAIL_ENABLED, BLOJSOM_ENTRIES, BLOJSOM_FETCHER_IP, BLOJSOM_FLAVOR_CONFIGURATION_IP, BLOJSOM_INSTALLATION_DIRECTORY_IP, BLOJSOM_INSTALLED_LOCALES_IP, BLOJSOM_LAST_MODIFIED, BLOJSOM_LISTENER_CONFIGURATION_IP, BLOJSOM_PERMALINK, BLOJSOM_PERMALINK_NEXT_ENTRY, BLOJSOM_PERMALINK_PREVIOUS_ENTRY, BLOJSOM_PLUGIN_CHAIN, BLOJSOM_PLUGIN_CONFIGURATION_IP, BLOJSOM_PLUGINS, BLOJSOM_REQUESTED_CATEGORY, BLOJSOM_REQUESTED_FLAVOR, BLOJSOM_RESOURCE_DIRECTORY_IP, BLOJSOM_RESOURCE_MANAGER_BUNDLES_IP, BLOJSOM_RESOURCE_MANAGER_CONTEXT_KEY, BLOJSOM_RESOURCE_MANAGER_IP, BLOJSOM_SITE_URL, BLOJSOM_TEMPLATES_DIRECTORY_IP, BLOJSOM_USER, BLOJSOM_USERS_IP, BLOJSOM_VERSION, BLOJSOM_VERSION_NUMBER, CACHE_CONTROL_HTTP_HEADER, CATEGORY_PARAM, COMMENT_EXTENSION, DEFAULT_AUTHORIZATION_PROVIDER, DEFAULT_COMMENTS_DIRECTORY, DEFAULT_DIGEST_ALGORITHM, DEFAULT_DISPATCHER_CONFIGURATION_FILE, DEFAULT_ENTRY_EXTENSION, DEFAULT_FLAVOR_CONFIGURATION_FILE, DEFAULT_FLAVOR_HTML, DEFAULT_METADATA_EXTENSION, DEFAULT_PERMISSIONS_CONFIGURATION_FILE, DEFAULT_PINGBACKS_DIRECTORY, DEFAULT_PLUGIN_CONFIGURATION_FILE, DEFAULT_PROPERTIES_EXTENSIONS, DEFAULT_TRACKBACK_DIRECTORY, DESCRIPTION_KEY, DIGEST_ALGORITHM, FLAVOR_PARAM, HTTP_ETAG, HTTP_LASTMODIFIED, INFINITE_BLOG_DEPTH, ISO_8601_DATE_FORMAT, LINE_SEPARATOR, LINEAR_NAVIGATION_ENABLED_IP, MAX_HASHABLE_LENGTH, NAME_KEY, NO_CACHE_HTTP_HEADER_VALUE, OVERRIDE_LASTMODIFIED_PARAM, PAGE_PARAM, PAGE_PARAM_ARCHIVE, PERMALINK_PARAM, PINGBACK_EXTENSION, PLUGINS_PARAM, PRAGMA_HTTP_HEADER, PREFERRED_SYNDICATION_FLAVOR, RECURSIVE_CATEGORIES, REDIRECT_TO_PARAM, RFC_822_DATE_FORMAT, SHORT_ISO_8601_DATE_FORMAT, TRACKBACK_EXTENSION, USE_ENCRYPTED_PASSWORDS, UTC_DATE_FORMAT, UTF8, WHITESPACE, XMLRPC_ENABLED_IP
 
Constructor Summary
VelocityDispatcher()
          Create a new VelocityDispatcher
 
Method Summary
protected  void destroyVelocityContext(org.apache.velocity.VelocityContext velocityContext)
          Remove references from the Velocity context
 void dispatch(javax.servlet.http.HttpServletRequest httpServletRequest, javax.servlet.http.HttpServletResponse httpServletResponse, BlogUser user, java.util.Map context, java.lang.String flavorTemplate, java.lang.String flavorContentType)
          Dispatch a request and response.
protected  java.lang.String getVelocityFileLoaderPath(java.lang.String userId)
          Return a path appropriate for the Velocity file resource loader
 void init(javax.servlet.ServletConfig servletConfig, BlojsomConfiguration blojsomConfiguration)
          Initialization method for blojsom dispatchers
protected  void populateVelocityContext(javax.servlet.http.HttpServletRequest httpServletRequest, java.util.Map context)
          Populate the Velocity context with the request and session attributes
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

VelocityDispatcher

public VelocityDispatcher()
Create a new VelocityDispatcher

Method Detail

init

public void init(javax.servlet.ServletConfig servletConfig,
                 BlojsomConfiguration blojsomConfiguration)
          throws BlojsomException
Initialization method for blojsom dispatchers

Specified by:
init in interface BlojsomDispatcher
Parameters:
servletConfig - ServletConfig for obtaining any initialization parameters
blojsomConfiguration - BlojsomConfiguration for blojsom-specific configuration information
Throws:
BlojsomException - If there is an error initializing the dispatcher

getVelocityFileLoaderPath

protected java.lang.String getVelocityFileLoaderPath(java.lang.String userId)
Return a path appropriate for the Velocity file resource loader

Parameters:
userId - User ID
Returns:
blojsom installation directory + base configuration directory + user id + templates directory

populateVelocityContext

protected void populateVelocityContext(javax.servlet.http.HttpServletRequest httpServletRequest,
                                       java.util.Map context)
Populate the Velocity context with the request and session attributes

Parameters:
httpServletRequest - Request
context - Context

destroyVelocityContext

protected void destroyVelocityContext(org.apache.velocity.VelocityContext velocityContext)
Remove references from the Velocity context

Parameters:
velocityContext - VelocityContext
Since:
blojsom 2.27

dispatch

public void dispatch(javax.servlet.http.HttpServletRequest httpServletRequest,
                     javax.servlet.http.HttpServletResponse httpServletResponse,
                     BlogUser user,
                     java.util.Map context,
                     java.lang.String flavorTemplate,
                     java.lang.String flavorContentType)
              throws java.io.IOException,
                     javax.servlet.ServletException
Dispatch a request and response. A context map is provided for the BlojsomServlet to pass any required information for use by the dispatcher. The dispatcher is also provided with the template for the requested flavor along with the content type for the specific flavor.

Specified by:
dispatch in interface BlojsomDispatcher
Parameters:
httpServletRequest - Request
httpServletResponse - Response
user - BlogUser instance
context - Context map
flavorTemplate - Template to dispatch to for the requested flavor
flavorContentType - Content type for the requested flavor
Throws:
java.io.IOException - If there is an exception during IO
javax.servlet.ServletException - If there is an exception in dispatching the request