in platforms/hawtio-osgi-jmx/src/main/java/io/hawt/osgi/jmx/RBACDecorator.java [438:471]
private static String getGeneralPid(List<String> allJmxAclPids, String pid) {
String[] pidStrArray = pid.split(Pattern.quote("."));
Set<String[]> rets = new TreeSet<>(WILDCARD_PID_COMPARATOR);
for (String id : allJmxAclPids) {
String[] idStrArray = id.split(Pattern.quote("."));
if (idStrArray.length == pidStrArray.length) {
boolean match = true;
for (int i = 0; i < idStrArray.length; i++) {
if (!(idStrArray[i].equals(JMX_OBJECTNAME_PROPERTY_WILDCARD)
|| idStrArray[i].equals(pidStrArray[i]))) {
match = false;
break;
}
}
if (match) {
rets.add(idStrArray);
}
}
}
Iterator<String[]> it = rets.iterator();
if (!it.hasNext()) {
return "";
} else {
StringBuilder buffer = new StringBuilder();
for (String segment : it.next()) {
if (buffer.length() > 0) {
buffer.append(".");
}
buffer.append(segment);
}
return buffer.toString();
}
}