View on GitHub RESTX     the lightweight Java REST framework

RESTX 0.30


Today we are very happy to announce yet another release of RESTX, version 0.30.

New and Noteworthy

core improvements

  • new settings support, allowing to easily define type safe settings, based on annotation processing
  • many API reviews, which shouldn’t impact those who only use the annotation endpoints, but which make good steps toward API stabilization
  • new customizable entity mapping support, allowing to use something else than json/Jackson marshalling/unmarshalling for your requests/responses body
  • support for text/plain responses (when you use String in your return type)
  • support for void return type in your resource endpoint methods (which defaults to a 204 No Content status response)
  • support for enum in query params

shell improvements

  • auto upgrade plugins when upgrading shell
  • allow to compile and run app in non interactive mode, which for instance eases the creation of images
  • use JAVA_OPTS and RESTX_OPTS as vm options when launching the shell, allowing to set proxy config for example

api-docs improvements

  • new “related operations” feature, easing navigation between operations, and reuse of responses in other requests (see screenshot to get an idea)

factory improvements

  • multi injection in Factory allow to inject Iterable<MyComponent> in your components, see doc for details


  • upgraded third party libraries versions
  • several bug fixes and minor improvements


Thanks a lot to the community who made this possible, especially the contributors to this release:

Getting started / Upgrading

Want to get started now? Check out the related doc.

Upgrading from an earlier version?

  • you just need to run restx shell upgrade to upgrade your shell and plugins.
  • in your projects you just need to update restx.version to 0.30 in your dependency descriptor
  • in your code you may have to adapt to some breaking changes, the most probable being that SignatureKey has moved to

You can check commits introducing breaking changes:

  • 838d42c core: entity mapping - refactor how entities are deserialized from request body [BREAKING]
  • 1ac17c5 core: default to text/plain for String,StringBuilder and StringBuffer [BREAKING]
  • 5fe6366 core: entity mapping - refactor how entities are serialized in response [BREAKING]
  • d36d28d core: API - review LifecycleListener methods parameters [BREAKING]
  • 19e37d8 core: API - split HandlerMatch responsibilities between match and handling [BREAKING]
  • 52cdfc0 core: API - review responsibilities between Handler and RouteMatch [BREAKING]
  • e70b611 core: API - refactor move SignatureKey to security package [BREAKING]
  • ca9569d core: API - refactor move HTTP and HttpStatus to their own package [BREAKING]
  • e797cda core: API - review http status type on response [BREAKING]
  • 3a02803 core: API - review how to access to request cookies [BREAKING]
comments powered by Disqus