Skip to content

Instantly share code, notes, and snippets.

@mrjabba
Created December 8, 2010 23:28
Show Gist options
  • Save mrjabba/734106 to your computer and use it in GitHub Desktop.
Save mrjabba/734106 to your computer and use it in GitHub Desktop.
package foo;
import java.util.Set;
import javax.validation.ConstraintViolation;
import javax.validation.Validation;
import javax.validation.Validator;
import javax.validation.ValidatorFactory;
import org.hibernate.validator.constraints.ScriptAssert;
//@ScriptAssert(lang="javascript",script="_this.x < _this.y",message="something bad happened" )
@ScriptAssert(lang="javascript",script="_this.foo1.equals(_this.foo2)",message="something bad happened" )
public class ScriptMe {
private String foo1 = "blah";
private String foo2 = "blah";
private int x = 0;
private int y = 1;
// @NotEmpty(message = "Required field [featureName] can not be empty")
private String featureName;
public static void main(String[] args) {
ScriptMe form = new ScriptMe();
ValidatorFactory vf = Validation.buildDefaultValidatorFactory();
Validator validator = vf.getValidator();
Set<ConstraintViolation<ScriptMe>> erros = validator.validate(form);
for (ConstraintViolation<ScriptMe> erro : erros) {
System.out.println(erro.getMessage());
}
}
public String getFoo1() {
return foo1;
}
public void setFoo1(String foo1) {
this.foo1 = foo1;
}
public String getFoo2() {
return foo2;
}
public void setFoo2(String foo2) {
this.foo2 = foo2;
}
public int getX() {
return x;
}
public void setX(int x) {
this.x = x;
}
public int getY() {
return y;
}
public void setY(int y) {
this.y = y;
}
public String getFeatureName() {
return featureName;
}
public void setFeatureName(String featureName) {
this.featureName = featureName;
}
}
@mrjabba
Copy link
Author

mrjabba commented Dec 8, 2010

I get an exception when I try to run this in Java 1.5

Exception in thread "main" javax.validation.ValidationException: Unexpected exception during isValid call
at org.hibernate.validator.engine.ConstraintTree.validateSingleConstraint(ConstraintTree.java:144)
at org.hibernate.validator.engine.ConstraintTree.validateConstraints(ConstraintTree.java:118)
at org.hibernate.validator.metadata.MetaConstraint.validateConstraint(MetaConstraint.java:121)
at org.hibernate.validator.engine.ValidatorImpl.validateConstraint(ValidatorImpl.java:334)
at org.hibernate.validator.engine.ValidatorImpl.validateConstraintsForRedefinedDefaultGroup(ValidatorImpl.java:278)
at org.hibernate.validator.engine.ValidatorImpl.validateConstraintsForCurrentGroup(ValidatorImpl.java:260)
at org.hibernate.validator.engine.ValidatorImpl.validateInContext(ValidatorImpl.java:213)
at org.hibernate.validator.engine.ValidatorImpl.validate(ValidatorImpl.java:119)
at foo.ScriptMe.main(ScriptMe.java:28)
Caused by: javax.validation.ConstraintDeclarationException: javax.script.ScriptException
at org.hibernate.validator.constraints.impl.ScriptAssertValidator.isValid(ScriptAssertValidator.java:58)
at org.hibernate.validator.engine.ConstraintTree.validateSingleConstraint(ConstraintTree.java:141)
... 8 more
Caused by: javax.script.ScriptException
at org.hibernate.validator.util.scriptengine.ScriptEvaluatorFactory.createNewScriptEvaluator(ScriptEvaluatorFactory.java:100)
at org.hibernate.validator.util.scriptengine.ScriptEvaluatorFactory.getScriptEvaluatorByLanguageName(ScriptEvaluatorFactory.java:79)
at org.hibernate.validator.constraints.impl.ScriptAssertValidator.isValid(ScriptAssertValidator.java:55)
... 9 more

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment