Use configured url as cache key

Doing so, we will ignore the cached result every time a new feed url is
specified. So a change of the url will be taken into account immediately
This commit is contained in:
René Pfeuffer
2020-09-24 11:50:36 +02:00
parent ebd48413b8
commit 2626bd118a

View File

@@ -40,7 +40,6 @@ public class ReleaseVersionChecker {
private static final Logger LOG = LoggerFactory.getLogger(ReleaseVersionChecker.class);
private static final String CACHE_NAME = "sonia.cache.updateInfo";
private static final String CACHE_KEY = "latestRelease";
private final ReleaseFeedParser releaseFeedParser;
private final ScmConfiguration scmConfiguration;
@@ -61,8 +60,8 @@ public class ReleaseVersionChecker {
}
public Optional<UpdateInfo> checkForNewerVersion() {
if (cache.size() > 0) {
return cache.get(CACHE_KEY);
if (cache.contains(scmConfiguration.getReleaseFeedUrl())) {
return cache.get(scmConfiguration.getReleaseFeedUrl());
}
return findLatestRelease();
}
@@ -71,12 +70,12 @@ public class ReleaseVersionChecker {
String releaseFeedUrl = scmConfiguration.getReleaseFeedUrl();
Optional<UpdateInfo> latestRelease = releaseFeedParser.findLatestRelease(releaseFeedUrl);
if (latestRelease.isPresent() && isNewerVersion(latestRelease.get())) {
cache.put(CACHE_KEY, latestRelease);
cache.put(scmConfiguration.getReleaseFeedUrl(), latestRelease);
return latestRelease;
}
// we cache that no new version was available to prevent request every time
LOG.debug("No newer version found for SCM-Manager");
cache.put(CACHE_KEY, Optional.empty());
cache.put(scmConfiguration.getReleaseFeedUrl(), Optional.empty());
return Optional.empty();
}