Class AdminConsolePlugin

  • All Implemented Interfaces:
    Plugin

    public class AdminConsolePlugin
    extends Object
    implements Plugin
    The admin console plugin. It starts a Jetty instance on the configured port and loads the admin console web application.
    Author:
    Matt Tucker
    • Field Detail

      • secret

        public static final String secret
        Random secret used by JVM to allow SSO. Only other cluster nodes can use this secret as a way to integrate the admin consoles of each cluster node.
    • Constructor Detail

      • AdminConsolePlugin

        public AdminConsolePlugin()
        Create a Jetty module.
    • Method Detail

      • startup

        protected void startup()
        Starts the Jetty instance.
      • shutdown

        protected void shutdown()
        Shuts down the Jetty server.
      • initializePlugin

        public void initializePlugin​(PluginManager manager,
                                     File pluginDir)
        Description copied from interface: Plugin
        Initializes the plugin.
        Specified by:
        initializePlugin in interface Plugin
        Parameters:
        manager - the plugin manager.
        pluginDir - the directory where the plugin is located.
      • destroyPlugin

        public void destroyPlugin()
        Description copied from interface: Plugin
        Destroys the plugin.

        Implementations of this method must release all resources held by the plugin such as file handles, database or network connections, and references to core Openfire classes. In other words, a garbage collection executed after this method is called must be able to clean up all plugin classes.

        Specified by:
        destroyPlugin in interface Plugin
      • isRestartNeeded

        public boolean isRestartNeeded()
        Returns true if the Jetty server needs to be restarted. This is usually required when certificates are added, deleted or modified or when server ports were modified.
        Returns:
        true if the Jetty server needs to be restarted.
      • getBindInterface

        public String getBindInterface()
        Returns null if the admin console will be available in all network interfaces of this machine or a String representing the only interface where the admin console will be available.
        Returns:
        String representing the only interface where the admin console will be available or null if it will be available in all interfaces.
      • getAdminUnsecurePort

        public int getAdminUnsecurePort()
        Returns the non-SSL port on which the admin console is currently operating.
        Returns:
        the non-SSL port on which the admin console is currently operating.
      • getAdminSecurePort

        public int getAdminSecurePort()
        Returns the SSL port on which the admin console is current operating.
        Returns:
        the SSL port on which the admin console is current operating.
      • getContexts

        public org.eclipse.jetty.server.handler.ContextHandlerCollection getContexts()
        Returns the collection of Jetty contexts used in the admin console. A root context "/" is where the admin console lives. Additional contexts can be added dynamically for other web applications that should be run as part of the admin console server process. The following pseudo code demonstrates how to do this:
           ContextHandlerCollection contexts = ((AdminConsolePlugin)pluginManager.getPlugin("admin")).getContexts();
           context = new WebAppContext(SOME_DIRECTORY, "/CONTEXT_NAME");
           contexts.addHandler(context);
           context.setWelcomeFiles(new String[]{"index.jsp"});
           context.start();
         
        Returns:
        the Jetty handlers.
      • restart

        public void restart()
        Restart the admin console (and it's HTTP server) without restarting the plugin.