Map jaxb violation exceptions instead of reaseasy

ResteasyViolationException implements jaxb's
ConstraintViolationException.
This commit is contained in:
René Pfeuffer
2020-04-30 17:31:18 +02:00
parent 19662e54a9
commit 32109a32f6
2 changed files with 10 additions and 9 deletions

View File

@@ -24,27 +24,27 @@
package sonia.scm.api.v2;
import org.jboss.resteasy.api.validation.ResteasyViolationException;
import sonia.scm.api.v2.resources.ResteasyViolationExceptionToErrorDtoMapper;
import sonia.scm.web.VndMediaType;
import javax.inject.Inject;
import javax.validation.ConstraintViolationException;
import javax.ws.rs.core.Response;
import javax.ws.rs.ext.ExceptionMapper;
import javax.ws.rs.ext.Provider;
@Provider
public class ResteasyValidationExceptionMapper implements ExceptionMapper<ResteasyViolationException> {
public class JavaxValidationExceptionMapper implements ExceptionMapper<ConstraintViolationException> {
private final ResteasyViolationExceptionToErrorDtoMapper mapper;
@Inject
public ResteasyValidationExceptionMapper(ResteasyViolationExceptionToErrorDtoMapper mapper) {
public JavaxValidationExceptionMapper(ResteasyViolationExceptionToErrorDtoMapper mapper) {
this.mapper = mapper;
}
@Override
public Response toResponse(ResteasyViolationException exception) {
public Response toResponse(ConstraintViolationException exception) {
return Response
.status(Response.Status.BAD_REQUEST)
.type(VndMediaType.ERROR_TYPE)

View File

@@ -24,7 +24,6 @@
package sonia.scm.api.v2.resources;
import org.jboss.resteasy.api.validation.ResteasyViolationException;
import org.mapstruct.AfterMapping;
import org.mapstruct.Mapper;
import org.mapstruct.Mapping;
@@ -32,6 +31,7 @@ import org.mapstruct.MappingTarget;
import org.slf4j.MDC;
import javax.validation.ConstraintViolation;
import javax.validation.ConstraintViolationException;
import java.util.List;
import java.util.stream.Collectors;
@@ -42,7 +42,8 @@ public abstract class ResteasyViolationExceptionToErrorDtoMapper {
@Mapping(target = "transactionId", ignore = true)
@Mapping(target = "context", ignore = true)
@Mapping(target = "url", ignore = true)
public abstract ErrorDto map(ResteasyViolationException exception);
@Mapping(target = "violations", ignore = true)
public abstract ErrorDto map(ConstraintViolationException exception);
@AfterMapping
void setTransactionId(@MappingTarget ErrorDto dto) {
@@ -50,7 +51,7 @@ public abstract class ResteasyViolationExceptionToErrorDtoMapper {
}
@AfterMapping
void mapViolations(ResteasyViolationException exception, @MappingTarget ErrorDto dto) {
void mapViolations(ConstraintViolationException exception, @MappingTarget ErrorDto dto) {
List<ErrorDto.ConstraintViolationDto> violations =
exception.getConstraintViolations()
.stream()