-
Notifications
You must be signed in to change notification settings - Fork 325
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add builder for SchemaValidatorsConfig
#1068
Merged
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
@justin-tay Please let me know if we should release the 1.4.1 tag. Thanks. |
@stevehu Think we should release the 1.4.1 tag. Thanks! |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.Builder
to createSchemaValidatorsConfig
instances. 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
SchemaValidatorsConfig
immutable. For now this just deprecates theSchemaValidatorsConfig
constructor as this part of the public API is quite widely used. Instances by the builder will throwUnsupportedOperationException
when setters are called.SchemaValidatorsConfig
. For instance settingPathType.JSON_POINTER
as 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
->nullableKeywordEnabled
openAPI3StyleDiscriminators
->discriminatorKeywordEnabled
customMessageSupported
->errorMessageKeyword
The following defaults were changed in the builder vs the constructor
pathType
fromPathType.LEGACY
toPathType.JSON_POINTER
handleNullableField
fromtrue
tofalse
customMessageSupported
fromtrue
tofalse
When 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");