code: public static void resolve(Map<String, String> properties) {
  		boolean resolved = true;
  		while (resolved) {
  			resolved = false;
  			for (Map.Entry<String, String> p : properties.entrySet()) {
  				String v = p.getValue();
  				if (v == null) continue;
  				int i = v.indexOf("${");
  				if (i < 0) continue;
  				int j = v.indexOf('}', i + 2);
  				if (j < 0) continue;
  				String name = v.substring(i + 2, j);
  				String val = properties.get(name);
  				if (val == null) val = "";
  				v = v.substring(0, i) + val + v.substring(j + 1);
  				properties.put(p.getKey(), v);
  				resolved = true;
  				break;
  			}
  		}
  	}
docs: Resolve the values of properties if any contains ${...}.