public static String doPropertyReplacement(String line) {
        if (line == null) {
            return line;
        }
        String rval = line;
        int sidx;
        while ( (sidx = rval.indexOf("${")) != -1 ) {
            int eidx = rval.indexOf('}', sidx);
            String substring = rval.substring(sidx + 2, eidx);
            String propName = substring.trim();
            String defaultValue = "";
            if (propName.contains(":")) {
                int cidx = propName.indexOf(':');
                defaultValue = propName.substring(cidx+1).trim();
                propName = propName.substring(0, cidx).trim();
            }
            String propVal = System.getProperty(propName, defaultValue);
            rval = rval.replace("${" + substring + "}", propVal);
        }
        return rval.replace("@{", "${");
    }
Provides Ant-style property replacement support.  This method looks for ${property-name}
formatted text and replaces the property with its value.  Values are looked up from
the system properties.
@param line the line being processed
@return the line with all properties replaced
test/common/src/main/java/io/apiman/test/common/util/TestUtil.java