code: protected void substituteSymbols(Map<String, String> initProps) {
          for (Entry<String, String> entry : initProps.entrySet()) {
              Object value = entry.getValue();
              if (value instanceof String) {
                  String strValue = (String) value;
                  Matcher m = SYMBOL_DEF.matcher(strValue);
                  int i = 0;
                  while (m.find() && i++ < 4) {
                      String symbol = m.group(1);
                      Object expansion = initProps.get(symbol);
                      if (expansion != null && expansion instanceof String) {
                          strValue = strValue.replace(m.group(0), (String) expansion);
                          entry.setValue(strValue);
                      }
                  }
              }
          }
      }
docs: Perform substitution of symbols used in config
  
  @param initProps