Now Libreplan can be run on Java8. This implied some changes: * Latest versions of hibernate use the Bean Validation API. This implied renaming the imports and use ConstraintViolationException instead of InvalidValue. Besides some constraints had to be renamed, otherwise they wouldn't be recognized by Hibernate validation. In the new version of Hibernate validator @AssertTrue can only be applied to properties. So all methods it was applied to must follow the is.* format. Automatic execution of Bean Validation API is disabled, otherwise an infinite loop would happen. This is because there are some validation constraints that do launch queries to the database. This causes a flush of the objects in the session and automatic validation is called again. * A new library for persisting JodaTime is necessary since joda-time-hibernate is incompatible with hibernate 4. This library can automatically register its types for Date conversion so they're removed from configuration. * Now, in some places, an InvalidDataAccessApiUsageException is thrown instead of a DataIntegrityViolationException. This is because no constraint is violated, the API is being used incorrectly because a transient instance is being provided where a persisted one was expected. * In hibernate 4 listeners cannot be configured via properties. HibernateDatabaseModificationsListener registers itself in its @PostConstruct method. * ehcache classes used are now different. |
||
|---|---|---|
| .. | ||
| src | ||
| pom.xml | ||