1package dev.rafex.ether.glowroot.jetty12;
29import java.util.regex.Pattern;
38final class PathNormalizer {
40 private static final Pattern UUID_PATTERN = Pattern
41 .compile(
"/[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}(?=/|$)");
42 private static final Pattern OBJECTID_PATTERN = Pattern.compile(
"/[0-9a-fA-F]{24}(?=/|$)");
43 private static final Pattern NUMBER_PATTERN = Pattern.compile(
"/\\d{2,}(?=/|$)");
44 private static final Pattern MULTIPLE_SLASHES_PATTERN = Pattern.compile(
"/{2,}");
46 private PathNormalizer() {
49 static String normalize(
final String path) {
50 if (path ==
null || path.isEmpty()) {
54 String result = MULTIPLE_SLASHES_PATTERN.matcher(path).replaceAll(
"/");
55 result = UUID_PATTERN.matcher(result).replaceAll(
"/:id");
56 result = OBJECTID_PATTERN.matcher(result).replaceAll(
"/:id");
57 return NUMBER_PATTERN.matcher(result).replaceAll(
"/:n");