Class UpdateManager

java.lang.Object
org.jivesoftware.openfire.container.BasicModule
org.jivesoftware.openfire.update.UpdateManager
All Implemented Interfaces:
Module

public class UpdateManager extends BasicModule
Service that frequently checks for new server or plugins releases. By default the service will check every 48 hours for updates. Use the system property update.frequency to set new values.

New versions of plugins can be downloaded and installed. However, new server releases should be manually installed.

Author:
Gaston Dombiak
  • Field Details

  • Constructor Details

    • UpdateManager

      public UpdateManager()
  • Method Details

    • start

      public void start() throws IllegalStateException
      Description copied from class: BasicModule

      Starts the basic module.

      Inheriting classes that choose to override this method MUST call this start() method before accessing BasicModule resources.

      Specified by:
      start in interface Module
      Overrides:
      start in class BasicModule
      Throws:
      IllegalStateException - If start is called before initialize successfully returns
    • initialize

      public void initialize(XMPPServer server)
      Description copied from class: BasicModule

      Initializes the basic module.

      Inheriting classes that choose to override this method MUST call this initialize() method before accessing BasicModule resources.

      Specified by:
      initialize in interface Module
      Overrides:
      initialize in class BasicModule
      Parameters:
      server - the server hosting this module.
    • checkForServerUpdate

      public void checkForServerUpdate(boolean notificationsEnabled) throws Exception
      Queries the igniterealtime.org server with a request that contains the currently installed server version. It's response indicates if a server update (a newer version of Openfire) is available.
      Parameters:
      notificationsEnabled - true if admins will be notified when new updates are found.
      Throws:
      Exception - if some error happens during the query.
    • checkForPluginsUpdates

      public void checkForPluginsUpdates(boolean notificationsEnabled) throws Exception
      Queries the igniterealtime.org server. It's response is expected to include a list of plugins that are available on the server / for download.
      Parameters:
      notificationsEnabled - true if admins will be notified when new updates are found.
      Throws:
      Exception - if some error happens during the query.
    • downloadPlugin

      public boolean downloadPlugin(String url)
      Download and install latest version of plugin.
      Parameters:
      url - the URL of the latest version of the plugin.
      Returns:
      true if the plugin was successfully downloaded and installed.
    • isPluginDownloaded

      public boolean isPluginDownloaded(String url)
      Returns true if the plugin downloaded from the specified URL has been downloaded. Plugins may be downloaded but not installed. The install process may take like 30 seconds to detect new plugins to install.
      Parameters:
      url - the URL of the latest version of the plugin.
      Returns:
      true if the plugin downloaded from the specified URL has been downloaded.
    • getNotInstalledPlugins

      public List<AvailablePlugin> getNotInstalledPlugins()
      Returns the list of available plugins, sorted alphabetically, to install as reported by igniterealtime.org. Currently downloaded plugins will not be included, nor will plugins that require a newer or older server version.
      Returns:
      the list of available plugins to install as reported by igniterealtime.org.
    • getNotificationMessage

      public String getNotificationMessage()
      Returns the message to send to admins when new updates are available. When sending this message information about the new updates avaiable will be appended.
      Returns:
      the message to send to admins when new updates are available.
    • isServiceEnabled

      public boolean isServiceEnabled()
      Returns true if the check for updates service is enabled.
      Returns:
      true if the check for updates service is enabled.
    • setServiceEnabled

      public void setServiceEnabled(boolean enabled)
      Sets if the check for updates service is enabled.
      Parameters:
      enabled - true if the check for updates service is enabled.
    • isNotificationEnabled

      public boolean isNotificationEnabled()
      Returns true if admins should be notified by IM when new updates are available.
      Returns:
      true if admins should be notified by IM when new updates are available.
    • setNotificationEnabled

      public void setNotificationEnabled(boolean enabled)
      Sets if admins should be notified by IM when new updates are available.
      Parameters:
      enabled - true if admins should be notified by IM when new updates are available.
    • isUsingProxy

      public boolean isUsingProxy()
      Returns true if a proxy is being used to connect to igniterealtime.org or false if a direct connection should be attempted.
      Returns:
      true if a proxy is being used to connect to igniterealtime.org.
    • getProxyHost

      public String getProxyHost()
      Returns the host of the proxy to use to connect to igniterealtime.org or null if no proxy is used.
      Returns:
      the host of the proxy or null if no proxy is used.
    • setProxyHost

      public void setProxyHost(String host)
      Sets the host of the proxy to use to connect to igniterealtime.org or null if no proxy is used.
      Parameters:
      host - the host of the proxy or null if no proxy is used.
    • getProxyPort

      public int getProxyPort()
      Returns the port of the proxy to use to connect to igniterealtime.org or -1 if no proxy is being used.
      Returns:
      the port of the proxy to use to connect to igniterealtime.org or -1 if no proxy is being used.
    • setProxyPort

      public void setProxyPort(int port)
      Sets the port of the proxy to use to connect to igniterealtime.org or -1 if no proxy is being used.
      Parameters:
      port - the port of the proxy to use to connect to igniterealtime.org or -1 if no proxy is being used.
    • getServerUpdate

      public Update getServerUpdate()
      Returns the server update or null if the server is up to date.
      Returns:
      the server update or null if the server is up to date.
    • getPluginUpdate

      public Update getPluginUpdate(String pluginName, Version currentVersion)
      Returns the plugin update or null if the plugin is up to date.
      Parameters:
      pluginName - the name of the plugin (as described in the meta-data).
      currentVersion - current version of the plugin that is installed.
      Returns:
      the plugin update or null if the plugin is up to date.
    • getPluginUpdates

      public Collection<Update> getPluginUpdates()
      Returns a previously fetched list of updates.
      Returns:
      a previously fetched list of updates.