Skip to content

Commit

Permalink
New example to explore support for validation.
Browse files Browse the repository at this point in the history
  • Loading branch information
spericas committed Jun 22, 2011
1 parent c5d3750 commit 3a9c7c1
Show file tree
Hide file tree
Showing 2 changed files with 61 additions and 1 deletion.
8 changes: 7 additions & 1 deletion src/examples/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -264,7 +264,13 @@
<artifactId>javax.ws.rs-api</artifactId>
<version>2.0-SNAPSHOT</version>
</dependency>


<dependency>
<groupId>org.glassfish</groupId>
<artifactId>bean-validator</artifactId>
<version>3.0-JBoss-4.0.2</version>
</dependency>

<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
package jaxrs.examples.client.validator;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
import javax.validation.Constraint;
import javax.validation.ConstraintValidator;
import javax.validation.ConstraintValidatorContext;
import javax.validation.Payload;
import javax.ws.rs.client.Client;
import javax.ws.rs.client.ClientFactory;

public class ValidatorExample {

@Target({ElementType.METHOD, ElementType.FIELD, ElementType.PARAMETER})
@Retention(RetentionPolicy.RUNTIME)
@Constraint(validatedBy = EmailValidator.class)
public @interface Email {
String message() default "{foo.bar.validation.constraints.email}";
Class<?>[] groups() default {};
Class<? extends Payload>[] payload() default {};
}

public static class EmailValidator implements ConstraintValidator<Email, String> {
public void initialize(Email email) {
// no-op
}
public boolean isValid(String value, ConstraintValidatorContext context) {
// Ensure value is a valid e-mail address
return true;
}
}

public void example1() {
Client c = ClientFactory.newClient();
/*
String response = c.resourceUri("http://example.com/foo/")
.get()
.invoke(String.class, EmailValidator.class);
*/
}

public void example2() {
Client c = ClientFactory.newClient();
/*
String response = c.resourceUri("http://example.com/foo/")
.put()
.entity("foo@bar.com", EmailValidator.class)
.invoke(String.class, EmailValidator.class);
*/
}

}

0 comments on commit 3a9c7c1

Please sign in to comment.