Add builder for SchemaValidatorsConfig
#1068
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This creates a
SchemaValidatorsConfig.Builderto createSchemaValidatorsConfiginstances. This also updates the documentation and release notes assuming that the next release will be1.4.1. This also updates all the tests that used the constructor to the builder.This is was done in order to
SchemaValidatorsConfigimmutable. For now this just deprecates theSchemaValidatorsConfigconstructor as this part of the public API is quite widely used. Instances by the builder will throwUnsupportedOperationExceptionwhen setters are called.SchemaValidatorsConfig. For instance settingPathType.JSON_POINTERas default as this aligns better with the spec. The changes in defaults only apply if the builder was used to construct the instance so existing codes using the constructor are unaffected and can migrate when it suits them.Note that there are differences in defaults from the builder vs the constructor.
The following builder creates the same values as the constructor previously.
The following configurations were renamed with the old ones deprecated
handleNullableField->nullableKeywordEnabledopenAPI3StyleDiscriminators->discriminatorKeywordEnabledcustomMessageSupported->errorMessageKeywordThe following defaults were changed in the builder vs the constructor
pathTypefromPathType.LEGACYtoPathType.JSON_POINTERhandleNullableFieldfromtruetofalsecustomMessageSupportedfromtruetofalseWhen using the builder custom error messages are not enabled by default and must be enabled by specifying the error message keyword to use ie. "message".
SchemaValidatorsConfig config = new SchemaValidatorsConfig();SchemaValidatorsConfig config = SchemaValidatorsConfig().builder().pathType(PathType.LEGACY).errorMessageKeyword("message").nullableKeywordEnabled(true).build();config.setEcma262Validator(true);builder.regularExpressionFactory(JoniRegularExpressionFactory.getInstance());config.setHandleNullableField(true);builder.nullableKeywordEnabled(true);config.setOpenAPI3StyleDiscriminators(true);builder.discriminatorKeywordEnabled(true);config.setCustomMessageSupported(true);builder.errorMessageKeyword("message");