values) {
if (values == null || values.isEmpty()) {
return empty();
diff --git a/spring-boot-admin-server/src/main/java/de/codecentric/boot/admin/server/notify/FeiShuNotifier.java b/spring-boot-admin-server/src/main/java/de/codecentric/boot/admin/server/notify/FeiShuNotifier.java
index 173ffab0d36..798a2a28188 100644
--- a/spring-boot-admin-server/src/main/java/de/codecentric/boot/admin/server/notify/FeiShuNotifier.java
+++ b/spring-boot-admin-server/src/main/java/de/codecentric/boot/admin/server/notify/FeiShuNotifier.java
@@ -29,7 +29,6 @@
import javax.crypto.Mac;
import javax.crypto.spec.SecretKeySpec;
-import com.fasterxml.jackson.databind.ObjectMapper;
import lombok.extern.slf4j.Slf4j;
import org.springframework.context.expression.MapAccessor;
import org.springframework.expression.Expression;
@@ -40,10 +39,11 @@
import org.springframework.http.HttpHeaders;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
-import org.springframework.http.converter.json.Jackson2ObjectMapperBuilder;
import org.springframework.util.StringUtils;
import org.springframework.web.client.RestTemplate;
import reactor.core.publisher.Mono;
+import tools.jackson.databind.ObjectMapper;
+import tools.jackson.databind.json.JsonMapper;
import de.codecentric.boot.admin.server.domain.entities.Instance;
import de.codecentric.boot.admin.server.domain.entities.InstanceRepository;
@@ -207,7 +207,7 @@ private String createCardContent(InstanceEvent event, Instance instance) {
private String toJsonString(Object o) {
try {
- ObjectMapper objectMapper = Jackson2ObjectMapperBuilder.json().build();
+ ObjectMapper objectMapper = JsonMapper.builder().build();
return objectMapper.writeValueAsString(o);
}
catch (Exception ex) {
diff --git a/spring-boot-admin-server/src/main/java/de/codecentric/boot/admin/server/utils/jackson/AdminServerModule.java b/spring-boot-admin-server/src/main/java/de/codecentric/boot/admin/server/utils/jackson/AdminServerModule.java
index af70cf35e8d..a5e11e45f48 100644
--- a/spring-boot-admin-server/src/main/java/de/codecentric/boot/admin/server/utils/jackson/AdminServerModule.java
+++ b/spring-boot-admin-server/src/main/java/de/codecentric/boot/admin/server/utils/jackson/AdminServerModule.java
@@ -16,7 +16,7 @@
package de.codecentric.boot.admin.server.utils.jackson;
-import com.fasterxml.jackson.databind.module.SimpleModule;
+import tools.jackson.databind.module.SimpleModule;
import de.codecentric.boot.admin.server.domain.events.InstanceDeregisteredEvent;
import de.codecentric.boot.admin.server.domain.events.InstanceEndpointsDetectedEvent;
@@ -28,7 +28,6 @@
import de.codecentric.boot.admin.server.domain.values.BuildVersion;
import de.codecentric.boot.admin.server.domain.values.Endpoint;
import de.codecentric.boot.admin.server.domain.values.Endpoints;
-import de.codecentric.boot.admin.server.domain.values.Info;
import de.codecentric.boot.admin.server.domain.values.InstanceId;
import de.codecentric.boot.admin.server.domain.values.Registration;
import de.codecentric.boot.admin.server.domain.values.StatusInfo;
@@ -40,7 +39,6 @@
* configuration.
* ObjectMapper mapper = new ObjectMapper();
* mapper.registerModule(new AdminServerModule());
- * mapper.registerModule(new JavaTimeModule());
*
*
* @author Stefan Rempfer
@@ -69,7 +67,6 @@ public AdminServerModule(String[] metadataKeyPatterns) {
setMixInAnnotation(BuildVersion.class, BuildVersionMixin.class);
setMixInAnnotation(Endpoint.class, EndpointMixin.class);
setMixInAnnotation(Endpoints.class, EndpointsMixin.class);
- setMixInAnnotation(Info.class, InfoMixin.class);
setMixInAnnotation(InstanceId.class, InstanceIdMixin.class);
setMixInAnnotation(StatusInfo.class, StatusInfoMixin.class);
setMixInAnnotation(Tags.class, TagsMixin.class);
diff --git a/spring-boot-admin-server/src/main/java/de/codecentric/boot/admin/server/utils/jackson/InfoMixin.java b/spring-boot-admin-server/src/main/java/de/codecentric/boot/admin/server/utils/jackson/InfoMixin.java
index 93ad5e61556..09363700048 100644
--- a/spring-boot-admin-server/src/main/java/de/codecentric/boot/admin/server/utils/jackson/InfoMixin.java
+++ b/spring-boot-admin-server/src/main/java/de/codecentric/boot/admin/server/utils/jackson/InfoMixin.java
@@ -16,11 +16,12 @@
package de.codecentric.boot.admin.server.utils.jackson;
+import java.util.LinkedHashMap;
import java.util.Map;
import com.fasterxml.jackson.annotation.JsonAnyGetter;
-import com.fasterxml.jackson.annotation.JsonCreator;
-import org.springframework.lang.Nullable;
+import com.fasterxml.jackson.annotation.JsonAnySetter;
+import tools.jackson.databind.annotation.JsonDeserialize;
import de.codecentric.boot.admin.server.domain.values.Info;
@@ -29,14 +30,26 @@
*
* @author Stefan Rempfer
*/
+@JsonDeserialize(builder = InfoMixin.Builder.class)
public abstract class InfoMixin {
- @JsonCreator
- public static Info from(@Nullable Map values) {
- return Info.from(values);
- }
-
@JsonAnyGetter
public abstract Map getValues();
+ public static class Builder {
+
+ private final Map values = new LinkedHashMap<>();
+
+ @JsonAnySetter
+ public Builder set(String key, Object value) {
+ this.values.put(key, value);
+ return this;
+ }
+
+ public Info build() {
+ return Info.from(this.values);
+ }
+
+ }
+
}
diff --git a/spring-boot-admin-server/src/main/java/de/codecentric/boot/admin/server/utils/jackson/RegistrationBeanSerializerModifier.java b/spring-boot-admin-server/src/main/java/de/codecentric/boot/admin/server/utils/jackson/RegistrationBeanSerializerModifier.java
index 977fb8e26d5..1bfd9222535 100644
--- a/spring-boot-admin-server/src/main/java/de/codecentric/boot/admin/server/utils/jackson/RegistrationBeanSerializerModifier.java
+++ b/spring-boot-admin-server/src/main/java/de/codecentric/boot/admin/server/utils/jackson/RegistrationBeanSerializerModifier.java
@@ -18,25 +18,25 @@
import java.util.List;
-import com.fasterxml.jackson.databind.BeanDescription;
-import com.fasterxml.jackson.databind.JsonSerializer;
-import com.fasterxml.jackson.databind.SerializationConfig;
-import com.fasterxml.jackson.databind.ser.BeanPropertyWriter;
-import com.fasterxml.jackson.databind.ser.BeanSerializerModifier;
+import tools.jackson.databind.BeanDescription;
+import tools.jackson.databind.SerializationConfig;
+import tools.jackson.databind.ValueSerializer;
+import tools.jackson.databind.ser.BeanPropertyWriter;
+import tools.jackson.databind.ser.ValueSerializerModifier;
import de.codecentric.boot.admin.server.domain.values.Registration;
-public class RegistrationBeanSerializerModifier extends BeanSerializerModifier {
+public class RegistrationBeanSerializerModifier extends ValueSerializerModifier {
- private final JsonSerializer