code: public static String decodeToken(String key, String defaultValue) {
      String value = System.getProperty(key, System.getenv(key.replace('.', '_')));
      return value!=null ? value : defaultValue;
    }
docs: Attempts to decode the passed dot delimited as a system property, and if not found, attempts a decode as an
  environmental variable, replacing the dots with underscores. e.g. for the key: <b><code>buffer.size.max</code></b>,
  a system property named <b><code>buffer.size.max</code></b> will be looked up, and then an environmental variable
  named <b><code>buffer.size.max</code></b> will be looked up.
  @param key The dot delimited key to decode
  @param defaultValue The default value returned if neither source can decode the key
  @return the decoded value or the default value if neither source can decode the key