Created
December 8, 2010 23:28
-
-
Save mrjabba/734106 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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; | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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