org.blojsom.extension.xmlrpc
Class BlojsomXMLRPCServlet

java.lang.Object
  extended byjavax.servlet.GenericServlet
      extended byjavax.servlet.http.HttpServlet
          extended byorg.blojsom.servlet.BlojsomBaseServlet
              extended byorg.blojsom.extension.xmlrpc.BlojsomXMLRPCServlet
All Implemented Interfaces:
BlojsomConstants, BlojsomXMLRPCConstants, java.io.Serializable, javax.servlet.Servlet, javax.servlet.ServletConfig

public class BlojsomXMLRPCServlet
extends BlojsomBaseServlet
implements BlojsomXMLRPCConstants

Blojsom XML-RPC Servlet

This servlet uses the Jakarta XML-RPC Library (http://ws.apache.org/xmlrpc)

Version:
$Id: BlojsomXMLRPCServlet.java,v 1.23 2006/03/06 20:12:51 czarneckid Exp $
Author:
Mark Lussier, David Czarnecki
See Also:
Serialized Form

Field Summary
protected  AuthorizationProvider _authorizationProvider
           
protected  javax.servlet.ServletConfig _servletConfig
           
static java.lang.String XMLRPC_ACCEPTS_ONLY_POSTS_MESSAGE
           
static int XMLRPC_DISABLED
           
static java.lang.String XMLRPC_DISABLED_MESSAGE
           
 
Fields inherited from class org.blojsom.servlet.BlojsomBaseServlet
_baseConfigurationDirectory, _blojsomConfiguration, _fetcher
 
Fields inherited from interface org.blojsom.extension.xmlrpc.BlojsomXMLRPCConstants
BLOG_XMLRPC_CONFIGURATION_IP, BLOG_XMLRPC_ENTRY_EXTENSION_IP, DEFAULT_BLOG_XMLRPC_ENTRY_EXTENSION, DEFAULT_XMLRPC_HANDLER_KEY
 
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
BlojsomXMLRPCServlet()
          Construct a new Blojsom XML-RPC servlet instance
 
Method Summary
protected  void configureAuthorization()
          Configure the authorization provider
protected  void configureFlavorsForUser(javax.servlet.ServletConfig servletConfig, BlogUser blogUser)
          Configure the flavors for the blog which map flavor values like "html" and "rss" to the proper template and content type
protected  org.apache.xmlrpc.XmlRpcServer configureXMLRPCServer(javax.servlet.http.HttpServletRequest httpServletRequest, javax.servlet.http.HttpServletResponse httpServletResponse, java.lang.String userID)
          Configure the XML-RPC API Handlers
 void destroy()
          Called when removing the servlet from the servlet container
 void init(javax.servlet.ServletConfig servletConfig)
          Initialize the blojsom XML-RPC servlet
protected  void service(javax.servlet.http.HttpServletRequest httpServletRequest, javax.servlet.http.HttpServletResponse httpServletResponse)
          Service an XML-RPC request by passing the request to the proper handler
 
Methods inherited from class org.blojsom.servlet.BlojsomBaseServlet
configureBlojsom, configureFetcher
 
Methods inherited from class javax.servlet.http.HttpServlet
doDelete, doGet, doHead, doOptions, doPost, doPut, doTrace, getLastModified, service
 
Methods inherited from class javax.servlet.GenericServlet
getInitParameter, getInitParameterNames, getServletConfig, getServletContext, getServletInfo, getServletName, init, log, log
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

_authorizationProvider

protected AuthorizationProvider _authorizationProvider

_servletConfig

protected javax.servlet.ServletConfig _servletConfig

XMLRPC_DISABLED

public static final int XMLRPC_DISABLED
See Also:
Constant Field Values

XMLRPC_DISABLED_MESSAGE

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

XMLRPC_ACCEPTS_ONLY_POSTS_MESSAGE

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

BlojsomXMLRPCServlet

public BlojsomXMLRPCServlet()
Construct a new Blojsom XML-RPC servlet instance

Method Detail

configureAuthorization

protected void configureAuthorization()
                               throws javax.servlet.ServletException
Configure the authorization provider

Throws:
javax.servlet.ServletException - If there is an error instantiating and/or initializing the authorization provider

configureFlavorsForUser

protected void configureFlavorsForUser(javax.servlet.ServletConfig servletConfig,
                                       BlogUser blogUser)
                                throws javax.servlet.ServletException
Configure the flavors for the blog which map flavor values like "html" and "rss" to the proper template and content type

Parameters:
servletConfig - Servlet configuration information
blogUser - BlogUser information
Throws:
javax.servlet.ServletException
Since:
blojsom 2.22

configureXMLRPCServer

protected org.apache.xmlrpc.XmlRpcServer configureXMLRPCServer(javax.servlet.http.HttpServletRequest httpServletRequest,
                                                               javax.servlet.http.HttpServletResponse httpServletResponse,
                                                               java.lang.String userID)
                                                        throws javax.servlet.ServletException
Configure the XML-RPC API Handlers

Parameters:
httpServletRequest - Request
httpServletResponse - Response
userID - User ID
Returns:
XmlRpcServer configured for the given user or null if the configuration failed
Throws:
javax.servlet.ServletException

init

public void init(javax.servlet.ServletConfig servletConfig)
          throws javax.servlet.ServletException
Initialize the blojsom XML-RPC servlet

Specified by:
init in interface javax.servlet.Servlet
Overrides:
init in class BlojsomBaseServlet
Parameters:
servletConfig - Servlet configuration information
Throws:
javax.servlet.ServletException - If there is an error initializing the servlet

service

protected void service(javax.servlet.http.HttpServletRequest httpServletRequest,
                       javax.servlet.http.HttpServletResponse httpServletResponse)
                throws javax.servlet.ServletException,
                       java.io.IOException
Service an XML-RPC request by passing the request to the proper handler

Parameters:
httpServletRequest - Request
httpServletResponse - Response
Throws:
javax.servlet.ServletException - If there is an error processing the request
java.io.IOException - If there is an error during I/O

destroy

public void destroy()
Called when removing the servlet from the servlet container

Specified by:
destroy in interface javax.servlet.Servlet