org.blojsom.plugin.moblog
Class MoblogPlugin

java.lang.Object
  extended byorg.blojsom.plugin.velocity.StandaloneVelocityPlugin
      extended byorg.blojsom.plugin.moblog.MoblogPlugin
All Implemented Interfaces:
BlojsomConstants, BlojsomPlugin, EmailConstants

public class MoblogPlugin
extends StandaloneVelocityPlugin
implements EmailConstants

Moblog Plugin

Since:
blojsom 2.14
Version:
$Id: MoblogPlugin.java,v 1.32 2006/04/10 12:47:45 czarneckid Exp $
Author:
David Czarnecki, Mark Lussier

Field Summary
static java.lang.String DEFAULT_IMAGE_MIME_TYPES
          Default mime-types for images
static java.lang.String DEFAULT_MOBLOG_AUTHORIZATION_FILE
          Default moblog authorization properties file which lists valid e-mail addresses who can moblog entries
static java.lang.String DEFAULT_TEXT_MIME_TYPES
          Default mime-types for text
static java.lang.String PLUGIN_MOBLOG_ATTACHMENT_MIME_TYPES
          Configuration property for attachment mime-types
static java.lang.String PLUGIN_MOBLOG_CONFIGURATION_IP
          Moblog confifguration parameter for web.xml
static java.lang.String PLUGIN_MOBLOG_IGNORE_EXPRESSION
          Configuration property for regular expression to ignore a certain portion of text
static java.lang.String PLUGIN_MOBLOG_IMAGE_MIME_TYPES
          Configuration property for image mime-types
static java.lang.String PLUGIN_MOBLOG_POLL_TIME
          Moblog configuration parameter for mailbox polling time (5 minutes)
static java.lang.String PLUGIN_MOBLOG_SECRET_WORD
          Configuration property for the secret word that must be present at the beginning of the subject
static java.lang.String PLUGIN_MOBLOG_STORE_PROVIDER
          Moblog configuration parameter for message store provider
static java.lang.String PLUGIN_MOBLOG_TEXT_MIME_TYPES
          Configuration property for text mime-types
static java.lang.String PROPERTY_AUTHORIZATION
          Configuration property for moblog authorization properties file to use
static java.lang.String PROPERTY_CATEGORY
          Configuration property for moblog category
static java.lang.String PROPERTY_ENABLED
          Configuration property for whether or not moblog is enabled for this blog
static java.lang.String PROPERTY_HOSTNAME
          Configuration property for mailhost
static java.lang.String PROPERTY_PASSWORD
          Configuration property for mailbox user password
static java.lang.String PROPERTY_USERID
          Configuration property for mailbox user ID
 
Fields inherited from class org.blojsom.plugin.velocity.StandaloneVelocityPlugin
_baseConfigurationDirectory, _installationDirectory, _templatesDirectory, _velocityProperties
 
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
MoblogPlugin()
           
 
Method Summary
 void cleanup()
          Perform any cleanup for the plugin.
 void destroy()
          Called when BlojsomServlet is taken out of service
protected  java.io.File getBlogCategoryDirectory(Blog blog, java.lang.String categoryName)
          Get the blog category.
 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
protected  java.lang.String sanitizeContentType(java.lang.String contentType)
          Return a content type up to the first ; character
 
Methods inherited from class org.blojsom.plugin.velocity.StandaloneVelocityPlugin
getVelocityFileLoaderPath, mergeTemplate
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

DEFAULT_TEXT_MIME_TYPES

public static final java.lang.String DEFAULT_TEXT_MIME_TYPES
Default mime-types for text

See Also:
Constant Field Values

DEFAULT_IMAGE_MIME_TYPES

public static final java.lang.String DEFAULT_IMAGE_MIME_TYPES
Default mime-types for images

See Also:
Constant Field Values

PLUGIN_MOBLOG_CONFIGURATION_IP

public static final java.lang.String PLUGIN_MOBLOG_CONFIGURATION_IP
Moblog confifguration parameter for web.xml

See Also:
Constant Field Values

PLUGIN_MOBLOG_POLL_TIME

public static final java.lang.String PLUGIN_MOBLOG_POLL_TIME
Moblog configuration parameter for mailbox polling time (5 minutes)

See Also:
Constant Field Values

PLUGIN_MOBLOG_STORE_PROVIDER

public static final java.lang.String PLUGIN_MOBLOG_STORE_PROVIDER
Moblog configuration parameter for message store provider

See Also:
Constant Field Values

DEFAULT_MOBLOG_AUTHORIZATION_FILE

public static final java.lang.String DEFAULT_MOBLOG_AUTHORIZATION_FILE
Default moblog authorization properties file which lists valid e-mail addresses who can moblog entries

See Also:
Constant Field Values

PROPERTY_AUTHORIZATION

public static final java.lang.String PROPERTY_AUTHORIZATION
Configuration property for moblog authorization properties file to use

See Also:
Constant Field Values

PROPERTY_HOSTNAME

public static final java.lang.String PROPERTY_HOSTNAME
Configuration property for mailhost

See Also:
Constant Field Values

PROPERTY_USERID

public static final java.lang.String PROPERTY_USERID
Configuration property for mailbox user ID

See Also:
Constant Field Values

PROPERTY_PASSWORD

public static final java.lang.String PROPERTY_PASSWORD
Configuration property for mailbox user password

See Also:
Constant Field Values

PROPERTY_CATEGORY

public static final java.lang.String PROPERTY_CATEGORY
Configuration property for moblog category

See Also:
Constant Field Values

PROPERTY_ENABLED

public static final java.lang.String PROPERTY_ENABLED
Configuration property for whether or not moblog is enabled for this blog

See Also:
Constant Field Values

PLUGIN_MOBLOG_SECRET_WORD

public static final java.lang.String PLUGIN_MOBLOG_SECRET_WORD
Configuration property for the secret word that must be present at the beginning of the subject

See Also:
Constant Field Values

PLUGIN_MOBLOG_IMAGE_MIME_TYPES

public static final java.lang.String PLUGIN_MOBLOG_IMAGE_MIME_TYPES
Configuration property for image mime-types

See Also:
Constant Field Values

PLUGIN_MOBLOG_ATTACHMENT_MIME_TYPES

public static final java.lang.String PLUGIN_MOBLOG_ATTACHMENT_MIME_TYPES
Configuration property for attachment mime-types

See Also:
Constant Field Values

PLUGIN_MOBLOG_TEXT_MIME_TYPES

public static final java.lang.String PLUGIN_MOBLOG_TEXT_MIME_TYPES
Configuration property for text mime-types

See Also:
Constant Field Values

PLUGIN_MOBLOG_IGNORE_EXPRESSION

public static final java.lang.String PLUGIN_MOBLOG_IGNORE_EXPRESSION
Configuration property for regular expression to ignore a certain portion of text

See Also:
Constant Field Values
Constructor Detail

MoblogPlugin

public MoblogPlugin()
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 StandaloneVelocityPlugin
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

getBlogCategoryDirectory

protected java.io.File getBlogCategoryDirectory(Blog blog,
                                                java.lang.String categoryName)
Get the blog category. If the category exists, return the appropriate directory, otherwise return the "root" of this blog.

Parameters:
categoryName - Category name
Returns:
A directory into which a blog entry can be placed
Since:
blojsom 2.14

sanitizeContentType

protected java.lang.String sanitizeContentType(java.lang.String contentType)
Return a content type up to the first ; character

Parameters:
contentType - Content type
Returns:
Content type without any trailing information after a ;