VRaptor Changelog

What's new in VRaptor 3.3.1

Feb 15, 2011
  • fixed scannotation as mandatory on maven
  • fixed ConcurrentModificationException on interceptors ordering
  • updating spring from 3.0.0 to 3.0.5
  • fixed @PostConstruct on @ApplicationScoped components when using Spring as container.
  • better docs
  • redirect to @Path's with regexes
  • Hibernate and JPA Transaction interceptors now rollback when there are validation errors.

New in VRaptor 3.3.0 (Feb 1, 2011)

  • Changed google-collect 1.0rc to guava-r07.
  • Scannotations 1.0.2 is now mandatory.

New in VRaptor 3.2.0 (Nov 1, 2010)

  • several performance tweaks: about 60% less request time.
  • internal compatibility break: InterceptorStack interface reorganized.
  • better implementation of VRaptor internal interceptors accepts method.
  • beta support to Google Guice, that can be used instead of Spring.
  • Pico provider is not deprecated anymore.
  • One can change the DI container without configuring it on web.xml. If VRaptor finds the Spring jars on classpath, Spring will be used; if PicoContainer jars are found it will be used; the same for Guice jars. One can find the container jars on lib/containers folder on vraptor zip.
  • internal compatibility break: interfaces Converters, Router and constructor of PathAnnotationRoutesParser class were changed. RouteBuilder converted is now an interface => DefaultRouteBuilder is the implementation. Those who extend PathAnnotationRoutesParser must change the call to delegate constructor. Those who instantiate RouteBuilder directly must instantiate DefaultRouteBuilder.
  • new annotation @Lazy. Use it on interceptors which accepts method doesn't depend on the interceptor internal state:

New in VRaptor 3.1.3 (Sep 1, 2010)

  • Scala Blank Project
  • Better strategy on Flash scope
  • starting support for javax.inject API. Naming logic parameters is now possible:
  • bugfixes on new Validator
  • bugfix: char as URI parameter
  • bugfix: now VRaptor works with browsers that do not correctly send Accepts header. public void logic(@Named("a_name") String anotherName) {...}
So the request parameter must be called 'a_name'.
  • better support for GAE
  • new method on http result: result.use(http()).body(content);
content can be either a String, an InputStream or a Reader.
  • more available methods for result.use(status())
  • new method: result.use(representation()).from(object, alias)
  • support for multiple selects: public void logic(List abc) {...}
...
  • auto 406 status when using result.use(representation())
  • One can register now all optional vraptor components on packages configuration on web.xml:
  • rendering a null representation means returning a 404
  • new class: JsonDeserializer
  • MultipartInterceptor is now optional.
  • bugfix: arrays of length == 1 are now supported as logic parameters
  • Pico provider is deprecated
  • Validations using the request bundle (and locale)
  • ValidationMessage implements Serializable
  • new method: result.use(status()).badRequest(errorList); serializes the given error list with: result.use(representation()).from(errorList, "errors");
  • shortcuts on Validator: validator.onErrorForwardTo(controller).logic();
  • validator.onErrorRedirectTo(controller).logic();
  • validator.onErrorUsePageOf(controller).logic();
where controller can be either a controller class or this, as in Result shortcuts.And the shortcut: validator.onErrorSendBadRequest();
which returns the Bad Request (400) status codes and serializes the validation error list according to Accept request header (result.use(representation())) que retorna o status Bad Request (400) e serializa a lista de erros de validação de acordo com o header Accept da requisição (result.use(representation()))

New in VRaptor 3.1.2 (May 13, 2010)

  • Blank project now also runs on netbeans 6.8
  • Supports encoding for file uploads in Google App Engine
  • bugfix: no more NullPointerExceptions on validator.onErrorUse(json())...
  • Serializers now have the recursive method
  • Message parameters on Validations now can be i18n'ed
  • Hibernate proxies are now nicely serialized (almost) like regular classes (thanks to Tomaz Lavieri)
  • It is now possible to serialize to json without the root element (thanks to Tomaz Lavieri)
  • Google collections updated to version 1.0
  • fixed bug with curly braces on regexes inside @Path's
  • XStream annotations are now automatically read when you use VRaptor's default serialization
  • when you upload a file bigger than the file size limit you get a validation error instead of a generic exception
  • more shortcuts on Result interface. This method will validate the given object using Hibernate Validator 3, Java Validation API (JSR303), or any implementation of BeanValidation annotated with @Component
  • new BigDecimal, Double and Float converters, that consider the current Locale to convert the values (thanks to Otávio Garcia).

New in VRaptor 3.1.1 (Apr 6, 2010)

  • VRaptor 3 was published on Maven central repository
  • New implementation for Outjector.
  • Now when there are validation errors actual objects are replicated to the next request, not string parameters as before, preventing class cast exceptions on taglibs.
  • Bug fixes on VRaptor 2 compatibility

New in VRaptor 3.0.0 (Oct 13, 2009)

  • ValidationError renamed to ValidationException
  • result.use(Results.http()) for setting headers and status codes of HTTP protocol
  • bug fixes
  • documentation
  • new site