From 09fde47a9c3edc53672e5a562be25137ac8582a7 Mon Sep 17 00:00:00 2001 From: Yury Brigadirenko Date: Wed, 3 Apr 2024 17:36:09 -0400 Subject: [PATCH] server: fix json serialization of UserActivityResponse (#885) --- .../console/UserActivityResourceV2.java | 4 ++- .../server/console/UserActivityResponse.java | 26 ++++++++----------- 2 files changed, 14 insertions(+), 16 deletions(-) diff --git a/server/impl/src/main/java/com/walmartlabs/concord/server/console/UserActivityResourceV2.java b/server/impl/src/main/java/com/walmartlabs/concord/server/console/UserActivityResourceV2.java index bd48ae9b21..4aeea2793f 100644 --- a/server/impl/src/main/java/com/walmartlabs/concord/server/console/UserActivityResourceV2.java +++ b/server/impl/src/main/java/com/walmartlabs/concord/server/console/UserActivityResourceV2.java @@ -57,6 +57,8 @@ public UserActivityResponse activity(@QueryParam("maxOwnProcesses") @DefaultValu .build(); List lastProcesses = processDao.list(filter); - return new UserActivityResponse(lastProcesses); + return ImmutableUserActivityResponse.builder() + .processes(lastProcesses) + .build(); } } diff --git a/server/impl/src/main/java/com/walmartlabs/concord/server/console/UserActivityResponse.java b/server/impl/src/main/java/com/walmartlabs/concord/server/console/UserActivityResponse.java index 69cf6b7e40..b36f19f75b 100644 --- a/server/impl/src/main/java/com/walmartlabs/concord/server/console/UserActivityResponse.java +++ b/server/impl/src/main/java/com/walmartlabs/concord/server/console/UserActivityResponse.java @@ -20,30 +20,26 @@ * ===== */ -import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonInclude.Include; -import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; import com.walmartlabs.concord.server.process.ProcessEntry; +import org.immutables.value.Value; -import java.io.Serial; import java.io.Serializable; import java.util.List; +@Value.Immutable @JsonInclude(Include.NON_EMPTY) -public final class UserActivityResponse implements Serializable { +@JsonSerialize(as = ImmutableUserActivityResponse.class) +@JsonDeserialize(as = ImmutableUserActivityResponse.class) +public interface UserActivityResponse extends Serializable { - @Serial - private static final long serialVersionUID = 1L; + long serialVersionUID = 1L; - private final List processes; - - @JsonCreator - public UserActivityResponse(@JsonProperty("processes") List processes) { - this.processes = processes; - } - - public List processes() { - return processes; + @Value.Default + default List processes() { + return List.of(); } }