code: public static void substituteVariables(ProtocolStackConfigurator configurator) {
          List<ProtocolConfiguration> protocols=configurator.getProtocolStack();
          protocols.stream().filter(data -> data != null).forEach(data -> {
              Map<String,String> parms=data.getProperties();
              for(Map.Entry<String,String> entry : parms.entrySet()) {
                  String val=entry.getValue();
                  String replacement=Util.substituteVariable(val);
                  if(!replacement.equals(val)) {
                      entry.setValue(replacement);
                  }
              }
          });
      }
docs: Replace variables of the form ${var:default} with the getProperty(var,
  default)
  
  @param configurator