diff --git a/src/firefly/java/edu/caltech/ipac/firefly/data/ServerParams.java b/src/firefly/java/edu/caltech/ipac/firefly/data/ServerParams.java index f09c6f2456..f8bc1df324 100644 --- a/src/firefly/java/edu/caltech/ipac/firefly/data/ServerParams.java +++ b/src/firefly/java/edu/caltech/ipac/firefly/data/ServerParams.java @@ -127,6 +127,7 @@ public class ServerParams { public static final String STAT = "CmdStat"; public static final String GET_USER_INFO = "CmdGetUserInfo"; public static final String GET_ALERTS = "CmdAlerts"; + public static final String GET_VERSION = "CmdVersion"; public static final String JSON_DATA = "JsonData"; public static final String RESOLVE_NAME= "CmdResolveName"; diff --git a/src/firefly/java/edu/caltech/ipac/firefly/server/AppServerCommands.java b/src/firefly/java/edu/caltech/ipac/firefly/server/AppServerCommands.java index ee61beaaef..e3a1db27de 100644 --- a/src/firefly/java/edu/caltech/ipac/firefly/server/AppServerCommands.java +++ b/src/firefly/java/edu/caltech/ipac/firefly/server/AppServerCommands.java @@ -10,6 +10,9 @@ import edu.caltech.ipac.firefly.data.ServerParams; import edu.caltech.ipac.firefly.data.userdata.UserInfo; import edu.caltech.ipac.firefly.messaging.JsonHelper; +import edu.caltech.ipac.firefly.server.util.VersionUtil; +import edu.caltech.ipac.util.KeyVal; +import edu.caltech.ipac.util.serialization.Serializer; import edu.caltech.ipac.firefly.server.events.FluxAction; import edu.caltech.ipac.firefly.server.events.ServerEventManager; import edu.caltech.ipac.firefly.server.security.SsoAdapter; @@ -24,6 +27,7 @@ import java.util.ArrayList; import java.util.HashMap; +import java.util.LinkedHashMap; import java.util.List; import java.util.Map; @@ -150,6 +154,23 @@ public String doCommand(SrvParam params) throws Exception { + public static class GetVersion extends ServCommand { + public String doCommand(SrvParam params) throws Exception { + boolean raw = params.getOptionalBoolean("raw", false); + Object versionData; + if (raw) { + versionData = VersionUtil.getAppVersion(); + } else { + Map versionMap = new LinkedHashMap<>(); + for (KeyVal kv : VersionUtil.getVersionInfo()) { + versionMap.put(kv.getKey(), kv.getValue()); + } + versionData = versionMap; + } + return Serializer.getJsonMapper().writeValueAsString(versionData); + } + } + public static class GetAlerts extends ServCommand { public String doCommand(SrvParam params) throws Exception { Alert alert= AlertsMonitor.checkAlerts(false); diff --git a/src/firefly/java/edu/caltech/ipac/firefly/server/ServerCommandAccess.java b/src/firefly/java/edu/caltech/ipac/firefly/server/ServerCommandAccess.java index cc2975169e..c031a98cde 100644 --- a/src/firefly/java/edu/caltech/ipac/firefly/server/ServerCommandAccess.java +++ b/src/firefly/java/edu/caltech/ipac/firefly/server/ServerCommandAccess.java @@ -104,6 +104,7 @@ private static void initCommand() { _cmdMap.put(ServerParams.LOGOUT, new AppServerCommands.Logout()); _cmdMap.put(ServerParams.GET_USER_INFO, new AppServerCommands.GetUserInfo()); _cmdMap.put(ServerParams.GET_ALERTS, new AppServerCommands.GetAlerts()); + _cmdMap.put(ServerParams.GET_VERSION, new AppServerCommands.GetVersion()); _cmdMap.put(ServerParams.TEXT_FILE, new AppServerCommands.TextFile()); }