Upgrade to Spring Framework 6 and Jakarta EE 9

Closes gh-750
Closes gh-748
This commit is contained in:
Andy Wilkinson
2021-09-28 15:01:55 +01:00
parent 68ff043fb3
commit 4223f70102
37 changed files with 147 additions and 217 deletions

View File

@@ -20,29 +20,28 @@ import java.util.Locale;
import java.util.MissingResourceException;
import java.util.ResourceBundle;
import javax.validation.constraints.AssertFalse;
import javax.validation.constraints.AssertTrue;
import javax.validation.constraints.DecimalMax;
import javax.validation.constraints.DecimalMin;
import javax.validation.constraints.Digits;
import javax.validation.constraints.Email;
import javax.validation.constraints.Future;
import javax.validation.constraints.FutureOrPresent;
import javax.validation.constraints.Max;
import javax.validation.constraints.Min;
import javax.validation.constraints.Negative;
import javax.validation.constraints.NegativeOrZero;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Null;
import javax.validation.constraints.Past;
import javax.validation.constraints.PastOrPresent;
import javax.validation.constraints.Pattern;
import javax.validation.constraints.Positive;
import javax.validation.constraints.PositiveOrZero;
import javax.validation.constraints.Size;
import jakarta.validation.constraints.AssertFalse;
import jakarta.validation.constraints.AssertTrue;
import jakarta.validation.constraints.DecimalMax;
import jakarta.validation.constraints.DecimalMin;
import jakarta.validation.constraints.Digits;
import jakarta.validation.constraints.Email;
import jakarta.validation.constraints.Future;
import jakarta.validation.constraints.FutureOrPresent;
import jakarta.validation.constraints.Max;
import jakarta.validation.constraints.Min;
import jakarta.validation.constraints.Negative;
import jakarta.validation.constraints.NegativeOrZero;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotEmpty;
import jakarta.validation.constraints.NotNull;
import jakarta.validation.constraints.Null;
import jakarta.validation.constraints.Past;
import jakarta.validation.constraints.PastOrPresent;
import jakarta.validation.constraints.Pattern;
import jakarta.validation.constraints.Positive;
import jakarta.validation.constraints.PositiveOrZero;
import jakarta.validation.constraints.Size;
import org.hibernate.validator.constraints.CodePointLength;
import org.hibernate.validator.constraints.CreditCardNumber;
import org.hibernate.validator.constraints.Currency;
@@ -52,7 +51,6 @@ import org.hibernate.validator.constraints.LuhnCheck;
import org.hibernate.validator.constraints.Mod10Check;
import org.hibernate.validator.constraints.Mod11Check;
import org.hibernate.validator.constraints.Range;
import org.hibernate.validator.constraints.SafeHtml;
import org.hibernate.validator.constraints.URL;
import org.springframework.util.PropertyPlaceholderHelper;
@@ -63,8 +61,8 @@ import org.springframework.util.StringUtils;
* A {@link ConstraintDescriptionResolver} that resolves constraint descriptions from a
* {@link ResourceBundle}. The resource bundle's keys are the name of the constraint with
* {@code .description} appended. For example, the key for the constraint named
* {@code javax.validation.constraints.NotNull} is
* {@code javax.validation.constraints.NotNull.description}.
* {@code jakarta.validation.constraints.NotNull} is
* {@code jakarta.validation.constraints.NotNull.description}.
* <p>
* Default descriptions are provided for Bean Validation 2.0's constraints:
*
@@ -109,7 +107,6 @@ import org.springframework.util.StringUtils;
* <li>{@link org.hibernate.validator.constraints.NotBlank}
* <li>{@link org.hibernate.validator.constraints.NotEmpty}
* <li>{@link Range}
* <li>{@link SafeHtml}
* <li>{@link URL}
* </ul>
*

View File

@@ -19,19 +19,19 @@ package org.springframework.restdocs.constraints;
import java.util.ArrayList;
import java.util.List;
import javax.validation.Validation;
import javax.validation.Validator;
import javax.validation.ValidatorFactory;
import javax.validation.constraints.NotNull;
import javax.validation.metadata.BeanDescriptor;
import javax.validation.metadata.ConstraintDescriptor;
import javax.validation.metadata.PropertyDescriptor;
import jakarta.validation.Validation;
import jakarta.validation.Validator;
import jakarta.validation.ValidatorFactory;
import jakarta.validation.constraints.NotNull;
import jakarta.validation.metadata.BeanDescriptor;
import jakarta.validation.metadata.ConstraintDescriptor;
import jakarta.validation.metadata.PropertyDescriptor;
/**
* A {@link ConstraintResolver} that uses a Bean Validation {@link Validator} to resolve
* constraints. The name of the constraint is the fully-qualified class name of the
* constraint annotation. For example, a {@link NotNull} constraint will be named
* {@code javax.validation.constraints.NotNull}.
* {@code jakarta.validation.constraints.NotNull}.
*
* @author Andy Wilkinson
*

View File

@@ -1,25 +1,25 @@
javax.validation.constraints.AssertFalse.description=Must be false
javax.validation.constraints.AssertTrue.description=Must be true
javax.validation.constraints.DecimalMax.description=Must be at most ${value}
javax.validation.constraints.DecimalMin.description=Must be at least ${value}
javax.validation.constraints.Digits.description=Must have at most ${integer} integral digits and ${fraction} fractional digits
javax.validation.constraints.Email.description=Must be a well-formed email address
javax.validation.constraints.Future.description=Must be in the future
javax.validation.constraints.FutureOrPresent.description=Must be in the future or the present
javax.validation.constraints.Max.description=Must be at most ${value}
javax.validation.constraints.Min.description=Must be at least ${value}
javax.validation.constraints.Negative.description=Must be negative
javax.validation.constraints.NegativeOrZero.description=Must be negative or zero
javax.validation.constraints.NotBlank.description=Must not be blank
javax.validation.constraints.NotEmpty.description=Must not be empty
javax.validation.constraints.NotNull.description=Must not be null
javax.validation.constraints.Null.description=Must be null
javax.validation.constraints.Past.description=Must be in the past
javax.validation.constraints.PastOrPresent.description=Must be in the past or the present
javax.validation.constraints.Pattern.description=Must match the regular expression `${regexp}`
javax.validation.constraints.Positive.description=Must be positive
javax.validation.constraints.PositiveOrZero.description=Must be positive or zero
javax.validation.constraints.Size.description=Size must be between ${min} and ${max} inclusive
jakarta.validation.constraints.AssertFalse.description=Must be false
jakarta.validation.constraints.AssertTrue.description=Must be true
jakarta.validation.constraints.DecimalMax.description=Must be at most ${value}
jakarta.validation.constraints.DecimalMin.description=Must be at least ${value}
jakarta.validation.constraints.Digits.description=Must have at most ${integer} integral digits and ${fraction} fractional digits
jakarta.validation.constraints.Email.description=Must be a well-formed email address
jakarta.validation.constraints.Future.description=Must be in the future
jakarta.validation.constraints.FutureOrPresent.description=Must be in the future or the present
jakarta.validation.constraints.Max.description=Must be at most ${value}
jakarta.validation.constraints.Min.description=Must be at least ${value}
jakarta.validation.constraints.Negative.description=Must be negative
jakarta.validation.constraints.NegativeOrZero.description=Must be negative or zero
jakarta.validation.constraints.NotBlank.description=Must not be blank
jakarta.validation.constraints.NotEmpty.description=Must not be empty
jakarta.validation.constraints.NotNull.description=Must not be null
jakarta.validation.constraints.Null.description=Must be null
jakarta.validation.constraints.Past.description=Must be in the past
jakarta.validation.constraints.PastOrPresent.description=Must be in the past or the present
jakarta.validation.constraints.Pattern.description=Must match the regular expression `${regexp}`
jakarta.validation.constraints.Positive.description=Must be positive
jakarta.validation.constraints.PositiveOrZero.description=Must be positive or zero
jakarta.validation.constraints.Size.description=Size must be between ${min} and ${max} inclusive
org.hibernate.validator.constraints.CodePointLength.description=Code point length must be between ${min} and ${max} inclusive
org.hibernate.validator.constraints.CreditCardNumber.description=Must be a well-formed credit card number
org.hibernate.validator.constraints.Currency.description=Must be in an accepted currency unit (${value})
@@ -32,5 +32,4 @@ org.hibernate.validator.constraints.Mod11Check.description=Must pass the Mod11 c
org.hibernate.validator.constraints.NotBlank.description=Must not be blank
org.hibernate.validator.constraints.NotEmpty.description=Must not be empty
org.hibernate.validator.constraints.Range.description=Must be at least ${min} and at most ${max}
org.hibernate.validator.constraints.SafeHtml.description=Must be safe HTML
org.hibernate.validator.constraints.URL.description=Must be a well-formed URL

View File

@@ -26,29 +26,29 @@ import java.util.ListResourceBundle;
import java.util.ResourceBundle;
import javax.money.MonetaryAmount;
import javax.validation.constraints.AssertFalse;
import javax.validation.constraints.AssertTrue;
import javax.validation.constraints.DecimalMax;
import javax.validation.constraints.DecimalMin;
import javax.validation.constraints.Digits;
import javax.validation.constraints.Email;
import javax.validation.constraints.Future;
import javax.validation.constraints.FutureOrPresent;
import javax.validation.constraints.Max;
import javax.validation.constraints.Min;
import javax.validation.constraints.Negative;
import javax.validation.constraints.NegativeOrZero;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Null;
import javax.validation.constraints.Past;
import javax.validation.constraints.PastOrPresent;
import javax.validation.constraints.Pattern;
import javax.validation.constraints.Positive;
import javax.validation.constraints.PositiveOrZero;
import javax.validation.constraints.Size;
import jakarta.validation.constraints.AssertFalse;
import jakarta.validation.constraints.AssertTrue;
import jakarta.validation.constraints.DecimalMax;
import jakarta.validation.constraints.DecimalMin;
import jakarta.validation.constraints.Digits;
import jakarta.validation.constraints.Email;
import jakarta.validation.constraints.Future;
import jakarta.validation.constraints.FutureOrPresent;
import jakarta.validation.constraints.Max;
import jakarta.validation.constraints.Min;
import jakarta.validation.constraints.Negative;
import jakarta.validation.constraints.NegativeOrZero;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotEmpty;
import jakarta.validation.constraints.NotNull;
import jakarta.validation.constraints.Null;
import jakarta.validation.constraints.Past;
import jakarta.validation.constraints.PastOrPresent;
import jakarta.validation.constraints.Pattern;
import jakarta.validation.constraints.Positive;
import jakarta.validation.constraints.PositiveOrZero;
import jakarta.validation.constraints.Size;
import org.hibernate.validator.constraints.CodePointLength;
import org.hibernate.validator.constraints.CreditCardNumber;
import org.hibernate.validator.constraints.Currency;
@@ -58,7 +58,6 @@ import org.hibernate.validator.constraints.LuhnCheck;
import org.hibernate.validator.constraints.Mod10Check;
import org.hibernate.validator.constraints.Mod11Check;
import org.hibernate.validator.constraints.Range;
import org.hibernate.validator.constraints.SafeHtml;
import org.junit.Test;
import org.springframework.core.annotation.AnnotationUtils;
@@ -253,11 +252,6 @@ public class ResourceBundleConstraintDescriptionResolverTests {
assertThat(constraintDescriptionForField("range")).isEqualTo("Must be at least 10 and at most 100");
}
@Test
public void defaultMessageSafeHtml() {
assertThat(constraintDescriptionForField("safeHtml")).isEqualTo("Must be safe HTML");
}
@Test
public void defaultMessageUrl() {
assertThat(constraintDescriptionForField("url")).isEqualTo("Must be a well-formed URL");
@@ -423,9 +417,6 @@ public class ResourceBundleConstraintDescriptionResolverTests {
@Range(min = 10, max = 100)
private int range;
@SafeHtml
private String safeHtml;
@org.hibernate.validator.constraints.URL
private String url;

View File

@@ -26,12 +26,11 @@ import java.util.List;
import java.util.Map;
import java.util.Map.Entry;
import javax.validation.Payload;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Null;
import javax.validation.constraints.Size;
import jakarta.validation.Payload;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import jakarta.validation.constraints.Null;
import jakarta.validation.constraints.Size;
import org.assertj.core.api.Condition;
import org.assertj.core.description.TextDescription;
import org.hibernate.validator.constraints.CompositionType;
@@ -102,7 +101,7 @@ public class ValidatorConstraintResolverTests {
@NotBlank
@Target(ElementType.FIELD)
@Retention(RetentionPolicy.RUNTIME)
@javax.validation.Constraint(validatedBy = {})
@jakarta.validation.Constraint(validatedBy = {})
private @interface CompositeConstraint {
String message() default "Must be null or not blank";

View File

@@ -1 +1 @@
javax.validation.constraints.NotNull.description=Should not be null
jakarta.validation.constraints.NotNull.description=Should not be null