diff --git a/apache-bval/README.md b/apache-bval/README.md
deleted file mode 100644
index e856810378..0000000000
--- a/apache-bval/README.md
+++ /dev/null
@@ -1,7 +0,0 @@
-## Apache BVal
-
-This module contains articles about Apache BVal
-
-### Relevant Articles:
-
-- [Intro to Apache BVal](https://www.baeldung.com/apache-bval)
diff --git a/apache-bval/pom.xml b/apache-bval/pom.xml
deleted file mode 100644
index 49484f4959..0000000000
--- a/apache-bval/pom.xml
+++ /dev/null
@@ -1,40 +0,0 @@
-
-
- 4.0.0
- apache-bval
- 0.0.1-SNAPSHOT
- apache-bval
-
-
- com.baeldung
- parent-modules
- 1.0.0-SNAPSHOT
-
-
-
-
- org.apache.bval
- bval-jsr
- ${bval.version}
-
-
- javax.validation
- validation-api
- ${javax.validation.validation-api.version}
-
-
- org.apache.bval
- bval-extras
- ${bval.version}
-
-
-
-
- 1.1.2
- 1.1.0.Final
-
-
-
\ No newline at end of file
diff --git a/apache-bval/src/main/java/com/baeldung/model/User.java b/apache-bval/src/main/java/com/baeldung/model/User.java
deleted file mode 100644
index 477136ddb4..0000000000
--- a/apache-bval/src/main/java/com/baeldung/model/User.java
+++ /dev/null
@@ -1,120 +0,0 @@
-package com.baeldung.model;
-
-import java.io.File;
-
-import javax.validation.constraints.Min;
-import javax.validation.constraints.NotNull;
-import javax.validation.constraints.Size;
-
-import org.apache.bval.constraints.Email;
-import org.apache.bval.constraints.NotEmpty;
-import org.apache.bval.extras.constraints.checkdigit.IBAN;
-import org.apache.bval.extras.constraints.creditcard.Visa;
-import org.apache.bval.extras.constraints.file.Directory;
-import org.apache.bval.extras.constraints.net.InetAddress;
-
-import com.baeldung.validation.Password;
-
-public class User {
- @NotNull
- @Email
- private String email;
-
- @NotEmpty
- @Password
- private String password;
-
- @Size(min = 1, max = 20)
- private String name;
-
- @Min(18)
- private int age;
-
- @Visa
- private String cardNumber = "";
-
- @IBAN
- private String iban = "";
-
- @InetAddress
- private String website = "";
-
- @Directory
- private File mainDirectory=new File(".");
-
- public User() {
- }
-
- public User(String email, String password, String name, int age) {
- super();
- this.email = email;
- this.password = password;
- this.name = name;
- this.age = age;
- }
-
- public String getEmail() {
- return email;
- }
-
- public void setEmail(String email) {
- this.email = email;
- }
-
- public String getPassword() {
- return password;
- }
-
- public void setPassword(String password) {
- this.password = password;
- }
-
- public String getName() {
- return name;
- }
-
- public void setName(String name) {
- this.name = name;
- }
-
- public int getAge() {
- return age;
- }
-
- public void setAge(int age) {
- this.age = age;
- }
-
- public String getCardNumber() {
- return cardNumber;
- }
-
- public void setCardNumber(String cardNumber) {
- this.cardNumber = cardNumber;
- }
-
- public String getIban() {
- return iban;
- }
-
- public void setIban(String iban) {
- this.iban = iban;
- }
-
- public String getWebsite() {
- return website;
- }
-
- public void setWebsite(String website) {
- this.website = website;
- }
-
- public File getMainDirectory() {
- return mainDirectory;
- }
-
- public void setMainDirectory(File mainDirectory) {
- this.mainDirectory = mainDirectory;
- }
-
-}
diff --git a/apache-bval/src/main/java/com/baeldung/validation/Password.java b/apache-bval/src/main/java/com/baeldung/validation/Password.java
deleted file mode 100644
index 4ae06b2fb0..0000000000
--- a/apache-bval/src/main/java/com/baeldung/validation/Password.java
+++ /dev/null
@@ -1,25 +0,0 @@
-package com.baeldung.validation;
-
-import java.lang.annotation.Retention;
-import java.lang.annotation.RetentionPolicy;
-import java.lang.annotation.Target;
-
-import javax.validation.Constraint;
-import javax.validation.Payload;
-
-import static java.lang.annotation.ElementType.*;
-
-@Constraint(validatedBy = { PasswordValidator.class })
-@Target({ METHOD, FIELD, ANNOTATION_TYPE, CONSTRUCTOR, PARAMETER })
-@Retention(RetentionPolicy.RUNTIME)
-public @interface Password {
- String message() default "Invalid password";
-
- Class>[] groups() default {};
-
- Class extends Payload>[] payload() default {};
-
- int length() default 6;
-
- int nonAlpha() default 1;
-}
diff --git a/apache-bval/src/main/java/com/baeldung/validation/PasswordValidator.java b/apache-bval/src/main/java/com/baeldung/validation/PasswordValidator.java
deleted file mode 100644
index 19038d04d5..0000000000
--- a/apache-bval/src/main/java/com/baeldung/validation/PasswordValidator.java
+++ /dev/null
@@ -1,35 +0,0 @@
-package com.baeldung.validation;
-
-import javax.validation.ConstraintValidator;
-import javax.validation.ConstraintValidatorContext;
-
-public class PasswordValidator implements ConstraintValidator {
-
- private int length;
- private int nonAlpha;
-
- @Override
- public void initialize(Password password) {
- this.length = password.length();
- this.nonAlpha = password.nonAlpha();
-
- }
-
- @Override
- public boolean isValid(String value, ConstraintValidatorContext context) {
- if (value.length() < length) {
- return false;
- }
- int nonAlphaNr = 0;
- for (int i = 0; i < value.length(); i++) {
- if (!Character.isLetterOrDigit(value.charAt(i))) {
- nonAlphaNr++;
- }
- }
- if (nonAlphaNr < nonAlpha) {
- return false;
- }
- return true;
- }
-
-}
diff --git a/apache-bval/src/main/resources/logback.xml b/apache-bval/src/main/resources/logback.xml
deleted file mode 100644
index 7d900d8ea8..0000000000
--- a/apache-bval/src/main/resources/logback.xml
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-
-
- %d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/apache-bval/src/test/java/com/baeldung/validation/ValidationIntegrationTest.java b/apache-bval/src/test/java/com/baeldung/validation/ValidationIntegrationTest.java
deleted file mode 100644
index ecbcd100da..0000000000
--- a/apache-bval/src/test/java/com/baeldung/validation/ValidationIntegrationTest.java
+++ /dev/null
@@ -1,97 +0,0 @@
-package com.baeldung.validation;
-
-import java.io.File;
-import java.util.Set;
-
-import javax.validation.ConstraintViolation;
-import javax.validation.Validation;
-import javax.validation.Validator;
-import javax.validation.ValidatorFactory;
-
-import org.apache.bval.jsr.ApacheValidationProvider;
-import org.junit.AfterClass;
-import org.junit.BeforeClass;
-import org.junit.Test;
-
-import static org.junit.Assert.*;
-
-import com.baeldung.model.User;
-
-public class ValidationIntegrationTest {
- private static ValidatorFactory validatorFactory;
- private static Validator validator;
-
- @BeforeClass
- public static void setup() {
- validatorFactory = Validation.byProvider(ApacheValidationProvider.class)
- .configure()
- .buildValidatorFactory();
- validator = validatorFactory.getValidator();
- }
-
- @Test
- public void givenUser_whenValidate_thenValidationViolations() {
- User user = new User("ana@yahoo.com", "pass", "nameTooLong_______________", 15);
-
- Set> violations = validator.validate(user);
- assertTrue("no violations", violations.size() > 0);
- }
-
- @Test
- public void givenInvalidAge_whenValidateProperty_thenConstraintViolation() {
- User user = new User("ana@yahoo.com", "pass", "Ana", 12);
-
- Set> propertyViolations = validator.validateProperty(user, "age");
- assertEquals("size is not 1", 1, propertyViolations.size());
- }
-
- @Test
- public void givenValidAge_whenValidateValue_thenNoConstraintViolation() {
- User user = new User("ana@yahoo.com", "pass", "Ana", 18);
-
- Set> valueViolations = validator.validateValue(User.class, "age", 20);
- assertEquals("size is not 0", 0, valueViolations.size());
- }
-
- @Test
- public void whenValidateNonJSR_thenCorrect() {
- User user = new User("ana@yahoo.com", "pass", "Ana", 20);
- user.setCardNumber("1234");
- user.setIban("1234");
- user.setWebsite("10.0.2.50");
- user.setMainDirectory(new File("."));
-
- Set> violations = validator.validateProperty(user, "iban");
- assertEquals("size is not 1", 1, violations.size());
-
- violations = validator.validateProperty(user, "website");
- assertEquals("size is not 0", 0, violations.size());
-
- violations = validator.validateProperty(user, "mainDirectory");
- assertEquals("size is not 0", 0, violations.size());
- }
-
- @Test
- public void givenInvalidPassword_whenValidatePassword_thenConstraintViolation() {
- User user = new User("ana@yahoo.com", "password", "Ana", 20);
- Set> violations = validator.validateProperty(user, "password");
- assertEquals("message incorrect", "Invalid password", violations.iterator()
- .next()
- .getMessage());
- }
-
- @Test
- public void givenValidPassword_whenValidatePassword_thenNoConstraintViolation() {
- User user = new User("ana@yahoo.com", "password#", "Ana", 20);
-
- Set> violations = validator.validateProperty(user, "password");
- assertEquals("size is not 0", 0, violations.size());
- }
-
- @AfterClass
- public static void close() {
- if (validatorFactory != null) {
- validatorFactory.close();
- }
- }
-}