private static void load() {
        // Load the core model as the admin-sidebar.xml file from the classpath.
        InputStream in = ClassUtils.getResourceAsStream("/admin-sidebar.xml");
        if (in == null) {
            Log.error("Failed to load admin-sidebar.xml file from Openfire classes - admin "
                    + "console will not work correctly.");
            return;
        }
        try {
            Document doc = SAXReaderUtil.readDocument(in);
            coreModel = (Element)doc.selectSingleNode("/adminconsole");
        }
        catch (Exception e) {
            Log.error("Failure when parsing main admin-sidebar.xml file", e);
            if (e instanceof InterruptedException) {
                Thread.currentThread().interrupt();
            }
        }
        try {
            in.close();
        }
        catch (Exception ex) {
            Log.debug("An exception occurred while trying to close the input stream that was used to read admin-sidebar.xml", ex);
        }

        // Load other admin-sidebar.xml files from the classpath, and load git properties
        ClassLoader[] classLoaders = getClassLoaders();
        for (ClassLoader classLoader : classLoaders) {
            URL url = null;
            try {
                if (classLoader != null) {
                    Enumeration<URL> e = classLoader.getResources("/META-INF/admin-sidebar.xml");
                    while (e.hasMoreElements()) {
                        url = e.nextElement();
                        try {
                            in = url.openStream();
                            addModel("admin", in);
                        }
                        finally {
                            try {
                                if (in != null) {
                                    in.close();
                                }
                            }
                            catch (Exception ex) {
                                Log.debug("An exception occurred while trying to close the input stream that was used to read admin-sidebar.xml", ex);
                            }
                        }
                    }
                }
            }
            catch (Exception e) {
                String msg = "Failed to load admin-sidebar.xml";
                if (url != null) {
                    msg += " from resource: " + url.toString();
                }
                Log.warn(msg, e);
                if (e instanceof InterruptedException) {
                    Thread.currentThread().interrupt();
                }
            }
            try {
                if(classLoader != null && gitprops.isEmpty()){
                    InputStream inputStream = classLoader.getResourceAsStream("git.properties");
                    if(inputStream != null){
                        try {
                            gitprops.load(inputStream);
                        } catch (IOException e) {
                            e.printStackTrace();
                        }
                    }
                }
            } catch (Exception e){
                String msg = "Failed to load git properties";
                Log.warn(msg, e);
            }
        }
        rebuildModel();
    }
Returns a text element for the admin console, applying the appropriate locale.
Internationalization logic will only be applied if the String is specially encoded
in the format "${key.name}". If it is, the String is pulled from the resource bundle.
If the pluginName is not {@code null}, the plugin's resource bundle will be used
to look up the key.

@param string the String.
@param pluginName the name of the plugin that the i18n String can be found in,
     or {@code null} if the standard Openfire resource bundle should be used.
@return the string, or if the string is encoded as an i18n key, the value from
     the appropriate resource bundle.
xmppserver/src/main/java/org/jivesoftware/admin/AdminConsole.java