Is it really possible that there is no JSR-303 compatible validator for Android around?
Hibernate validator seems not compatible with Android (ClassNotFound Exception) and then... I could not find anything else.
I found Metawidget - but on their Website they say "Metawidget comes with a UI component native to your existing front-end" - I don't need additional UI components.
Here is what I have on the backend:
final String wrongJson = "{\"name\":\"notavalidemail\"}";
final Gson gson = new Gson();
final Project projectFromJson = gson.fromJson(wrongJson, Project.class);
final ValidatorFactory factory = Validation.buildDefaultValidatorFactory();
final Validator validator = factory.getValidator();
final Set<ConstraintViolation<Project>> constraintViolations = validator.validate(projectFromJson);
assertNotNull(constraintViolations);
for (final ConstraintViolation<Project> violation : constraintViolations) {
logger.debug("Errormessage: {}",violation.getMessage());
}
To avoid a bunch of ifs I want the same on Android - any hints?
[Update] Sorry - it's not ClassNotFound it is
javax.validation.ValidationException: Unable to create a Configuration, because no Bean Validation provider could be found. Add a provider like Hibernate Validator (RI) to your classpath. at javax.validation.Validation$GenericBootstrapImpl.configure(Validation.java:271) at javax.validation.Validation.buildDefaultValidatorFactory(Validation.java:110) at at.mikemitterer.mobiad.android.util.ProjectTest.testWithWrongJsonString(ProjectTest.java:90) at java.lang.reflect.Method.invokeNative(Native Method) at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:190) at android.test.AndroidTestRunner.runTest(AndroidTestRunner.java:175) at android.test.InstrumentationTestRunner.onStart(InstrumentationTestRunner.java:555) at android.app.Instrumentation$InstrumentationThread.run(Instrumentation.java:1661)
[Update II] Yes - hibernate-validator-5.1.0.Alpha1.jar is in my lib folder