@Override
  public GUIParameter[] loadSettings(String sid) throws ServerException {
    ServiceUtil.validateSession(sid);

    TreeSet<String> sortedSet = new TreeSet<String>();
    ContextProperties conf =
        (ContextProperties) Context.getInstance().getBean(ContextProperties.class);
    for (Object key : conf.keySet()) {
      String name = key.toString();
      if (name.endsWith(".hidden") || name.endsWith("readonly")) continue;
      if (conf.containsKey(name + ".hidden")) {
        if ("true".equals(conf.getProperty(name + ".hidden"))) continue;
      } else if (name.startsWith("product")
          || name.startsWith("skin")
          || name.startsWith("conf")
          || name.startsWith("ldap")
          || name.startsWith("schedule")
          || name.contains(".smtp.")
          || name.contains("password")
          || name.startsWith("ad")
          || name.startsWith("webservice")
          || name.startsWith("webdav")
          || name.startsWith("cmis")
          || name.startsWith("runlevel")
          || name.startsWith("stat")
          || name.contains("index")
          || name.equals("id")
          || name.contains(".lang.")
          || name.startsWith("reg.")
          || name.startsWith("ocr.")
          || name.contains(".ocr.")
          || name.contains("barcode")
          || name.startsWith("task.")
          || name.startsWith("quota")
          || name.startsWith("store")
          || name.startsWith("flexpaperviewer")
          || name.startsWith("omnipage.")
          || name.startsWith("command.")
          || name.contains(".gui.")
          || name.contains(".upload.")
          || name.equals("userno")
          || name.contains(".search.")
          || name.startsWith("swftools.")
          || name.contains("password")
          || name.startsWith("openoffice.path")
          || name.contains("tag.")
          || name.startsWith("jdbc.")
          || name.startsWith("cluster")
          || name.startsWith("ip.")
          || name.contains(".extcall.")
          || name.contains("anonymous")
          || name.startsWith("hibernate.")
          || name.contains(".session.")
          || name.contains("acmecad.")
          || name.contains("antivirus.")
          || name.startsWith("login.")
          || name.equals("upload.maxsize")
          || name.startsWith("news.")
          || name.equals("registry")
          || name.equals("searchengine")
          || name.equals("load")) continue;

      sortedSet.add(key.toString());
    }

    GUIParameter[] params = new GUIParameter[sortedSet.size()];
    int i = 0;
    for (String key : sortedSet) {
      GUIParameter p = new GUIParameter(key, conf.getProperty(key));
      params[i] = p;
      i++;
    }

    return params;
  }