in maven-release-manager/src/main/java/org/apache/maven/shared/release/phase/AbstractRewritePomsPhase.java [804:828]
protected static String translateUrlPath(String trunkPath, String tagPath, String urlPath) {
trunkPath = trunkPath.trim();
tagPath = tagPath.trim();
// Strip the slash at the end if one is present
if (trunkPath.endsWith("/")) {
trunkPath = trunkPath.substring(0, trunkPath.length() - 1);
}
if (tagPath.endsWith("/")) {
tagPath = tagPath.substring(0, tagPath.length() - 1);
}
char[] tagPathChars = trunkPath.toCharArray();
char[] trunkPathChars = tagPath.toCharArray();
// Find the common path between trunk and tags
int i = 0;
while ((i < tagPathChars.length) && (i < trunkPathChars.length) && tagPathChars[i] == trunkPathChars[i]) {
++i;
}
// If there is nothing common between trunk and tags, or the relative
// path does not exist in the url, then just return the tag.
if (i == 0 || urlPath.indexOf(trunkPath.substring(i)) < 0) {
return tagPath;
} else {
return StringUtils.replace(urlPath, trunkPath.substring(i), tagPath.substring(i));
}
}