Class PluginServlet

java.lang.Object
javax.servlet.GenericServlet
javax.servlet.http.HttpServlet
org.jivesoftware.openfire.container.PluginServlet
All Implemented Interfaces:
Serializable, javax.servlet.Servlet, javax.servlet.ServletConfig

public class PluginServlet extends javax.servlet.http.HttpServlet
The plugin servlet acts as a proxy for web requests (in the admin console) to plugins. Since plugins can be dynamically loaded and live in a different place than normal Openfire admin console files, it's not possible to have them added to the normal Openfire admin console web app directory.

The servlet listens for requests in the form /plugins/[pluginName]/[JSP File] (e.g. /plugins/foo/example.jsp). It also listens for non JSP requests in the form like /plugins/[pluginName]/images/*.png|gif, /plugins/[pluginName]/scripts/*.js|css or /plugins/[pluginName]/styles/*.css (e.g. /plugins/foo/images/example.gif).

JSP files must be compiled and available via the plugin's class loader. The mapping between JSP name and servlet class files is defined in [pluginName]/web/web.xml. Typically, this file is auto-generated by the JSP compiler when packaging the plugin.
Author:
Matt Tucker
See Also:
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    static final SystemProperty<Boolean>
     
  • Constructor Summary

    Constructors
    Constructor
    Description
     
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    init(javax.servlet.ServletConfig config)
     
    static String
    registerServlet(PluginManager pluginManager, Plugin plugin, javax.servlet.GenericServlet servlet, String relativeUrl)
    Registers a live servlet for a plugin programmatically, does not initialize the servlet.
    static void
    registerServlets(PluginManager manager, Plugin plugin, File webXML)
    Registers all JSP page servlets for a plugin.
    void
    service(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response)
     
    static javax.servlet.GenericServlet
    Unregister a live servlet for a plugin programmatically.
    static void
    Unregisters all JSP page servlets for a plugin.

    Methods inherited from class javax.servlet.http.HttpServlet

    doDelete, doGet, doHead, doOptions, doPost, doPut, doTrace, getLastModified, service

    Methods inherited from class javax.servlet.GenericServlet

    destroy, 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 Details

  • Constructor Details

    • PluginServlet

      public PluginServlet()
  • Method Details

    • init

      public void init(javax.servlet.ServletConfig config) throws javax.servlet.ServletException
      Specified by:
      init in interface javax.servlet.Servlet
      Overrides:
      init in class javax.servlet.GenericServlet
      Throws:
      javax.servlet.ServletException
    • service

      public void service(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response)
      Overrides:
      service in class javax.servlet.http.HttpServlet
    • registerServlets

      public static void registerServlets(PluginManager manager, Plugin plugin, File webXML)
      Registers all JSP page servlets for a plugin.
      Parameters:
      manager - the plugin manager.
      plugin - the plugin.
      webXML - the web.xml file containing JSP page names to servlet class file mappings.
    • unregisterServlets

      public static void unregisterServlets(File webXML)
      Unregisters all JSP page servlets for a plugin.
      Parameters:
      webXML - the web.xml file containing JSP page names to servlet class file mappings.
    • registerServlet

      public static String registerServlet(PluginManager pluginManager, Plugin plugin, javax.servlet.GenericServlet servlet, String relativeUrl) throws javax.servlet.ServletException
      Registers a live servlet for a plugin programmatically, does not initialize the servlet.
      Parameters:
      pluginManager - the plugin manager
      plugin - the owner of the servlet
      servlet - the servlet.
      relativeUrl - the relative url where the servlet should be bound
      Returns:
      the effective url that can be used to initialize the servlet
      Throws:
      javax.servlet.ServletException - if the servlet is null
    • unregisterServlet

      public static javax.servlet.GenericServlet unregisterServlet(Plugin plugin, String url) throws javax.servlet.ServletException
      Unregister a live servlet for a plugin programmatically. Does not call the servlet destroy method.
      Parameters:
      plugin - the owner of the servlet
      url - the relative url where servlet has been bound
      Returns:
      the unregistered servlet, so that it can be destroyed
      Throws:
      javax.servlet.ServletException - if the URL is missing