Skip to content
Snippets Groups Projects
Commit 7d9c9fc8 authored by Felix Sidokhine's avatar Felix Sidokhine
Browse files

assembled a working update workflow

parent ebcf8e1d
No related branches found
No related tags found
No related merge requests found
package net.jami.jams.common.updater;
import lombok.Getter;
import lombok.Setter;
import java.util.HashMap;
@Getter
@Setter
public class FullSystemStatusResponse {
private HashMap<String,FileDescription> localVersions;
private HashMap<String, FileDescription> remoteVersions;
private Boolean updateAvailable;
}
......@@ -57,6 +57,8 @@
implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
<manifestEntries>
<Main-Class>launcher.AppStarter</Main-Class>
<Implementation-Title>${project.artifactId}</Implementation-Title>
<Implementation-Version>${project.version}</Implementation-Version>
<Class-Path>.</Class-Path>
</manifestEntries>
</transformer>
......
package net.jami.jams.server.servlets.api.update;
package net.jami.jams.server.servlets.api.admin.update;
import com.jsoniter.output.JsonStream;
import jakarta.servlet.ServletException;
......
package net.jami.jams.server.servlets.api.update;
package net.jami.jams.server.servlets.api.admin.update;
import com.jsoniter.output.JsonStream;
import jakarta.servlet.ServletException;
import jakarta.servlet.annotation.WebServlet;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import net.jami.jams.common.updater.FullSystemStatusResponse;
import java.io.IOException;
import static net.jami.jams.server.Server.appUpdater;
@WebServlet("/api/update")
public class UpdateServlet extends HttpServlet {
//Return the current version number and the available version number.
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
super.doGet(req, resp);
FullSystemStatusResponse response = new FullSystemStatusResponse();
response.setLocalVersions(appUpdater.getLocalVersions());
response.setRemoteVersions(appUpdater.getRemoteVersions());
response.setUpdateAvailable(appUpdater.getUpdateAvailable());
resp.getOutputStream().write(JsonStream.serialize(response).getBytes());
}
//This is the do-update button.
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
super.doPost(req, resp);
if(appUpdater.getUpdateAvailable()){
appUpdater.doUpdate();
}
}
}
......@@ -69,7 +69,8 @@ public class UpdateCheckTask extends TimerTask {
);
//Compare and set to to true up-stream
localData.forEach((k,v) -> {
if(remoteData.get(k).compareTo(v) > 0){
if(remoteData.containsKey(k) && remoteData.get(k).compareTo(v) > 0){
log.info("Detected a new version on SFL servers!");
JAMSUpdater.updateAvailable.set(true);
}
});
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment