org.blojsom.plugin.comment
Class CommentPlugin

java.lang.Object
  extended byorg.blojsom.plugin.common.IPBanningPlugin
      extended byorg.blojsom.plugin.common.VelocityPlugin
          extended byorg.blojsom.plugin.comment.CommentPlugin
All Implemented Interfaces:
BlojsomConstants, BlojsomListener, BlojsomMetaDataConstants, BlojsomPlugin, EmailConstants

public class CommentPlugin
extends VelocityPlugin
implements BlojsomMetaDataConstants, BlojsomListener, EmailConstants

CommentPlugin

Version:
$Id: CommentPlugin.java,v 1.47 2006/05/12 15:31:08 czarneckid Exp $
Author:
David Czarnecki

Field Summary
static java.lang.String AUTHOR_EMAIL_PARAM
          Request parameter for the "authorEmail"
static java.lang.String AUTHOR_PARAM
          Request parameter for the "author"
static java.lang.String AUTHOR_URL_PARAM
          Request parameter for the "authorURL"
static java.lang.String BLOJSOM_COMMENT_PLUGIN_AUTHOR
          Key under which the author from the "remember me" cookie will be placed (example: on the request for the JSPDispatcher)
static java.lang.String BLOJSOM_COMMENT_PLUGIN_AUTHOR_EMAIL
          Key under which the author's e-mail from the "remember me" cookie will be placed (example: on the request for the JSPDispatcher)
static java.lang.String BLOJSOM_COMMENT_PLUGIN_AUTHOR_URL
          Key under which the author's URL from the "remember me" cookie will be placed (example: on the request for the JSPDispatcher)
static java.lang.String BLOJSOM_COMMENT_PLUGIN_BLOG_COMMENT
          Key under which the blog comment will be placed for merging the comment e-mail
static java.lang.String BLOJSOM_COMMENT_PLUGIN_BLOG_ENTRY
          Key under which the blog entry will be placed for merging the comment e-mail
static java.lang.String BLOJSOM_COMMENT_PLUGIN_ENABLED
          Key under which the indicator this plugin is "live" will be placed (example: on the request for the JSPDispatcher)
static java.lang.String BLOJSOM_COMMENT_PLUGIN_METADATA_IP
          IP address meta-data
static java.lang.String BLOJSOM_COMMENT_PLUGIN_REMEMBER_ME
          Key under which the "remember me" checkbox from the "remember me" cookie will be placed (example: on the request for the JSPDispatcher)
static java.lang.String BLOJSOM_PLUGIN_COMMENT_METADATA
           
static java.lang.String BLOJSOM_PLUGIN_COMMENT_METADATA_DESTROY
           
static java.lang.String COMMENT_AUTOFORMAT_IP
          Initialization parameter to do plugin autoformatting
static java.lang.String COMMENT_COOKIE_EXPIRATION_DURATION_IP
          Initialization parameter for the duration of the "remember me" cookies
static java.lang.String COMMENT_DAYS_EXPIRATION_IP
          Initialization parameter for disabling comments on entries after a certain number of days
static java.lang.String COMMENT_PARAM
          Request parameter for the "comment"
static java.lang.String COMMENT_PLUGIN_EMAIL_TEMPLATE_HTML
           
static java.lang.String COMMENT_PLUGIN_EMAIL_TEMPLATE_TEXT
          Template for comment e-mails
static java.lang.String COMMENT_PREFIX_IP
          Initialization parameter for e-mail prefix
static java.lang.String COMMENT_TEXT_PARAM
          Request parameter for the "commentText"
static java.lang.String COMMENT_THROTTLE_MINUTES_IP
          Initialization parameter for the throttling of comments from IP addresses
static java.lang.String DEFAULT_COMMENT_PREFIX
          Default prefix for comment e-mail notification
 
Fields inherited from class org.blojsom.plugin.common.VelocityPlugin
_baseConfigurationDirectory, _installationDirectory, _templatesDirectory, _velocityProperties
 
Fields inherited from class org.blojsom.plugin.common.IPBanningPlugin
BANNED_IP_ADDRESSES_IP
 
Fields inherited from interface org.blojsom.util.BlojsomMetaDataConstants
BLOG_ENTRY_METADATA_AUTHOR, BLOG_ENTRY_METADATA_AUTHOR_EXT, BLOG_ENTRY_METADATA_TIMESTAMP, BLOG_METADATA_COMMENTS_DISABLED, BLOG_METADATA_HEADER, BLOG_METADATA_PINGBACKS_DISABLED, BLOG_METADATA_TRACKBACKS_DISABLED, SOURCE_ATTRIBUTE
 
Fields inherited from interface org.blojsom.plugin.email.EmailConstants
SESSION_NAME, SMTPSERVER_IP, SMTPSERVER_PASSWORD_IP, SMTPSERVER_USERNAME_IP
 
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
CommentPlugin()
           
 
Method Summary
 void cleanup()
          Perform any cleanup for the plugin.
 void destroy()
          Called when BlojsomServlet is taken out of service
 void handleEvent(BlojsomEvent event)
          Handle an event broadcast from another component
 void init(javax.servlet.ServletConfig servletConfig, BlojsomConfiguration blojsomConfiguration)
          Initialize this plugin.
 BlogEntry[] process(javax.servlet.http.HttpServletRequest httpServletRequest, javax.servlet.http.HttpServletResponse httpServletResponse, BlogUser user, java.util.Map context, BlogEntry[] entries)
          Process the blog entries
 void processEvent(BlojsomEvent event)
          Process an event from another component
protected  void setupEmail(Blog blog, BlogEntry entry, org.apache.commons.mail.Email email)
          Setup the comment e-mail
 
Methods inherited from class org.blojsom.plugin.common.VelocityPlugin
getVelocityFileLoaderPath, mergeTemplate
 
Methods inherited from class org.blojsom.plugin.common.IPBanningPlugin
isIPBanned
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

COMMENT_PLUGIN_EMAIL_TEMPLATE_TEXT

public static final java.lang.String COMMENT_PLUGIN_EMAIL_TEMPLATE_TEXT
Template for comment e-mails

See Also:
Constant Field Values

COMMENT_PLUGIN_EMAIL_TEMPLATE_HTML

public static final java.lang.String COMMENT_PLUGIN_EMAIL_TEMPLATE_HTML
See Also:
Constant Field Values

DEFAULT_COMMENT_PREFIX

public static final java.lang.String DEFAULT_COMMENT_PREFIX
Default prefix for comment e-mail notification

See Also:
Constant Field Values

COMMENT_PREFIX_IP

public static final java.lang.String COMMENT_PREFIX_IP
Initialization parameter for e-mail prefix

See Also:
Constant Field Values

COMMENT_AUTOFORMAT_IP

public static final java.lang.String COMMENT_AUTOFORMAT_IP
Initialization parameter to do plugin autoformatting

See Also:
Constant Field Values

COMMENT_COOKIE_EXPIRATION_DURATION_IP

public static final java.lang.String COMMENT_COOKIE_EXPIRATION_DURATION_IP
Initialization parameter for the duration of the "remember me" cookies

See Also:
Constant Field Values

COMMENT_THROTTLE_MINUTES_IP

public static final java.lang.String COMMENT_THROTTLE_MINUTES_IP
Initialization parameter for the throttling of comments from IP addresses

See Also:
Constant Field Values

COMMENT_DAYS_EXPIRATION_IP

public static final java.lang.String COMMENT_DAYS_EXPIRATION_IP
Initialization parameter for disabling comments on entries after a certain number of days

See Also:
Constant Field Values

COMMENT_PARAM

public static final java.lang.String COMMENT_PARAM
Request parameter for the "comment"

See Also:
Constant Field Values

AUTHOR_PARAM

public static final java.lang.String AUTHOR_PARAM
Request parameter for the "author"

See Also:
Constant Field Values

AUTHOR_EMAIL_PARAM

public static final java.lang.String AUTHOR_EMAIL_PARAM
Request parameter for the "authorEmail"

See Also:
Constant Field Values

AUTHOR_URL_PARAM

public static final java.lang.String AUTHOR_URL_PARAM
Request parameter for the "authorURL"

See Also:
Constant Field Values

COMMENT_TEXT_PARAM

public static final java.lang.String COMMENT_TEXT_PARAM
Request parameter for the "commentText"

See Also:
Constant Field Values

BLOJSOM_COMMENT_PLUGIN_ENABLED

public static final java.lang.String BLOJSOM_COMMENT_PLUGIN_ENABLED
Key under which the indicator this plugin is "live" will be placed (example: on the request for the JSPDispatcher)

See Also:
Constant Field Values

BLOJSOM_COMMENT_PLUGIN_AUTHOR

public static final java.lang.String BLOJSOM_COMMENT_PLUGIN_AUTHOR
Key under which the author from the "remember me" cookie will be placed (example: on the request for the JSPDispatcher)

See Also:
Constant Field Values

BLOJSOM_COMMENT_PLUGIN_AUTHOR_EMAIL

public static final java.lang.String BLOJSOM_COMMENT_PLUGIN_AUTHOR_EMAIL
Key under which the author's e-mail from the "remember me" cookie will be placed (example: on the request for the JSPDispatcher)

See Also:
Constant Field Values

BLOJSOM_COMMENT_PLUGIN_AUTHOR_URL

public static final java.lang.String BLOJSOM_COMMENT_PLUGIN_AUTHOR_URL
Key under which the author's URL from the "remember me" cookie will be placed (example: on the request for the JSPDispatcher)

See Also:
Constant Field Values

BLOJSOM_COMMENT_PLUGIN_REMEMBER_ME

public static final java.lang.String BLOJSOM_COMMENT_PLUGIN_REMEMBER_ME
Key under which the "remember me" checkbox from the "remember me" cookie will be placed (example: on the request for the JSPDispatcher)

See Also:
Constant Field Values

BLOJSOM_COMMENT_PLUGIN_METADATA_IP

public static final java.lang.String BLOJSOM_COMMENT_PLUGIN_METADATA_IP
IP address meta-data

See Also:
Constant Field Values

BLOJSOM_COMMENT_PLUGIN_BLOG_ENTRY

public static final java.lang.String BLOJSOM_COMMENT_PLUGIN_BLOG_ENTRY
Key under which the blog entry will be placed for merging the comment e-mail

See Also:
Constant Field Values

BLOJSOM_COMMENT_PLUGIN_BLOG_COMMENT

public static final java.lang.String BLOJSOM_COMMENT_PLUGIN_BLOG_COMMENT
Key under which the blog comment will be placed for merging the comment e-mail

See Also:
Constant Field Values

BLOJSOM_PLUGIN_COMMENT_METADATA

public static final java.lang.String BLOJSOM_PLUGIN_COMMENT_METADATA
See Also:
Constant Field Values

BLOJSOM_PLUGIN_COMMENT_METADATA_DESTROY

public static final java.lang.String BLOJSOM_PLUGIN_COMMENT_METADATA_DESTROY
See Also:
Constant Field Values
Constructor Detail

CommentPlugin

public CommentPlugin()
Method Detail

init

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

Specified by:
init in interface BlojsomPlugin
Overrides:
init in class VelocityPlugin
Parameters:
servletConfig - Servlet config object for the plugin to retrieve any initialization parameters
blojsomConfiguration - BlojsomConfiguration information
Throws:
BlojsomPluginException - If there is an error initializing the plugin

process

public BlogEntry[] process(javax.servlet.http.HttpServletRequest httpServletRequest,
                           javax.servlet.http.HttpServletResponse httpServletResponse,
                           BlogUser user,
                           java.util.Map context,
                           BlogEntry[] entries)
                    throws BlojsomPluginException
Process the blog entries

Specified by:
process in interface BlojsomPlugin
Parameters:
httpServletRequest - Request
httpServletResponse - Response
user - BlogUser instance
context - Context
entries - Blog entries retrieved for the particular request
Returns:
Modified set of blog entries
Throws:
BlojsomPluginException - If there is an error processing the blog entries

cleanup

public void cleanup()
             throws BlojsomPluginException
Perform any cleanup for the plugin. Called after process(javax.servlet.http.HttpServletRequest, javax.servlet.http.HttpServletResponse, org.blojsom.blog.BlogUser, java.util.Map, org.blojsom.blog.BlogEntry[]).

Specified by:
cleanup in interface BlojsomPlugin
Throws:
BlojsomPluginException - If there is an error performing cleanup for this plugin

destroy

public void destroy()
             throws BlojsomPluginException
Called when BlojsomServlet is taken out of service

Specified by:
destroy in interface BlojsomPlugin
Throws:
BlojsomPluginException - If there is an error in finalizing this plugin

setupEmail

protected void setupEmail(Blog blog,
                          BlogEntry entry,
                          org.apache.commons.mail.Email email)
                   throws org.apache.commons.mail.EmailException
Setup the comment e-mail

Parameters:
blog - Blog information
email - Email message
Throws:
org.apache.commons.mail.EmailException - If there is an error preparing the e-mail message

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