X-Git-Url: https://git.pterodactylus.net/?p=Sone.git;a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fnet%2Fpterodactylus%2Fsone%2Fcore%2FUpdateChecker.java;h=e739a447d9dda36eca8f4e542769886caffdec96;hp=dbca3f196cad08ec17c7ee6c48f5c03a8aa8a81b;hb=4b42574c9ec4490100ac3e87b9c2f3aac965a202;hpb=11bcfe02cef90ea88c19b30cd796d563c4567a96 diff --git a/src/main/java/net/pterodactylus/sone/core/UpdateChecker.java b/src/main/java/net/pterodactylus/sone/core/UpdateChecker.java index dbca3f1..e739a44 100644 --- a/src/main/java/net/pterodactylus/sone/core/UpdateChecker.java +++ b/src/main/java/net/pterodactylus/sone/core/UpdateChecker.java @@ -1,5 +1,5 @@ /* - * Sone - UpdateChecker.java - Copyright © 2011–2015 David Roden + * Sone - UpdateChecker.java - Copyright © 2011–2016 David Roden * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -63,7 +63,7 @@ public class UpdateChecker { private FreenetURI currentUri; /** The latest known edition. */ - private long latestEdition; + private long latestEdition = SonePlugin.getLatestEdition(); /** The current latest known version. */ private Version currentLatestVersion; @@ -224,9 +224,22 @@ public class UpdateChecker { if (version.compareTo(currentLatestVersion) > 0) { currentLatestVersion = version; latestVersionDate = releaseTime; - logger.log(Level.INFO, String.format("Found new version: %s (%tc)", version, new Date(releaseTime))); - eventBus.post(new UpdateFoundEvent(version, releaseTime, edition)); + boolean disruptive = disruptiveVersionBetweenCurrentAndFound(properties); + logger.log(Level.INFO, String.format("Found new version: %s (%tc%s)", version, new Date(releaseTime), disruptive ? ", disruptive" : "")); + eventBus.post(new UpdateFoundEvent(version, releaseTime, edition, disruptive)); } } + private boolean disruptiveVersionBetweenCurrentAndFound(Properties properties) { + for (String key : properties.stringPropertyNames()) { + if (key.startsWith("DisruptiveVersion/")) { + Version disruptiveVersion = Version.parse(key.substring("DisruptiveVersion/".length())); + if (disruptiveVersion.compareTo(currentRunningVersion) > 0) { + return true; + } + } + } + return false; + } + }