code: public void init() {
      String fileName = null;
      try {
        fileName = System.getProperty(SYSTEM_PROPERTY);
        if (fileName == null) {
          LOG.info("User file configuration not provided, reading default file.");
          readConfiguration(getClass().getResourceAsStream(DEFAULT_FILE_NAME));
        } else {
          try {
            FileInputStream stream = new FileInputStream(fileName);
            LOG.info("Reading configuration file: " + fileName);
            readConfiguration(stream);
          } catch (FileNotFoundException fnfe) {
            LOG.info("Error using user provided configuration file, reading default file.");
            readConfiguration(getClass().getResourceAsStream(DEFAULT_FILE_NAME));
          }
        }
      } catch (IOException ioe) {
        LOG.error("Error reading provided " + fileName + " file");
      }
    }
docs: Initializes configuration.
  
  @throws IOException
  thrown when initialization error occurs