in ideaSupport/src/main/scala/org/jetbrains/sbtidea/download/jbr/JbrInstaller.scala [24:46]
private def isSameJbr(art: JbrArtifact)(implicit ctx: IdeInstallationContext): Boolean = {
val releaseFile = getJbrHome(ctx.baseDirectory) / "release"
val props = new Properties()
try {
val jbrInfo = art.caller.jbrInfo
Using.resource(releaseFile.inputStream)(props.load)
props
.getProperty("IMPLEMENTOR_VERSION")
.lift2Option
.exists(value => {
val sameJbr =
value.contains(jbrInfo.version.major.replace('_', '.')) && // release file has dot major version separators
value.contains(jbrInfo.version.minor) &&
value.contains(jbrInfo.kind.value.replace("jbr_", "")) // release file has no "jbr_" prefix
if (!sameJbr) log.info(s"New JBR is different from installed: $jbrInfo != $value")
sameJbr
})
} catch {
case ex: Exception =>
log.warn(s"Failed to check locally installed JBR version(assuming true): $ex")
true
}
}