code: public static final String replaceVariables(String text, ValueProvider... providers) {
  		return replaceVariables(text, DEFAULT_CASE_SENSITIVE, providers);
  	}
docs: Matches all variables (according to the ${[a-zA-Z_][a-zA-Z0-9_\-]*} pattern)
  and replaces them with the value provided by the set of value provides.
  The processing is repeated until no more valid variable names can be found
  in the input text, or no more variables can be bound (e.g. when some values
  are not available); the match is performed in a case sensitive fashion.
  
  @param text
  the text possibly containing variable identifiers.
  @param providers
  a set of zero or more value providers.
  @return
  the text with all variables bound.