default Configuration withSystemProperties(Function<String,String> propertyNameConverter){
  Properties props=asProperties();
  Properties systemProperties=System.getProperties();
  for (  String key : systemProperties.stringPropertyNames()) {
    String propName=propertyNameConverter.apply(key);
    if (propName != null && propName.length() > 0) {
      String value=systemProperties.getProperty(key);
      props.setProperty(propName,value);
    }
  }
  return from(props);
}

default Configuration withSystemProperties ( Function < String , String > propertyNameConverter ) { Properties props = asProperties ( ) ; Properties systemProperties = System . getProperties ( ) ; for ( String key : systemProperties . stringPropertyNames ( ) ) { String propName = propertyNameConverter . apply ( key ) ; if ( propName != null && propName . length ( ) > 0 ) { String value = systemProperties . getProperty ( key ) ; props . setProperty ( propName , value ) ; } } return from ( props ) ; }
return a copy of this configuration except where acceptable system properties are used to overwrite properties copied from this configuration . each of the system properties is examined and passed to the supplied function ; if the result of the function is a non - null string , then a property with that string as the name and the system property value are added to the returned configuration .
