code: static public String replaceWithProperties(final String str, final Properties props){
  		String result = null;
  		switch (IMPL_TYPE){
  			case JBOSS_IMPL:
  				result = StringPropertyReplacer.replaceProperties(str, props);
  				break;
  			default:
  				result = str;
  		}
  		return result;
  	}
docs: If running inside JBoss, it replace any occurrence of ${p} with the System.getProperty(p) value.
  If there is no such property p defined, then the ${p} reference will remain unchanged.
  If the property reference is of the form ${p:v} and there is no such property p, then
  the default value v will be returned. If the property reference is of the form ${p1,p2}
  or ${p1,p2:v} then the primary and the secondary properties will be tried in turn, before
  returning either the unchanged input, or the default value. The property ${/} is replaced
  with System.getProperty("file.separator") value and the property ${:} is replaced with
  System.getProperty("path.separator").
  
  @param str		the input string that substitution will be performed upon.
  @param props		the properties to be used instead of System.getProerty()
  @return		the output string that had been replaced