diff --git a/javax-validation-advanced/.gitignore b/javax-validation-advanced/.gitignore
deleted file mode 100644
index 8027134ae9..0000000000
--- a/javax-validation-advanced/.gitignore
+++ /dev/null
@@ -1,6 +0,0 @@
-.classpath
-.project
-.settings/
-target/
-bin/
-
diff --git a/javax-validation-advanced/README.md b/javax-validation-advanced/README.md
deleted file mode 100644
index b3ed669c39..0000000000
--- a/javax-validation-advanced/README.md
+++ /dev/null
@@ -1,6 +0,0 @@
-## Java Bean Validation Examples
-
-This module contains articles about Bean Validation.
-
-### Relevant Articles:
-- [Object Validation After Deserialization](https://www.baeldung.com/java-object-validation-deserialization)
diff --git a/javax-validation-advanced/pom.xml b/javax-validation-advanced/pom.xml
deleted file mode 100644
index 7709f37883..0000000000
--- a/javax-validation-advanced/pom.xml
+++ /dev/null
@@ -1,33 +0,0 @@
-
-
- 4.0.0
- javax-validation-advanced
- javax-validation-advanced
-
-
- com.baeldung
- parent-modules
- 1.0.0-SNAPSHOT
-
-
-
-
- org.springframework.boot
- spring-boot-starter-validation
- ${spring.boot.version}
-
-
- com.fasterxml.jackson.core
- jackson-databind
- ${jackson.databind.version}
-
-
-
-
- 2.7.5
- 2.14.0
-
-
-
\ No newline at end of file
diff --git a/javaxval-2/README.md b/javaxval-2/README.md
index 0fd5ce163b..e10629975c 100644
--- a/javaxval-2/README.md
+++ b/javaxval-2/README.md
@@ -6,4 +6,5 @@ This module contains articles about Bean Validation.
- [Method Constraints with Bean Validation 2.0](https://www.baeldung.com/javax-validation-method-constraints)
- [Guide to ParameterMessageInterpolator](https://www.baeldung.com/hibernate-parametermessageinterpolator)
- [Hibernate Validator Annotation Processor in Depth](https://www.baeldung.com/hibernate-validator-annotation-processor)
+- [Object Validation After Deserialization](https://www.baeldung.com/java-object-validation-deserialization)
- More articles: [[<-- prev]](../javaxval)
\ No newline at end of file
diff --git a/javaxval-2/pom.xml b/javaxval-2/pom.xml
index 7d84b4ce9b..f73f23bcb2 100644
--- a/javaxval-2/pom.xml
+++ b/javaxval-2/pom.xml
@@ -25,6 +25,11 @@
${spring.boot.version}
test
+
+ com.fasterxml.jackson.core
+ jackson-databind
+ ${jackson.databind.version}
+
@@ -39,6 +44,7 @@
3.0.4
+ 2.14.0
\ No newline at end of file
diff --git a/javax-validation-advanced/src/main/java/com/baeldung/javaxval/afterdeserialization/BeanDeserializerModifierWithValidation.java b/javaxval-2/src/main/java/com/baeldung/javaxval/afterdeserialization/BeanDeserializerModifierWithValidation.java
similarity index 97%
rename from javax-validation-advanced/src/main/java/com/baeldung/javaxval/afterdeserialization/BeanDeserializerModifierWithValidation.java
rename to javaxval-2/src/main/java/com/baeldung/javaxval/afterdeserialization/BeanDeserializerModifierWithValidation.java
index 3e20ebad6b..f2425b542f 100644
--- a/javax-validation-advanced/src/main/java/com/baeldung/javaxval/afterdeserialization/BeanDeserializerModifierWithValidation.java
+++ b/javaxval-2/src/main/java/com/baeldung/javaxval/afterdeserialization/BeanDeserializerModifierWithValidation.java
@@ -1,20 +1,20 @@
-package com.baeldung.javaxval.afterdeserialization;
-
-import com.fasterxml.jackson.databind.BeanDescription;
-import com.fasterxml.jackson.databind.DeserializationConfig;
-import com.fasterxml.jackson.databind.JsonDeserializer;
-import com.fasterxml.jackson.databind.deser.BeanDeserializer;
-import com.fasterxml.jackson.databind.deser.BeanDeserializerModifier;
-
-public class BeanDeserializerModifierWithValidation extends BeanDeserializerModifier {
-
- @Override
- public JsonDeserializer> modifyDeserializer(DeserializationConfig config, BeanDescription beanDesc, JsonDeserializer> deserializer) {
- if (deserializer instanceof BeanDeserializer) {
- return new BeanDeserializerWithValidation((BeanDeserializer) deserializer);
- }
-
- return deserializer;
- }
-
-}
+package com.baeldung.javaxval.afterdeserialization;
+
+import com.fasterxml.jackson.databind.BeanDescription;
+import com.fasterxml.jackson.databind.DeserializationConfig;
+import com.fasterxml.jackson.databind.JsonDeserializer;
+import com.fasterxml.jackson.databind.deser.BeanDeserializer;
+import com.fasterxml.jackson.databind.deser.BeanDeserializerModifier;
+
+public class BeanDeserializerModifierWithValidation extends BeanDeserializerModifier {
+
+ @Override
+ public JsonDeserializer> modifyDeserializer(DeserializationConfig config, BeanDescription beanDesc, JsonDeserializer> deserializer) {
+ if (deserializer instanceof BeanDeserializer) {
+ return new BeanDeserializerWithValidation((BeanDeserializer) deserializer);
+ }
+
+ return deserializer;
+ }
+
+}
diff --git a/javax-validation-advanced/src/main/java/com/baeldung/javaxval/afterdeserialization/BeanDeserializerWithValidation.java b/javaxval-2/src/main/java/com/baeldung/javaxval/afterdeserialization/BeanDeserializerWithValidation.java
similarity index 81%
rename from javax-validation-advanced/src/main/java/com/baeldung/javaxval/afterdeserialization/BeanDeserializerWithValidation.java
rename to javaxval-2/src/main/java/com/baeldung/javaxval/afterdeserialization/BeanDeserializerWithValidation.java
index 332c83010d..178baaac95 100644
--- a/javax-validation-advanced/src/main/java/com/baeldung/javaxval/afterdeserialization/BeanDeserializerWithValidation.java
+++ b/javaxval-2/src/main/java/com/baeldung/javaxval/afterdeserialization/BeanDeserializerWithValidation.java
@@ -1,40 +1,40 @@
-package com.baeldung.javaxval.afterdeserialization;
-
-import java.io.IOException;
-import java.util.Set;
-
-import javax.validation.ConstraintViolation;
-import javax.validation.ConstraintViolationException;
-import javax.validation.Validation;
-import javax.validation.Validator;
-import javax.validation.ValidatorFactory;
-
-import com.fasterxml.jackson.core.JsonParser;
-import com.fasterxml.jackson.databind.DeserializationContext;
-import com.fasterxml.jackson.databind.deser.BeanDeserializer;
-import com.fasterxml.jackson.databind.deser.BeanDeserializerBase;
-
-public class BeanDeserializerWithValidation extends BeanDeserializer {
-
- private static final ValidatorFactory factory = Validation.buildDefaultValidatorFactory();
- private static final Validator validator = factory.getValidator();
-
- protected BeanDeserializerWithValidation(BeanDeserializerBase src) {
- super(src);
- }
-
- @Override
- public Object deserialize(JsonParser p, DeserializationContext ctxt) throws IOException {
- Object instance = super.deserialize(p, ctxt);
- validate(instance);
- return instance;
- }
-
- public void validate(T t) {
- Set> violations = validator.validate(t);
- if (!violations.isEmpty()) {
- throw new ConstraintViolationException(violations);
- }
- }
-
-}
+package com.baeldung.javaxval.afterdeserialization;
+
+import java.io.IOException;
+import java.util.Set;
+
+import jakarta.validation.ConstraintViolation;
+import jakarta.validation.ConstraintViolationException;
+import jakarta.validation.Validation;
+import jakarta.validation.Validator;
+import jakarta.validation.ValidatorFactory;
+
+import com.fasterxml.jackson.core.JsonParser;
+import com.fasterxml.jackson.databind.DeserializationContext;
+import com.fasterxml.jackson.databind.deser.BeanDeserializer;
+import com.fasterxml.jackson.databind.deser.BeanDeserializerBase;
+
+public class BeanDeserializerWithValidation extends BeanDeserializer {
+
+ private static final ValidatorFactory factory = Validation.buildDefaultValidatorFactory();
+ private static final Validator validator = factory.getValidator();
+
+ protected BeanDeserializerWithValidation(BeanDeserializerBase src) {
+ super(src);
+ }
+
+ @Override
+ public Object deserialize(JsonParser p, DeserializationContext ctxt) throws IOException {
+ Object instance = super.deserialize(p, ctxt);
+ validate(instance);
+ return instance;
+ }
+
+ public void validate(T t) {
+ Set> violations = validator.validate(t);
+ if (!violations.isEmpty()) {
+ throw new ConstraintViolationException(violations);
+ }
+ }
+
+}
diff --git a/javax-validation-advanced/src/main/java/com/baeldung/javaxval/afterdeserialization/Student.java b/javaxval-2/src/main/java/com/baeldung/javaxval/afterdeserialization/Student.java
similarity index 82%
rename from javax-validation-advanced/src/main/java/com/baeldung/javaxval/afterdeserialization/Student.java
rename to javaxval-2/src/main/java/com/baeldung/javaxval/afterdeserialization/Student.java
index c1923de265..b359f67078 100644
--- a/javax-validation-advanced/src/main/java/com/baeldung/javaxval/afterdeserialization/Student.java
+++ b/javaxval-2/src/main/java/com/baeldung/javaxval/afterdeserialization/Student.java
@@ -1,14 +1,14 @@
-package com.baeldung.javaxval.afterdeserialization;
-
-import javax.validation.constraints.Size;
-
-public class Student {
-
- @Size(min = 5, max = 10, message = "Student's name must be between 5 and 10 characters")
- private String name;
-
- public String getName() {
- return name;
- }
-
-}
+package com.baeldung.javaxval.afterdeserialization;
+
+import jakarta.validation.constraints.Size;
+
+public class Student {
+
+ @Size(min = 5, max = 10, message = "Student's name must be between 5 and 10 characters")
+ private String name;
+
+ public String getName() {
+ return name;
+ }
+
+}
diff --git a/javax-validation-advanced/src/main/java/com/baeldung/javaxval/afterdeserialization/StudentDeserializerWithValidation.java b/javaxval-2/src/main/java/com/baeldung/javaxval/afterdeserialization/StudentDeserializerWithValidation.java
similarity index 97%
rename from javax-validation-advanced/src/main/java/com/baeldung/javaxval/afterdeserialization/StudentDeserializerWithValidation.java
rename to javaxval-2/src/main/java/com/baeldung/javaxval/afterdeserialization/StudentDeserializerWithValidation.java
index e652a43ccb..588493782e 100644
--- a/javax-validation-advanced/src/main/java/com/baeldung/javaxval/afterdeserialization/StudentDeserializerWithValidation.java
+++ b/javaxval-2/src/main/java/com/baeldung/javaxval/afterdeserialization/StudentDeserializerWithValidation.java
@@ -1,24 +1,24 @@
-package com.baeldung.javaxval.afterdeserialization;
-
-import java.io.IOException;
-import java.io.InputStream;
-
-import com.fasterxml.jackson.databind.ObjectMapper;
-import com.fasterxml.jackson.databind.module.SimpleModule;
-
-public class StudentDeserializerWithValidation {
-
- public static Student readStudent(InputStream inputStream) throws IOException {
- ObjectMapper mapper = getObjectMapperWithValidation();
- return mapper.readValue(inputStream, Student.class);
- }
-
- private static ObjectMapper getObjectMapperWithValidation() {
- SimpleModule validationModule = new SimpleModule();
- validationModule.setDeserializerModifier(new BeanDeserializerModifierWithValidation());
- ObjectMapper mapper = new ObjectMapper();
- mapper.registerModule(validationModule);
- return mapper;
- }
-
-}
+package com.baeldung.javaxval.afterdeserialization;
+
+import java.io.IOException;
+import java.io.InputStream;
+
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.fasterxml.jackson.databind.module.SimpleModule;
+
+public class StudentDeserializerWithValidation {
+
+ public static Student readStudent(InputStream inputStream) throws IOException {
+ ObjectMapper mapper = getObjectMapperWithValidation();
+ return mapper.readValue(inputStream, Student.class);
+ }
+
+ private static ObjectMapper getObjectMapperWithValidation() {
+ SimpleModule validationModule = new SimpleModule();
+ validationModule.setDeserializerModifier(new BeanDeserializerModifierWithValidation());
+ ObjectMapper mapper = new ObjectMapper();
+ mapper.registerModule(validationModule);
+ return mapper;
+ }
+
+}
diff --git a/javax-validation-advanced/src/test/java/com/baeldung/javaxval/StudentDeserializerWithValidationUnitTest.java b/javaxval-2/src/test/java/com/baeldung/javaxval/afterdeserialization/StudentDeserializerWithValidationUnitTest.java
similarity index 95%
rename from javax-validation-advanced/src/test/java/com/baeldung/javaxval/StudentDeserializerWithValidationUnitTest.java
rename to javaxval-2/src/test/java/com/baeldung/javaxval/afterdeserialization/StudentDeserializerWithValidationUnitTest.java
index edbe85ecfe..094236e963 100644
--- a/javax-validation-advanced/src/test/java/com/baeldung/javaxval/StudentDeserializerWithValidationUnitTest.java
+++ b/javaxval-2/src/test/java/com/baeldung/javaxval/afterdeserialization/StudentDeserializerWithValidationUnitTest.java
@@ -1,51 +1,51 @@
-package com.baeldung.javaxval;
-
-import static org.junit.jupiter.api.Assertions.assertEquals;
-import static org.junit.jupiter.api.Assertions.assertThrows;
-
-import java.io.IOException;
-import java.io.InputStream;
-
-import javax.validation.ConstraintViolationException;
-
-import org.junit.jupiter.api.Test;
-
-import com.baeldung.javaxval.afterdeserialization.Student;
-import com.baeldung.javaxval.afterdeserialization.StudentDeserializerWithValidation;
-
-public class StudentDeserializerWithValidationUnitTest {
-
- private final String EXPECTED_ERROR_MESSAGE = "name: Student's name must be between 5 and 10 characters";
- private final String EXPECTED_STUDENT_NAME = "Daniel";
- private final String NAME_TOO_LONG_STUDENT_FILE = "nameTooLongStudent.json";
- private final String NAME_TOO_SHORT_STUDENT_FILE = "nameTooShortStudent.json";
- private final String SUBDIRECTORY = "afterdeserialization/";
- private final String VALID_STUDENT_FILE = "validStudent.json";
-
- @Test
- void givenValidStudent_WhenReadStudent_ThenReturnStudent() throws IOException {
- InputStream inputStream = getInputStream(VALID_STUDENT_FILE);
- Student result = StudentDeserializerWithValidation.readStudent(inputStream);
- assertEquals(EXPECTED_STUDENT_NAME, result.getName());
- }
-
- @Test
- void givenStudentWithTooShortName_WhenReadStudent_ThenThrows() {
- InputStream inputStream = getInputStream(NAME_TOO_SHORT_STUDENT_FILE);
- ConstraintViolationException constraintViolationException = assertThrows(ConstraintViolationException.class, () -> StudentDeserializerWithValidation.readStudent(inputStream));
- assertEquals(EXPECTED_ERROR_MESSAGE, constraintViolationException.getMessage());
- }
-
- @Test
- void givenStudentWithTooLongName_WhenReadStudent_ThenThrows() {
- InputStream inputStream = getInputStream(NAME_TOO_LONG_STUDENT_FILE);
- ConstraintViolationException constraintViolationException = assertThrows(ConstraintViolationException.class, () -> StudentDeserializerWithValidation.readStudent(inputStream));
- assertEquals(EXPECTED_ERROR_MESSAGE, constraintViolationException.getMessage());
- }
-
- private InputStream getInputStream(String fileName) {
- return getClass().getClassLoader()
- .getResourceAsStream(SUBDIRECTORY + fileName);
- }
-
-}
+package com.baeldung.javaxval;
+
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertThrows;
+
+import java.io.IOException;
+import java.io.InputStream;
+
+import jakarta.validation.ConstraintViolationException;
+
+import org.junit.jupiter.api.Test;
+
+import com.baeldung.javaxval.afterdeserialization.Student;
+import com.baeldung.javaxval.afterdeserialization.StudentDeserializerWithValidation;
+
+public class StudentDeserializerWithValidationUnitTest {
+
+ private final String EXPECTED_ERROR_MESSAGE = "name: Student's name must be between 5 and 10 characters";
+ private final String EXPECTED_STUDENT_NAME = "Daniel";
+ private final String NAME_TOO_LONG_STUDENT_FILE = "nameTooLongStudent.json";
+ private final String NAME_TOO_SHORT_STUDENT_FILE = "nameTooShortStudent.json";
+ private final String SUBDIRECTORY = "afterdeserialization/";
+ private final String VALID_STUDENT_FILE = "validStudent.json";
+
+ @Test
+ void givenValidStudent_WhenReadStudent_ThenReturnStudent() throws IOException {
+ InputStream inputStream = getInputStream(VALID_STUDENT_FILE);
+ Student result = StudentDeserializerWithValidation.readStudent(inputStream);
+ assertEquals(EXPECTED_STUDENT_NAME, result.getName());
+ }
+
+ @Test
+ void givenStudentWithTooShortName_WhenReadStudent_ThenThrows() {
+ InputStream inputStream = getInputStream(NAME_TOO_SHORT_STUDENT_FILE);
+ ConstraintViolationException constraintViolationException = assertThrows(ConstraintViolationException.class, () -> StudentDeserializerWithValidation.readStudent(inputStream));
+ assertEquals(EXPECTED_ERROR_MESSAGE, constraintViolationException.getMessage());
+ }
+
+ @Test
+ void givenStudentWithTooLongName_WhenReadStudent_ThenThrows() {
+ InputStream inputStream = getInputStream(NAME_TOO_LONG_STUDENT_FILE);
+ ConstraintViolationException constraintViolationException = assertThrows(ConstraintViolationException.class, () -> StudentDeserializerWithValidation.readStudent(inputStream));
+ assertEquals(EXPECTED_ERROR_MESSAGE, constraintViolationException.getMessage());
+ }
+
+ private InputStream getInputStream(String fileName) {
+ return getClass().getClassLoader()
+ .getResourceAsStream(SUBDIRECTORY + fileName);
+ }
+
+}
diff --git a/javax-validation-advanced/src/test/resources/afterdeserialization/nameTooLongStudent.json b/javaxval-2/src/test/resources/afterdeserialization/nameTooLongStudent.json
similarity index 93%
rename from javax-validation-advanced/src/test/resources/afterdeserialization/nameTooLongStudent.json
rename to javaxval-2/src/test/resources/afterdeserialization/nameTooLongStudent.json
index e537ecb25d..486709db60 100644
--- a/javax-validation-advanced/src/test/resources/afterdeserialization/nameTooLongStudent.json
+++ b/javaxval-2/src/test/resources/afterdeserialization/nameTooLongStudent.json
@@ -1,3 +1,3 @@
-{
- "name": "Constantine"
+{
+ "name": "Constantine"
}
\ No newline at end of file
diff --git a/javax-validation-advanced/src/test/resources/afterdeserialization/nameTooShortStudent.json b/javaxval-2/src/test/resources/afterdeserialization/nameTooShortStudent.json
similarity index 90%
rename from javax-validation-advanced/src/test/resources/afterdeserialization/nameTooShortStudent.json
rename to javaxval-2/src/test/resources/afterdeserialization/nameTooShortStudent.json
index 79ab10cb80..23410153e3 100644
--- a/javax-validation-advanced/src/test/resources/afterdeserialization/nameTooShortStudent.json
+++ b/javaxval-2/src/test/resources/afterdeserialization/nameTooShortStudent.json
@@ -1,3 +1,3 @@
-{
- "name": "Max"
+{
+ "name": "Max"
}
\ No newline at end of file
diff --git a/javax-validation-advanced/src/test/resources/afterdeserialization/validStudent.json b/javaxval-2/src/test/resources/afterdeserialization/validStudent.json
similarity index 91%
rename from javax-validation-advanced/src/test/resources/afterdeserialization/validStudent.json
rename to javaxval-2/src/test/resources/afterdeserialization/validStudent.json
index 938002ea51..d106f7d7ce 100644
--- a/javax-validation-advanced/src/test/resources/afterdeserialization/validStudent.json
+++ b/javaxval-2/src/test/resources/afterdeserialization/validStudent.json
@@ -1,3 +1,3 @@
-{
- "name": "Daniel"
+{
+ "name": "Daniel"
}
\ No newline at end of file
diff --git a/pom.xml b/pom.xml
index bea9a5a6fa..a82f898689 100644
--- a/pom.xml
+++ b/pom.xml
@@ -850,7 +850,6 @@
javax-sound
javaxval
javaxval-2
- javax-validation-advanced
jetbrains
jgit
jib
@@ -1120,7 +1119,6 @@
javax-sound
javaxval
javaxval-2
- javax-validation-advanced
jetbrains
jgit
jib