in client/src/main/java/org/mvndaemon/mvnd/client/DaemonParameters.java [481:518]
private static String calculateCoreExtensionsDiscriminator(
Path multiModuleProjectDirectory, Path userHome, Path mvndHome) {
try {
Path projectExtensionsXml = multiModuleProjectDirectory
.resolve(".mvn")
.resolve("extensions.xml")
.toAbsolutePath()
.normalize();
Path userExtensionsXml = userHome.resolve(".m2")
.resolve("extensions.xml")
.toAbsolutePath()
.normalize();
Path installationExtensionsXml = mvndHome.resolve("mvn")
.resolve("conf")
.resolve("extensions.xml")
.toAbsolutePath()
.normalize();
String blob = "";
if (Files.exists(projectExtensionsXml)) {
blob += projectExtensionsXml.toString();
blob += Files.readString(projectExtensionsXml);
}
if (Files.exists(userExtensionsXml)) {
blob += userExtensionsXml.toString();
blob += Files.readString(userExtensionsXml);
}
if (Files.exists(installationExtensionsXml)) {
blob += installationExtensionsXml.toString();
blob += Files.readString(installationExtensionsXml);
}
MessageDigest digest = MessageDigest.getInstance("SHA-1");
digest.update(blob.getBytes(StandardCharsets.UTF_8));
return HexFormat.of().formatHex(digest.digest());
} catch (Exception e) {
throw new IllegalStateException("Cannot calculate core extensions discriminator", e);
}
}