Skip to content

Commit 09a9e2e

Browse files
authored
Merge pull request #175 from companieshouse/feature/JU-89-java-21-migration-validation-errors
Enabling spring validation error messaging
2 parents dfde270 + 9c86e38 commit 09a9e2e

File tree

5 files changed

+20
-12
lines changed

5 files changed

+20
-12
lines changed

pom.xml

Lines changed: 6 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -98,11 +98,6 @@
9898
<version>6.0.0</version>
9999
<scope>provided</scope>
100100
</dependency>
101-
<dependency>
102-
<groupId>jakarta.validation</groupId>
103-
<artifactId>jakarta.validation-api</artifactId>
104-
<version>3.0.2</version>
105-
</dependency>
106101
<dependency>
107102
<groupId>org.springframework.boot</groupId>
108103
<artifactId>spring-boot-starter-validation</artifactId>
@@ -128,6 +123,12 @@
128123
<groupId>uk.gov.companieshouse</groupId>
129124
<artifactId>api-sdk-java</artifactId>
130125
<version>${api-sdk-java.version}</version>
126+
<exclusions>
127+
<exclusion>
128+
<groupId>javax.validation</groupId>
129+
<artifactId>validation-api</artifactId>
130+
</exclusion>
131+
</exclusions>
131132
</dependency>
132133
<dependency>
133134
<groupId>uk.gov.companieshouse</groupId>
@@ -192,10 +193,6 @@
192193
<artifactId>kafka-models</artifactId>
193194
<version>${kafka-models.version}</version>
194195
</dependency>
195-
<dependency>
196-
<groupId>org.hibernate.validator</groupId>
197-
<artifactId>hibernate-validator</artifactId>
198-
</dependency>
199196
<dependency>
200197
<groupId>org.springframework.kafka</groupId>
201198
<artifactId>spring-kafka-test</artifactId>

src/main/java/uk/gov/companieshouse/orders/api/controller/BasketController.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
import org.springframework.http.HttpStatus;
2626
import org.springframework.http.ResponseEntity;
2727
import org.springframework.lang.NonNull;
28+
import org.springframework.validation.annotation.Validated;
2829
import org.springframework.web.bind.annotation.GetMapping;
2930
import org.springframework.web.bind.annotation.PatchMapping;
3031
import org.springframework.web.bind.annotation.PathVariable;
@@ -68,6 +69,7 @@
6869
import uk.gov.companieshouse.sdk.manager.ApiSdkManager;
6970

7071
@RestController
72+
@Validated
7173
public class BasketController {
7274
private static final Logger LOGGER = LoggerFactory.getLogger(APPLICATION_NAME_SPACE);
7375

src/main/java/uk/gov/companieshouse/orders/api/controller/ConstraintViolationHelper.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
import uk.gov.companieshouse.orders.api.util.FieldNameConverter;
99

1010
@Component
11-
class ConstraintViolationHelper {
11+
public class ConstraintViolationHelper {
1212
private final FieldNameConverter converter;
1313

1414
public ConstraintViolationHelper(FieldNameConverter converter) {

src/main/resources/application.properties

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,11 @@ uk.gov.companieshouse.orders.api.search.checkouts=/checkouts/search
99
uk.gov.companieshouse.payments.api.payments: ${PAYMENTS_API_URL}/payments
1010
spring.mvc.pathmatch.matching-strategy=ant-path-matcher
1111

12+
server.error.include-message=always
13+
server.error.include-binding-errors=always
14+
server.error.include-stacktrace=on_param
15+
server.error.include-exception=false
16+
1217
basket.item.limit=${BASKET_ITEM_LIMIT:1000}
1318
basket.enrolled=${BASKET_ENROLLED:false}
1419

src/test/java/uk/gov/companieshouse/orders/api/controller/GlobalExceptionHandlerTest.java

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
import jakarta.validation.ConstraintViolationException;
1717
import jakarta.validation.Path;
1818
import org.junit.jupiter.api.Assertions;
19+
import org.junit.jupiter.api.BeforeEach;
1920
import org.junit.jupiter.api.DisplayName;
2021
import org.junit.jupiter.api.Test;
2122
import org.junit.jupiter.api.extension.ExtendWith;
@@ -60,7 +61,6 @@ public TestGlobalExceptionHandler(FieldNameConverter converter, ConstraintViolat
6061
super(converter, helper);
6162
}
6263

63-
@Override
6464
protected ResponseEntity<Object> handleExceptionInternal(final Exception ex,
6565
final Object body,
6666
final HttpHeaders headers,
@@ -94,7 +94,6 @@ protected ResponseEntity<Object> handleExceptionInternal(final Exception ex,
9494
@Mock
9595
private FieldNameConverter converter;
9696

97-
@Mock
9897
private HttpHeaders headers;
9998

10099
@Mock
@@ -109,6 +108,11 @@ protected ResponseEntity<Object> handleExceptionInternal(final Exception ex,
109108
@Mock
110109
private Path path;
111110

111+
@BeforeEach
112+
void setup() {
113+
headers = new HttpHeaders();
114+
}
115+
112116
@Test
113117
void buildsApiErrorFromMethodArgumentNotValidException() {
114118

0 commit comments

Comments
 (0)