code: @SuppressWarnings("unchecked")
      public static ServerConfig load(String[] args) throws ConfigurationException {
      	if(config != null) {
      		logger.warn("Configuration is loaded already. Use ServerConfig.getInstance() method. ");
      		return config;
      	}
  
          try {
              URL url = getConfigUrl();
              logger.info("Trying to load settings from: " + url);
  
              InputStream input = null;
              try {
                  input = url.openStream();
              } catch (IOException e) {
                  throw new AssertionError(e);
              }
  
              Yaml yaml = new Yaml();
              LinkedHashMap<String, ?> dataColl = (LinkedHashMap<String, ?>)yaml.load(input);
              config = new ServerConfig();
              setParams(dataColl);
                         
              logger.info("Ok. Configuration loaded.");
  
          } catch (ConfigurationException e) {
              logger.warn(e.getMessage() + " -- Ignoring.");
          } catch (YAMLException e) {
              logger.warn(e.getMessage() + " -- Ignoring.");
          }
  
          if (config == null) {
              logger.info("Initializing configuration by default settings.");
              config = new ServerConfig();
          }
  
          try {
              if (args != null && args.length > 0) {
                  logger.info("Parsing the command line arguments...");
                  parseCommandLineArgs(args);
                  logger.info("Ok. Arguments parsed.");
              }
          } catch (ConfigurationException e) {
              logger.error("Fatal configuration error", e);
              System.err.println(e.getMessage() + "\nFatal configuration error. Unable to start server.  See log for stacktrace.");
              throw e;
          }
  
          //overrides with params from the file
          if (!Utils.isEmpty(config.param_override_filename)) {
              try {
                  InputStream overrideFile = new FileInputStream(config.param_override_filename);
                  Yaml yaml = new Yaml();
                  LinkedHashMap<String, ?> overrideColl = (LinkedHashMap<String, ?>)yaml.load(overrideFile);
                  setParams(overrideColl);
              } catch (Exception e) {
                  logger.warn(e.getMessage() + " -- Ignoring.");
              }       
          }
          return config;
      }
docs: Creates and initializes the ServerConfig singleton.
  @param args The command line arguments.
  @return
  @throws ConfigurationException