diff --git a/.github/workflows/build_workflow.yml b/.github/workflows/build_workflow.yml index cb0c83d..76f45e0 100644 --- a/.github/workflows/build_workflow.yml +++ b/.github/workflows/build_workflow.yml @@ -13,7 +13,7 @@ jobs: uses: actions/setup-java@v4 with: distribution: temurin - java-version: 21 + java-version: 25 - name: Cache Maven dependencies uses: actions/cache@v4 with: diff --git a/.sdkmanrc b/.sdkmanrc new file mode 100644 index 0000000..b5e2fc1 --- /dev/null +++ b/.sdkmanrc @@ -0,0 +1,3 @@ +# Enable auto-env through the sdkman_auto_env config +# Add key=value pairs of SDKs to use below +java=25.0.3-tem diff --git a/ff4j-spring-boot-autoconfigure-common/pom.xml b/ff4j-spring-boot-autoconfigure-common/pom.xml index 05e8cda..37ab5f2 100644 --- a/ff4j-spring-boot-autoconfigure-common/pom.xml +++ b/ff4j-spring-boot-autoconfigure-common/pom.xml @@ -31,10 +31,6 @@ org.ff4j ff4j-core - - jakarta.annotation - jakarta.annotation-api - org.springframework.boot spring-boot diff --git a/ff4j-spring-boot-starter-webmvc/pom.xml b/ff4j-spring-boot-starter-webmvc/pom.xml index c0c563e..275dfc8 100644 --- a/ff4j-spring-boot-starter-webmvc/pom.xml +++ b/ff4j-spring-boot-starter-webmvc/pom.xml @@ -14,7 +14,7 @@ org.springframework.boot - spring-boot-starter-web + spring-boot-starter-webmvc org.ff4j diff --git a/ff4j-spring-rest-api/pom.xml b/ff4j-spring-rest-api/pom.xml index 89d8e54..6cb1e63 100644 --- a/ff4j-spring-rest-api/pom.xml +++ b/ff4j-spring-rest-api/pom.xml @@ -77,6 +77,12 @@ org.jetbrains.kotlin kotlin-test-junit test + + + junit + junit + + org.springframework.boot @@ -85,7 +91,7 @@ org.springframework.boot - spring-boot-starter-web + spring-boot-starter-webmvc test diff --git a/ff4j-spring-rest-api/src/main/kotlin/org/ff4j/spring/rest/api/resources/FF4jResource.kt b/ff4j-spring-rest-api/src/main/kotlin/org/ff4j/spring/rest/api/resources/FF4jResource.kt index 170d720..0326b13 100644 --- a/ff4j-spring-rest-api/src/main/kotlin/org/ff4j/spring/rest/api/resources/FF4jResource.kt +++ b/ff4j-spring-rest-api/src/main/kotlin/org/ff4j/spring/rest/api/resources/FF4jResource.kt @@ -33,7 +33,6 @@ import org.ff4j.services.domain.AuthorizationsManagerApiBean import org.ff4j.services.domain.FF4jStatusApiBean import org.ff4j.services.exceptions.FeatureNotFoundException import org.ff4j.web.FF4jWebConstants.* -import org.springframework.beans.factory.annotation.Autowired import org.springframework.http.MediaType.APPLICATION_FORM_URLENCODED_VALUE import org.springframework.http.MediaType.APPLICATION_JSON_VALUE import org.springframework.http.ResponseEntity @@ -47,7 +46,7 @@ import reactor.core.publisher.Mono @Tag(name = "FF4J", description = "The API for global status of FF4J") @RestController @RequestMapping(value = ["\${ff4j.api.context-path:$RESOURCE_FF4J}"]) -class FF4jResource(@Autowired val ff4JServices: FF4jServices) { +class FF4jResource(val ff4JServices: FF4jServices) { @Operation( summary = "Gets ff4j status overview", diff --git a/ff4j-spring-rest-api/src/main/kotlin/org/ff4j/spring/rest/api/resources/FeatureResource.kt b/ff4j-spring-rest-api/src/main/kotlin/org/ff4j/spring/rest/api/resources/FeatureResource.kt index 0fcdc4f..c35e5d7 100644 --- a/ff4j-spring-rest-api/src/main/kotlin/org/ff4j/spring/rest/api/resources/FeatureResource.kt +++ b/ff4j-spring-rest-api/src/main/kotlin/org/ff4j/spring/rest/api/resources/FeatureResource.kt @@ -39,7 +39,6 @@ import org.ff4j.services.domain.FeatureApiBean import org.ff4j.spring.rest.api.utils.FeatureWebUtils import org.ff4j.services.model.FeatureActions import org.ff4j.web.FF4jWebConstants.* -import org.springframework.beans.factory.annotation.Autowired import org.springframework.http.HttpStatus.ACCEPTED import org.springframework.http.MediaType.APPLICATION_JSON_VALUE import org.springframework.http.ResponseEntity @@ -52,7 +51,7 @@ import reactor.core.publisher.Mono @Tag(name = "Feature", description = "The API for feature related operations") @RestController @RequestMapping(value = ["\${ff4j.api.context-path:$RESOURCE_FF4J}$RESOURCE_STORE$RESOURCE_FEATURES/$PATH_PARAM_UID"]) -class FeatureResource(@Autowired val featureServices: FeatureServices) { +class FeatureResource(val featureServices: FeatureServices) { @Operation(summary = "Get feature by uid", description = "Get feature by uid", tags = ["Feature"]) @ApiResponses( diff --git a/ff4j-spring-rest-api/src/main/kotlin/org/ff4j/spring/rest/api/resources/FeatureStoreResource.kt b/ff4j-spring-rest-api/src/main/kotlin/org/ff4j/spring/rest/api/resources/FeatureStoreResource.kt index 4ac4f94..7364cd8 100644 --- a/ff4j-spring-rest-api/src/main/kotlin/org/ff4j/spring/rest/api/resources/FeatureStoreResource.kt +++ b/ff4j-spring-rest-api/src/main/kotlin/org/ff4j/spring/rest/api/resources/FeatureStoreResource.kt @@ -36,7 +36,6 @@ import org.ff4j.services.domain.FeatureApiBean import org.ff4j.services.domain.FeatureStoreApiBean import org.ff4j.services.domain.GroupDescApiBean import org.ff4j.web.FF4jWebConstants.* -import org.springframework.beans.factory.annotation.Autowired import org.springframework.http.HttpStatus.NO_CONTENT import org.springframework.http.MediaType.APPLICATION_JSON_VALUE import org.springframework.http.ResponseEntity @@ -53,7 +52,7 @@ import reactor.core.publisher.Mono @Tag(name = "FeatureStore", description = "The API for accessing the store of all features") @RestController @RequestMapping(value = ["\${ff4j.api.context-path:$RESOURCE_FF4J}$RESOURCE_STORE"]) -class FeatureStoreResource(@Autowired val featureStoreService: FeatureStoreServices) { +class FeatureStoreResource(val featureStoreService: FeatureStoreServices) { @Operation(summary = "Displays information regarding the FeaturesStore", tags = ["FeatureStore"]) @ApiResponses( diff --git a/ff4j-spring-rest-api/src/main/kotlin/org/ff4j/spring/rest/api/resources/GroupResource.kt b/ff4j-spring-rest-api/src/main/kotlin/org/ff4j/spring/rest/api/resources/GroupResource.kt index d2a985b..b67af0c 100644 --- a/ff4j-spring-rest-api/src/main/kotlin/org/ff4j/spring/rest/api/resources/GroupResource.kt +++ b/ff4j-spring-rest-api/src/main/kotlin/org/ff4j/spring/rest/api/resources/GroupResource.kt @@ -35,7 +35,6 @@ import org.ff4j.services.constants.FeatureConstants.RESOURCE_STORE import org.ff4j.services.domain.FeatureApiBean import org.ff4j.web.FF4jWebConstants.OPERATION_DISABLE import org.ff4j.web.FF4jWebConstants.OPERATION_ENABLE -import org.springframework.beans.factory.annotation.Autowired import org.springframework.http.MediaType.APPLICATION_JSON_VALUE import org.springframework.http.ResponseEntity import org.springframework.web.bind.annotation.* @@ -47,7 +46,7 @@ import reactor.core.publisher.Flux @Tag(name = "Groups", description = "The API for group related operations") @RestController @RequestMapping(value = ["\${ff4j.api.context-path:$RESOURCE_FF4J}$RESOURCE_STORE$RESOURCE_GROUPS/$PATH_PARAM_GROUP"]) -class GroupResource(@Autowired val groupServices: GroupServices) { +class GroupResource(val groupServices: GroupServices) { @Operation(summary = "Get all the features belonging to the group", tags = ["Groups"]) @ApiResponses( diff --git a/ff4j-spring-rest-api/src/main/kotlin/org/ff4j/spring/rest/api/resources/MonitoringResource.kt b/ff4j-spring-rest-api/src/main/kotlin/org/ff4j/spring/rest/api/resources/MonitoringResource.kt index 7cc0891..0f79a9b 100644 --- a/ff4j-spring-rest-api/src/main/kotlin/org/ff4j/spring/rest/api/resources/MonitoringResource.kt +++ b/ff4j-spring-rest-api/src/main/kotlin/org/ff4j/spring/rest/api/resources/MonitoringResource.kt @@ -32,7 +32,6 @@ import org.ff4j.services.constants.FeatureConstants.RESOURCE_MONITORING import org.ff4j.services.domain.EventRepositoryApiBean import org.ff4j.web.FF4jWebConstants.PARAM_END import org.ff4j.web.FF4jWebConstants.PARAM_START -import org.springframework.beans.factory.annotation.Autowired import org.springframework.http.MediaType.APPLICATION_JSON_VALUE import org.springframework.http.ResponseEntity import org.springframework.web.bind.annotation.GetMapping @@ -47,7 +46,7 @@ import reactor.core.publisher.Mono @Tag(name = "Monitoring", description = "The API for monitoring related operations") @RestController @RequestMapping(value = ["\${ff4j.api.context-path:$RESOURCE_FF4J}$RESOURCE_MONITORING"]) -class MonitoringResource(@Autowired val monitoringServices: MonitoringServices) { +class MonitoringResource(val monitoringServices: MonitoringServices) { @Operation( summary = "Display Monitoring information for all features", diff --git a/ff4j-spring-rest-api/src/main/kotlin/org/ff4j/spring/rest/api/resources/PropertyResource.kt b/ff4j-spring-rest-api/src/main/kotlin/org/ff4j/spring/rest/api/resources/PropertyResource.kt index a782105..c40bc50 100644 --- a/ff4j-spring-rest-api/src/main/kotlin/org/ff4j/spring/rest/api/resources/PropertyResource.kt +++ b/ff4j-spring-rest-api/src/main/kotlin/org/ff4j/spring/rest/api/resources/PropertyResource.kt @@ -37,7 +37,6 @@ import org.ff4j.services.constants.FeatureConstants.RESOURCE_PROPERTY_STORE import org.ff4j.services.domain.PropertyApiBean import org.ff4j.spring.rest.api.utils.FeatureWebUtils import org.ff4j.web.FF4jWebConstants.OPERATION_UPDATE -import org.springframework.beans.factory.annotation.Autowired import org.springframework.http.HttpStatus.ACCEPTED import org.springframework.http.HttpStatus.NO_CONTENT import org.springframework.http.MediaType.APPLICATION_JSON_VALUE @@ -51,7 +50,7 @@ import reactor.core.publisher.Mono @Tag(name = "Property", description = "The API for property related operations") @RestController @RequestMapping(value = ["\${ff4j.api.context-path:$RESOURCE_FF4J}$RESOURCE_PROPERTY_STORE$RESOURCE_PROPERTIES/$PATH_PARAM_NAME"]) -class PropertyResource(@Autowired val propertyServices: PropertyServices) { +class PropertyResource(val propertyServices: PropertyServices) { @Operation(summary = "Read information about a property", tags = ["Property"]) @ApiResponses( diff --git a/ff4j-spring-rest-api/src/main/kotlin/org/ff4j/spring/rest/api/resources/PropertyStoreResource.kt b/ff4j-spring-rest-api/src/main/kotlin/org/ff4j/spring/rest/api/resources/PropertyStoreResource.kt index f45b8af..9960881 100644 --- a/ff4j-spring-rest-api/src/main/kotlin/org/ff4j/spring/rest/api/resources/PropertyStoreResource.kt +++ b/ff4j-spring-rest-api/src/main/kotlin/org/ff4j/spring/rest/api/resources/PropertyStoreResource.kt @@ -36,7 +36,6 @@ import org.ff4j.services.domain.PropertyApiBean import org.ff4j.services.domain.PropertyStoreApiBean import org.ff4j.web.FF4jWebConstants.RESOURCE_CACHE import org.ff4j.web.FF4jWebConstants.STORE_CLEAR -import org.springframework.beans.factory.annotation.Autowired import org.springframework.http.HttpStatus.NO_CONTENT import org.springframework.http.MediaType.APPLICATION_JSON_VALUE import org.springframework.http.ResponseEntity @@ -53,7 +52,7 @@ import reactor.core.publisher.Mono @Tag(name = "PropertyStore", description = "The API for accessing the store for all properties") @RestController @RequestMapping(value = ["\${ff4j.api.context-path:$RESOURCE_FF4J}$RESOURCE_PROPERTY_STORE"]) -class PropertyStoreResource(@Autowired val propertyStoreServices: PropertyStoreServices) { +class PropertyStoreResource(val propertyStoreServices: PropertyStoreServices) { @Operation(summary = "Display information regarding Properties Store", tags = ["PropertyStore"]) @ApiResponses( diff --git a/ff4j-spring-services/pom.xml b/ff4j-spring-services/pom.xml index 62f815a..e21be2e 100644 --- a/ff4j-spring-services/pom.xml +++ b/ff4j-spring-services/pom.xml @@ -88,6 +88,12 @@ org.jetbrains.kotlin kotlin-test-junit test + + + junit + junit + + org.springframework diff --git a/ff4j-spring-services/src/main/kotlin/org/ff4j/services/FF4jServices.kt b/ff4j-spring-services/src/main/kotlin/org/ff4j/services/FF4jServices.kt index 646a3f9..aa88667 100644 --- a/ff4j-spring-services/src/main/kotlin/org/ff4j/services/FF4jServices.kt +++ b/ff4j-spring-services/src/main/kotlin/org/ff4j/services/FF4jServices.kt @@ -25,7 +25,6 @@ import org.ff4j.services.domain.AuthorizationsManagerApiBean import org.ff4j.services.domain.FF4jStatusApiBean import org.ff4j.services.exceptions.AuthorizationNotExistsException import org.ff4j.services.validator.FeatureValidator -import org.springframework.beans.factory.annotation.Autowired import org.springframework.stereotype.Service import reactor.core.publisher.Mono @@ -33,7 +32,7 @@ import reactor.core.publisher.Mono * @author [Paul Williams](mailto:paul58914080@gmail.com) */ @Service -class FF4jServices(@Autowired val fF4j: FF4j, @Autowired val ff4jValidator: FeatureValidator) { +class FF4jServices(val fF4j: FF4j, val ff4jValidator: FeatureValidator) { fun getStatus(): Mono { return Mono.just(FF4jStatusApiBean(this.fF4j)) diff --git a/ff4j-spring-services/src/main/kotlin/org/ff4j/services/MonitoringServices.kt b/ff4j-spring-services/src/main/kotlin/org/ff4j/services/MonitoringServices.kt index 2cbdb66..a6d3b2c 100644 --- a/ff4j-spring-services/src/main/kotlin/org/ff4j/services/MonitoringServices.kt +++ b/ff4j-spring-services/src/main/kotlin/org/ff4j/services/MonitoringServices.kt @@ -21,7 +21,6 @@ package org.ff4j.services import org.ff4j.FF4j import org.ff4j.services.domain.EventRepositoryApiBean -import org.springframework.beans.factory.annotation.Autowired import org.springframework.stereotype.Service import reactor.core.publisher.Mono @@ -29,7 +28,7 @@ import reactor.core.publisher.Mono * @author [Paul Williams](mailto:paul58914080@gmail.com) */ @Service -class MonitoringServices(@Autowired val fF4j: FF4j) { +class MonitoringServices(val fF4j: FF4j) { fun getMonitoringStatus(): Mono { return Mono.just(EventRepositoryApiBean(fF4j.eventRepository)) diff --git a/ff4j-spring-services/src/test/kotlin/org/ff4j/services/constants/CommonConstantsTest.kt b/ff4j-spring-services/src/test/kotlin/org/ff4j/services/constants/CommonConstantsTest.kt index a6ed44a..d78641e 100644 --- a/ff4j-spring-services/src/test/kotlin/org/ff4j/services/constants/CommonConstantsTest.kt +++ b/ff4j-spring-services/src/test/kotlin/org/ff4j/services/constants/CommonConstantsTest.kt @@ -20,7 +20,7 @@ package org.ff4j.services.constants import org.assertj.core.api.Assertions -import org.junit.Test +import org.junit.jupiter.api.Test /** * @author [Paul Williams](mailto:paul58914080@gmail.com) diff --git a/ff4j-spring-services/src/test/kotlin/org/ff4j/services/constants/FeatureConstantsTest.kt b/ff4j-spring-services/src/test/kotlin/org/ff4j/services/constants/FeatureConstantsTest.kt index dc5ecaf..109adde 100644 --- a/ff4j-spring-services/src/test/kotlin/org/ff4j/services/constants/FeatureConstantsTest.kt +++ b/ff4j-spring-services/src/test/kotlin/org/ff4j/services/constants/FeatureConstantsTest.kt @@ -20,7 +20,7 @@ package org.ff4j.services.constants import org.assertj.core.api.Assertions.assertThat -import org.junit.Test +import org.junit.jupiter.api.Test /** * @author [Paul Williams](mailto:paul58914080@gmail.com) diff --git a/ff4j-spring-services/src/test/kotlin/org/ff4j/services/domain/BarSeriesApiBeanTest.kt b/ff4j-spring-services/src/test/kotlin/org/ff4j/services/domain/BarSeriesApiBeanTest.kt index 6e99353..3cf3d13 100644 --- a/ff4j-spring-services/src/test/kotlin/org/ff4j/services/domain/BarSeriesApiBeanTest.kt +++ b/ff4j-spring-services/src/test/kotlin/org/ff4j/services/domain/BarSeriesApiBeanTest.kt @@ -21,7 +21,7 @@ package org.ff4j.services.domain import org.assertj.core.api.Assertions import org.ff4j.services.constants.CommonConstants -import org.junit.Test +import org.junit.jupiter.api.Test /** * @author [Paul Williams](mailto:paul58914080@gmail.com) diff --git a/ff4j-spring-services/src/test/kotlin/org/ff4j/services/domain/DomainTest.kt b/ff4j-spring-services/src/test/kotlin/org/ff4j/services/domain/DomainTest.kt index 93b9a08..7d1dc3b 100644 --- a/ff4j-spring-services/src/test/kotlin/org/ff4j/services/domain/DomainTest.kt +++ b/ff4j-spring-services/src/test/kotlin/org/ff4j/services/domain/DomainTest.kt @@ -19,8 +19,8 @@ */ package org.ff4j.services.domain -import org.junit.Assert -import org.junit.Test +import org.junit.jupiter.api.Assertions +import org.junit.jupiter.api.Test import org.meanbean.test.BeanTester /** @@ -32,7 +32,7 @@ class DomainTest { @Test fun getterAndSetterCorrectness() { - Assert.assertTrue(true) + Assertions.assertTrue(true) beanTester.testBean(FeatureApiBean::class.java) beanTester.testBean(FeatureStoreApiBean::class.java) beanTester.testBean(PropertyStoreApiBean::class.java) diff --git a/ff4j-spring-services/src/test/kotlin/org/ff4j/services/domain/PieSectorApiBeanTest.kt b/ff4j-spring-services/src/test/kotlin/org/ff4j/services/domain/PieSectorApiBeanTest.kt index bed9593..c6239e6 100644 --- a/ff4j-spring-services/src/test/kotlin/org/ff4j/services/domain/PieSectorApiBeanTest.kt +++ b/ff4j-spring-services/src/test/kotlin/org/ff4j/services/domain/PieSectorApiBeanTest.kt @@ -21,7 +21,7 @@ package org.ff4j.services.domain import org.assertj.core.api.Assertions import org.ff4j.services.constants.CommonConstants -import org.junit.Test +import org.junit.jupiter.api.Test /** * @author [Paul Williams](mailto:paul58914080@gmail.com) diff --git a/pom.xml b/pom.xml index d21da31..fa0b44a 100644 --- a/pom.xml +++ b/pom.xml @@ -72,18 +72,18 @@ UTF-8 - 21 - 4.0.1 + 25 + 4.1.0 2.1 - 2.21.0 - 2.3.0 - 7.33.0 - 6.0.2 - 3.0.1 + 3.1.4 + 2.4.0 + 7.34.4 + 6.1.0 + 3.0.3 2.0.3 - 3.5.4 - 3.14.1 + 3.5.6 + 3.15.0 2.7.1 3.4.0 1.7.0 @@ -92,7 +92,7 @@ 3.12.0 3.4.0 2.1.0 - 0.8.14 + 0.8.15 3.6.2 0.10.0 official @@ -183,7 +183,7 @@ ${kotlin.version} - com.fasterxml.jackson.module + tools.jackson.module jackson-module-kotlin ${jackson-module-kotlin.version} @@ -233,7 +233,7 @@ kotlin-stdlib - com.fasterxml.jackson.module + tools.jackson.module jackson-module-kotlin @@ -368,6 +368,7 @@ ${java.version} ${java.version} + ${java.version}