Class LocalizationServlet

  • All Implemented Interfaces:
    Serializable, javax.servlet.Servlet, javax.servlet.ServletConfig, org.pentaho.platform.api.engine.ILogger

    public class LocalizationServlet
    extends ServletBase
    This class makes a message bundle available as a JSON hash. This is designed to be used as a web service to allow thin-clients to retrieve message bundles from the server.
    See Also:
    Serialized Form
    • Constructor Detail

      • LocalizationServlet

        public LocalizationServlet()
    • Method Detail

      • getLogger

        public org.apache.commons.logging.Log getLogger()
        Specified by:
        getLogger in class ServletBase
      • doGet

        public void doGet​(javax.servlet.http.HttpServletRequest req,
                          javax.servlet.http.HttpServletResponse resp)
                   throws javax.servlet.ServletException,
                          IOException
        Overrides:
        doGet in class javax.servlet.http.HttpServlet
        Throws:
        javax.servlet.ServletException
        IOException
      • doPost

        public void doPost​(javax.servlet.http.HttpServletRequest req,
                           javax.servlet.http.HttpServletResponse resp)
                    throws javax.servlet.ServletException,
                           IOException
        Overrides:
        doPost in class javax.servlet.http.HttpServlet
        Throws:
        javax.servlet.ServletException
        IOException
      • getBundle

        protected ResourceBundle getBundle​(String pluginId,
                                           String name)
        Retrieve a ResourceBundle from a plugin.
        Parameters:
        pluginId - ID of the plugin to load the resource bundle from
        name - Resource bundle name that resides in the plugin
        Returns:
        Resource bundle for the name provided in the plugin referenced by pluginId
        Throws:
        IllegalArgumentException - Invalid plugin Id
        MissingResourceException - Invalid resource bundle name
      • isMessageCachingEnabled

        public boolean isMessageCachingEnabled​(org.pentaho.platform.api.engine.IPluginManager pm,
                                               String pluginId)
        Should the messages in the Resource Bundle be cached?
        Parameters:
        pm - Plugin manager
        pluginId - ID of plugin whose "cache-messages" setting should be checked
        Returns:
        true if the localization messages loaded from this plugin should be cached
      • getJSONBundle

        public String getJSONBundle​(String pluginId,
                                    String name)
        Load the resource bundle for the plugin provided and return the resulting properties map as JSON. This is intended to be used with Dojo's i18n system (http://dojotoolkit.org/reference-guide/1.7/quickstart/internationalization/index .html#quickstart-internationalization-index)
        Parameters:
        pluginId - ID of plugin to load the resource from
        name - Name of the resource to load
        Returns:
        JSON String with a hash of key/value pairs representing properties from the requested resource bundle
      • getJsonForBundle

        protected String getJsonForBundle​(ResourceBundle bundle)
                                   throws org.json.JSONException
        Convert a {@see ResourceBundle} into a JSON string.
        Parameters:
        bundle - Resource bundle to convert
        Returns:
        Bundle with all key/value pairs as entries in a hash, returned as a JSON string.
        Throws:
        org.json.JSONException