diff --git a/javaxval/.classpath b/javaxval/.classpath
new file mode 100644
index 0000000000..e43402fa4f
--- /dev/null
+++ b/javaxval/.classpath
@@ -0,0 +1,36 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/javaxval/.project b/javaxval/.project
new file mode 100644
index 0000000000..e3665c093c
--- /dev/null
+++ b/javaxval/.project
@@ -0,0 +1,23 @@
+
+
+ javaxval
+
+
+
+
+
+ org.eclipse.jdt.core.javabuilder
+
+
+
+
+ org.eclipse.m2e.core.maven2Builder
+
+
+
+
+
+ org.eclipse.jdt.core.javanature
+ org.eclipse.m2e.core.maven2Nature
+
+
diff --git a/javaxval/pom.xml b/javaxval/pom.xml
new file mode 100644
index 0000000000..f4f69c6168
--- /dev/null
+++ b/javaxval/pom.xml
@@ -0,0 +1,51 @@
+
+ 4.0.0
+ com.sample
+ javaxval
+ 1.0
+
+
+
+
+
+
+ junit
+ junit
+ 4.12
+
+
+
+ javax.validation
+ validation-api
+ 1.1.0.Final
+
+
+
+ org.hibernate
+ hibernate-validator
+ 5.2.1.Final
+
+
+
+ org.hibernate
+ hibernate-validator-annotation-processor
+ 5.2.1.Final
+
+
+
+ javax.el
+ javax.el-api
+ 2.2.4
+
+
+
+ org.glassfish.web
+ javax.el
+ 2.2.4
+
+
+
+
+
+
\ No newline at end of file
diff --git a/javaxval/src/main/java/sample/model/User.java b/javaxval/src/main/java/sample/model/User.java
new file mode 100644
index 0000000000..62b3c83c1d
--- /dev/null
+++ b/javaxval/src/main/java/sample/model/User.java
@@ -0,0 +1,73 @@
+package sample.model;
+
+import javax.validation.constraints.Max;
+import javax.validation.constraints.Min;
+import javax.validation.constraints.NotNull;
+
+import org.hibernate.validator.constraints.Email;
+import org.hibernate.validator.constraints.NotEmpty;
+
+public class User {
+
+ @NotNull(message = "First name cannot be null")
+ @NotEmpty(message = "First name cannot be empty")
+ private String fname;
+
+ @NotNull(message = "Last name cannot be null")
+ @NotEmpty(message = "Last name cannot be empty")
+ private String lname;
+
+ @Min(value = 18, message = "Age must be greater than or equal to 18")
+ @Max(value = 150, message = "Age must be less than or equal to 150")
+ private int age;
+
+ @NotNull(message = "Last name cannot be null")
+ @NotEmpty(message = "Last name cannot be empty")
+ private String gender;
+
+ @NotNull(message = "Email Address is compulsory")
+ @NotEmpty(message = "Email Address is compulsory")
+ @Email(message = "Email Address is not a valid format")
+ private String email;
+
+ public String getEmail() {
+ return email;
+ }
+
+ public void setEmail(String email) {
+ this.email = email;
+ }
+
+ public String getFname() {
+ return fname;
+ }
+
+ public void setFname(String fname) {
+ this.fname = fname;
+ }
+
+ public String getLname() {
+ return lname;
+ }
+
+ public void setLname(String lname) {
+ this.lname = lname;
+ }
+
+ public int getAge() {
+ return age;
+ }
+
+ public void setAge(int age) {
+ this.age = age;
+ }
+
+ public String getGender() {
+ return gender;
+ }
+
+ public void setGender(String gender) {
+ this.gender = gender;
+ }
+
+}
diff --git a/javaxval/src/test/java/sample/ValidationTest.java b/javaxval/src/test/java/sample/ValidationTest.java
new file mode 100644
index 0000000000..fb085bc56e
--- /dev/null
+++ b/javaxval/src/test/java/sample/ValidationTest.java
@@ -0,0 +1,102 @@
+package sample;
+
+import java.util.Iterator;
+import java.util.Set;
+
+import javax.validation.ConstraintViolation;
+import javax.validation.Validation;
+import javax.validation.Validator;
+import javax.validation.ValidatorFactory;
+
+import org.junit.Assert;
+import org.junit.Test;
+
+import sample.model.User;
+
+public class ValidationTest {
+
+ @Test
+ public void validation_when_fname_is_null() {
+ System.out
+ .println("\n---------------validation_when_fname_is_null--------------");
+
+ // [1]
+ User user = new User();
+ user.setLname("Last");
+ user.setEmail("first.last@gmail.com");
+ user.setGender("male");
+ user.setAge(29);
+
+ // [2]
+ ValidatorFactory factory = Validation.buildDefaultValidatorFactory();
+ // [3]
+ Validator validator = factory.getValidator();
+ // [4]
+ Set> violations = validator.validate(user);
+
+ // [5]
+ Iterator> iter = violations.iterator();
+
+ while (iter.hasNext()) {
+ // [6]
+ ConstraintViolation cv = iter.next();
+
+ // [7]
+ System.out.println(cv.getMessage());
+ }
+
+ Assert.assertEquals(violations.isEmpty(), false);
+ }
+
+ @Test
+ public void validation_when_empty_lname() {
+ System.out
+ .println("\n---------------validation_when_empty_lname--------------");
+ User user = new User();
+ user.setFname("First");
+ user.setLname("");
+ user.setEmail("first.last@gmail.com");
+ user.setGender("male");
+ user.setAge(29);
+
+ // validate the input
+ ValidatorFactory factory = Validation.buildDefaultValidatorFactory();
+ Validator validator = factory.getValidator();
+ Set> violations = validator.validate(user);
+
+ Iterator> iter = violations.iterator();
+
+ while (iter.hasNext()) {
+ ConstraintViolation cv = iter.next();
+ System.out.println(cv.getMessage());
+ }
+
+ Assert.assertEquals(violations.isEmpty(), false);
+ }
+
+ @Test
+ public void validation_when_email_is_invalid() {
+ System.out
+ .println("\n---------------validation_when_email_is_invalid--------------");
+ User user = new User();
+ user.setFname("First");
+ user.setLname("Last");
+ user.setEmail("firstgmail.com");
+ user.setGender("male");
+ user.setAge(29);
+
+ // validate the input
+ ValidatorFactory factory = Validation.buildDefaultValidatorFactory();
+ Validator validator = factory.getValidator();
+ Set> violations = validator.validate(user);
+
+ Iterator> iter = violations.iterator();
+
+ while (iter.hasNext()) {
+ ConstraintViolation cv = iter.next();
+ System.out.println(cv.getMessage());
+ }
+
+ Assert.assertEquals(violations.isEmpty(), false);
+ }
+}