in src/main/java/org/apache/sling/installer/provider/jcr/impl/ConfigNodeConverter.java [145:169]
private static String computeDigest(Dictionary<String, Object> data) {
try {
final MessageDigest d = MessageDigest.getInstance("MD5");
final ByteArrayOutputStream bos = new ByteArrayOutputStream();
final ObjectOutputStream oos = new ObjectOutputStream(bos);
final SortedSet<String> sortedKeys = new TreeSet<String>();
if(data != null) {
for(Enumeration<String> e = data.keys(); e.hasMoreElements(); ) {
final String key = e.nextElement();
sortedKeys.add(key);
}
}
for(String key : sortedKeys) {
oos.writeObject(key);
oos.writeObject(data.get(key));
}
bos.flush();
d.update(bos.toByteArray());
return digestToString(d);
} catch (Exception ignore) {
return (data != null ? data.toString() : null);
}
}