private void buildPluginsUpdateList() {
        // Reset list of plugins that need to be updated
        pluginUpdates = new ArrayList<>();
        XMPPServer server = XMPPServer.getInstance();
        Version currentServerVersion = XMPPServer.getInstance().getServerInfo().getVersion();
        // Compare local plugins versions with latest ones
        for ( final PluginMetadata plugin : server.getPluginManager().getMetadataExtractedPlugins().values() )
        {
            final AvailablePlugin latestPlugin = availablePlugins.get( plugin.getName() );

            if (latestPlugin == null)
            {
                continue;
            }

            final Version latestPluginVersion = latestPlugin.getVersion();

            if ( latestPluginVersion.isNewerThan( plugin.getVersion() ) )
            {
                // Check if the update can run in the current version of the server
                final Version pluginMinServerVersion = latestPlugin.getMinServerVersion();
                if ( pluginMinServerVersion != null && pluginMinServerVersion.isNewerThan( currentServerVersion ))
                {
                    continue;
                }

                final Version pluginPriorToServerVersion = latestPlugin.getPriorToServerVersion();
                if ( pluginPriorToServerVersion != null && !pluginPriorToServerVersion.isNewerThan( currentServerVersion ))
                {
                    continue;
                }

                final Update update = new Update( plugin.getName(), latestPlugin.getVersion(), latestPlugin.getChangelog().toExternalForm(), latestPlugin.getDownloadURL().toExternalForm() );
                pluginUpdates.add(update);
            }
        }
    }
Recreate the list of plugins that need to be updated based on the list of
available plugins at igniterealtime.org.
xmppserver/src/main/java/org/jivesoftware/openfire/update/UpdateManager.java