add download link for new SCM-Manager version to admin information page

This commit is contained in:
Eduard Heimbuch
2020-09-22 16:21:49 +02:00
parent 851c5f9287
commit 65caa05433
16 changed files with 121 additions and 41 deletions

View File

@@ -28,7 +28,7 @@ import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import sonia.scm.xml.XmlDateWithTimezoneAdapter;
import sonia.scm.xml.XmlUTCDateAdapter;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
@@ -64,7 +64,7 @@ public final class ReleaseFeedDto {
private String description;
private String link;
private String generator;
@XmlJavaTypeAdapter(XmlDateWithTimezoneAdapter.class)
@XmlJavaTypeAdapter(XmlUTCDateAdapter.class)
private Date lastBuildDate;
@XmlElement(name = "item")
private List<Release> releases;
@@ -80,7 +80,7 @@ public final class ReleaseFeedDto {
private String description;
private String link;
private String guid;
@XmlJavaTypeAdapter(XmlDateWithTimezoneAdapter.class)
@XmlJavaTypeAdapter(XmlUTCDateAdapter.class)
private Date pubDate;
}
}

View File

@@ -30,7 +30,6 @@ import sonia.scm.net.ahc.AdvancedHttpClient;
import javax.inject.Inject;
import java.io.IOException;
import java.time.Instant;
import java.util.Comparator;
import java.util.Optional;
@@ -51,7 +50,7 @@ public class ReleaseFeedParser {
Optional<ReleaseFeedDto.Release> latestRelease = filterForLatestRelease(releaseFeed);
if (latestRelease.isPresent()) {
ReleaseFeedDto.Release release = latestRelease.get();
return Optional.of(new ReleaseInfo(release.getTitle(), release.getLink(), Instant.now()));
return Optional.of(new ReleaseInfo(release.getTitle(), release.getLink()));
}
return Optional.empty();
}

View File

@@ -27,12 +27,9 @@ package sonia.scm.admin;
import lombok.AllArgsConstructor;
import lombok.Getter;
import java.time.Instant;
@AllArgsConstructor
@Getter
public class ReleaseInfo {
private final String title;
private final String version;
private final String link;
private final Instant releaseDate;
}

View File

@@ -82,11 +82,12 @@ public class ReleaseVersionChecker {
LOG.info("No newer version found for SCM-Manager");
return Optional.empty();
}
LOG.info("No newer version found for SCM-Manager");
return Optional.empty();
}
private boolean isNewerVersion(ReleaseInfo releaseInfo) {
Version versionFromReleaseFeed = Version.parse(releaseInfo.getTitle());
Version versionFromReleaseFeed = Version.parse(releaseInfo.getVersion());
return versionFromReleaseFeed.isNewer(scmContextProvider.getVersion());
}
}

View File

@@ -62,7 +62,7 @@ public class AdminInfoResource {
@GET
@Path("releaseInfo")
@Produces(VndMediaType.ADMIN_INFO)
@Operation(summary = "Returns release info.", description = "Returns a release info if a newer version of SCM-Manager is available.", tags = "AdminInfo")
@Operation(summary = "Returns release info.", description = "Returns information about the latest release if a newer version of SCM-Manager is available.", tags = "AdminInfo")
@ApiResponse(responseCode = "200", description = "success")
@ApiResponse(responseCode = "401", description = "not authenticated / invalid credentials")
@ApiResponse(responseCode = "403", description = "not authorized, the current user has no privileges to read the information")

View File

@@ -29,15 +29,12 @@ import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import java.time.Instant;
@NoArgsConstructor
@Setter
@Getter
@SuppressWarnings("squid:S2160") // we do not need equals for dto
public class ReleaseInfoDto extends HalRepresentation {
private String title;
private String version;
private String link;
private Instant releaseDate;
}