docs: @Pure
  	public static String getStringWithDefaultFrom(ClassLoader classLoader, String resourcePath, String key,
  			String defaultValue, Object... params) {
  
  		if (resourcePath == null) {
  			return defaultValue;
  		}
  
  		// Get the resource file
  		ResourceBundle resource = null;
  		try {
  			resource = ResourceBundle.getBundle(resourcePath,
  					java.util.Locale.getDefault(),
  					classLoader);
  		} catch (MissingResourceException exep) {
  			return defaultValue;
  		}
  
  		// get the resource string
  		String result;
  
  		try {
  			result = resource.getString(key);
  		} catch (Exception e) {
  			return defaultValue;
  		}
  
  		// replace the \n and \r by a real new line character
  		result = result.replaceAll("[\\n\\r]", "\n"); //$NON-NLS-1$ //$NON-NLS-2$
  		result = result.replaceAll("\\t", "\t"); //$NON-NLS-1$ //$NON-NLS-2$
  
  		// replace the parameter values
  		assert params != null;
  		return LocaleMessageFormat.format(result, params);
  	}