@Override
            public Set<DataForm> getExtendedInfos(String name, String node, JID senderJID) {
                if (node != null && serverNodeProviders.get(node) != null) {
                    // Redirect the request to the disco info provider of the specified node
                    return serverNodeProviders.get(node).getExtendedInfos(name, node, senderJID);
                }
                if (name == null || name.equals(XMPPServer.getInstance().getServerInfo().getXMPPDomain())) {
                    // Answer extended info of the server itself.

                    // XEP-0157 Contact addresses for XMPP Services
                    if ( !JiveGlobals.getBooleanProperty( "admin.disable-exposure" ) )
                    {
                        final Collection<JID> admins = XMPPServer.getInstance().getAdmins();
                        if ( admins == null || admins.isEmpty() )
                        {
                            return null;
                        }

                        final DataForm dataForm = new DataForm(DataForm.Type.result);

                        final FormField fieldType = dataForm.addField();
                        fieldType.setVariable("FORM_TYPE");
                        fieldType.setType(FormField.Type.hidden);
                        fieldType.addValue("http://jabber.org/network/serverinfo");

                        final FormField fieldAdminAddresses = dataForm.addField();
                        fieldAdminAddresses.setVariable("admin-addresses");
                        fieldAdminAddresses.setType(Type.list_multi);

                        final UserManager userManager = UserManager.getInstance();
                        for ( final JID admin : admins )
                        {
                            fieldAdminAddresses.addValue( "xmpp:" + admin.asBareJID() );
                            if ( admin.getDomain().equals( XMPPServer.getInstance().getServerInfo().getXMPPDomain() ) ) {
                                try
                                {
                                    final String email = userManager.getUser( admin.getNode() ).getEmail();
                                    if ( email != null && !email.trim().isEmpty() )
                                    {
                                        fieldAdminAddresses.addValue( "mailto:" + email );
                                    }
                                }
                                catch (Exception e)
                                {
                                    continue;
                                }
                            }
                        }

                        //XEP-0232 includes extended information about Software Version in a data form
                        final DataForm dataFormSoftwareVersion = new DataForm(DataForm.Type.result);

                        final FormField fieldTypeSoftwareVersion = dataFormSoftwareVersion.addField();
                        fieldTypeSoftwareVersion.setVariable("FORM_TYPE");
                        fieldTypeSoftwareVersion.setType(FormField.Type.hidden);
                        fieldTypeSoftwareVersion.addValue("urn:xmpp:dataforms:softwareinfo");

                        final FormField fieldOs = dataFormSoftwareVersion.addField();
                        fieldOs.setType(Type.text_single);
                        fieldOs.setVariable("os");
                        fieldOs.addValue( System.getProperty("os.name"));

                        final FormField fieldOsVersion = dataFormSoftwareVersion.addField();
                        fieldOsVersion.setType(Type.text_single);
                        fieldOsVersion.setVariable("os_version");
                        fieldOsVersion.addValue(System.getProperty("os.version")+" "+System.getProperty("os.arch")+" - Java " + System.getProperty("java.version"));

                        final FormField fieldSoftware = dataFormSoftwareVersion.addField();
                        fieldSoftware.setType(Type.text_single);
                        fieldSoftware.setVariable("software");
                        fieldSoftware.addValue(AdminConsole.getAppName());

                        final FormField fieldSoftwareVersion = dataFormSoftwareVersion.addField();
                        fieldSoftwareVersion.setType(Type.text_single);
                        fieldSoftwareVersion.setVariable("software_version");
                        fieldSoftwareVersion.addValue(AdminConsole.getVersionString());

                        final Set<DataForm> dataForms = new HashSet<>();
                        if (ENABLED.getValue()){
                            dataForms.add(dataFormSoftwareVersion);
                        }
                        dataForms.add(dataForm);
                        return dataForms;
                    }
                }
                if (node != null && name != null) {
                    return XMPPServer.getInstance().getIQPEPHandler().getExtendedInfos(name, node, senderJID);
                }
                return Collections.emptySet();
            }
Returns the DiscoInfoProvider responsible for providing information at the server level. This
means that this DiscoInfoProvider will provide information whenever a disco request whose
recipient JID is the server (e.g. localhost) is made.

@return the DiscoInfoProvider responsible for providing information at the server level.
xmppserver/src/main/java/org/jivesoftware/openfire/disco/IQDiscoInfoHandler.java