code: public ConcurrentMap<String, Object> readProps(final String paramFilePath) {
          mFilePath = paramFilePath;
          checkState(new File(mFilePath).exists(), "Properties file doesn't exist!");
  
          try {
              // Read and parse file.
              final BufferedReader buffReader = new BufferedReader(new FileReader(mFilePath));
              for (String line = buffReader.readLine(); line != null; line = buffReader.readLine()) {
                  line = line.trim();
                  if (line.isEmpty()) {
                      continue;
                  }
  
                  final int equals = line.indexOf('=');
                  if (equals < 0) {
                      System.out.println("Properties file has no '=' sign in line -- parsing error!");
                  }
  
                  final String key = line.substring(0, equals).toUpperCase();
                  final String value = line.substring(equals + 1);
  
                  mProps.put(key, value);
                  buffReader.close();
              }
          } catch (final IOException exc) {
              exc.printStackTrace();
          }
  
          return mProps;
      }
docs: <h2>Read properties</h2>
  
  <p>
  Read properties file into a concurrent HashMap. Format of properties file:
  </p>
  
  <ul>
  <li>xmldecl=yes (possible values: yes/no)</li>
  <li>indent=no (possible values: yes/no)</li>
  <li>indent-spaces=2 (possible values: Integer)</li>
  <li>serialize-rest=no (possible values: yes/no)</li>
  <li>serialize-id=no (possible values: yes/no)</li>
  </ul>
  
  <p>
  Note that currently all properties have to be set. If specific key/value pairs are specified more than
  once the last values are preserved, so the default values are overridden by user specified values.
  </p>
  
  @param paramFilePath
  Path to properties file.
  @return ConcurrentMap which holds property key/values.