View on GitHub RESTX     the lightweight Java REST framework

RESTX 0.31


Today we are very happy to announce release 0.31 of RESTX, the lightweight, modular, feature rich, blazing fast and open source Java REST framework.

This release is a major release with close to 200 commits!

New and Noteworthy

core improvements

  • better error reporting when problems occur during server startup
  • replaced jamon with codahale metrics
  • introduced AutoStartable components, to have better control over components lifecycle
  • add support for Optional return type in settings methods
  • add support for new path param definitions (support regex and angular notation)
  • add client affinity support, allowing easier testing with easy overriding of components
  • add new context params, including access to browser preferred Locale
  • support for @Consumes and @Produces annotations (inspired by JAX-RS)
  • allow to set Jackson view used to marshall response
  • review UUIDGenerator management, you can now get one injected without having to defining it
  • give access to underlying native request and response objects
  • review how time is handled to make it compliant with parallel tests
  • better support for running a restx app behind a reverse proxy
  • add 2 new lifecycle events, called with entity routes only
  • components can now be used as jackson objects (serializer, deser, …)


  • allow to easily test authenticated requests with HttpTestClient
  • principals can now have a * role which allow to access endpoints whatever role is required
  • provide a FileUserRepository to easily implement basic but functional user repository
  • ease jongo based user repository implementation
  • add support for http basic auth
  • add RestxSessionBareFilter which allow to implement RestxSession based security with no cookies
  • allow using servlet principal as restx principal
  • fix and improvements to CORS support

web console

  • improved monitoring web console, with jvm metrics and option to report to graphite
  • log admin console to view logs and configure loggers
  • add session stats view to monitoring console
  • new sources web console allow to view and edit application sources


  • improve UI: better results display + play button to run a test manually
  • parallellize tests execution

shell improvements

  • review default logback configuration in generated app
  • auto deps install on app run if md.restx.json has changed
  • better documentation with a man for all commands
  • add deps add command, allowing to easily declare new dependencies in restx apps
  • add ‘app grab’ to easily install a packaged restx app
  • add hash command allowing to easily calculate some hashes
  • use new FileUserRepository in generated app
  • allow to change the location where app is generated

api-docs improvements

  • add json schema view and link to it for body param and response data
  • add link to endpoint sources
  • do not display related operations and use button when no related operation is found
  • ‘save’ selected groups in query string, so that selected groups are bookmarkable

factory improvements

  • improved error reporting, with better dependencies report on failure and other improvements
  • derecursify components building process, making call stacks much more readable, amd improving performance
  • provide an easy to deactivate any component


  • new samplest module, used both as sample and automatic test of many restx features
  • several performance related improvements
  • get rid of all java compilation warnings
  • upgrade to jongo 1.0 + jackson 2.3.0 + bson4jackson 2.3.0
  • move from spullara.mustache to jmustache
  • many bug fixes


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.31 in your dependency descriptor
  • in your code you may have to adapt to some breaking changes

You can check commits introducing breaking changes:

  • c1c33857b083ab265e27503f8edbe60e2f04b35c spec: review recorder design [BREAKING]
  • 4a853f176acfba4517041d2267b5390a53888a52 core: review UUIDGenerator management [BREAKING]
  • 74aef8b65e2e8abfac3d9484477f86a818cfcf67 errors: review API: use a provided UUIDGenerator instead of “current” one [BREAKING]
  • 8ed182dda009bfd9a408cd4c51922610ea80ee87 core: review programmatic API to build a router [BREAKING]
  • bc4c000f70c81ec30c3e9fd9c9dc89cb94b542b3 mongo: review jongo / mongo responsibilties [BREAKING]
comments powered by Disqus