From 9c5ab70a3e0f6afa02be041cfb9fe9afc366750d Mon Sep 17 00:00:00 2001 From: Andreas Hufler Date: Tue, 16 Dec 2025 13:37:02 +0100 Subject: [PATCH 1/7] update to spring boot 4 and fix update issues --- pom.xml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index d4b27b4..36416f9 100644 --- a/pom.xml +++ b/pom.xml @@ -1,5 +1,6 @@ - + 4.0.0 From 30a2fb99472cc079165101a12b2258ac8d51a131 Mon Sep 17 00:00:00 2001 From: Andreas Hufler Date: Thu, 18 Dec 2025 08:15:59 +0100 Subject: [PATCH 2/7] add jspecify, nullaway, archunit and fix things --- .idea/codeStyles/Project.xml | 12 + lombok.config | 8 + pom.xml | 45 ++ .../AbstractCustomTypeContributor.java | 2 + .../persistence/AutoRegisteredJavaType.java | 2 + .../persistence/CustomTypeContributor.java | 3 + .../web/CustomTypeConfiguration.java | 3 +- .../web/CustomTypeScanner.java | 2 + .../web/CustomTypeScannerRegistrar.java | 2 + .../RegisterCustomTypesWithJacksonAndMvc.java | 2 + .../exception/ClientRuntimeException.java | 3 + .../ConstraintViolationExceptionBuilder.java | 21 +- .../exception/ExceptionMessageDefinition.java | 3 + .../exception/ServerRuntimeException.java | 3 + .../jackson/CustomTypeDeserializer.java | 35 +- .../toolbox/jackson/CustomTypeSerializer.java | 3 +- .../toolbox/jackson/EntityIdDeserializer.java | 2 + .../toolbox/parameter/PageParameter.java | 9 +- .../toolbox/parameter/SortParameter.java | 62 +- .../toolbox/persistence/ChangeAware.java | 3 + .../toolbox/persistence/SortMappings.java | 11 +- .../persistence/converter/UUIDConverter.java | 2 + .../javatype/EmailAddressJavaType.java | 2 + .../persistence/javatype/IbanJavaType.java | 2 + .../javatype/ScaledBigDecimalJavaType.java | 2 + .../base/WrappedBigDecimalJavaType.java | 9 +- .../base/WrappedBigIntegerJavaType.java | 9 +- .../javatype/base/WrappedBooleanJavaType.java | 9 +- .../javatype/base/WrappedByteJavaType.java | 9 +- .../base/WrappedCharacterJavaType.java | 9 +- .../javatype/base/WrappedDoubleJavaType.java | 9 +- .../javatype/base/WrappedEnumJavaType.java | 9 +- .../javatype/base/WrappedFloatJavaType.java | 9 +- .../javatype/base/WrappedIntegerJavaType.java | 9 +- .../javatype/base/WrappedLongJavaType.java | 9 +- .../base/WrappedScaledBigDecimalJavaType.java | 9 +- .../javatype/base/WrappedShortJavaType.java | 9 +- .../javatype/base/WrappedStringJavaType.java | 9 +- .../javatype/base/WrappedUUIDJavaType.java | 9 +- .../transformer/QueryTransformer.java | 27 +- .../TransformerRuntimeException.java | 3 + .../transformer/TupleTransformer.java | 16 +- .../reflection/util/ClassScannerUtil.java | 7 +- .../util/CustomTypeReflectionUtil.java | 2 + .../reflection/util/RecordReflectionUtil.java | 3 + .../toolbox/swagger/SwaggerMeta.java | 2 + .../toolbox/swagger/SwaggerMetaUtil.java | 11 +- .../annotation/ForceSwaggerSchema.java | 3 + .../OrderModelsCustomizer.java | 2 + .../custom_type/CustomTypeModelConverter.java | 4 + ...TypeOpenApiCustomizerForCodeGenerator.java | 4 +- .../CustomTypeParameterCustomizer.java | 7 +- ...peParameterCustomizerForCodeGenerator.java | 7 +- .../CustomTypePropertyCustomizer.java | 2 + ...ypePropertyCustomizerForCodeGenerator.java | 2 + .../customization/custom_type/SchemaUtil.java | 3 + .../default_not_null/NullableCustomizer.java | 2 + .../NullablePropertyCustomizer.java | 2 + .../force_schema/ForceSchemaCustomizer.java | 2 + .../logout_route/LogoutCustomizer.java | 7 +- .../NestedStructuresCustomizer.java | 3 +- .../swagger/resolver/CustomModelResolver.java | 2 + .../SortParameterCustomizer.java | 2 + .../springboot/toolbox/type/CustomType.java | 3 + .../springboot/toolbox/type/EmailAddress.java | 9 +- .../springboot/toolbox/type/Iban.java | 11 +- .../toolbox/type/ScaledBigDecimal.java | 87 ++- .../toolbox/type/identity/EntityId.java | 2 + .../toolbox/type/identity/Identified.java | 3 + .../springboot/toolbox/util/CollectUtil.java | 39 +- .../springboot/toolbox/util/FilterUtil.java | 21 +- .../util/EmailAddressValidator.java | 7 +- .../validation/util/IbanValidator.java | 7 +- .../MaxScaledBigDecimalValidator.java | 5 +- .../MinScaledBigDecimalValidator.java | 11 +- ...gativeOrZeroScaledBigDecimalValidator.java | 5 +- .../NegativeScaledBigDecimalValidator.java | 5 +- ...sitiveOrZeroScaledBigDecimalValidator.java | 5 +- .../PositiveScaledBigDecimalValidator.java | 5 +- .../toolbox/web/CustomTypePropertyEditor.java | 33 +- .../toolbox/web/EntityIdPropertyEditor.java | 6 +- .../toolbox/web/SortParameterResolver.java | 12 +- .../toolbox/web/response/ErrorResponse.java | 4 +- .../toolbox/web/response/ItemResponse.java | 5 +- .../web/response/ItemResponseWithMeta.java | 5 +- .../toolbox/web/response/ListResponse.java | 5 +- .../web/response/ListResponseWithMeta.java | 5 +- .../toolbox/web/response/PagedResponse.java | 9 +- .../web/response/PagedResponseWithMeta.java | 5 +- .../toolbox/web/response/meta/Meta.java | 3 + .../web/response/meta/MetaWithPagination.java | 9 +- .../springboot/toolbox/ArchitectureTest.java | 541 ++++++++++++++++++ .../aboutbits/springboot/toolbox/TestApp.java | 3 +- .../toolbox/_support/ApplicationTest.java | 2 + .../toolbox/_support/ArchIgnoreGroupName.java | 20 + .../springboot/toolbox/_support/HttpTest.java | 2 + .../toolbox/_support/WithPersistence.java | 2 + .../persistence/PostgresTestcontainer.java | 14 +- .../_support/persistence/WithPostgres.java | 2 + .../CustomTypeBindingsForControllerTest.java | 12 +- .../EntityIdBindingsForControllerTest.java | 12 +- .../mvc/body/BodyWithEmailAddress.java | 2 + .../mvc/body/BodyWithEntityId.java | 2 + .../mvc/body/BodyWithEnumEntityId.java | 2 + .../mvc/body/BodyWithIban.java | 2 + .../mvc/body/BodyWithScaledBigDecimal.java | 2 + .../mvc/body/BodyWithUUID.java | 3 + .../controller/CustomTypeTestController.java | 2 + .../controller/EntityIdTestController.java | 2 + .../persistence/CustomTypeJpaTest.java | 6 +- .../persistence/EntityIdJpaTest.java | 6 +- .../impl/jpa/CustomTypeEnumTestModel.java | 4 + .../CustomTypeEnumTestModelRepository.java | 2 + .../impl/jpa/CustomTypeTestModel.java | 4 + .../jpa/CustomTypeTestModelRepository.java | 2 + .../impl/jpa/ReferencedTestModel.java | 2 + .../swagger/SwaggerTest.java | 9 +- .../toolbox/parameter/SortParameterTest.java | 2 + .../javatype/WrapperTypesJpaTest.java | 35 +- .../javatype/WrapBigDecimalClassJavaType.java | 3 + .../WrapBigDecimalRecordJavaType.java | 2 + .../javatype/WrapBigIntegerClassJavaType.java | 2 + .../WrapBigIntegerRecordJavaType.java | 2 + .../javatype/WrapBooleanClassJavaType.java | 2 + .../javatype/WrapBooleanRecordJavaType.java | 2 + .../impl/javatype/WrapByteClassJavaType.java | 2 + .../impl/javatype/WrapByteRecordJavaType.java | 2 + .../javatype/WrapCharacterClassJavaType.java | 2 + .../javatype/WrapCharacterRecordJavaType.java | 2 + .../javatype/WrapDoubleClassJavaType.java | 2 + .../javatype/WrapDoubleRecordJavaType.java | 2 + .../impl/javatype/WrapEnumClassJavaType.java | 2 + .../impl/javatype/WrapEnumRecordJavaType.java | 2 + .../impl/javatype/WrapFloatClassJavaType.java | 2 + .../javatype/WrapFloatRecordJavaType.java | 2 + .../javatype/WrapIntegerClassJavaType.java | 2 + .../javatype/WrapIntegerRecordJavaType.java | 2 + .../impl/javatype/WrapLongClassJavaType.java | 2 + .../impl/javatype/WrapLongRecordJavaType.java | 2 + .../WrapScaledBigDecimalClassJavaType.java | 2 + .../WrapScaledBigDecimalRecordJavaType.java | 2 + .../impl/javatype/WrapShortClassJavaType.java | 2 + .../javatype/WrapShortRecordJavaType.java | 2 + .../javatype/WrapStringClassJavaType.java | 2 + .../javatype/WrapStringRecordJavaType.java | 2 + .../impl/javatype/WrapUUIDClassJavaType.java | 2 + .../impl/javatype/WrapUUIDRecordJavaType.java | 2 + .../javatype/impl/jpa/WrapperTypesModel.java | 2 + .../impl/jpa/WrapperTypesModelRepository.java | 63 +- .../javatype/impl/type/SampleEnum.java | 3 + .../impl/type/WrapBigDecimalClass.java | 2 + .../impl/type/WrapBigDecimalRecord.java | 2 + .../impl/type/WrapBigIntegerClass.java | 2 + .../impl/type/WrapBigIntegerRecord.java | 2 + .../javatype/impl/type/WrapBooleanClass.java | 2 + .../javatype/impl/type/WrapBooleanRecord.java | 2 + .../javatype/impl/type/WrapByteClass.java | 2 + .../javatype/impl/type/WrapByteRecord.java | 2 + .../impl/type/WrapCharacterClass.java | 2 + .../impl/type/WrapCharacterRecord.java | 2 + .../javatype/impl/type/WrapDoubleClass.java | 2 + .../javatype/impl/type/WrapDoubleRecord.java | 2 + .../javatype/impl/type/WrapEnumClass.java | 2 + .../javatype/impl/type/WrapEnumRecord.java | 2 + .../javatype/impl/type/WrapFloatClass.java | 2 + .../javatype/impl/type/WrapFloatRecord.java | 2 + .../javatype/impl/type/WrapIntegerClass.java | 2 + .../javatype/impl/type/WrapIntegerRecord.java | 2 + .../javatype/impl/type/WrapLongClass.java | 2 + .../javatype/impl/type/WrapLongRecord.java | 2 + .../impl/type/WrapScaledBigDecimalClass.java | 2 + .../impl/type/WrapScaledBigDecimalRecord.java | 2 + .../javatype/impl/type/WrapShortClass.java | 2 + .../javatype/impl/type/WrapShortRecord.java | 2 + .../javatype/impl/type/WrapStringClass.java | 2 + .../javatype/impl/type/WrapStringRecord.java | 2 + .../javatype/impl/type/WrapUUIDClass.java | 2 + .../javatype/impl/type/WrapUUIDRecord.java | 2 + .../transformer/QueryTransformerTest.java | 13 +- .../transformer/TupleTransformerTest.java | 14 +- .../impl/jpa/QueryTransformerTestModel.java | 2 + .../QueryTransformerTestModelRepository.java | 2 + .../util/CustomTypeReflectionUtilTest.java | 3 + .../toolbox/type/EmailAddressTest.java | 5 + .../springboot/toolbox/type/IbanTest.java | 5 + .../toolbox/util/CollectUtilTest.java | 2 + .../toolbox/util/FilterUtilTest.java | 2 + .../util/EmailAddressValidatorTest.java | 2 + .../validation/util/IbanValidatorTest.java | 2 + .../MaxScaledBigDecimalValidatorTest.java | 43 ++ .../MinScaledBigDecimalValidatorTest.java | 43 ++ ...veOrZeroScaledBigDecimalValidatorTest.java | 43 ++ ...NegativeScaledBigDecimalValidatorTest.java | 43 ++ ...veOrZeroScaledBigDecimalValidatorTest.java | 43 ++ ...PositiveScaledBigDecimalValidatorTest.java | 43 ++ .../ScaledBigDecimalValidatorTest.java | 200 ------- .../web/SortParameterResolverTest.java | 3 + .../web/response/PagedResponseTest.java | 2 + 198 files changed, 1688 insertions(+), 528 deletions(-) create mode 100644 lombok.config create mode 100644 src/test/java/it/aboutbits/springboot/toolbox/ArchitectureTest.java create mode 100644 src/test/java/it/aboutbits/springboot/toolbox/_support/ArchIgnoreGroupName.java create mode 100644 src/test/java/it/aboutbits/springboot/toolbox/validation/validator/MaxScaledBigDecimalValidatorTest.java create mode 100644 src/test/java/it/aboutbits/springboot/toolbox/validation/validator/MinScaledBigDecimalValidatorTest.java create mode 100644 src/test/java/it/aboutbits/springboot/toolbox/validation/validator/NegativeOrZeroScaledBigDecimalValidatorTest.java create mode 100644 src/test/java/it/aboutbits/springboot/toolbox/validation/validator/NegativeScaledBigDecimalValidatorTest.java create mode 100644 src/test/java/it/aboutbits/springboot/toolbox/validation/validator/PositiveOrZeroScaledBigDecimalValidatorTest.java create mode 100644 src/test/java/it/aboutbits/springboot/toolbox/validation/validator/PositiveScaledBigDecimalValidatorTest.java delete mode 100644 src/test/java/it/aboutbits/springboot/toolbox/validation/validator/ScaledBigDecimalValidatorTest.java diff --git a/.idea/codeStyles/Project.xml b/.idea/codeStyles/Project.xml index 7908617..0296b44 100644 --- a/.idea/codeStyles/Project.xml +++ b/.idea/codeStyles/Project.xml @@ -14,7 +14,15 @@