code: public static String getStringProperty(String name, Map<String, String> map, String defaultValue) {
          if (map.containsKey(name) && Strings.isNotNullOrEmpty(map.get(name))) {
              defaultValue = map.get(name);
          }
          return getPropertyOrEnvironmentVariable(name, defaultValue);
      }
docs: Gets a property from system, environment or an external map.
  The lookup order is system > env > map > defaultValue.
  
  @param name
  The name of the property.
  @param map
  The external map.
  @param defaultValue
  The value that should be used if property is not found.