diff --git a/scm-webapp/src/main/java/sonia/scm/api/rest/JSONContextResolver.java b/scm-webapp/src/main/java/sonia/scm/api/rest/JSONContextResolver.java index 9ea7acb00a..1b4f41d9ab 100644 --- a/scm-webapp/src/main/java/sonia/scm/api/rest/JSONContextResolver.java +++ b/scm-webapp/src/main/java/sonia/scm/api/rest/JSONContextResolver.java @@ -33,6 +33,7 @@ package sonia.scm.api.rest; import com.fasterxml.jackson.databind.AnnotationIntrospector; import com.fasterxml.jackson.databind.DeserializationFeature; import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.databind.SerializationFeature; import com.fasterxml.jackson.databind.introspect.AnnotationIntrospectorPair; import com.fasterxml.jackson.databind.introspect.JacksonAnnotationIntrospector; import com.fasterxml.jackson.databind.type.TypeFactory; @@ -63,6 +64,8 @@ public final class JSONContextResolver implements ContextResolver .registerModule(new JavaTimeModule()); mapper.setAnnotationIntrospector(createAnnotationIntrospector()); mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); + mapper.configure(SerializationFeature.WRITE_DATES_AS_TIMESTAMPS, false); + mapper.configure(SerializationFeature.WRITE_DATES_WITH_ZONE_ID, true); } private AnnotationIntrospector createAnnotationIntrospector() { diff --git a/scm-webapp/src/main/java/sonia/scm/api/v2/resources/UserCollectionResource.java b/scm-webapp/src/main/java/sonia/scm/api/v2/resources/UserCollectionResource.java index 2dbc8e8ef7..7bcf517edc 100644 --- a/scm-webapp/src/main/java/sonia/scm/api/v2/resources/UserCollectionResource.java +++ b/scm-webapp/src/main/java/sonia/scm/api/v2/resources/UserCollectionResource.java @@ -19,6 +19,7 @@ import java.util.List; import java.util.stream.Collectors; @Singleton +@Produces(MediaType.APPLICATION_JSON) public class UserCollectionResource extends AbstractManagerResource { private final UserDto2UserMapper dtoToUserMapper; private final User2UserDtoMapper userToDtoMapper; @@ -48,7 +49,6 @@ public class UserCollectionResource extends AbstractManagerResource links; } diff --git a/scm-webapp/src/main/java/sonia/scm/api/v2/resources/UserSubResource.java b/scm-webapp/src/main/java/sonia/scm/api/v2/resources/UserSubResource.java index 1d6bacef3f..bdcecabe96 100644 --- a/scm-webapp/src/main/java/sonia/scm/api/v2/resources/UserSubResource.java +++ b/scm-webapp/src/main/java/sonia/scm/api/v2/resources/UserSubResource.java @@ -1,6 +1,7 @@ package sonia.scm.api.v2.resources; import com.google.inject.Inject; +import com.google.inject.Singleton; import com.webcohesion.enunciate.metadata.rs.ResponseCode; import com.webcohesion.enunciate.metadata.rs.StatusCodes; import com.webcohesion.enunciate.metadata.rs.TypeHint; @@ -15,6 +16,8 @@ import javax.ws.rs.*; import javax.ws.rs.core.*; import java.util.Collection; +@Singleton +@Produces(MediaType.APPLICATION_JSON) public class UserSubResource extends AbstractManagerResource { private final UserDto2UserMapper dtoToUserMapper; private final User2UserDtoMapper userToDtoMapper; @@ -35,7 +38,6 @@ public class UserSubResource extends AbstractManagerResource value; + } }