# Migration from older versions

## Migrating from RESTEasy 2 to RESTEasy 3

Many facilities from RESTEasy 2 appear in a different form in RESTEasy 3. For example, much of the client framework in RESTEasy 2 is formalized, in modified form, in JAX-RS 2.0. RESTEasy versions 3.0.x implement both the older deprecated form and the newer conformant form. The deprecated form is moved to legacy module in RESTEasy 3.1 and finally removed in RESTEasy 4. For more information on upgrading from various deprecated facilities in RESTEasy 2, see http://docs.jboss.org/resteasy/docs/resteasy-upgrade-guide-en-US.pdf

## Migrating from 3.0.x to 4.0.0

- In releases 3.0.x, when bean validation (Validation) threw instances of exceptions
  - `javax.validation.ConstraintDefinitionException`,
  - `javax.validation.ConstraintDeclarationException`, or
  - `javax.validation.GroupDefinitionException`,

  they were wrapped in a `org.jboss.resteasy.api.validation.Resteasy.ResteasyViolationException`, which `org.jboss.resteasy.api.validation.ResteasyViolationExceptionMapper`, the built-in implementation of `javax.ws.rs.ext.ExceptionMapper<javax.validation.ValidationException>`, then turned into descriptive text. As of release 4.0.0, instances of `ConstraintDefinitionException`, etc., are thrown as is. They are still caught by `ResteasyViolationExceptionMapper`, so, in general, there is no detectable change. It should be noted, however, that an implementation of `ExceptionMapper<ResteasyViolationException>`, which, prior to release 4.0.0, would have caught wrapped instances of `ConstraintDefinitionException`, will not catch unwrapped instances.