From 96379f01998c0fa567eabb92168472a0547fc996 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 21 Nov 2025 05:02:36 +0000 Subject: [PATCH 1/2] build(deps): bump org.springframework.boot:spring-boot-dependencies Bumps [org.springframework.boot:spring-boot-dependencies](https://github.com/spring-projects/spring-boot) from 3.5.7 to 4.0.0. - [Release notes](https://github.com/spring-projects/spring-boot/releases) - [Commits](https://github.com/spring-projects/spring-boot/compare/v3.5.7...v4.0.0) --- updated-dependencies: - dependency-name: org.springframework.boot:spring-boot-dependencies dependency-version: 4.0.0 dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 7a538aa..5532122 100644 --- a/pom.xml +++ b/pom.xml @@ -73,7 +73,7 @@ UTF-8 21 - 3.5.7 + 4.0.0 2.1 2.20.1 2.2.21 From 06395ef27aa6eddc30071a011bca6e81bfab089e Mon Sep 17 00:00:00 2001 From: Paul Williams Date: Fri, 21 Nov 2025 18:19:03 +0530 Subject: [PATCH 2/2] refactor: remove redundant "type" field from error responses in feature files Spring Boot 4.x / Spring Framework 7 now follows RFC-7807 (Problem Details) and produces application/problem+json, which contains: title status detail instance There is no type field unless you explicitly set one. --- .../api/resources/ff4j/FF4JResourceStepDef.kt | 4 ++-- .../resources/features/FF4JResource.feature | 4 ---- .../resources/features/FeatureResource.feature | 17 ----------------- .../features/FeatureStoreResource.feature | 2 -- .../resources/features/GroupResource.feature | 3 --- .../resources/features/PropertyResource.feature | 7 ------- .../features/PropertyStoreResource.feature | 2 -- 7 files changed, 2 insertions(+), 37 deletions(-) diff --git a/ff4j-spring-rest-api/src/test/kotlin/org/ff4j/spring/rest/api/resources/ff4j/FF4JResourceStepDef.kt b/ff4j-spring-rest-api/src/test/kotlin/org/ff4j/spring/rest/api/resources/ff4j/FF4JResourceStepDef.kt index f122376..28009fb 100644 --- a/ff4j-spring-rest-api/src/test/kotlin/org/ff4j/spring/rest/api/resources/ff4j/FF4JResourceStepDef.kt +++ b/ff4j-spring-rest-api/src/test/kotlin/org/ff4j/spring/rest/api/resources/ff4j/FF4JResourceStepDef.kt @@ -110,8 +110,8 @@ class FF4JResourceStepDef(ff4j: FF4j, context: WebApplicationContext) : En { uriBuilder: UriBuilder, path: String, formParams: Map - ): URI? { - formParams.forEach { (name: String?, values: String?) -> + ): URI { + formParams.forEach { (name: String, values: String) -> uriBuilder.queryParam( name, values diff --git a/ff4j-spring-rest-api/src/test/resources/features/FF4JResource.feature b/ff4j-spring-rest-api/src/test/resources/features/FF4JResource.feature index e2afbca..e60b27b 100644 --- a/ff4j-spring-rest-api/src/test/resources/features/FF4JResource.feature +++ b/ff4j-spring-rest-api/src/test/resources/features/FF4JResource.feature @@ -60,7 +60,6 @@ Feature: Then the user gets an error response with code "404" and error message as """ { - "type": "about:blank", "title": "Not Found", "status": 404, "detail": "no security has been defined", @@ -99,7 +98,6 @@ Feature: Then the user gets an error response with code "404" and error message as """ { - "type": "about:blank", "title": "Not Found", "status": 404, "detail": "feature not found", @@ -166,7 +164,6 @@ Feature: Then the user gets an error response with code "404" and error message as """ { - "type": "about:blank", "title": "Not Found", "status": 404, "detail": "feature not found", @@ -217,7 +214,6 @@ Feature: Then the user gets an error response with code "400" and error message as """ { - "type": "about:blank", "title": "Bad Request", "status": 400, "detail": "bad request", diff --git a/ff4j-spring-rest-api/src/test/resources/features/FeatureResource.feature b/ff4j-spring-rest-api/src/test/resources/features/FeatureResource.feature index 9146577..b4b31d4 100644 --- a/ff4j-spring-rest-api/src/test/resources/features/FeatureResource.feature +++ b/ff4j-spring-rest-api/src/test/resources/features/FeatureResource.feature @@ -20,7 +20,6 @@ Feature: FeatureResource Then the user gets an error response with code "404" and error message as """ { - "type": "about:blank", "title": "Not Found", "status": 404, "detail": "feature not found", @@ -49,7 +48,6 @@ Feature: FeatureResource Then the user gets an error response with code "400" and error message as """ { - "type": "about:blank", "title": "Bad Request", "status": 400, "detail": "feature uid cannot be blank", @@ -69,7 +67,6 @@ Feature: FeatureResource Then the user gets an error response with code "400" and error message as """ { - "type": "about:blank", "title": "Bad Request", "status": 400, "detail": "feature uid did not match with the requested feature uid to be created or updated", @@ -186,7 +183,6 @@ Feature: FeatureResource Then the user gets an error response with code "400" and error message as """ { - "type": "about:blank", "title": "Bad Request", "status": 400, "detail": "flipping strategy specified wrongly", @@ -233,7 +229,6 @@ Feature: FeatureResource Then the user gets an error response with code "400" and error message as """ { - "type": "about:blank", "title": "Bad Request", "status": 400, "detail": "properties specified wrongly", @@ -265,7 +260,6 @@ Feature: FeatureResource Then the user gets an error response with code "404" and error message as """ { - "type": "about:blank", "title": "Not Found", "status": 404, "detail": "feature not found", @@ -279,7 +273,6 @@ Feature: FeatureResource Then the user gets an error response with code "404" and error message as """ { - "type": "about:blank", "title": "Not Found", "status": 404, "detail": "feature not found", @@ -312,7 +305,6 @@ Feature: FeatureResource Then the user gets an error response with code "404" and error message as """ { - "type": "about:blank", "title": "Not Found", "status": 404, "detail": "feature not found", @@ -345,7 +337,6 @@ Feature: FeatureResource Then the user gets an error response with code "404" and error message as """ { - "type": "about:blank", "title": "Not Found", "status": 404, "detail": "feature not found", @@ -360,7 +351,6 @@ Feature: FeatureResource Then the user gets an error response with code "404" and error message as """ { - "type": "about:blank", "title": "Not Found", "status": 404, "detail": "feature not found", @@ -395,7 +385,6 @@ Feature: FeatureResource Then the user gets an error response with code "304" and error message as """ { - "type": "about:blank", "title": "Not Modified", "status": 304, "detail": "role already exists", @@ -421,7 +410,6 @@ Feature: FeatureResource Then the user gets an error response with code "404" and error message as """ { - "type": "about:blank", "title": "Not Found", "status": 404, "detail": "feature not found", @@ -456,7 +444,6 @@ Feature: FeatureResource Then the user gets an error response with code "404" and error message as """ { - "type": "about:blank", "title": "Not Found", "status": 404, "detail": "role does not exist", @@ -482,7 +469,6 @@ Feature: FeatureResource Then the user gets an error response with code "404" and error message as """ { - "type": "about:blank", "title": "Not Found", "status": 404, "detail": "feature not found", @@ -498,7 +484,6 @@ Feature: FeatureResource Then the user gets an error response with code "304" and error message as """ { - "type": "about:blank", "title": "Not Modified", "status": 304, "detail": "group already exists", @@ -543,7 +528,6 @@ Feature: FeatureResource Then the user gets an error response with code "404" and error message as """ { - "type": "about:blank", "title": "Not Found", "status": 404, "detail": "feature not found", @@ -578,7 +562,6 @@ Feature: FeatureResource Then the user gets an error response with code "404" and error message as """ { - "type": "about:blank", "title": "Not Found", "status": 404, "detail": "group does not exist", diff --git a/ff4j-spring-rest-api/src/test/resources/features/FeatureStoreResource.feature b/ff4j-spring-rest-api/src/test/resources/features/FeatureStoreResource.feature index d866435..01e3088 100644 --- a/ff4j-spring-rest-api/src/test/resources/features/FeatureStoreResource.feature +++ b/ff4j-spring-rest-api/src/test/resources/features/FeatureStoreResource.feature @@ -133,7 +133,6 @@ Feature: FeatureStoreResource Then the user gets an error response with code "404" and error message as """ { - "type": "about:blank", "title": "Not Found", "status": 404, "detail": "feature store is not cached", @@ -194,7 +193,6 @@ Feature: FeatureStoreResource Then the user gets an error response with code "404" and error message as """ { - "type": "about:blank", "title": "Not Found", "status": 404, "detail": "feature store is not cached", diff --git a/ff4j-spring-rest-api/src/test/resources/features/GroupResource.feature b/ff4j-spring-rest-api/src/test/resources/features/GroupResource.feature index c636913..2f861d6 100644 --- a/ff4j-spring-rest-api/src/test/resources/features/GroupResource.feature +++ b/ff4j-spring-rest-api/src/test/resources/features/GroupResource.feature @@ -51,7 +51,6 @@ Feature: Then the user gets an error response with code "404" and error message as """ { - "type": "about:blank", "title": "Not Found", "status": 404, "detail": "group does not exist", @@ -87,7 +86,6 @@ Feature: Then the user gets an error response with code "404" and error message as """ { - "type": "about:blank", "title": "Not Found", "status": 404, "detail": "group does not exist", @@ -123,7 +121,6 @@ Feature: Then the user gets an error response with code "404" and error message as """ { - "type": "about:blank", "title": "Not Found", "status": 404, "detail": "group does not exist", diff --git a/ff4j-spring-rest-api/src/test/resources/features/PropertyResource.feature b/ff4j-spring-rest-api/src/test/resources/features/PropertyResource.feature index 14f1d64..d125eb7 100644 --- a/ff4j-spring-rest-api/src/test/resources/features/PropertyResource.feature +++ b/ff4j-spring-rest-api/src/test/resources/features/PropertyResource.feature @@ -34,7 +34,6 @@ Feature: Then the user gets an error response with code "404" and error message as """ { - "type": "about:blank", "title": "Not Found", "status": 404, "detail": "property not found", @@ -81,7 +80,6 @@ Feature: Then the user gets an error response with code "400" and error message as """ { - "type": "about:blank", "title": "Bad Request", "status": 400, "detail": "property name cannot be blank", @@ -103,7 +101,6 @@ Feature: Then the user gets an error response with code "400" and error message as """ { - "type": "about:blank", "title": "Bad Request", "status": 400, "detail": "property name did not match with the requested property name to be created or updated", @@ -144,7 +141,6 @@ Feature: Then the user gets an error response with code "404" and error message as """ { - "type": "about:blank", "title": "Not Found", "status": 404, "detail": "property not found", @@ -157,7 +153,6 @@ Feature: Then the user gets an error response with code "404" and error message as """ { - "type": "about:blank", "title": "Not Found", "status": 404, "detail": "property not found", @@ -186,7 +181,6 @@ Feature: Then the user gets an error response with code "404" and error message as """ { - "type": "about:blank", "title": "Not Found", "status": 404, "detail": "property not found", @@ -199,7 +193,6 @@ Feature: Then the user gets an error response with code "400" and error message as """ { - "type": "about:blank", "title": "Bad Request", "status": 400, "detail": "bad request", diff --git a/ff4j-spring-rest-api/src/test/resources/features/PropertyStoreResource.feature b/ff4j-spring-rest-api/src/test/resources/features/PropertyStoreResource.feature index bd58cf5..3248fa2 100644 --- a/ff4j-spring-rest-api/src/test/resources/features/PropertyStoreResource.feature +++ b/ff4j-spring-rest-api/src/test/resources/features/PropertyStoreResource.feature @@ -92,7 +92,6 @@ Feature: Then the user gets an error response with code "404" and error message as """ { - "type": "about:blank", "title": "Not Found", "status": 404, "detail": "property store is not cached", @@ -144,7 +143,6 @@ Feature: Then the user gets an error response with code "404" and error message as """ { - "type": "about:blank", "title": "Not Found", "status": 404, "detail": "property store is not cached",