org.blojsom.fetcher
Class CachingFetcher

java.lang.Object
  extended byorg.blojsom.fetcher.StandardFetcher
      extended byorg.blojsom.fetcher.CachingFetcher
All Implemented Interfaces:
BlojsomConstants, BlojsomFetcher, BlojsomListener

public class CachingFetcher
extends StandardFetcher
implements BlojsomListener

CachingFetcher

Since:
blojsom 2.01
Version:
$Id: CachingFetcher.java,v 1.23 2006/01/27 18:42:23 czarneckid Exp $
Author:
David Czarnecki

Field Summary
protected static com.opensymphony.oscache.general.GeneralCacheAdministrator _cache
           
 
Fields inherited from class org.blojsom.fetcher.StandardFetcher
_blojsomConfiguration, _ignoreFlavors, DEFAULT_IGNORE_FLAVORS, DEPTH_PARAM, IGNORE_FLAVORS_PARAM, STANDARD_FETCHER_CATEGORY, STANDARD_FETCHER_DEPTH
 
Fields inherited from interface org.blojsom.fetcher.BlojsomFetcher
FETCHER_CATEGORY, FETCHER_FLAVOR, FETCHER_NUM_POSTS_INTEGER, FETCHER_PERMALINK
 
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
CachingFetcher()
          Default constructor
 
Method Summary
 BlogEntry[] fetchEntries(javax.servlet.http.HttpServletRequest httpServletRequest, javax.servlet.http.HttpServletResponse httpServletResponse, BlogUser user, java.lang.String flavor, java.util.Map context)
          Fetch a set of BlogEntry objects.
protected  BlogEntry[] filterEntriesForFlavor(BlogUser blog, java.lang.String flavor)
          Filter blog entries for the flavor
protected  BlogEntry[] getEntriesFromCache(BlogUser blog)
          Retrieve cached blog entries for a given blog
 void handleEvent(BlojsomEvent event)
          Handle an event broadcast from another component
 void init(javax.servlet.ServletConfig servletConfig, BlojsomConfiguration blojsomConfiguration)
          Initialize this fetcher.
 void processEvent(BlojsomEvent event)
          Process an event from another component
 
Methods inherited from class org.blojsom.fetcher.StandardFetcher
destroy, fetchCategories, fetchCategories, fetchEntries, getBlogCategories, getBlogCategory, getBlogCategoryHierarchy, getEntriesAllCategories, getEntriesAllCategories, getEntriesForCategory, getPermalinkEntry, newBlogCategory, newBlogComment, newBlogEntry, newPingback, newTrackback, recursiveCategoryBuilder
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

_cache

protected static com.opensymphony.oscache.general.GeneralCacheAdministrator _cache
Constructor Detail

CachingFetcher

public CachingFetcher()
Default constructor

Method Detail

init

public void init(javax.servlet.ServletConfig servletConfig,
                 BlojsomConfiguration blojsomConfiguration)
          throws BlojsomFetcherException
Initialize this fetcher. This method only called when the fetcher is instantiated.

Specified by:
init in interface BlojsomFetcher
Overrides:
init in class StandardFetcher
Parameters:
servletConfig - Servlet config object for the plugin to retrieve any initialization parameters
blojsomConfiguration - blojsom configuration information
Throws:
BlojsomFetcherException - If there is an error initializing the fetcher

fetchEntries

public BlogEntry[] fetchEntries(javax.servlet.http.HttpServletRequest httpServletRequest,
                                javax.servlet.http.HttpServletResponse httpServletResponse,
                                BlogUser user,
                                java.lang.String flavor,
                                java.util.Map context)
                         throws BlojsomFetcherException
Fetch a set of BlogEntry objects.

Specified by:
fetchEntries in interface BlojsomFetcher
Overrides:
fetchEntries in class StandardFetcher
Parameters:
httpServletRequest - Request
httpServletResponse - Response
user - BlogUser instance
flavor - Flavor
context - Context
Returns:
Blog entries retrieved for the particular request
Throws:
BlojsomFetcherException - If there is an error retrieving the blog entries for the request

getEntriesFromCache

protected BlogEntry[] getEntriesFromCache(BlogUser blog)
Retrieve cached blog entries for a given blog

Parameters:
blog - BlogUser
Returns:
Entries for the blog
Since:
blojsom 2.24

filterEntriesForFlavor

protected BlogEntry[] filterEntriesForFlavor(BlogUser blog,
                                             java.lang.String flavor)
Filter blog entries for the flavor

Parameters:
blog - BlogUser
flavor - Flavor
Returns:
BlogEntry[] for flavor
Since:
blojsom 2.24

handleEvent

public void handleEvent(BlojsomEvent event)
Handle an event broadcast from another component

Specified by:
handleEvent in interface BlojsomListener
Parameters:
event - BlojsomEvent to be handled

processEvent

public void processEvent(BlojsomEvent event)
Process an event from another component

Specified by:
processEvent in interface BlojsomListener
Parameters:
event - BlojsomEvent to be handled
Since:
blojsom 2.24