diff --git a/alfa-service/src/main/java/de/ozgcloud/alfa/common/LinkedUserProfileResourceSerializer.java b/alfa-service/src/main/java/de/ozgcloud/alfa/common/LinkedUserProfileResourceSerializer.java index 1437cce14372c8e19736e8e56b827110a88239cf..eeecf38a5a0a714901c274bcd451c07b8d6ef893 100644 --- a/alfa-service/src/main/java/de/ozgcloud/alfa/common/LinkedUserProfileResourceSerializer.java +++ b/alfa-service/src/main/java/de/ozgcloud/alfa/common/LinkedUserProfileResourceSerializer.java @@ -50,11 +50,17 @@ public class LinkedUserProfileResourceSerializer extends JsonSerializer<Object> private final UserManagerUrlProvider userManagerUrlProvider; private LinkedUserProfileResource annotation; - // for usage outside of Spring + // ObjectMapper uses this, if called outside of Spring, so dependency injection does not work private LinkedUserProfileResourceSerializer() { this(new UserManagerUrlProvider(new UserManagerProperties())); } + @Override + public JsonSerializer<?> createContextual(SerializerProvider prov, BeanProperty property) { + return LinkedUserProfileResourceSerializer.createForAnnotatedField(userManagerUrlProvider, + property.getAnnotation(LinkedUserProfileResource.class)); + } + static LinkedUserProfileResourceSerializer createForAnnotatedField(UserManagerUrlProvider userManagerUrlProvider, LinkedUserProfileResource annotation) { var serializer = new LinkedUserProfileResourceSerializer(userManagerUrlProvider); @@ -62,12 +68,6 @@ public class LinkedUserProfileResourceSerializer extends JsonSerializer<Object> return serializer; } - @Override - public JsonSerializer<?> createContextual(SerializerProvider prov, BeanProperty property) { - return LinkedUserProfileResourceSerializer.createForAnnotatedField(userManagerUrlProvider, - property.getAnnotation(LinkedUserProfileResource.class)); - } - @Override public void serialize(Object value, JsonGenerator gen, SerializerProvider serializers) throws IOException { if (value instanceof Collection) {