Skip to content

Commit

Permalink
Getting rid of Email constraint from Hibernate Validator and creating…
Browse files Browse the repository at this point in the history
… our own (no external dependencies)
  • Loading branch information
agoncal committed Jan 13, 2014
1 parent d47a8b1 commit 65b7d72
Show file tree
Hide file tree
Showing 3 changed files with 51 additions and 4 deletions.
11 changes: 8 additions & 3 deletions pom.xml
Expand Up @@ -21,7 +21,7 @@
<version.mockito>1.9.5</version.mockito>
<version.arquillian>1.1.2.Final</version.arquillian>
<version.arquillian.glassfish.embedded>1.0.0.CR4</version.arquillian.glassfish.embedded>
<version.arquillian.jboss.managed>7.1.1.Final</version.arquillian.jboss.managed>
<version.arquillian.jboss.managed>7.1.3.Final</version.arquillian.jboss.managed>
<version.jacoco>0.5.7.201204190339</version.jacoco>
<!--TomEE-->
<version.openejb>4.1.0-SNAPSHOT</version.openejb>
Expand Down Expand Up @@ -92,7 +92,7 @@
<profiles>

<profile>
<id>glassfish3</id>
<id>glassfish-embedded</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
Expand All @@ -114,7 +114,7 @@
</profile>

<profile>
<id>jbossas7</id>
<id>jbossas-managed</id>
<activation>
<activeByDefault>false</activeByDefault>
</activation>
Expand All @@ -136,6 +136,11 @@
<version>${version.arquillian.jboss.managed}</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.jboss.arquillian.protocol</groupId>
<artifactId>arquillian-protocol-servlet</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
</profile>

Expand Down
@@ -0,0 +1,42 @@
package org.agoncal.application.petstore.constraint;

import javax.validation.Constraint;
import javax.validation.Payload;
import javax.validation.ReportAsSingleViolation;
import javax.validation.constraints.Pattern;
import javax.validation.constraints.Size;
import java.lang.annotation.Documented;
import java.lang.annotation.Retention;
import java.lang.annotation.Target;

import static java.lang.annotation.ElementType.*;
import static java.lang.annotation.RetentionPolicy.RUNTIME;

/**
* @author Antonio Goncalves
* http://www.antoniogoncalves.org
* --
*/
@Target({METHOD, FIELD, ANNOTATION_TYPE, CONSTRUCTOR, PARAMETER})
@Retention(RUNTIME)
@Documented
@Size(min = 5)
@Pattern(regexp = "[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\."
+ "[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*"
+ "@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?")
@ReportAsSingleViolation
@Constraint(validatedBy = {})
public @interface Email {

String message() default "wrong email address";

Class<?>[] groups() default {};

Class<? extends Payload>[] payload() default {};

@Target({METHOD, FIELD, ANNOTATION_TYPE, CONSTRUCTOR, PARAMETER})
@Retention(RUNTIME)
@interface List {
Email[] value();
}
}
@@ -1,8 +1,8 @@
package org.agoncal.application.petstore.domain;

import org.agoncal.application.petstore.constraint.Email;
import org.agoncal.application.petstore.constraint.Login;
import org.agoncal.application.petstore.exception.ValidationException;
import org.hibernate.validator.constraints.Email;

import javax.persistence.*;
import javax.validation.Valid;
Expand Down

0 comments on commit 65b7d72

Please sign in to comment.